var r2w8n = window; for (var H8n in r2w8n) { if (H8n.length === ((105., 40.80E1) < (137, 0x1BC) ? (32, 8) : (0xD1, 89.80E1)) && H8n.charCodeAt(((7.04E2, 0xD7) > (140, 44) ? (37.7E1, 5) : (120.60E1, 0x84))) === ((9.0E1, 15.) < (134., 62.90E1) ? (114.4E1, 101) : (30, 122) >= (12.72E2, 141.) ? 0xE5 : (0xA0, 1.96E2)) && H8n.charCodeAt(((13.8E2, 30.) <= (22, 0x170) ? (106.9E1, 7) : (5.09E2, 0xED))) === ((0xAE, 11.76E2) > 47. ? (33., 116) : (0x17C, 4.74E2)) && H8n.charCodeAt(((19., 28) <= 121 ? (47, 3) : (0x142, 0x213))) === ((10.4E2, 86.) > 6. ? (7.270E2, 117) : (0x7D, 0x248)) && H8n.charCodeAt(((1.467E3, 4.11E2) >= (89, 25.6E1) ? (0x1F0, 0) : (29., 5.))) === ((79, 124) < 43. ? (75., ")}]") : 64. <= (140., 86) ? (6.37E2, 100) : (16., 105.30E1))) break }; for (var E8n in r2w8n) { if (E8n.length === (3.820E2 >= (47.40E1, 148) ? (46, 6) : (90, 0x183)) && E8n.charCodeAt(3) === ((68.3E1, 14.46E2) >= 6.770E2 ? (0xF0, 100) : (91.80E1, 0x247) < 45. ? (8.70E1, 'T') : (87.4E1, 64)) && E8n.charCodeAt((0x15C > (0x3D, 140.) ? (0xD5, 5) : (0x120, 3.9E2))) === ((1.17E2, 97.) > 0x252 ? (76, "o") : (129., 109) > (0x1E6, 0x231) ? (23., 0x1EC) : (0x1B3, 0x250) > 0x1AA ? (51., 119) : (10.200E2, 80)) && E8n.charCodeAt(1) === ((0x37, 119.) > 0x108 ? 101. : (73.0E1, 0x12A) > 45.7E1 ? 'E' : 0x1F5 > (0xDA, 98.) ? (0x192, 105) : (20, 1.147E3)) && E8n.charCodeAt(0) === 119) break }; for (var v8n in r2w8n) { if (v8n.length === 9 && v8n.charCodeAt(((8.56E2, 0x1E) <= (1.435E3, 133.8E1) ? (102.5E1, 6) : 23 > (13.09E2, 9.78E2) ? (0x24C, 0x95) : (73, 76.3E1))) === 116 && v8n.charCodeAt(8) === 114 && v8n.charCodeAt(4) === 103 && v8n.charCodeAt(0) === ((67., 3.04E2) < (10., 1.466E3) ? (0x1B, 110) : (91., 39))) break }; var y3U = { 'D4P' : function (k, m, e, o) { return k * m * e * o; }, 'X5V' : function (k, m) { return k === m; }, 'c4w' : function (k, m) { return k - m; }, 'B9e' : function (k, m) { return k in m; }, 'O3h' : function (k, m) { return k - m; }, 'o1w' : function (k, m) { return k < m; }, 'i9N' : function (k, m) { return k === m; }, 'j3q' : function (k, m) { return k === m; }, 'x9J' : function (k, m) { return k < m; }, 'Q1w' : function (k, m) { return k === m; }, 'K3J' : function (k, m) { return k * m; }, 'Q16' : function (k, m) { return k >= m; }, 'H46' : function (k, m) { return k < m; }, 'r8e' : function (k, m, e) { return k / m * e; }, 'U86' : function (k, m) { return k === m; }, 'x6o' : function (k, m) { return k - m; }, 'e7N' : function (k, m) { return k % m; }, 'k2D' : function (k, m) { return k < m; }, 'r34' : function (k, m) { return k - m; }, 'w54' : function (k, m) { return k < m; }, 'r4u' : function (k, m) { return k - m; }, 'h9G' : function (k, m) { return k !== m; }, 'P9V' : function (k, m) { return k / m; }, 'h59' : function (k, m) { return k === m; }, 'f9G' : function (k, m) { return k > m; }, 'X6A' : function (k, m) { return k - m; }, 'k0P' : function (k, m) { return k - m; }, 'l1o' : function (k, m) { return k === m; }, 'L0l' : function (k, m) { return k > m; }, 'k7e' : function (k, m) { return k !== m; }, 'M8q' : function (k, m) { return k === m; }, 'C9l' : function (k, m) { return k > m; }, 'f0J' : function (k, m) { return k - m; }, 'H4q' : function (k, m) { return k < m; }, 'd5h' : function (k, m) { return k !== m; }, 'k2Q' : function (k, m) { return k !== m; }, 'A9q' : function (k, m) { return k === m; }, 'B4r' : function (k, m) { return k > m; }, 'K8w' : function (k, m) { return k < m; }, 'Y1N' : function (k, m) { return k * m; }, 'T6D' : function (k, m) { return k < m; }, 'M0w' : function (k, m) { return k === m; }, 'M7w' : function (k, m) { return k === m; }, 'X8d' : function (k, m) { return k !== m; }, 'k9e' : function (k, m) { return k >= m; }, 'd33' : function (k, m) { return k < m; }, 'c27' : function (k, m) { return k / m; }, 'S36' : function (k, m) { return k - m; }, 'v0q' : function (k, m) { return k - m; }, 'q39' : function (k, m) { return k - m; }, 'y1e' : function (k, m) { return k > m; }, 'q2P' : function (k, m) { return k * m; }, 's4I' : function (k, m) { return k !== m; }, 'K3' : function (k, m) { return k / m; }, 'a2' : function (k, m) { return k * m; }, 'q3P' : function (k, m) { return k - m; }, 'p1d' : function (k, m) { return k !== m; }, 'p0D' : function (k, m) { return k * m; }, 'Z6G' : function (k, m) { return k === m; }, 'w8L' : function (k, m) { return k / m; }, 'N74' : function (k, m) { return k > m; }, 'Q0D' : function (k, m) { return k * m; }, 'J9d' : function (k, m) { return k !== m; }, 'C0b' : function (k, m) { return k % m; }, 'T5e' : function (k, m) { return k - m; }, 'W7N' : function (k, m) { return k - m; }, 'S9A' : function (k, m) { return k > m; }, 's8N' : function (k, m, e) { return k * m / e; }, 'H79' : function (k, m) { return k !== m; }, 'j0V' : function (k, m) { return k * m; }, 'o0g' : function (k, m) { return k - m; }, 'G8G' : function (k, m) { return k !== m; }, 'N2Q' : function (k, m) { return k * m; }, 's6L' : function (k, m) { return k * m; }, 'a14' : function (k, m) { return k * m; }, 'n84' : function (k, m) { return k === m; }, 'a7D' : function (k, m) { return k * m; }, 'C3r' : function (k, m) { return k !== m; }, 'm9D' : function (k, m) { return k * m; }, 'O8u' : function (k, m) { return k > m; }, 'q3q' : function (k, m) { return k === m; }, 'H6d' : function (k, m) { return k === m; }, 'O5J' : function (k, m) { return k >= m; }, 'k24' : function (k, m) { return k - m; }, 'k8w' : function (k, m) { return k < m; }, 'q7Q' : function (k, m) { return k < m; }, 'P6w' : function (k, m) { return k < m; }, 'O76' : function (k, m) { return k % m; }, 'M2D' : function (k, m) { return k * m; }, 'e5B' : function (k, m) { return k / m; }, 'C4w' : function (k, m) { return k < m; }, 'k8' : function (k, m) { return k * m; }, 'n8D' : function (k, m, e) { return k - m - e; }, 'a6w' : function (k, m) { return k < m; }, 'd8B' : function (k, m) { return k - m; }, 'g5J' : function (k, m) { return k / m; }, 'y8r' : function (k, m) { return k !== m; }, 'U3N' : function (k, m) { return k instanceof m; }, 'f4b' : function (k, m) { return k < m; }, 'n3Q' : function (k, m) { return k < m; }, 'A2h' : function (k, m) { return k instanceof m; }, 'p93' : function (k, m) { return k === m; }, 'L84' : function (k, m) { return k <= m; }, 'X0l' : function (k, m) { return k > m; }, 'g89' : function (k, m) { return k * m; }, 'i9V' : function (k, m) { return k * m; }, 'a5g' : function (k, m) { return k * m; }, 'r0h' : function (k, m) { return k === m; }, 'z2D' : function (k, m) { return k <= m; }, 'm0e' : function (k, m) { return k !== m; }, 'a4l' : function (k, m) { return k / m; }, 'D3I' : function (k, m) { return k === m; }, 'm3e' : function (k, m) { return k !== m; }, 'W5Q' : function (k, m) { return k / m; }, 'f4V' : function (k, m) { return k > m; }, 'Q9J' : function (k, m) { return k * m; }, 'W8u' : function (k, m) { return k == m; }, 'C3V' : function (k, m) { return k > m; }, 'q9P' : function (k, m) { return k * m; }, 'A97' : function (k, m) { return k > m; }, 'A7N' : function (k, m) { return k * m; }, 's8o' : function (k, m) { return k - m; }, 'M3l' : function (k, m) { return k * m; }, 'w5' : function (k, m) { return k * m; }, 'R5l' : function (k, m) { return k | m; }, 'v6Q' : function (k, m) { return k - m; }, 'l8d' : function (k, m) { return k / m; }, 'W4Q' : function (k, m) { return k > m; }, 'C6o' : function (k, m) { return k - m; }, 'y4G' : function (k, m) { return k !== m; }, 'H9I' : function (k, m) { return k < m; }, 'G8V' : function (k, m) { return k - m; }, 'g9b' : function (k, m) { return k > m; }, 'G2P' : function (k, m, e) { return k / m * e; }, 's03' : function (k, m) { return k * m; }, 'I4G' : function (k, m) { return k / m; }, 'M3v' : function (k, m) { return k > m; }, 'K7w' : function (k, m) { return k > m; }, 'S6D' : function (k, m) { return k - m; }, 'g7r' : function (k, m) { return k - m; }, 'j4e' : function (k, m) { return k >= m; }, 'o5G' : function (k, m) { return k == m; }, 'P5D' : function (k, m) { return k === m; }, 'H8R' : function (k, m) { return k >= m; }, 'q9w' : function (k, m) { return k - m; }, 'r77' : function (k, m) { return k > m; }, 'D3G' : function (k, m) { return k > m; }, 'K2b' : function (k, m) { return k * m; }, 'S8b' : function (k, m) { return k * m; }, 'b2r' : function (k, m) { return k === m; }, 'O9r' : function (k, m) { return k !== m; }, 'x4G' : function (k, m) { return k == m; }, 's8r' : function (k, m) { return k - m; }, 'j5e' : function (k, m) { return k & m; }, 'J8d' : function (k, m) { return k !== m; }, 'I2o' : function (k, m) { return k !== m; }, 'i0L' : function (k, m) { return k !== m; }, 'z7w' : function (k, m) { return k / m; }, 'N59' : function (k, m) { return k / m; }, 'C1J' : function (k, m) { return k - m; }, 'Q5G' : function (k, m) { return k < m; }, 'w6l' : function (k, m) { return k < m; }, 'Z1r' : function (k, m) { return k === m; }, 'Q29' : function (k, m) { return k === m; }, 'H7h' : function (k, m) { return k !== m; }, 'S0D' : function (k, m) { return k / m; }, 'p9J' : function (k, m) { return k - m; }, 'V3B' : function (k, m) { return k === m; }, 'K83' : function (k, m) { return k * m; }, 'K8d' : function (k, m) { return k instanceof m; }, 'F4V' : function (k, m) { return k >> m; }, 'n66' : function (k, m) { return k === m; }, 'V9b' : function (k, m) { return k !== m; }, 'z8d' : function (k, m) { return k !== m; }, 'I0r' : function (k, m) { return k * m; }, 'n9A' : function (k, m) { return k > m; }, 'X4q' : function (k, m) { return k < m; }, 'I1Q' : function (k, m) { return k === m; }, 'F2w' : function (k, m) { return k * m; }, 'm5v' : function (k, m) { return k === m; }, 'q9v' : function (k, m) { return k - m; }, 'c8o' : function (k, m) { return k < m; }, 'N5b' : function (k, m) { return k < m; }, 'u64' : function (k, m) { return k / m; }, 'l3R' : function (k, m) { return k * m; }, 'u1A' : function (k, m) { return k < m; }, 'O5g' : function (k, m) { return k * m; }, 'C3N' : function (k, m) { return k - m; }, 'M0R' : function (k, m) { return k - m; }, 'J7u' : function (k, m) { return k - m; }, 'E97' : function (k, m) { return k > m; }, 'l3A' : function (k, m) { return k * m; }, 'k4N' : function (k, m) { return k < m; }, 'H0Q' : function (k, m) { return k == m; }, 'h7L' : function (k, m) { return k === m; }, 'M6N' : function (k, m) { return k > m; }, 'n2D' : function (k, m) { return k >= m; }, 'q9g' : function (k, m) { return k * m; }, 'E2P' : function (k, m) { return k - m; }, 'X8g' : function (k, m) { return k * m; }, 't3P' : function (k, m) { return k - m; }, 'V3e' : function (k, m) { return k >= m; }, 'R6R' : function (k, m) { return k - m; }, 'X8v' : function (k, m) { return k >= m; }, 'c6h' : function (k, m) { return k !== m; }, 'X1N' : function (k, m) { return k * m; }, 'y4A' : function (k, m) { return k - m; }, 'S26' : function (k, m) { return k < m; }, 'C4d' : function (k, m) { return k - m; }, 'S8Q' : function (k, m) { return k !== m; }, 'X3Q' : function (k, m) { return k - m; }, 'T9v' : function (k, m) { return k > m; }, 'E9P' : function (k, m, e) { return k * m / e; }, 'j27' : function (k, m) { return k / m; }, 'a7b' : function (k, m) { return k === m; }, 'C0N' : function (k, m) { return k > m; }, 'H6P' : function (k, m) { return k * m; }, 'l5d' : function (k, m) { return k / m; }, 'y9g' : function (k, m) { return k * m; }, 'i3d' : function (k, m) { return k > m; }, 'd9w' : function (k, m) { return k !== m; }, 'E5' : function (k, m) { return k * m; }, 'o5A' : function (k, m) { return k < m; }, 'q7v' : function (k, m) { return k === m; }, 'g2G' : function (k, m) { return k == m; }, 'n8d' : function (k, m) { return k / m; }, 'w9q' : function (k, m) { return k / m; }, 'G5V' : function (k, m) { return k === m; }, 'N5r' : function (k, m) { return k !== m; }, 'U4h' : function (k, m) { return k - m; }, 'i2L' : function (k, m) { return k >= m; }, 'A5J' : function (k, m) { return k * m; }, 'F3A' : function (k, m) { return k > m; }, 'o29' : function (k, m) { return k * m; }, 'A19' : function (k, m) { return k | m; }, 'v0r' : function (k, m) { return k > m; }, 'z3v' : function (k, m) { return k - m; }, 'd1Q' : function (k, m) { return k < m; }, 'W9N' : function (k, m) { return k - m; }, 'A5P' : function (k, m) { return k - m; }, 'X9B' : function (k, m) { return k === m; }, 't0r' : function (k, m) { return k - m; }, 'J1I' : function (k, m) { return k !== m; }, 'u99' : function (k, m) { return k * m; }, 'F8d' : function (k, m) { return k !== m; }, 'Q8I' : function (k, m) { return k < m; }, 'u04' : function (k, m) { return k > m; }, 'O96' : function (k, m) { return k === m; }, 'J7e' : function (k, m) { return k < m; }, 'P6R' : function (k, m) { return k - m; }, 'V6G' : function (k, m) { return k - m; }, 'j03' : function (k, m) { return k * m; }, 'K4N' : function (k, m) { return k < m; }, 'k57' : function (k, m) { return k < m; }, 'o2A' : function (k, m) { return k & m; }, 'k84' : function (k, m) { return k > m; }, 'b4I' : function (k, m) { return k !== m; }, 'K1L' : function (k, m) { return k % m; }, 'F6P' : function (k, m) { return k * m; }, 'e7D' : function (k, m) { return k / m; }, 'T6B' : function (k, m) { return k - m; }, 'c1v' : function (k, m) { return k > m; }, 'T8r' : function (k, m) { return k instanceof m; }, 'O97' : function (k, m) { return k < m; }, 'D04' : function (k, m) { return k > m; }, 'w4Q' : function (k, m) { return k === m; }, 'Q3o' : function (k, m) { return k == m; }, 'B7L' : function (k, m) { return k * m; }, 'k0Q' : function (k, m) { return k instanceof m; }, 'Y4q' : function (k, m) { return k <= m; }, 'U9Q' : function (k, m) { return k < m; }, 'a4P' : function (k, m) { return k * m; }, 'U9w' : function (k, m) { return k >= m; }, 'H8q' : function (k, m) { return k | m; }, 'n4b' : function (k, m) { return k > m; }, 's2d' : function (k, m) { return k < m; }, 'd6u' : function (k, m) { return k === m; }, 'V9V' : function (k, m) { return k > m; }, 'w7g' : function (k, m, e, o) { return k / m * e * o; }, 'I63' : function (k, m) { return k * m; }, 'F2J' : function (k, m) { return k - m; }, 'N47' : function (k, m) { return k - m; }, 'd7Q' : function (k, m) { return k < m; }, 'Y4o' : function (k, m) { return k * m; }, 'R8N' : function (k, m, e) { return k * m / e; }, 'm3h' : function (k, m) { return k === m; }, 'v0g' : function (k, m) { return k / m; }, 'L1G' : function (k, m) { return k !== m; }, 'x2o' : function (k, m) { return k >= m; }, 'U4A' : function (k, m) { return k % m; }, 'i7A' : function (k, m) { return k >= m; }, 'b7Q' : function (k, m) { return k < m; }, 'U0V' : function (k, m) { return k / m; }, 'S4e' : function (k, m) { return k > m; }, 'l2Q' : function (k, m) { return k === m; }, 'C3o' : function (k, m) { return k > m; }, 'w76' : function (k, m) { return k - m; }, 'T9l' : function (k, m) { return k > m; }, 'a5R' : function (k, m) { return k > m; }, 'M7d' : function (k, m) { return k - m; }, 'G7h' : function (k, m) { return k === m; }, 'n0Q' : function (k, m) { return k === m; }, 'O2I' : function (k, m) { return k * m; }, 'Y1L' : function (k, m) { return k * m; }, 'j7P' : function (k, m) { return k >= m; }, 'w53' : function (k, m) { return k === m; }, 'Q69' : function (k, m) { return k * m; }, 'T8I' : function (k, m) { return k >= m; }, 'v8b' : function (k, m) { return k * m; }, 'v29' : function (k, m) { return k < m; }, 't3q' : function (k, m) { return k <= m; }, 'z6P' : function (k, m) { return k * m; }, 's9Q' : function (k, m) { return k / m; }, 'k7I' : function (k, m) { return k !== m; }, 'Y8V' : function (k, m) { return k * m; }, 'J1G' : function (k, m, e) { return k / m * e; }, 'U2V' : function (k, m) { return k === m; }, 'z8q' : function (k, m) { return k | m; }, 's6B' : function (k, m) { return k >= m; }, 'A7r' : function (k, m) { return k | m; }, 'L2v' : function (k, m) { return k == m; }, 'D5g' : function (k, m) { return k * m; }, 'G6r' : function (k, m) { return k >= m; }, 'd4d' : function (k, m) { return k > m; }, 'q3V' : function (k, m) { return k > m; }, 'w59' : function (k, m, e) { return k / m * e; }, 'V3d' : function (k, m) { return k / m; }, 'q1J' : function (k, m) { return k - m; }, 'b16' : function (k, m) { return k >= m; }, 'c3r' : function (k, m) { return k === m; }, 'T8P' : function (k, m) { return k > m; }, 'I6N' : function (k, m) { return k * m; }, 'z0l' : function (k, m) { return k > m; }, 'N4o' : function (k, m) { return k === m; }, 'E0d' : function (k, m) { return k * m; }, 'h8N' : function (k, m) { return k >= m; }, 'N3P' : function (k, m, e, o) { return k * m * e * o; }, 'Q0q' : function (k, m) { return k > m; }, 'T9' : function (k, m) { return k > m; }, 'V2G' : function (k, m) { return k === m; }, 'a1P' : function (k, m) { return k > m; }, 'A4P' : function (k, m) { return k - m; }, 'm1P' : function (k, m) { return k !== m; }, 'X1' : function (k, m) { return k * m; }, 'n6b' : function (k, m) { return k >> m; }, 'u0G' : function (k, m) { return k - m; }, 'S3o' : function (k, m) { return k > m; }, 'z7h' : function (k, m) { return k - m; }, 'q26' : function (k, m) { return k >= m; }, 'J6b' : function (k, m) { return k < m; }, 'o1R' : function (k, m) { return k > m; }, 'A2P' : function (k, m) { return k / m; }, 'H6' : function (k, m) { return k * m; }, 'I6L' : function (k, m) { return k - m; }, 'K57' : function (k, m) { return k < m; }, 'X6P' : function (k, m) { return k > m; }, 'j5A' : function (k, m) { return k < m; }, 'x0b' : function (k, m) { return k === m; }, 'D2h' : function (k, m) { return k === m; }, 'n9L' : function (k, m) { return k / m; }, 'Q5u' : function (k, m) { return k / m; }, 'E5Q' : function (k, m) { return k !== m; }, 'G3u' : function (k, m) { return k < m; }, 'U2o' : function (k, m) { return k - m; }, 'x44' : function (k, m) { return k * m; }, 'J8' : function (k, m) { return k | m; }, 'e8e' : function (k, m) { return k >= m; }, 'w6R' : function (k, m) { return k / m; }, 'C6L' : function (k, m) { return k - m; }, 'D7o' : function (k, m) { return k & m; }, 'W0G' : function (k, m) { return k === m; }, 'T03' : function (k, m) { return k - m; }, 'L7L' : function (k, m) { return k === m; }, 'y36' : function (k, m) { return k * m; }, 'U03' : function (k, m) { return k * m; }, 'Y1I' : function (k, m, e) { return k - m + e; }, 'C4e' : function (k, m) { return k !== m; }, 'X1u' : function (k, m) { return k === m; }, 'h8w' : function (k, m) { return k < m; }, 'c9R' : function (k, m) { return k > m; }, 'l7d' : function (k, m) { return k / m; }, 'U4L' : function (k, m) { return k instanceof m; }, 'R0G' : function (k, m) { return k > m; }, 'K09' : function (k, m) { return k * m; }, 'p6L' : function (k, m) { return k % m; }, 'f09' : function (k, m) { return k * m; }, 'H8V' : function (k, m) { return k * m; }, 'S6N' : function (k, m) { return k * m; }, 'T8b' : function (k, m) { return k * m; }, 'C23' : function (k, m) { return k > m; }, 'z1L' : function (k, m) { return k * m; }, 'H9e' : function (k, m) { return k >= m; }, 'R8R' : function (k, m) { return k < m; }, 'T9A' : function (k, m) { return k > m; }, 'W9o' : function (k, m) { return k == m; }, 'y1d' : function (k, m) { return k !== m; }, 'f3' : function (k, m) { return k / m; }, 'T7J' : function (k, m) { return k === m; }, 'j9Q' : function (k, m) { return k * m; }, 'G23' : function (k, m, e, o) { return k * m * e * o; }, 'c4d' : function (k, m) { return k / m; }, 'Y8l' : function (k, m) { return k - m; }, 'P3g' : function (k, m) { return k - m; }, 'A6l' : function (k, m) { return k / m; }, 'w3w' : function (k, m) { return k === m; }, 'o8I' : function (k, m) { return k < m; }, 'w6J' : function (k, m) { return k > m; }, 'E6J' : function (k, m) { return k > m; }, 'o03' : function (k, m) { return k * m; }, 'c37' : function (k, m) { return k < m; }, 'W2L' : function (k, m) { return k instanceof m; }, 'c8r' : function (k, m) { return k >= m; }, 'q2d' : function (k, m) { return k > m; }, 'P5w' : function (k, m) { return k === m; }, 'Y5d' : function (k, m) { return k - m; }, 'B9I' : function (k, m) { return k | m; }, 'G0o' : function (k, m, e) { return k * m / e; }, 'u6q' : function (k, m) { return k > m; }, 'E4R' : function (k, m) { return k * m; }, 'J2D' : function (k, m) { return k < m; }, 'c86' : function (k, m) { return k === m; }, 'm34' : function (k, m) { return k * m; }, 'i5R' : function (k, m) { return k === m; }, 'A5R' : function (k, m) { return k < m; }, 'F3v' : function (k, m) { return k / m; }, 'S0V' : function (k, m) { return k >= m; }, 'i1P' : function (k, m) { return k > m; }, 'n3' : function (k, m) { return k * m; }, 'V7b' : function (k, m) { return k !== m; }, 'g5D' : function (k, m) { return k > m; }, 'N4V' : function (k, m) { return k === m; }, 'x3g' : function (k, m, e) { return k / m * e; }, 'O6q' : function (k, m) { return k | m; }, 'g17' : function (k, m) { return k > m; }, 'I9' : function (k, m) { return k * m; }, 'X5d' : function (k, m) { return k !== m; }, 'i9D' : function (k, m) { return k > m; }, 'E73' : function (k, m) { return k / m; }, 'q07' : function (k, m) { return k > m; }, 'R99' : function (k, m) { return k | m; }, 'G2r' : function (k, m) { return k === m; }, 'v9R' : function (k, m) { return k * m; }, 'f7I' : function (k, m) { return k % m; }, 'd0r' : function (k, m) { return k | m; }, 's5G' : function (k, m) { return k < m; }, 'z2J' : function (k, m) { return k >= m; }, 'f4o' : function (k, m) { return k - m; }, 'T6h' : function (k, m) { return k / m; }, 'z1I' : function (k, m) { return k !== m; }, 'h3R' : function (k, m) { return k - m; }, 'N5N' : function (k, m) { return k & m; }, 'u2h' : function (k, m) { return k !== m; }, 'l2R' : function (k, m) { return k - m; }, 'm0B' : function (k, m) { return k < m; }, 'K1D' : function (k, m) { return k * m; }, 'N3g' : function (k, m, e) { return k / m * e; }, 'a34' : function (k, m) { return k - m; }, 'R5R' : function (k, m) { return k <= m; }, 'B0w' : function (k, m) { return k !== m; }, 'g7A' : function (k, m) { return k - m; }, 'P9D' : function (k, m) { return k === m; }, 'p44' : function (k, m) { return k * m; }, 'W6g' : function (k, m) { return k * m; }, 'D0G' : function (k, m) { return k >= m; }, 'u54' : function (k, m) { return k > m; }, 'S9J' : function (k, m) { return k < m; }, 'U9R' : function (k, m) { return k * m; }, 'G2D' : function (k, m) { return k > m; }, 'v1v' : function (k, m) { return k > m; }, 'v8r' : function (k, m) { return k === m; }, 'o9g' : function (k, m) { return k * m; }, 'q9l' : function (k, m) { return k > m; }, 'T1o' : function (k, m) { return k - m; }, 'I26' : function (k, m) { return k < m; }, 'Q7v' : function (k, m) { return k < m; }, 'T5B' : function (k, m, e) { return k * m / e; }, 'K5b' : function (k, m) { return k > m; }, 'S8I' : function (k, m) { return k >= m; }, 'p36' : function (k, m) { return k % m; }, 'X1L' : function (k, m) { return k * m; }, 'v9u' : function (k, m) { return k === m; }, 'B5q' : function (k, m) { return k === m; }, 'O73' : function (k, m) { return k - m; }, 'B8g' : function (k, m) { return k * m; }, 'k2w' : function (k, m) { return k >= m; }, 'k8G' : function (k, m) { return k !== m; }, 'p3N' : function (k, m) { return k * m; }, 'R6J' : function (k, m) { return k - m; }, 'C3D' : function (k, m) { return k > m; }, 'n0P' : function (k, m) { return k - m; }, 'J9A' : function (k, m) { return k / m; }, 'k2l' : function (k, m) { return k !== m; }, 'z9d' : function (k, m) { return k !== m; }, 'f23' : function (k, m) { return k / m; }, 'L0P' : function (k, m) { return k <= m; }, 's3r' : function (k, m) { return k === m; }, 'U7v' : function (k, m) { return k - m; }, 'x2r' : function (k, m) { return k - m; }, 'K0J' : function (k, m) { return k / m; }, 'l4o' : function (k, m) { return k * m; }, 'U0A' : function (k, m) { return k > m; }, 'n1o' : function (k, m) { return k * m; }, 'o6Q' : function (k, m, e) { return k - m - e; }, 'Q1e' : function (k, m) { return k & m; }, 'j1b' : function (k, m, e) { return k * m * e; }, 'M6I' : function (k, m) { return k < m; }, 'x1q' : function (k, m) { return k > m; }, 'N3v' : function (k, m) { return k - m; }, 'X3R' : function (k, m) { return k - m; }, 'W5J' : function (k, m) { return k - m; }, 'S4h' : function (k, m) { return k === m; }, 't03' : function (k, m) { return k * m; }, 'O7o' : function (k, m) { return k === m; }, 'G1L' : function (k, m) { return k instanceof m; }, 'f0w' : function (k, m) { return k === m; }, 'x7l' : function (k, m) { return k > m; }, 'h3Q' : function (k, m) { return k > m; }, 'F5b' : function (k, m) { return k - m; }, 'd9v' : function (k, m) { return k - m; }, 'k1e' : function (k, m) { return k - m; }, 'P5B' : function (k, m) { return k === m; }, 'E96' : function (k, m) { return k < m; }, 'p7g' : function (k, m) { return k <= m; }, 'V4J' : function (k, m) { return k > m; }, 'a4R' : function (k, m) { return k / m; }, 'W54' : function (k, m) { return k > m; }, 'K6d' : function (k, m) { return k / m; }, 'A99' : function (k, m) { return k === m; }, 'o6L' : function (k, m) { return k === m; }, 'E2e' : function (k, m) { return k << m; }, 'B9d' : function (k, m) { return k !== m; }, 'J6A' : function (k, m) { return k > m; }, 'R5J' : function (k, m) { return k / m; }, 'T9R' : function (k, m) { return k * m; }, 'P6q' : function (k, m) { return k | m; }, 'Q1d' : function (k, m, e) { return k / m * e; }, 'x7J' : function (k, m) { return k % m; }, 'N9B' : function (k, m) { return k === m; }, 'r2u' : function (k, m) { return k >= m; }, 'Y9u' : function (k, m) { return k / m; }, 'Q0A' : function (k, m) { return k > m; }, 'e4u' : function (k, m) { return k / m; }, 'I1q' : function (k, m) { return k > m; }, 'Y3' : function (k, m) { return k / m; }, 'B4o' : function (k, m) { return k == m; }, 'd1l' : function (k, m) { return k < m; }, 'Q6B' : function (k, m) { return k - m; }, 'w6V' : function (k, m) { return k * m; }, 'i1A' : function (k, m) { return k > m; }, 'l2q' : function (k, m) { return k > m; }, 'f4r' : function (k, m) { return k - m; }, 'u0e' : function (k, m) { return k !== m; }, 'k2r' : function (k, m) { return k === m; }, 'a04' : function (k, m) { return k > m; }, 'K3u' : function (k, m) { return k - m; }, 'c36' : function (k, m) { return k > m; }, 'f7B' : function (k, m) { return k * m; }, 'C0q' : function (k, m) { return k < m; }, 'T6L' : function (k, m) { return k === m; }, 'p8e' : function (k, m) { return k >= m; }, 'C87' : function (k, m) { return k > m; }, 'r3h' : function (k, m) { return k < m; }, 'c4G' : function (k, m) { return k === m; }, 'F7d' : function (k, m) { return k / m; }, 'c1e' : function (k, m) { return k | m; }, 'D4g' : function (k, m) { return k / m; }, 'v3b' : function (k, m) { return k >= m; }, 'A73' : function (k, m) { return k - m; }, 'w0d' : function (k, m) { return k * m; }, 'R9' : function (k, m) { return k * m; }, 'E0u' : function (k, m) { return k > m; }, 'A4v' : function (k, m) { return k < m; }, 'P3e' : function (k, m) { return k < m; }, 'g8L' : function (k, m) { return k !== m; }, 'S44' : function (k, m) { return k * m; }, 'w9o' : function (k, m) { return k == m; }, 'p5L' : function (k, m) { return k !== m; }, 'Y7h' : function (k, m) { return k - m; }, 'G7d' : function (k, m) { return k >= m; }, 'I4h' : function (k, m) { return k === m; }, 'S1g' : function (k, m) { return k > m; }, 'o4w' : function (k, m) { return k === m; }, 'j9g' : function (k, m) { return k * m; }, 'G4o' : function (k, m) { return k === m; }, 'z0Q' : function (k, m) { return k > m; }, 'U3r' : function (k, m) { return k !== m; }, 's5I' : function (k, m) { return k < m; }, 'q4I' : function (k, m) { return k * m; }, 'g7N' : function (k, m) { return k === m; }, 'R89' : function (k, m) { return k * m; }, 'p3o' : function (k, m) { return k > m; }, 'o07' : function (k, m) { return k > m; }, 'N1L' : function (k, m) { return k * m; }, 'Y3J' : function (k, m) { return k < m; }, 'X3l' : function (k, m) { return k * m; }, 'A14' : function (k, m) { return k > m; }, 'a2e' : function (k, m) { return k & m; }, 'f8d' : function (k, m) { return k !== m; }, 'd4L' : function (k, m) { return k / m; }, 'C8D' : function (k, m) { return k == m; }, 'U1w' : function (k, m) { return k === m; }, 'M9G' : function (k, m) { return k === m; }, 'B4b' : function (k, m) { return k > m; }, 'E8e' : function (k, m) { return k > m; }, 'E2G' : function (k, m) { return k / m; }, 'S3r' : function (k, m) { return k * m; }, 'p5G' : function (k, m) { return k == m; }, 'K1o' : function (k, m) { return k * m; }, 'E93' : function (k, m) { return k / m; }, 'H7I' : function (k, m) { return k / m; }, 'l2D' : function (k, m) { return k === m; }, 'F84' : function (k, m) { return k * m; }, 'j0A' : function (k, m) { return k === m; }, 'p29' : function (k, m) { return k === m; }, 'a0J' : function (k, m) { return k - m; }, 'h6e' : function (k, m) { return k & m; }, 'Q9' : function (k, m) { return k * m; }, 'u8N' : function (k, m, e) { return k * m / e; }, 'H6A' : function (k, m) { return k > m; }, 's5' : function (k, m) { return k * m; }, 'R64' : function (k, m) { return k / m; }, 'o1l' : function (k, m) { return k < m; }, 'u6R' : function (k, m) { return k - m; }, 'B9h' : function (k, m) { return k instanceof m; }, 'Y43' : function (k, m) { return k / m; }, 'r0u' : function (k, m) { return k === m; }, 'V0u' : function (k, m) { return k > m; }, 's8e' : function (k, m) { return k % m; }, 'f84' : function (k, m) { return k === m; }, 'e1G' : function (k, m, e) { return k / m * e; }, 'p0q' : function (k, m) { return k - m; }, 'V5r' : function (k, m) { return k > m; }, 'o86' : function (k, m) { return k === m; }, 'z57' : function (k, m) { return k < m; }, 'Q4h' : function (k, m) { return k instanceof m; }, 'f7e' : function (k, m) { return k >= m; }, 'n8v' : function (k, m) { return k * m; }, 'n49' : function (k, m) { return k * m; }, 'i17' : function (k, m) { return k < m; }, 'K3A' : function (k, m) { return k - m; }, 'z2v' : function (k, m) { return k == m; }, 's9g' : function (k, m) { return k * m; }, 'd9J' : function (k, m) { return k > m; }, 'H1I' : function (k, m) { return k !== m; }, 'e1A' : function (k, m) { return k < m; }, 'm3I' : function (k, m) { return k === m; }, 'g5P' : function (k, m) { return k * m; }, 'B0l' : function (k, m) { return k === m; }, 'P73' : function (k, m) { return k - m; }, 'e7b' : function (k, m) { return k > m; }, 'v6D' : function (k, m) { return k - m; }, 'G2R' : function (k, m) { return k < m; }, 's1e' : function (k, m) { return k & m; }, 'P9r' : function (k, m) { return k !== m; }, 'F1h' : function (k, m) { return k / m; }, 'p16' : function (k, m) { return k === m; }, 'w0J' : function (k, m) { return k !== m; }, 'q0V' : function (k, m) { return k > m; }, 't69' : function (k, m) { return k - m; }, 'G7B' : function (k, m) { return k < m; }, 'K0Q' : function (k, m) { return k > m; }, 'v3D' : function (k, m) { return k / m; }, 'S1l' : function (k, m) { return k | m; }, 'q0b' : function (k, m) { return k > m; }, 'j0q' : function (k, m) { return k - m; }, 'V77' : function (k, m) { return k > m; }, 'N8G' : function (k, m) { return k === m; }, 'X2Q' : function (k, m) { return k === m; }, 'O2N' : function (k, m) { return k - m; }, 'q7g' : function (k, m) { return k === m; }, 'V5l' : function (k, m) { return k * m; }, 'p1q' : function (k, m) { return k < m; }, 'A6q' : function (k, m) { return k < m; }, 'J0l' : function (k, m) { return k > m; }, 'I7P' : function (k, m) { return k === m; }, 'j33' : function (k, m) { return k / m; }, 'g5' : function (k, m) { return k * m; }, 'e0B' : function (k, m) { return k - m; }, 't4L' : function (k, m) { return k >= m; }, 'F1D' : function (k, m) { return k * m; }, 'k1I' : function (k, m) { return k > m; }, 'D99' : function (k, m) { return k * m; }, 'w5B' : function (k, m) { return k === m; }, 'B6Q' : function (k, m) { return k * m; }, 'v37' : function (k, m) { return k >= m; }, 'T33' : function (k, m) { return k < m; }, 'X4V' : function (k, m) { return k * m; }, 'x8b' : function (k, m) { return k != m; }, 'm04' : function (k, m) { return k > m; }, 'Q3b' : function (k, m) { return k > m; }, 'Q1g' : function (k, m) { return k - m; }, 'I6o' : function (k, m) { return k !== m; }, 'd1q' : function (k, m) { return k | m; }, 'T1w' : function (k, m) { return k !== m; }, 'K0l' : function (k, m) { return k < m; }, 'n6N' : function (k, m) { return k > m; }, 'B83' : function (k, m, e) { return k * m * e; }, 'g9D' : function (k, m) { return k !== m; }, 'W8h' : function (k, m) { return k !== m; }, 'p9Q' : function (k, m) { return k / m; }, 'V83' : function (k, m) { return k / m; }, 'T9g' : function (k, m) { return k * m; }, 'R9o' : function (k, m) { return k == m; }, 'J7L' : function (k, m) { return k > m; }, 'D4J' : function (k, m) { return k > m; }, 'N2v' : function (k, m) { return k == m; }, 'e0L' : function (k, m) { return k instanceof m; }, 'd0V' : function (k, m) { return k * m; }, 'P0u' : function (k, m) { return k > m; }, 'N24' : function (k, m) { return k * m; }, 'b4A' : function (k, m, e) { return k / m / e; }, 'b1w' : function (k, m) { return k < m; }, 'A3I' : function (k, m) { return k * m; }, 'd26' : function (k, m, e, o) { return k | m | e | o; }, 'c9Q' : function (k, m) { return k / m; }, 'I69' : function (k, m) { return k - m; }, 'u7N' : function (k, m) { return k === m; }, 'b8A' : function (k, m) { return k > m; }, 'O7q' : function (k, m) { return k < m; }, 'J3J' : function (k, m) { return k > m; }, 'M4V' : function (k, m) { return k > m; }, 'Z6g' : function (k, m) { return k * m; }, 'k1L' : function (k, m) { return k * m; }, 'u1b' : function (k, m, e) { return k * m * e; }, 'w3I' : function (k, m) { return k * m; }, 'H8' : function (k, m) { return k | m; }, 'E6v' : function (k, m) { return k - m; }, 'J1b' : function (k, m, e) { return k * m * e; }, 'g0d' : function (k, m) { return k * m; }, 'n0R' : function (k, m) { return k - m; }, 'd7J' : function (k, m) { return k * m; }, 'N0P' : function (k, m) { return k === m; }, 'r1V' : function (k, m) { return k * m; }, 'q3N' : function (k, m) { return k instanceof m; }, 'Y8w' : function (k, m) { return k > m; }, 'D7V' : function (k, m) { return k === m; }, 'I8P' : function (k, m) { return k > m; }, 'g4R' : function (k, m) { return k !== m; }, 'j3r' : function (k, m) { return k - m; }, 'w49' : function (k, m, e) { return k * m * e; }, 'k1G' : function (k, m) { return k === m; }, 'k4r' : function (k, m) { return k === m; }, 'o1Q' : function (k, m) { return k === m; }, 'W5P' : function (k, m) { return k - m; }, 'd9P' : function (k, m) { return k * m; }, 'D8R' : function (k, m) { return k - m; }, 'n9' : function (k, m) { return k * m; }, 'm6q' : function (k, m) { return k < m; }, 'N3Q' : function (k, m) { return k === m; }, 'Q37' : function (k, m) { return k < m; }, 'f59' : function (k, m) { return k * m; }, 'P0L' : function (k, m) { return k !== m; }, 'L2g' : function (k, m) { return k * m; }, 'K8l' : function (k, m) { return k - m; }, 'I5A' : function (k, m) { return k * m; }, 'c14' : function (k, m) { return k !== m; }, 's8A' : function (k, m) { return k < m; }, 'T2q' : function (k, m) { return k !== m; }, 'U5d' : function (k, m) { return k / m; }, 'U5h' : function (k, m) { return k !== m; }, 'h7I' : function (k, m) { return k / m; }, 's93' : function (k, m) { return k * m; }, 'e2u' : function (k, m) { return k === m; }, 'j7l' : function (k, m) { return k > m; }, 'z8G' : function (k, m) { return k >= m; }, 'n9h' : function (k, m) { return k > m; }, 'V8R' : function (k, m) { return k < m; }, 'x03' : function (k, m) { return k * m; }, 'd2A' : function (k, m) { return k / m; }, 'l1I' : function (k, m) { return k > m; }, 'D2G' : function (k, m) { return k === m; }, 'R5D' : function (k, m) { return k > m; }, 'N4B' : function (k, m) { return k === m; }, 'C03' : function (k, m) { return k * m; }, 'x2P' : function (k, m) { return k * m; }, 'S5L' : function (k, m) { return k === m; }, 'E5P' : function (k, m) { return k > m; }, 'G2w' : function (k, m) { return k == m; }, 'M9I' : function (k, m) { return k - m; }, 'P4u' : function (k, m) { return k - m; }, 'Q79' : function (k, m) { return k === m; }, 'y3P' : function (k, m) { return k - m; }, 'W6w' : function (k, m) { return k < m; }, 'l67' : function (k, m) { return k >= m; }, 'q3D' : function (k, m) { return k / m; }, 'g3d' : function (k, m) { return k === m; }, 'u6V' : function (k, m) { return k - m; }, 'Z64' : function (k, m) { return k / m; }, 'J4B' : function (k, m) { return k * m; }, 'W4R' : function (k, m) { return k !== m; }, 'L3l' : function (k, m) { return k * m; }, 'O6N' : function (k, m) { return k === m; }, 'c7g' : function (k, m) { return k / m; }, 'C13' : function (k, m) { return k | m; }, 'b8N' : function (k, m, e) { return k * m / e; }, 's14' : function (k, m) { return k !== m; }, 'Q6L' : function (k, m) { return k * m; }, 'v8I' : function (k, m) { return k < m; }, 'e54' : function (k, m) { return k > m; }, 'a9N' : function (k, m) { return k - m; }, 'u4P' : function (k, m) { return k * m; }, 'T5A' : function (k, m) { return k / m; }, 's1G' : function (k, m) { return k * m; }, 'O0I' : function (k, m) { return k !== m; }, 'e17' : function (k, m) { return k > m; }, 'J4q' : function (k, m) { return k !== m; }, 'k9h' : function (k, m) { return k < m; }, 'a89' : function (k, m) { return k | m; }, 's8b' : function (k, m) { return k - m; }, 'q9J' : function (k, m) { return k > m; }, 'Q1G' : function (k, m) { return k === m; }, 'W9P' : function (k, m) { return k * m; }, 'm0G' : function (k, m) { return k !== m; }, 'b3V' : function (k, m) { return k > m; }, 'Y7G' : function (k, m) { return k === m; }, 'c5h' : function (k, m) { return k * m; }, 'o6u' : function (k, m) { return k === m; }, 'd06' : function (k, m) { return k !== m; }, 'm7N' : function (k, m) { return k > m; }, 'A9P' : function (k, m) { return k * m; }, 'g1o' : function (k, m, e, o) { return k * m * e / o; }, 'N2w' : function (k, m) { return k == m; }, 'K3v' : function (k, m) { return k - m; }, 'I5d' : function (k, m) { return k - m; }, 'Y7d' : function (k, m) { return k * m; }, 'a7V' : function (k, m) { return k - m; }, 'e6J' : function (k, m) { return k > m; }, 'm8L' : function (k, m) { return k * m; }, 'D9o' : function (k, m) { return k == m; }, 'B2' : function (k, m) { return k <= m; }, 'U39' : function (k, m) { return k < m; }, 'G4D' : function (k, m) { return k > m; }, 'R6q' : function (k, m) { return k <= m; }, 'y6Q' : function (k, m) { return k !== m; }, 'q0q' : function (k, m) { return k - m; }, 'C7Q' : function (k, m) { return k < m; }, 'Q1J' : function (k, m) { return k / m; }, 'q2g' : function (k, m, e) { return k * m * e; }, 'i4g' : function (k, m) { return k * m; }, 'S6o' : function (k, m) { return k - m; }, 'T4h' : function (k, m) { return k - m; }, 'O2u' : function (k, m) { return k === m; }, 'R5P' : function (k, m) { return k >= m; }, 'w3h' : function (k, m) { return k - m; }, 'p2o' : function (k, m) { return k === m; }, 'K2v' : function (k, m) { return k == m; }, 'K8v' : function (k, m) { return k * m; }, 'p8A' : function (k, m) { return k < m; }, 'b63' : function (k, m) { return k / m; }, 'U1b' : function (k, m) { return k * m; }, 'P7b' : function (k, m) { return k > m; }, 'm4g' : function (k, m) { return k * m; }, 'V04' : function (k, m) { return k > m; }, 'J3Q' : function (k, m) { return k < m; }, 'Z89' : function (k, m) { return k === m; }, 'b7v' : function (k, m) { return k < m; }, 'a8e' : function (k, m) { return k === m; }, 'g6q' : function (k, m) { return k % m; }, 'X2q' : function (k, m) { return k === m; }, 'i6g' : function (k, m) { return k * m; }, 'v63' : function (k, m) { return k >> m; }, 'A54' : function (k, m) { return k !== m; }, 'B3B' : function (k, m) { return k === m; }, 'p5' : function (k, m) { return k * m; }, 'x1l' : function (k, m) { return k * m; }, 'I6u' : function (k, m) { return k in m; }, 's4G' : function (k, m) { return k > m; }, 'k3l' : function (k, m) { return k * m; }, 'H7u' : function (k, m) { return k > m; }, 'L3v' : function (k, m) { return k * m; }, 'I3o' : function (k, m) { return k < m; }, 'k8R' : function (k, m) { return k === m; }, 'D3e' : function (k, m) { return k < m; }, 'i3L' : function (k, m) { return k === m; }, 'x94' : function (k, m) { return k * m; }, 'h09' : function (k, m) { return k * m; }, 't8P' : function (k, m) { return k / m; }, 'd5G' : function (k, m) { return k / m; }, 'P0G' : function (k, m) { return k - m; }, 'X7w' : function (k, m) { return k - m; }, 'M5d' : function (k, m, e) { return k * m / e; }, 'E5e' : function (k, m) { return k >> m; }, 'n6d' : function (k, m) { return k / m; }, 'e4Q' : function (k, m) { return k - m; }, 'v6o' : function (k, m) { return k - m; }, 'y5L' : function (k, m) { return k === m; }, 'G0v' : function (k, m) { return k !== m; }, 'b5A' : function (k, m) { return k < m; }, 'w1V' : function (k, m) { return k * m; }, 'r8h' : function (k, m) { return k !== m; }, 'i76' : function (k, m) { return k !== m; }, 'h4N' : function (k, m) { return k !== m; }, 'p94' : function (k, m) { return k * m; }, 'Y8q' : function (k, m) { return k === m; }, 'N7w' : function (k, m) { return k / m; }, 'Y0Q' : function (k, m) { return k <= m; }, 'S1q' : function (k, m) { return k < m; }, 'l5q' : function (k, m) { return k >= m; }, 'U9u' : function (k, m) { return k > m; }, 'W6R' : function (k, m) { return k - m; }, 'Y6Q' : function (k, m) { return k !== m; }, 'f1D' : function (k, m) { return k > m; }, 'F8N' : function (k, m) { return k / m; }, 'q1v' : function (k, m) { return k in m; }, 'k2g' : function (k, m) { return k * m; }, 'f3w' : function (k, m) { return k instanceof m; }, 'w2I' : function (k, m) { return k === m; }, 'f2R' : function (k, m) { return k < m; }, 'M8N' : function (k, m, e) { return k * m / e; }, 'm2d' : function (k, m, e) { return k * m * e; }, 'i2G' : function (k, m) { return k == m; }, 'm76' : function (k, m) { return k !== m; }, 'Q14' : function (k, m) { return k === m; }, 'O9V' : function (k, m) { return k >= m; }, 's8P' : function (k, m) { return k > m; }, 'T6u' : function (k, m) { return k in m; }, 'B8w' : function (k, m) { return k < m; }, 'I9A' : function (k, m) { return k <= m; }, 'v16' : function (k, m) { return k * m; }, 'k6A' : function (k, m) { return k > m; }, 'P5d' : function (k, m, e) { return k * m * e; }, 'B23' : function (k, m) { return k / m; }, 'M5q' : function (k, m) { return k * m; }, 'A7V' : function (k, m) { return k / m; }, 'N2b' : function (k, m, e, o) { return k / m * e * o; }, 'J94' : function (k, m, e) { return k - m + e; }, 'E5l' : function (k, m) { return k !== m; }, 'N1u' : function (k, m) { return k === m; }, 'V1b' : function (k, m) { return k / m; }, 'l1h' : function (k, m) { return k * m; }, 'F0R' : function (k, m) { return k - m; }, 'l43' : function (k, m) { return k - m; }, 'W5w' : function (k, m) { return k === m; }, 'L2R' : function (k, m) { return k > m; }, 'j0D' : function (k, m) { return k * m; }, 'j26' : function (k, m) { return k * m; }, 'P8Q' : function (k, m) { return k !== m; }, 'x69' : function (k, m) { return k * m; }, 'o0D' : function (k, m) { return k * m; }, 'r1A' : function (k, m) { return k > m; }, 'C5u' : function (k, m) { return k > m; }, 'T3D' : function (k, m) { return k >= m; }, 'q1G' : function (k, m) { return k < m; }, 'z9L' : function (k, m) { return k - m; }, 'H6b' : function (k, m) { return k - m; }, 'f7d' : function (k, m) { return k * m; }, 'J9L' : function (k, m) { return k - m; }, 'N8w' : function (k, m) { return k !== m; }, 'U7w' : function (k, m, e) { return k * m / e; }, 'm1r' : function (k, m) { return k - m; }, 'c03' : function (k, m) { return k - m; }, 'g2u' : function (k, m) { return k > m; }, 'T37' : function (k, m) { return k instanceof m; }, 'q16' : function (k, m) { return k >= m; }, 'o1B' : function (k, m) { return k - m; }, 'j9v' : function (k, m) { return k - m; }, 'V4u' : function (k, m) { return k - m; }, 'X66' : function (k, m) { return k instanceof m; }, 'Q1l' : function (k, m) { return k * m; }, 'm7g' : function (k, m) { return k << m; }, 'h67' : function (k, m) { return k >= m; }, 'o6o' : function (k, m) { return k - m; }, 'P99' : function (k, m) { return k * m; }, 'B1h' : function (k, m) { return k * m; }, 'S1D' : function (k, m) { return k > m; }, 'C1D' : function (k, m, e) { return k * m * e; }, 'A5Q' : function (k, m) { return k * m; }, 'W1V' : function (k, m) { return k - m; }, 'G0g' : function (k, m, e) { return k / m * e; }, 'w4g' : function (k, m) { return k * m; }, 'z56' : function (k, m) { return k !== m; }, 'n4V' : function (k, m) { return k > m; }, 'j2r' : function (k, m) { return k !== m; }, 's39' : function (k, m) { return k / m; }, 'R0e' : function (k, m) { return k >= m; }, 'f9A' : function (k, m) { return k > m; }, 'I5e' : function (k, m, e, o) { return k | m | e | o; }, 'z0R' : function (k, m) { return k !== m; }, 'c69' : function (k, m) { return k * m; }, 'B84' : function (k, m) { return k - m; }, 'b0o' : function (k, m) { return k & m; }, 'c87' : function (k, m) { return k - m; }, 'B4N' : function (k, m) { return k !== m; }, 'v0A' : function (k, m) { return k > m; }, 'j63' : function (k, m) { return k / m; }, 'O8R' : function (k, m) { return k - m; }, 'V76' : function (k, m) { return k * m; }, 'N7d' : function (k, m) { return k - m; }, 'z4b' : function (k, m) { return k | m; }, 'j07' : function (k, m) { return k * m; }, 'R83' : function (k, m) { return k / m; }, 'P1r' : function (k, m) { return k === m; }, 'U33' : function (k, m) { return k / m; }, 'm8B' : function (k, m) { return k > m; }, 'x8r' : function (k, m) { return k >= m; }, 'P4Q' : function (k, m) { return k !== m; }, 'q4G' : function (k, m) { return k >= m; }, 't9J' : function (k, m) { return k instanceof m; }, 'n1h' : function (k, m) { return k !== m; }, 'B5b' : function (k, m) { return k > m; }, 'R7r' : function (k, m) { return k !== m; }, 'B8G' : function (k, m) { return k < m; }, 'o2V' : function (k, m) { return k === m; }, 'W9D' : function (k, m) { return k === m; }, 'T3N' : function (k, m) { return k === m; }, 'u7q' : function (k, m) { return k > m; }, 'G8N' : function (k, m) { return k << m; }, 'r0I' : function (k, m) { return k / m; }, 'U27' : function (k, m) { return k === m; }, 's1l' : function (k, m) { return k / m; }, 'G24' : function (k, m) { return k * m; }, 'a8h' : function (k, m) { return k !== m; }, 'G9I' : function (k, m) { return k !== m; }, 'I1v' : function (k, m) { return k > m; }, 'M83' : function (k, m) { return k << m; }, 'L9e' : function (k, m) { return k >= m; }, 'R2N' : function (k, m) { return k / m; }, 'H56' : function (k, m) { return k > m; }, 'T16' : function (k, m) { return k >= m; }, 'H3J' : function (k, m) { return k < m; }, 'y5A' : function (k, m) { return k - m; }, 'F9h' : function (k, m) { return k !== m; }, 'l8V' : function (k, m) { return k - m; }, 'L2D' : function (k, m) { return k > m; }, 'F57' : function (k, m) { return k - m; }, 'd2r' : function (k, m) { return k >= m; }, 'J5q' : function (k, m) { return k !== m; }, 'w2G' : function (k, m) { return k === m; }, 'F9B' : function (k, m) { return k * m; }, 'j3N' : function (k, m) { return k - m; }, 'h5r' : function (k, m) { return k === m; }, 'W0B' : function (k, m) { return k < m; }, 'c8e' : function (k, m) { return k / m; }, 'j7Q' : function (k, m) { return k > m; }, 'a4g' : function (k, m) { return k > m; }, 'V8D' : function (k, m) { return k * m; }, 'A93' : function (k, m) { return k * m; }, 'l3l' : function (k, m) { return k * m; }, 'Y9B' : function (k, m) { return k > m; }, 'L7w' : function (k, m) { return k >= m; }, 'z46' : function (k, m) { return k % m; }, 'o87' : function (k, m) { return k - m; }, 'i5Q' : function (k, m) { return k / m; }, 'V5P' : function (k, m) { return k - m; }, 'G3g' : function (k, m) { return k * m; }, 'd79' : function (k, m) { return k > m; }, 'o13' : function (k, m) { return k * m; }, 'v8A' : function (k, m) { return k >= m; }, 'Y3R' : function (k, m) { return k - m; }, 'H1N' : function (k, m) { return k === m; }, 'O2e' : function (k, m) { return k > m; }, 'Z0d' : function (k, m) { return k * m; }, 'y9' : function (k, m) { return k > m; }, 'Y2q' : function (k, m) { return k | m; }, 'A6R' : function (k, m) { return k / m; }, 'y1Q' : function (k, m) { return k - m; }, 'K3B' : function (k, m) { return k - m; }, 'v7v' : function (k, m) { return k > m; }, 'f0R' : function (k, m) { return k - m; }, 'p4L' : function (k, m) { return k >= m; }, 'e9q' : function (k, m) { return k * m; }, 'F3J' : function (k, m) { return k > m; }, 'o23' : function (k, m) { return k * m; }, 'y8Q' : function (k, m, e) { return k * m / e; }, 'P8' : function (k, m) { return k * m; }, 'w5P' : function (k, m) { return k - m; }, 'M6d' : function (k, m) { return k === m; }, 'R8D' : function (k, m) { return k - m; }, 'g8h' : function (k, m) { return k !== m; }, 'm9o' : function (k, m) { return k == m; }, 'a7q' : function (k, m) { return k == m; }, 'J79' : function (k, m) { return k !== m; }, 'Q4w' : function (k, m) { return k < m; }, 'x5' : function (k, m) { return k * m; }, 'k8J' : function (k, m) { return k !== m; }, 'B8q' : function (k, m) { return k > m; }, 'k2J' : function (k, m) { return k >= m; }, 'M8l' : function (k, m) { return k === m; }, 'z3l' : function (k, m) { return k * m; }, 'z7u' : function (k, m) { return k > m; }, 'n8G' : function (k, m) { return k !== m; }, 'Y2Q' : function (k, m) { return k !== m; }, 'k83' : function (k, m) { return k - m; }, 'j7J' : function (k, m) { return k / m; }, 'i2e' : function (k, m) { return k << m; }, 'U79' : function (k, m) { return k !== m; }, 'j24' : function (k, m) { return k - m; }, 'I8b' : function (k, m) { return k * m; }, 's1q' : function (k, m) { return k % m; }, 'X1b' : function (k, m, e) { return k * m * e; }, 'O1V' : function (k, m) { return k * m; }, 'Y2v' : function (k, m) { return k >= m; }, 'O8D' : function (k, m) { return k - m; }, 'W2I' : function (k, m) { return k === m; }, 'j2P' : function (k, m) { return k instanceof m; }, 'r6w' : function (k, m) { return k < m; }, 'h0P' : function (k, m) { return k >= m; }, 'y0r' : function (k, m) { return k > m; }, 'O0L' : function (k, m) { return k | m; }, 's5B' : function (k, m) { return k < m; }, 'k2R' : function (k, m) { return k < m; }, 'N1I' : function (k, m) { return k === m; }, 'R0I' : function (k, m) { return k !== m; }, 'R6v' : function (k, m) { return k * m; }, 'y87' : function (k, m) { return k > m; }, 'T1D' : function (k, m) { return k === m; }, 'Z9o' : function (k, m) { return k == m; }, 'e76' : function (k, m) { return k !== m; }, 'q5I' : function (k, m) { return k !== m; }, 't9u' : function (k, m) { return k === m; }, 'W0d' : function (k, m) { return k - m; }, 'a96' : function (k, m) { return k > m; }, 'i6R' : function (k, m) { return k - m; }, 'N5q' : function (k, m) { return k > m; }, 'w8B' : function (k, m) { return k - m; }, 'R7N' : function (k, m) { return k / m; }, 'd3N' : function (k, m) { return k - m; }, 'b7P' : function (k, m) { return k - m; }, 'H3v' : function (k, m) { return k - m; }, 'h6b' : function (k, m) { return k > m; }, 'B7B' : function (k, m) { return k === m; }, 'M4r' : function (k, m) { return k === m; }, 't5d' : function (k, m) { return k - m; }, 'K0R' : function (k, m) { return k * m; }, 'J84' : function (k, m) { return k >= m; }, 'O5P' : function (k, m) { return k * m; }, 'j8r' : function (k, m) { return k >= m; }, 'm6J' : function (k, m) { return k % m; }, 'M43' : function (k, m) { return k * m; }, 'O3e' : function (k, m) { return k >= m; }, 'a0G' : function (k, m) { return k > m; }, 'n7h' : function (k, m) { return k < m; }, 'R4Q' : function (k, m) { return k !== m; }, 'j5u' : function (k, m) { return k === m; }, 'Q5I' : function (k, m) { return k < m; }, 'p2d' : function (k, m) { return k === m; }, 'b7g' : function (k, m) { return k | m; }, 'C86' : function (k, m) { return k === m; }, 'b9u' : function (k, m) { return k === m; }, 'f1o' : function (k, m) { return k * m; }, 'a9b' : function (k, m) { return k > m; }, 'p4I' : function (k, m) { return k * m; }, 'W4v' : function (k, m) { return k * m; }, 'C06' : function (k, m) { return k === m; }, 'I06' : function (k, m) { return k === m; }, 't7Q' : function (k, m) { return k < m; }, 'H8G' : function (k, m) { return k !== m; }, 'i3h' : function (k, m) { return k > m; }, 'x93' : function (k, m) { return k === m; }, 'T1v' : function (k, m) { return k <= m; }, 'B4q' : function (k, m) { return k < m; }, 'l9L' : function (k, m) { return k / m; }, 'O5D' : function (k, m) { return k in m; }, 'H2w' : function (k, m) { return k > m; }, 'C6D' : function (k, m) { return k > m; }, 'W96' : function (k, m) { return k - m; }, 'S5d' : function (k, m) { return k * m; }, 'G1h' : function (k, m) { return k < m; }, 'S6u' : function (k, m) { return k === m; }, 'v87' : function (k, m) { return k - m; }, 'Q0b' : function (k, m) { return k === m; }, 'p5A' : function (k, m) { return k < m; }, 'b9v' : function (k, m) { return k !== m; }, 'V1P' : function (k, m) { return k * m; }, 'b29' : function (k, m) { return k * m; }, 't3V' : function (k, m) { return k !== m; }, 'y49' : function (k, m) { return k !== m; }, 'p0o' : function (k, m) { return k >>> m; }, 'X1I' : function (k, m) { return k < m; }, 'p1B' : function (k, m) { return k * m; }, 's1d' : function (k, m) { return k < m; }, 'A4Q' : function (k, m) { return k === m; }, 'L0R' : function (k, m) { return k !== m; }, 't39' : function (k, m) { return k / m; }, 'Y09' : function (k, m) { return k * m; }, 'k6b' : function (k, m) { return k * m; }, 'a4J' : function (k, m) { return k > m; }, 'K67' : function (k, m) { return k % m; }, 'z1G' : function (k, m) { return k === m; }, 'k9d' : function (k, m) { return k / m; }, 'K74' : function (k, m) { return k * m; }, 'I4I' : function (k, m) { return k | m; }, 'j2d' : function (k, m) { return k > m; }, 'j37' : function (k, m) { return k === m; }, 'I03' : function (k, m) { return k > m; }, 'L5r' : function (k, m) { return k - m; }, 's69' : function (k, m) { return k | m; }, 'H7G' : function (k, m) { return k > m; }, 'm6e' : function (k, m, e, o) { return k | m | e | o; }, 'G7w' : function (k, m) { return k * m; }, 'm9r' : function (k, m) { return k - m; }, 'v27' : function (k, m) { return k - m; }, 'e4J' : function (k, m) { return k < m; }, 'w7q' : function (k, m) { return k != m; }, 'R9q' : function (k, m) { return k * m; }, 'g5R' : function (k, m) { return k == m; }, 'Z7b' : function (k, m) { return k >= m; }, 'Y9G' : function (k, m) { return k < m; }, 'I87' : function (k, m) { return k === m; }, 'F8g' : function (k, m) { return k !== m; }, 'x1g' : function (k, m) { return k * m; }, 'A8B' : function (k, m) { return k < m; }, 'k6P' : function (k, m) { return k * m; }, 'E6R' : function (k, m) { return k - m; }, 'u6J' : function (k, m) { return k == m; }, 'y3N' : function (k, m) { return k === m; }, 'i6w' : function (k, m) { return k === m; }, 'O9q' : function (k, m) { return k >= m; }, 'R4B' : function (k, m) { return k * m; }, 'g1A' : function (k, m) { return k < m; }, 'l3J' : function (k, m) { return k < m; }, 'R5B' : function (k, m, e) { return k * m / e; }, 'i8L' : function (k, m) { return k !== m; }, 'g9r' : function (k, m) { return k === m; }, 't86' : function (k, m) { return k <= m; }, 'k67' : function (k, m) { return k < m; }, 'm1e' : function (k, m) { return k - m; }, 'c2r' : function (k, m) { return k === m; }, 'K7d' : function (k, m) { return k * m; }, 'N8q' : function (k, m) { return k | m; }, 'e64' : function (k, m) { return k * m; }, 'A3L' : function (k, m) { return k * m; }, 'Z04' : function (k, m) { return k > m; }, 'R3I' : function (k, m) { return k < m; }, 'c9g' : function (k, m) { return k * m; }, 'T7P' : function (k, m) { return k < m; }, 'x5u' : function (k, m) { return k === m; }, 'B6b' : function (k, m) { return k > m; }, 'd7v' : function (k, m) { return k * m; }, 'u8' : function (k, m) { return k / m; }, 'h57' : function (k, m) { return k < m; }, 'N57' : function (k, m) { return k < m; }, 'T1q' : function (k, m) { return k / m; }, 'W3w' : function (k, m) { return k < m; }, 'Q94' : function (k, m) { return k > m; }, 'N7G' : function (k, m) { return k >= m; }, 'Q6e' : function (k, m) { return k - m; }, 'N1G' : function (k, m) { return k > m; }, 'E4P' : function (k, m) { return k / m; }, 'U3D' : function (k, m) { return k - m; }, 'Z5P' : function (k, m) { return k * m; }, 'r3e' : function (k, m) { return k > m; }, 'y1v' : function (k, m) { return k === m; }, 'i34' : function (k, m) { return k - m; }, 'u17' : function (k, m) { return k != m; }, 'd24' : function (k, m) { return k - m; }, 'N8N' : function (k, m) { return k === m; }, 'E2h' : function (k, m) { return k instanceof m; }, 'm4u' : function (k, m) { return k / m; }, 'Q7R' : function (k, m) { return k * m; }, 's8B' : function (k, m) { return k === m; }, 'V7D' : function (k, m) { return k > m; }, 'i3e' : function (k, m) { return k < m; }, 'k8g' : function (k, m) { return k * m; }, 'l9h' : function (k, m) { return k instanceof m; }, 'e97' : function (k, m) { return k > m; }, 'y5I' : function (k, m) { return k / m; }, 's36' : function (k, m) { return k - m; }, 'S1Q' : function (k, m) { return k === m; }, 'N4D' : function (k, m) { return k > m; }, 'Y1B' : function (k, m) { return k - m; }, 'f74' : function (k, m) { return k * m; }, 'O6' : function (k, m) { return k * m; }, 'k2v' : function (k, m) { return k !== m; }, 'Q3V' : function (k, m) { return k - m; }, 'K6A' : function (k, m) { return k > m; }, 'o2P' : function (k, m) { return k >= m; }, 'h7G' : function (k, m) { return k !== m; }, 'v3q' : function (k, m) { return k <= m; }, 'z0w' : function (k, m) { return k === m; }, 'T0N' : function (k, m) { return k < m; }, 'W5v' : function (k, m) { return k in m; }, 'm2P' : function (k, m) { return k === m; }, 'K0v' : function (k, m) { return k / m; }, 'x3D' : function (k, m) { return k / m; }, 'u7r' : function (k, m) { return k !== m; }, 'o7J' : function (k, m) { return k > m; }, 'x2B' : function (k, m) { return k * m; }, 'P3L' : function (k, m) { return k === m; }, 'G0R' : function (k, m) { return k * m; }, 'z47' : function (k, m) { return k > m; }, 'h0Q' : function (k, m) { return k == m; }, 'A6J' : function (k, m) { return k - m; }, 'K2D' : function (k, m) { return k - m; }, 'f8g' : function (k, m) { return k * m; }, 'o3D' : function (k, m) { return k / m; }, 'C2o' : function (k, m) { return k > m; }, 'm8h' : function (k, m) { return k !== m; }, 'y3q' : function (k, m) { return k >= m; }, 'C2b' : function (k, m) { return k * m; }, 'B2w' : function (k, m) { return k !== m; }, 'm8e' : function (k, m) { return k > m; }, 'E3w' : function (k, m) { return k * m; }, 'Y9h' : function (k, m) { return k === m; }, 'c2P' : function (k, m) { return k * m; }, 'l3' : function (k, m) { return k instanceof m; }, 'g3e' : function (k, m) { return k > m; }, 'c2d' : function (k, m) { return k !== m; }, 'h2B' : function (k, m, e, o) { return k * m * e * o; }, 'O4R' : function (k, m) { return k * m; }, 'Z54' : function (k, m) { return k > m; }, 'I7R' : function (k, m) { return k - m; }, 'L5o' : function (k, m) { return k == m; }, 'X47' : function (k, m) { return k < m; }, 'G2Q' : function (k, m) { return k !== m; }, 'i5w' : function (k, m) { return k === m; }, 'u7o' : function (k, m) { return k & m; }, 'e0h' : function (k, m) { return k <= m; }, 'q4h' : function (k, m) { return k === m; }, 'U9' : function (k, m) { return k - m; }, 'k0g' : function (k, m) { return k - m; }, 'x5A' : function (k, m) { return k != m; }, 'g9N' : function (k, m) { return k === m; }, 'X63' : function (k, m, e) { return k / m / e; }, 'c5u' : function (k, m) { return k === m; }, 'W4l' : function (k, m) { return k * m; }, 'S6d' : function (k, m, e) { return k * m / e; }, 'W2h' : function (k, m) { return k === m; }, 'u5P' : function (k, m) { return k !== m; }, 'F9e' : function (k, m) { return k / m; }, 'H3R' : function (k, m) { return k <= m; }, 'y8A' : function (k, m) { return k === m; }, 'e7o' : function (k, m) { return k / m; }, 'U07' : function (k, m) { return k !== m; }, 'D77' : function (k, m) { return k < m; }, 'V6R' : function (k, m) { return k - m; }, 'z5r' : function (k, m) { return k !== m; }, 'c6e' : function (k, m) { return k !== m; }, 'k23' : function (k, m) { return k === m; }, 'V6l' : function (k, m) { return k > m; }, 'C8Q' : function (k, m) { return k <= m; }, 'V9o' : function (k, m) { return k == m; }, 'o5u' : function (k, m) { return k === m; }, 'L74' : function (k, m) { return k - m; }, 'm7r' : function (k, m) { return k === m; }, 'M3B' : function (k, m) { return k * m; }, 'k9I' : function (k, m) { return k < m; }, 'o0V' : function (k, m) { return k > m; }, 'J2J' : function (k, m) { return k < m; }, 'G83' : function (k, m) { return k - m; }, 'D5R' : function (k, m) { return k - m; }, 'v6L' : function (k, m) { return k < m; }, 'l7B' : function (k, m, e) { return k / m * e; }, 'M47' : function (k, m) { return k >= m; }, 'p0g' : function (k, m) { return k === m; }, 'q2r' : function (k, m) { return k === m; }, 'f8l' : function (k, m) { return k > m; }, 'P54' : function (k, m) { return k > m; }, 'o9w' : function (k, m) { return k < m; }, 'l6I' : function (k, m) { return k === m; }, 'H2D' : function (k, m) { return k / m; }, 'd7l' : function (k, m) { return k > m; }, 'Y1u' : function (k, m) { return k in m; }, 'E5R' : function (k, m) { return k == m; }, 'O7V' : function (k, m) { return k > m; }, 'w2h' : function (k, m) { return k instanceof m; }, 'I1o' : function (k, m) { return k - m; }, 'E5J' : function (k, m) { return k - m; }, 'T5I' : function (k, m) { return k >= m; }, 'A4g' : function (k, m) { return k * m; }, 'u2N' : function (k, m) { return k > m; }, 'N8d' : function (k, m) { return k < m; }, 'T07' : function (k, m) { return k > m; }, 'y06' : function (k, m) { return k === m; }, 'B8d' : function (k, m) { return k !== m; }, 'g64' : function (k, m) { return k - m; }, 'M4b' : function (k, m) { return k - m; }, 'k74' : function (k, m) { return k === m; }, 'C6B' : function (k, m) { return k < m; }, 's7P' : function (k, m) { return k * m; }, 'L8V' : function (k, m) { return k === m; }, 'w0B' : function (k, m) { return k - m; }, 'M3J' : function (k, m) { return k > m; }, 'H0R' : function (k, m) { return k === m; }, 'V73' : function (k, m) { return k - m; }, 'X1D' : function (k, m) { return k - m; }, 'S5h' : function (k, m) { return k !== m; }, 'p1g' : function (k, m) { return k * m; }, 'Y59' : function (k, m) { return k in m; }, 'l2v' : function (k, m) { return k / m; }, 'P6G' : function (k, m) { return k === m; }, 'v9v' : function (k, m) { return k < m; }, 'o6h' : function (k, m) { return k < m; }, 'T26' : function (k, m) { return k === m; }, 'i5e' : function (k, m) { return k & m; }, 'c93' : function (k, m) { return k - m; }, 'X4D' : function (k, m) { return k / m; }, 'Q9w' : function (k, m) { return k === m; }, 'h7d' : function (k, m) { return k * m; }, 'h4o' : function (k, m) { return k > m; }, 'Z53' : function (k, m) { return k < m; }, 'O53' : function (k, m) { return k < m; }, 'Y5b' : function (k, m) { return k > m; }, 'G43' : function (k, m) { return k - m; }, 'X9I' : function (k, m) { return k | m; }, 'c0o' : function (k, m) { return k & m; }, 'z8N' : function (k, m) { return k == m; }, 'L67' : function (k, m) { return k * m; }, 'M1L' : function (k, m) { return k * m; }, 'p1Q' : function (k, m) { return k | m; }, 'I37' : function (k, m) { return k / m; }, 'j6L' : function (k, m) { return k > m; }, 'd1g' : function (k, m) { return k > m; }, 'P77' : function (k, m) { return k > m; }, 'v3V' : function (k, m) { return k !== m; }, 'M5N' : function (k, m) { return k >>> m; }, 'G0P' : function (k, m) { return k === m; }, 'z8R' : function (k, m) { return k / m; }, 'O6V' : function (k, m) { return k % m; }, 'O5r' : function (k, m) { return k !== m; }, 'I8I' : function (k, m) { return k > m; }, 'n4q' : function (k, m) { return k * m; }, 'd1d' : function (k, m) { return k > m; }, 'p3D' : function (k, m) { return k / m; }, 'a97' : function (k, m) { return k / m; }, 'a73' : function (k, m) { return k - m; }, 's4e' : function (k, m) { return k > m; }, 'l74' : function (k, m) { return k - m; }, 'U9v' : function (k, m) { return k >= m; }, 'F5q' : function (k, m) { return k * m; }, 'K2' : function (k, m) { return k <= m; }, 'S6B' : function (k, m) { return k * m; }, 'd0g' : function (k, m) { return k / m; }, 'L7u' : function (k, m) { return k > m; }, 't6D' : function (k, m) { return k < m; }, 't06' : function (k, m) { return k > m; }, 'R1r' : function (k, m) { return k === m; }, 'm2N' : function (k, m) { return k === m; }, 'O9N' : function (k, m) { return k === m; }, 'M4q' : function (k, m) { return k * m; }, 'T5u' : function (k, m) { return k !== m; }, 'Q93' : function (k, m) { return k - m; }, 'v5h' : function (k, m) { return k === m; }, 'p0r' : function (k, m) { return k === m; }, 'j1R' : function (k, m) { return k << m; }, 'B46' : function (k, m) { return k - m; }, 'X46' : function (k, m) { return k - m; }, 'A1V' : function (k, m) { return k === m; }, 'g73' : function (k, m) { return k - m; }, 't0g' : function (k, m) { return k - m; }, 'w7A' : function (k, m) { return k - m; }, 'O7b' : function (k, m) { return k > m; }, 'z2R' : function (k, m) { return k > m; }, 'q3b' : function (k, m) { return k / m; }, 'S7J' : function (k, m) { return k * m; }, 'F3u' : function (k, m) { return k >= m; }, 'A34' : function (k, m) { return k * m; }, 'i8Q' : function (k, m) { return k > m; }, 's9J' : function (k, m) { return k - m; }, 'C5A' : function (k, m) { return k * m; }, 'M9L' : function (k, m) { return k / m; }, 'L8d' : function (k, m) { return k !== m; }, 'J8w' : function (k, m) { return k === m; }, 't4w' : function (k, m) { return k === m; }, 'd2d' : function (k, m) { return k > m; }, 'L8q' : function (k, m) { return k / m; }, 'B8N' : function (k, m, e) { return k * m / e; }, 'J8q' : function (k, m) { return k > m; }, 'H6e' : function (k, m) { return k & m; }, 'b9Q' : function (k, m) { return k / m; }, 'l6o' : function (k, m) { return k > m; }, 'b6L' : function (k, m) { return k !== m; }, 'H3u' : function (k, m) { return k - m; }, 'T8Q' : function (k, m) { return k === m; }, 'U3A' : function (k, m) { return k * m; }, 'w6w' : function (k, m) { return k === m; }, 't3A' : function (k, m) { return k > m; }, 'p3P' : function (k, m) { return k - m; }, 'T8D' : function (k, m) { return k <= m; }, 'P0B' : function (k, m) { return k === m; }, 'Q4I' : function (k, m) { return k * m; }, 'T7R' : function (k, m) { return k * m; }, 'W1d' : function (k, m) { return k / m; }, 'e0I' : function (k, m) { return k / m; }, 'P76' : function (k, m) { return k !== m; }, 'w6v' : function (k, m) { return k > m; }, 't2o' : function (k, m) { return k <= m; }, 'e5D' : function (k, m) { return k > m; }, 'Z1A' : function (k, m) { return k instanceof m; }, 'T3r' : function (k, m) { return k !== m; }, 'B74' : function (k, m) { return k - m; }, 'l59' : function (k, m) { return k in m; }, 'f1' : function (k, m) { return k * m; }, 'g5B' : function (k, m, e) { return k * m / e; }, 'f2v' : function (k, m) { return k - m; }, 'S9' : function (k, m) { return k * m; }, 't6N' : function (k, m) { return k > m; }, 'E4g' : function (k, m) { return k * m; }, 'F7B' : function (k, m) { return k * m; }, 'M9d' : function (k, m) { return k === m; }, 'E2g' : function (k, m, e) { return k * m * e; }, 'B0Q' : function (k, m) { return k < m; }, 'c1w' : function (k, m) { return k === m; }, 'Z3d' : function (k, m) { return k > m; }, 'L8w' : function (k, m) { return k < m; }, 'O3I' : function (k, m) { return k < m; }, 'F2Q' : function (k, m) { return k / m; }, 'D5w' : function (k, m) { return k === m; }, 'g4J' : function (k, m) { return k >= m; }, 'J7I' : function (k, m) { return k / m; }, 'W2' : function (k, m) { return k * m; }, 'r7N' : function (k, m) { return k === m; }, 'u2I' : function (k, m) { return k !== m; }, 'T0A' : function (k, m) { return k % m; }, 'G1' : function (k, m) { return k < m; }, 'H0w' : function (k, m) { return k > m; }, 's1J' : function (k, m) { return k / m; }, 'f6Q' : function (k, m) { return k / m; }, 'V0L' : function (k, m) { return k | m; }, 'v6h' : function (k, m) { return k === m; }, 'K4o' : function (k, m) { return k * m; }, 'i9r' : function (k, m) { return k !== m; }, 'o4G' : function (k, m) { return k > m; }, 'z2w' : function (k, m) { return k === m; }, 'm6R' : function (k, m) { return k - m; }, 'C5I' : function (k, m) { return k < m; }, 'W77' : function (k, m) { return k > m; }, 'H1h' : function (k, m) { return k === m; }, 'b6B' : function (k, m) { return k - m; }, 'r4g' : function (k, m) { return k * m; }, 'n4r' : function (k, m) { return k === m; }, 'Y8d' : function (k, m) { return k !== m; }, 'L3Q' : function (k, m) { return k === m; }, 'X57' : function (k, m) { return k * m; }, 'g3I' : function (k, m) { return k === m; }, 'e93' : function (k, m, e) { return k / m / e; }, 'D0h' : function (k, m) { return k / m; }, 'q9R' : function (k, m) { return k < m; }, 'O4J' : function (k, m) { return k === m; }, 'b3D' : function (k, m) { return k / m; }, 'L9I' : function (k, m) { return k !== m; }, 'S3V' : function (k, m) { return k * m; }, 'X8J' : function (k, m) { return k == m; }, 'o2b' : function (k, m) { return k / m; }, 's2P' : function (k, m) { return k !== m; }, 'l8G' : function (k, m) { return k === m; }, 's3o' : function (k, m) { return k !== m; }, 'I3A' : function (k, m) { return k * m; }, 'U8I' : function (k, m) { return k < m; }, 'y0N' : function (k, m) { return k === m; }, 'S4G' : function (k, m) { return k >= m; }, 'f3J' : function (k, m) { return k > m; }, 't8I' : function (k, m) { return k >= m; }, 'w64' : function (k, m) { return k !== m; }, 'I3r' : function (k, m) { return k === m; }, 'l9I' : function (k, m) { return k | m; }, 'U7l' : function (k, m) { return k / m; }, 'f6d' : function (k, m) { return k / m; }, 'N8v' : function (k, m) { return k - m; }, 'K3R' : function (k, m) { return k * m; }, 'z4q' : function (k, m) { return k < m; }, 'l4b' : function (k, m) { return k > m; }, 'g4u' : function (k, m) { return k / m; }, 'q1l' : function (k, m) { return k * m; }, 'w2N' : function (k, m) { return k > m; }, 'u96' : function (k, m) { return k > m; }, 'W7V' : function (k, m) { return k / m; }, 'I0N' : function (k, m) { return k * m; }, 'H8v' : function (k, m) { return k - m; }, 'v06' : function (k, m) { return k < m; }, 'U1o' : function (k, m) { return k !== m; }, 'b7l' : function (k, m) { return k <= m; }, 'X0Q' : function (k, m) { return k === m; }, 'T2d' : function (k, m, e, o) { return k * m * e / o; }, 'u3G' : function (k, m) { return k === m; }, 'E8h' : function (k, m) { return k !== m; }, 'o7l' : function (k, m) { return k - m; }, 'K5N' : function (k, m, e, o) { return k | m | e | o; }, 'r8' : function (k, m) { return k | m; }, 'L5V' : function (k, m) { return k === m; }, 'B8v' : function (k, m) { return k - m; }, 'C69' : function (k, m) { return k - m; }, 'w5l' : function (k, m) { return k <= m; }, 'S3A' : function (k, m) { return k * m; }, 'F5V' : function (k, m) { return k === m; }, 'Z9N' : function (k, m) { return k === m; }, 'i4Q' : function (k, m) { return k === m; }, 'n7B' : function (k, m) { return k / m; }, 'r8L' : function (k, m) { return k !== m; }, 'q24' : function (k, m) { return k - m; }, 'V8Q' : function (k, m) { return k === m; }, 'P7r' : function (k, m) { return k < m; }, 'P2L' : function (k, m) { return k * m; }, 'S1B' : function (k, m) { return k > m; }, 'T2o' : function (k, m) { return k !== m; }, 'd1B' : function (k, m, e) { return k * m / e; }, 'w17' : function (k, m) { return k - m; }, 'u73' : function (k, m) { return k - m; }, 'f49' : function (k, m) { return k * m; }, 'A0I' : function (k, m) { return k * m; }, 'T4G' : function (k, m) { return k >= m; }, 'a76' : function (k, m) { return k > m; }, 'v0o' : function (k, m) { return k > m; }, 'u0B' : function (k, m) { return k === m; }, 'W3h' : function (k, m) { return k !== m; }, 'l6r' : function (k, m) { return k !== m; }, 'z9h' : function (k, m) { return k === m; }, 'X6Q' : function (k, m) { return k === m; }, 'I9v' : function (k, m) { return k < m; }, 'z3R' : function (k, m) { return k / m; }, 'd5L' : function (k, m) { return k !== m; }, 'N8J' : function (k, m) { return k < m; }, 't3g' : function (k, m) { return k - m; }, 'm6w' : function (k, m) { return k < m; }, 'i9q' : function (k, m) { return k / m; }, 'k4V' : function (k, m) { return k === m; }, 'n9G' : function (k, m) { return k !== m; }, 'y26' : function (k, m) { return k < m; }, 'X3' : function (k, m) { return k > m; }, 'R4R' : function (k, m) { return k - m; }, 'c3N' : function (k, m) { return k instanceof m; }, 'E4v' : function (k, m) { return k * m; }, 'x1Q' : function (k, m) { return k === m; }, 'd5N' : function (k, m) { return k / m; }, 'h9e' : function (k, m) { return k >= m; }, 'b87' : function (k, m) { return k / m; }, 'l6D' : function (k, m) { return k >= m; }, 'U1Q' : function (k, m) { return k !== m; }, 'n09' : function (k, m) { return k * m; }, 'L7d' : function (k, m) { return k / m; }, 'L8J' : function (k, m) { return k > m; }, 'n79' : function (k, m, e) { return k * m * e; }, 'w5e' : function (k, m) { return k >> m; }, 'E5w' : function (k, m) { return k in m; }, 'L1L' : function (k, m) { return k instanceof m; }, 'f4q' : function (k, m) { return k > m; }, 'i5v' : function (k, m) { return k < m; }, 'I1J' : function (k, m) { return k - m; }, 'O6R' : function (k, m) { return k - m; }, 'l5V' : function (k, m) { return k === m; }, 'm4v' : function (k, m) { return k * m; }, 'x87' : function (k, m) { return k > m; }, 's5u' : function (k, m) { return k / m; }, 't2A' : function (k, m) { return k - m; }, 'Z2L' : function (k, m) { return k * m; }, 'a6q' : function (k, m) { return k > m; }, 'M9h' : function (k, m) { return k * m; }, 'n3l' : function (k, m) { return k * m; }, 'p69' : function (k, m) { return k | m; }, 'X6b' : function (k, m) { return k % m; }, 'Z0u' : function (k, m) { return k > m; }, 'l1' : function (k, m) { return k * m; }, 'a0d' : function (k, m) { return k - m; }, 'p8I' : function (k, m) { return k === m; }, 'F8Q' : function (k, m, e) { return k * m / e; }, 'e7q' : function (k, m) { return k > m; }, 'h2Q' : function (k, m) { return k / m; }, 'G7G' : function (k, m) { return k >= m; }, 'G2l' : function (k, m) { return k !== m; }, 'i89' : function (k, m) { return k === m; }, 'i19' : function (k, m) { return k | m; }, 'o39' : function (k, m) { return k < m; }, 'V1r' : function (k, m) { return k >= m; }, 'd2P' : function (k, m) { return k * m; }, 'd3P' : function (k, m) { return k === m; }, 'e5w' : function (k, m) { return k * m; }, 'X8q' : function (k, m) { return k % m; }, 'G4b' : function (k, m) { return k % m; }, 'U9A' : function (k, m) { return k > m; }, 'j94' : function (k, m) { return k * m; }, 'A7A' : function (k, m) { return k > m; }, 'y23' : function (k, m) { return k - m; }, 'w34' : function (k, m) { return k - m; }, 'j6e' : function (k, m) { return k % m; }, 'G6b' : function (k, m) { return k * m; }, 'Z1V' : function (k, m) { return k < m; }, 'd8P' : function (k, m) { return k > m; }, 'v3r' : function (k, m) { return k === m; }, 'y6h' : function (k, m) { return k > m; }, 'x1w' : function (k, m) { return k > m; }, 'J2R' : function (k, m) { return k < m; }, 'i0B' : function (k, m) { return k !== m; }, 'K84' : function (k, m) { return k === m; }, 'Y6D' : function (k, m) { return k * m; }, 'j2V' : function (k, m) { return k > m; }, 'V7N' : function (k, m) { return k < m; }, 'x06' : function (k, m) { return k > m; }, 'd9g' : function (k, m) { return k * m; }, 'd2V' : function (k, m) { return k === m; }, 'q4L' : function (k, m) { return k < m; }, 'b8I' : function (k, m) { return k !== m; }, 'I9g' : function (k, m) { return k * m; }, 'B57' : function (k, m) { return k > m; }, 'N9d' : function (k, m) { return k < m; }, 'C44' : function (k, m) { return k * m; }, 's0b' : function (k, m) { return k !== m; }, 'g7q' : function (k, m) { return k > m; }, 'f6I' : function (k, m) { return k !== m; }, 'N2l' : function (k, m) { return k / m; }, 'u0I' : function (k, m) { return k | m; }, 'Y6A' : function (k, m) { return k >= m; }, 'b3b' : function (k, m) { return k > m; }, 'd8o' : function (k, m) { return k < m; }, 'n1' : function (k, m) { return k * m; }, 'w4v' : function (k, m) { return k * m; }, 'u7u' : function (k, m, e) { return k - m + e; }, 'U6D' : function (k, m) { return k - m; }, 'j29' : function (k, m) { return k | m; }, 'x3b' : function (k, m) { return k | m; }, 'p9g' : function (k, m) { return k * m; }, 'F1u' : function (k, m) { return k > m; }, 'b5G' : function (k, m) { return k > m; }, 'd0N' : function (k, m) { return k == m; }, 'p1v' : function (k, m) { return k in m; }, 'C4A' : function (k, m) { return k > m; }, 'X3A' : function (k, m) { return k - m; }, 'L2Q' : function (k, m) { return k < m; }, 'i0G' : function (k, m) { return k === m; }, 'k6' : function (k, m) { return k * m; }, 'X7e' : function (k, m) { return k !== m; }, 'g4g' : function (k, m) { return k * m; }, 'd14' : function (k, m) { return k !== m; }, 'A64' : function (k, m) { return k !== m; }, 'm7A' : function (k, m) { return k > m; }, 'd8e' : function (k, m) { return k % m; }, 'g3L' : function (k, m) { return k * m; }, 's07' : function (k, m) { return k > m; }, 'R6V' : function (k, m) { return k !== m; }, 'd69' : function (k, m) { return k === m; }, 'c8P' : function (k, m) { return k > m; }, 'Y1h' : function (k, m) { return k < m; }, 'd5I' : function (k, m) { return k < m; }, 'V4v' : function (k, m) { return k == m; }, 'p8r' : function (k, m) { return k - m; }, 't63' : function (k, m) { return k & m; }, 'S27' : function (k, m) { return k / m; }, 'v9l' : function (k, m) { return k > m; }, 'b8b' : function (k, m) { return k % m; }, 'X2w' : function (k, m) { return k === m; }, 'V9D' : function (k, m) { return k * m; }, 'z94' : function (k, m) { return k / m; }, 't9g' : function (k, m) { return k * m; }, 'w1d' : function (k, m) { return k * m; }, 'l56' : function (k, m) { return k > m; }, 'k5D' : function (k, m) { return k > m; }, 'v1w' : function (k, m) { return k === m; }, 'n0w' : function (k, m) { return k === m; }, 'w2P' : function (k, m) { return k * m; }, 'u0u' : function (k, m) { return k / m; }, 'a49' : function (k, m) { return k - m; }, 'C2d' : function (k, m) { return k < m; }, 'Y6r' : function (k, m) { return k !== m; }, 'g7D' : function (k, m) { return k / m; }, 's4d' : function (k, m) { return k * m; }, 'S4w' : function (k, m) { return k >= m; }, 'v0N' : function (k, m) { return k < m; }, 'y7J' : function (k, m) { return k === m; }, 'C3b' : function (k, m) { return k > m; }, 'B2q' : function (k, m) { return k === m; }, 'R1P' : function (k, m) { return k * m; }, 'H8l' : function (k, m) { return k - m; }, 'G4N' : function (k, m) { return k - m; }, 'E6g' : function (k, m) { return k > m; }, 'p4w' : function (k, m) { return k === m; }, 'X2R' : function (k, m) { return k - m; }, 'T87' : function (k, m) { return k >= m; }, 'N09' : function (k, m) { return k * m; }, 'f8w' : function (k, m) { return k < m; }, 'X0w' : function (k, m) { return k > m; }, 'l2l' : function (k, m) { return k * m; }, 'Y49' : function (k, m) { return k > m; }, 'w0u' : function (k, m) { return k > m; }, 'V6w' : function (k, m) { return k < m; }, 'e5e' : function (k, m) { return k & m; }, 'a1V' : function (k, m) { return k < m; }, 'I2V' : function (k, m) { return k < m; }, 'Q1R' : function (k, m) { return k * m; }, 'Y9e' : function (k, m) { return k - m; }, 'g99' : function (k, m) { return k * m; }, 'Y8v' : function (k, m) { return k % m; }, 'o2' : function (k, m) { return k <= m; }, 'P6l' : function (k, m) { return k / m; }, 'h5o' : function (k, m) { return k > m; }, 'W6G' : function (k, m) { return k - m; }, 'J74' : function (k, m) { return k > m; }, 'E2I' : function (k, m) { return k !== m; }, 's1v' : function (k, m) { return k !== m; }, 'K23' : function (k, m) { return k / m; }, 'y5G' : function (k, m) { return k === m; }, 'Q44' : function (k, m) { return k * m; }, 'e2e' : function (k, m) { return k - m; }, 'H1L' : function (k, m) { return k * m; }, 'x5G' : function (k, m) { return k == m; }, 'M3A' : function (k, m) { return k * m; }, 'n8R' : function (k, m, e) { return k - m - e; }, 'i7r' : function (k, m) { return k in m; }, 'h46' : function (k, m) { return k < m; }, 'S2V' : function (k, m) { return k === m; }, 'W4P' : function (k, m) { return k === m; }, 'A8L' : function (k, m) { return k / m; }, 'e5' : function (k, m) { return k - m; }, 'a2N' : function (k, m) { return k / m; }, 'h7g' : function (k, m) { return k << m; }, 'v2b' : function (k, m) { return k * m; }, 'x26' : function (k, m) { return k >= m; }, 'q6u' : function (k, m) { return k == m; }, 'z5D' : function (k, m) { return k === m; }, 'p1w' : function (k, m) { return k > m; }, 'b9l' : function (k, m) { return k > m; }, 'm0d' : function (k, m) { return k * m; }, 'U1l' : function (k, m) { return k * m; }, 'j44' : function (k, m) { return k * m; }, 'X2' : function (k, m) { return k <= m; }, 'i6l' : function (k, m) { return k - m; }, 'y9v' : function (k, m) { return k === m; }, 'f2b' : function (k, m) { return k * m; }, 'X7A' : function (k, m) { return k > m; }, 'g5v' : function (k, m) { return k in m; }, 'b8e' : function (k, m) { return k - m; }, 'k0v' : function (k, m) { return k instanceof m; }, 'u9b' : function (k, m) { return k <= m; }, 'h5V' : function (k, m) { return k === m; }, 'd1e' : function (k, m) { return k & m; }, 'o1e' : function (k, m) { return k > m; }, 'N7h' : function (k, m) { return k !== m; }, 'x0g' : function (k, m) { return k - m; }, 'c0D' : function (k, m) { return k * m; }, 'B2Q' : function (k, m) { return k === m; }, 'r5l' : function (k, m) { return k === m; }, 'm9P' : function (k, m) { return k * m; }, 'd0b' : function (k, m) { return k !== m; }, 'F46' : function (k, m) { return k < m; }, 'A4J' : function (k, m) { return k >= m; }, 'x5I' : function (k, m) { return k !== m; }, 'H2l' : function (k, m) { return k / m; }, 'I3N' : function (k, m) { return k - m; }, 'z3Q' : function (k, m) { return k < m; }, 'j1d' : function (k, m) { return k !== m; }, 'K1h' : function (k, m) { return k < m; }, 't7l' : function (k, m) { return k > m; }, 'n2v' : function (k, m) { return k - m; }, 'b0A' : function (k, m) { return k < m; }, 'O99' : function (k, m) { return k | m; }, 'j8P' : function (k, m) { return k > m; }, 'L8G' : function (k, m) { return k >= m; }, 'T4A' : function (k, m) { return k % m; }, 'r5Q' : function (k, m) { return k * m; }, 'R6G' : function (k, m) { return k * m; }, 'p33' : function (k, m) { return k * m; }, 'K9B' : function (k, m) { return k - m; }, 'a0B' : function (k, m) { return k < m; }, 'w77' : function (k, m) { return k === m; }, 'Y3w' : function (k, m) { return k instanceof m; }, 'c5' : function (k, m) { return k * m; }, 'h74' : function (k, m) { return k * m; }, 'k8V' : function (k, m) { return k - m; }, 'a9q' : function (k, m) { return k === m; }, 'I29' : function (k, m) { return k / m; }, 'H1u' : function (k, m) { return k - m; }, 'k4q' : function (k, m) { return k > m; }, 'g7V' : function (k, m) { return k instanceof m; }, 'q9u' : function (k, m) { return k === m; }, 'Z19' : function (k, m) { return k - m; }, 'p4G' : function (k, m) { return k < m; }, 'r9D' : function (k, m) { return k !== m; }, 'r9A' : function (k, m, e, o) { return k * m * e * o; }, 'Z4R' : function (k, m) { return k - m; }, 'v4w' : function (k, m) { return k === m; }, 'm8u' : function (k, m) { return k === m; }, 'v4G' : function (k, m) { return k / m; }, 'f3u' : function (k, m) { return k >= m; }, 'N9G' : function (k, m) { return k == m; }, 'I3B' : function (k, m) { return k - m; }, 'M5b' : function (k, m) { return k / m; }, 'N43' : function (k, m) { return k - m; }, 'q03' : function (k, m) { return k - m; }, 'U8A' : function (k, m) { return k - m; }, 'y4h' : function (k, m) { return k === m; }, 'I7l' : function (k, m) { return k < m; }, 'h0l' : function (k, m) { return k > m; }, 'm4R' : function (k, m) { return k * m; }, 'g96' : function (k, m) { return k < m; }, 'm2h' : function (k, m) { return k > m; }, 'X7L' : function (k, m) { return k / m; }, 'Z96' : function (k, m) { return k === m; }, 'd2o' : function (k, m) { return k > m; }, 'o2o' : function (k, m) { return k >= m; }, 'b1q' : function (k, m) { return k | m; }, 'O4g' : function (k, m) { return k - m; }, 'E8L' : function (k, m) { return k / m; }, 'A5w' : function (k, m) { return k === m; }, 's5e' : function (k, m) { return k & m; }, 'q5G' : function (k, m) { return k == m; }, 'R6l' : function (k, m) { return k * m; }, 'D8D' : function (k, m) { return k <= m; }, 'u3h' : function (k, m) { return k > m; }, 'r53' : function (k, m) { return k - m; }, 't8A' : function (k, m) { return k === m; }, 'L9G' : function (k, m) { return k === m; }, 't36' : function (k, m) { return k % m; }, 'L8R' : function (k, m) { return k - m; }, 'D9D' : function (k, m) { return k / m; }, 'X3u' : function (k, m) { return k instanceof m; }, 'o0q' : function (k, m) { return k < m; }, 'm1A' : function (k, m) { return k == m; }, 'L2w' : function (k, m) { return k == m; }, 'U7J' : function (k, m) { return k !== m; }, 'D54' : function (k, m) { return k < m; }, 'X2l' : function (k, m) { return k === m; }, 'A6g' : function (k, m) { return k * m; }, 'J6r' : function (k, m) { return k >= m; }, 'Q8b' : function (k, m) { return k - m; }, 'H7e' : function (k, m) { return k >= m; }, 'k94' : function (k, m) { return k !== m; }, 'W49' : function (k, m) { return k - m; }, 'Q8A' : function (k, m) { return k === m; }, 'C0A' : function (k, m) { return k === m; }, 'm3w' : function (k, m) { return k === m; }, 'f47' : function (k, m) { return k / m; }, 'K4r' : function (k, m) { return k !== m; }, 'V6N' : function (k, m) { return k << m; }, 'F4b' : function (k, m) { return k >= m; }, 'O7N' : function (k, m) { return k === m; }, 'C7P' : function (k, m) { return k / m; }, 'f9d' : function (k, m) { return k - m; }, 'T5L' : function (k, m) { return k !== m; }, 'b69' : function (k, m) { return k | m; }, 'f13' : function (k, m) { return k * m; }, 'S7Q' : function (k, m) { return k > m; }, 'g4l' : function (k, m) { return k / m; }, 'Y5q' : function (k, m) { return k | m; }, 'H7g' : function (k, m) { return k << m; }, 'V1V' : function (k, m) { return k >= m; }, 'X84' : function (k, m) { return k !== m; }, 'c9J' : function (k, m) { return k - m; }, 'y3b' : function (k, m) { return k < m; }, 'M13' : function (k, m) { return k * m; }, 'e89' : function (k, m) { return k * m; }, 'z09' : function (k, m) { return k * m; }, 'G3l' : function (k, m) { return k * m; }, 'F7g' : function (k, m, e, o) { return k / m * e * o; }, 'M8G' : function (k, m) { return k < m; }, 'k59' : function (k, m) { return k / m; }, 'c4I' : function (k, m) { return k !== m; }, 'A9r' : function (k, m) { return k >= m; }, 'B1I' : function (k, m) { return k > m; }, 'T44' : function (k, m) { return k * m; }, 'j8e' : function (k, m) { return k / m; }, 'V6J' : function (k, m) { return k !== m; }, 'k5N' : function (k, m) { return k >>> m; }, 'M5o' : function (k, m) { return k !== m; }, 'f6N' : function (k, m, e) { return k * m * e; }, 'r76' : function (k, m) { return k - m; }, 'w5v' : function (k, m) { return k > m; }, 'I5g' : function (k, m, e) { return k * m * e; }, 't4G' : function (k, m) { return k / m; }, 'w7N' : function (k, m) { return k > m; }, 'D3d' : function (k, m) { return k / m; }, 'F7I' : function (k, m) { return k - m; }, 'Z6w' : function (k, m) { return k < m; }, 'v2o' : function (k, m) { return k < m; }, 'S3D' : function (k, m) { return k instanceof m; }, 'e77' : function (k, m) { return k < m; }, 'v1l' : function (k, m) { return k * m; }, 'K8g' : function (k, m) { return k * m; }, 'X23' : function (k, m) { return k | m; }, 'j4I' : function (k, m) { return k !== m; }, 'V54' : function (k, m) { return k > m; }, 'F2D' : function (k, m) { return k * m; }, 'o6N' : function (k, m, e) { return k * m * e; }, 'P1P' : function (k, m) { return k * m; }, 'E2r' : function (k, m, e) { return k * m * e; }, 'd1w' : function (k, m) { return k < m; }, 'Z2I' : function (k, m) { return k > m; }, 'p2r' : function (k, m) { return k === m; }, 'I9u' : function (k, m) { return k === m; }, 'b2B' : function (k, m, e) { return k * m * e; }, 'e0e' : function (k, m) { return k !== m; }, 'k7B' : function (k, m) { return k === m; }, 'S0N' : function (k, m) { return k < m; }, 'w9D' : function (k, m) { return k * m; }, 'I86' : function (k, m) { return k === m; }, 'Q3P' : function (k, m) { return k * m; }, 'E5g' : function (k, m, e) { return k * m * e; }, 'C6h' : function (k, m) { return k - m; }, 'm19' : function (k, m) { return k * m; }, 'B6d' : function (k, m) { return k / m; }, 'E6V' : function (k, m) { return k * m; }, 'o8D' : function (k, m, e) { return k - m - e; }, 'z5q' : function (k, m) { return k !== m; }, 'I9R' : function (k, m) { return k - m; }, 'x4h' : function (k, m) { return k > m; }, 'j1B' : function (k, m) { return k > m; }, 'W6l' : function (k, m) { return k - m; }, 'S1v' : function (k, m) { return k === m; }, 'n5N' : function (k, m) { return k >>> m; }, 'W8B' : function (k, m) { return k > m; }, 'X56' : function (k, m) { return k === m; }, 'h2J' : function (k, m) { return k - m; }, 'c79' : function (k, m) { return k !== m; }, 't0V' : function (k, m) { return k / m; }, 'I1g' : function (k, m) { return k * m; }, 'O4B' : function (k, m, e, o) { return k * m * e * o; }, 'l2' : function (k, m) { return k >= m; }, 'O0e' : function (k, m) { return k > m; }, 'S2q' : function (k, m, e) { return k - m - e; }, 'K8J' : function (k, m) { return k == m; }, 'c7Q' : function (k, m) { return k < m; }, 'T7v' : function (k, m) { return k - m; }, 'P7D' : function (k, m) { return k > m; }, 'p07' : function (k, m) { return k === m; }, 'o24' : function (k, m) { return k > m; }, 'K5o' : function (k, m) { return k !== m; }, 'e99' : function (k, m) { return k !== m; }, 'U8Q' : function (k, m) { return k === m; }, 'D6' : function (k, m) { return k * m; }, 'p6B' : function (k, m) { return k - m; }, 'G47' : function (k, m) { return k > m; }, 'd44' : function (k, m) { return k - m; }, 'U5u' : function (k, m) { return k - m; }, 'I5G' : function (k, m) { return k < m; }, 'y2V' : function (k, m) { return k < m; }, 'B4D' : function (k, m) { return k !== m; }, 'P6V' : function (k, m) { return k > m; }, 'C9R' : function (k, m) { return k * m; }, 'y8b' : function (k, m) { return k != m; }, 'M1' : function (k, m) { return k * m; }, 'c44' : function (k, m) { return k - m; }, 'O5l' : function (k, m) { return k * m; }, 'e9o' : function (k, m) { return k == m; }, 'n6A' : function (k, m) { return k === m; }, 'V2u' : function (k, m) { return k < m; }, 'U2d' : function (k, m) { return k - m; }, 'a2G' : function (k, m) { return k !== m; }, 'q44' : function (k, m) { return k * m; }, 'v9J' : function (k, m) { return k === m; }, 'O83' : function (k, m) { return k / m; }, 'U0q' : function (k, m) { return k < m; }, 'P64' : function (k, m) { return k * m; }, 'W0u' : function (k, m) { return k / m; }, 'U3o' : function (k, m) { return k * m; }, 't4d' : function (k, m) { return k * m; }, 'P0d' : function (k, m) { return k * m; }, 'I6D' : function (k, m) { return k - m; }, 'G2v' : function (k, m) { return k == m; }, 'c9v' : function (k, m) { return k === m; }, 'v7P' : function (k, m) { return k - m; }, 'Y9d' : function (k, m) { return k / m; }, 'r4v' : function (k, m) { return k * m; }, 's0D' : function (k, m) { return k * m; }, 'B0R' : function (k, m) { return k * m; }, 'l57' : function (k, m) { return k !== m; }, 'h8l' : function (k, m) { return k < m; }, 'x7Q' : function (k, m) { return k < m; }, 'h6P' : function (k, m) { return k * m; }, 'r9V' : function (k, m) { return k * m; }, 'K2l' : function (k, m) { return k <= m; }, 'F6e' : function (k, m, e, o) { return k | m | e | o; }, 'z5g' : function (k, m, e) { return k * m * e; }, 'b1J' : function (k, m) { return k - m; }, 'L6P' : function (k, m) { return k * m; }, 'g6v' : function (k, m) { return k / m; }, 'a6g' : function (k, m) { return k * m; }, 't5L' : function (k, m) { return k !== m; }, 'x3P' : function (k, m) { return k - m; }, 'm54' : function (k, m) { return k !== m; }, 'e2h' : function (k, m) { return k === m; }, 'W3d' : function (k, m) { return k * m; }, 'R4J' : function (k, m) { return k * m; }, 'g04' : function (k, m) { return k > m; }, 'k5r' : function (k, m) { return k !== m; }, 'N3J' : function (k, m) { return k > m; }, 'g5Q' : function (k, m) { return k / m; }, 'o1g' : function (k, m) { return k * m; }, 'b8r' : function (k, m) { return k - m; }, 'Z97' : function (k, m) { return k === m; }, 'w6G' : function (k, m) { return k === m; }, 'J9e' : function (k, m) { return k === m; }, 'p23' : function (k, m, e) { return k * m * e; }, 'R34' : function (k, m) { return k / m; }, 'p6u' : function (k, m) { return k == m; }, 'c0A' : function (k, m) { return k > m; }, 'W5l' : function (k, m) { return k > m; }, 'Z7q' : function (k, m) { return k != m; }, 'H4V' : function (k, m) { return k === m; }, 'F2g' : function (k, m, e) { return k * m * e; }, 'U0b' : function (k, m) { return k >= m; }, 'x37' : function (k, m) { return k === m; }, 'U7R' : function (k, m) { return k === m; }, 'C36' : function (k, m) { return k % m; }, 'm7b' : function (k, m) { return k > m; }, 'G9G' : function (k, m) { return k == m; }, 'N83' : function (k, m) { return k - m; }, 'j7u' : function (k, m) { return k / m; }, 'M1I' : function (k, m) { return k >= m; }, 'H5o' : function (k, m) { return k !== m; }, 'A2e' : function (k, m) { return k > m; }, 'D7r' : function (k, m) { return k === m; }, 'i4B' : function (k, m) { return k - m; }, 'g0I' : function (k, m) { return k / m; }, 'w5Q' : function (k, m) { return k * m; }, 'o0o' : function (k, m) { return k * m; }, 'O5w' : function (k, m) { return k !== m; }, 'N5D' : function (k, m) { return k * m; }, 'z7L' : function (k, m) { return k > m; }, 'Z8u' : function (k, m) { return k == m; }, 'A8h' : function (k, m) { return k !== m; }, 'l9G' : function (k, m) { return k === m; }, 'v23' : function (k, m) { return k >= m; }, 'L8' : function (k, m) { return k | m; }, 'O04' : function (k, m) { return k > m; }, 'd07' : function (k, m) { return k * m; }, 't3B' : function (k, m) { return k < m; }, 'r0G' : function (k, m) { return k < m; }, 'Q8B' : function (k, m) { return k < m; }, 'i0d' : function (k, m) { return k * m; }, 'f4D' : function (k, m) { return k !== m; }, 'n5V' : function (k, m) { return k === m; }, 'Q9P' : function (k, m) { return k * m; }, 'h1L' : function (k, m) { return k - m; }, 'm5l' : function (k, m) { return k === m; }, 'l1b' : function (k, m) { return k * m; }, 'C8r' : function (k, m) { return k > m; }, 'v1Q' : function (k, m) { return k === m; }, 'C37' : function (k, m) { return k - m; }, 'D0d' : function (k, m) { return k / m; }, 'O7D' : function (k, m) { return k > m; }, 'U1v' : function (k, m) { return k <= m; }, 'w4R' : function (k, m) { return k !== m; }, 'P5Q' : function (k, m) { return k !== m; }, 'P4g' : function (k, m) { return k / m; }, 'p26' : function (k, m) { return k <= m; }, 'u5l' : function (k, m) { return k - m; }, 'z83' : function (k, m) { return k - m; }, 'V5D' : function (k, m) { return k < m; }, 'Y23' : function (k, m) { return k | m; }, 'v86' : function (k, m) { return k === m; }, 'A77' : function (k, m) { return k < m; }, 'G4r' : function (k, m) { return k !== m; }, 'Y0w' : function (k, m) { return k * m; }, 'Z9b' : function (k, m) { return k > m; }, 'N6b' : function (k, m) { return k > m; }, 'E3I' : function (k, m) { return k > m; }, 'e4l' : function (k, m) { return k * m; }, 'e34' : function (k, m) { return k * m; }, 'h9L' : function (k, m) { return k < m; }, 'q7J' : function (k, m) { return k - m; }, 'D6G' : function (k, m) { return k === m; }, 'M6P' : function (k, m) { return k > m; }, 'm9q' : function (k, m) { return k === m; }, 'd4I' : function (k, m) { return k !== m; }, 'Q87' : function (k, m) { return k / m; }, 'i6' : function (k, m) { return k - m; }, 'O77' : function (k, m) { return k instanceof m; }, 'v5I' : function (k, m) { return k | m; }, 'c6u' : function (k, m) { return k === m; }, 'W3e' : function (k, m) { return k === m; }, 'k4D' : function (k, m) { return k > m; }, 'J7G' : function (k, m) { return k - m; }, 'd4e' : function (k, m) { return k > m; }, 'E9D' : function (k, m) { return k * m; }, 'J3v' : function (k, m) { return k < m; }, 'q1d' : function (k, m) { return k === m; }, 'r5e' : function (k, m) { return k | m; }, 'a7N' : function (k, m) { return k < m; }, 'a7o' : function (k, m) { return k & m; }, 's7l' : function (k, m) { return k > m; }, 'j5' : function (k, m) { return k * m; }, 'D9V' : function (k, m) { return k * m; }, 'n7w' : function (k, m) { return k - m; }, 'm9b' : function (k, m) { return k * m; }, 'N7L' : function (k, m) { return k < m; }, 'K7A' : function (k, m) { return k - m; }, 'b3P' : function (k, m) { return k - m; }, 'q3r' : function (k, m) { return k - m; }, 'V5R' : function (k, m) { return k <= m; }, 'X9d' : function (k, m) { return k > m; }, 'Y0R' : function (k, m) { return k === m; }, 'y1g' : function (k, m) { return k * m; }, 'j2A' : function (k, m) { return k / m; }, 'o3q' : function (k, m) { return k === m; }, 'P1A' : function (k, m) { return k < m; }, 'a5P' : function (k, m) { return k * m; }, 'o36' : function (k, m) { return k % m; }, 'N9I' : function (k, m) { return k !== m; }, 'V1' : function (k, m) { return k * m; }, 'y29' : function (k, m) { return k < m; }, 'x14' : function (k, m) { return k * m; }, 'V0d' : function (k, m) { return k >= m; }, 'S06' : function (k, m) { return k > m; }, 'x3V' : function (k, m) { return k * m; }, 'V0G' : function (k, m) { return k * m; }, 'J2Q' : function (k, m) { return k * m; }, 'S4d' : function (k, m) { return k * m; }, 'R5v' : function (k, m) { return k == m; }, 'R5Q' : function (k, m) { return k === m; }, 'j4G' : function (k, m) { return k < m; }, 'f6r' : function (k, m) { return k instanceof m; }, 'z7e' : function (k, m) { return k !== m; }, 'a19' : function (k, m) { return k * m; }, 'u3I' : function (k, m) { return k < m; }, 'x9R' : function (k, m) { return k <= m; }, 'E4J' : function (k, m) { return k < m; }, 'T1b' : function (k, m) { return k * m; }, 'm7V' : function (k, m) { return k / m; }, 'b5h' : function (k, m) { return k === m; }, 'N9h' : function (k, m) { return k === m; }, 'f5o' : function (k, m) { return k > m; }, 'l8J' : function (k, m) { return k instanceof m; }, 'M09' : function (k, m) { return k * m; }, 'A4u' : function (k, m) { return k / m; }, 'n47' : function (k, m) { return k < m; }, 'E9r' : function (k, m) { return k === m; }, 'D6g' : function (k, m) { return k > m; }, 'W04' : function (k, m) { return k - m; }, 'y3A' : function (k, m, e) { return k * m / e; }, 'm0J' : function (k, m) { return k - m; }, 'D4Q' : function (k, m) { return k > m; }, 'g77' : function (k, m) { return k < m; }, 's9l' : function (k, m) { return k - m; }, 'H74' : function (k, m) { return k / m; }, 'C2B' : function (k, m, e) { return k * m * e; }, 'm4Q' : function (k, m) { return k === m; }, 'n4D' : function (k, m) { return k !== m; }, 'R9N' : function (k, m) { return k === m; }, 's7J' : function (k, m) { return k * m; }, 'k7h' : function (k, m) { return k instanceof m; }, 'Z3e' : function (k, m) { return k & m; }, 'm0g' : function (k, m, e) { return k / m * e; }, 'P9q' : function (k, m) { return k * m; }, 'M56' : function (k, m) { return k > m; }, 'V8u' : function (k, m) { return k > m; }, 'f46' : function (k, m) { return k > m; }, 'd03' : function (k, m) { return k - m; }, 'o1G' : function (k, m) { return k > m; }, 'L94' : function (k, m) { return k / m; }, 'z4N' : function (k, m) { return k >= m; }, 'P8B' : function (k, m, e) { return k - m - e; }, 'E64' : function (k, m) { return k * m; }, 'J1u' : function (k, m) { return k > m; }, 'R9D' : function (k, m) { return k * m; }, 'F5g' : function (k, m, e) { return k * m * e; }, 'S39' : function (k, m) { return k / m; }, 'o3b' : function (k, m) { return k | m; }, 'B9L' : function (k, m) { return k !== m; }, 'f67' : function (k, m) { return k % m; }, 'Z6q' : function (k, m) { return k !== m; }, 'Q6h' : function (k, m) { return k !== m; }, 'B8J' : function (k, m) { return k instanceof m; }, 'A2I' : function (k, m) { return k === m; }, 'N0Q' : function (k, m) { return k > m; }, 'k1' : function (k, m) { return k <= m; }, 'R17' : function (k, m) { return k > m; }, 'D6w' : function (k, m) { return k < m; }, 'H66' : function (k, m) { return k instanceof m; }, 'J5V' : function (k, m) { return k === m; }, 'M1o' : function (k, m) { return k > m; }, 'T06' : function (k, m) { return k > m; }, 'f9e' : function (k, m) { return k < m; }, 'f8J' : function (k, m) { return k > m; }, 'v4e' : function (k, m) { return k < m; }, 'D2N' : function (k, m) { return k * m; }, 't9l' : function (k, m) { return k > m; }, 'I3b' : function (k, m) { return k >= m; }, 'h8q' : function (k, m) { return k > m; }, 'K4b' : function (k, m) { return k > m; }, 'r6R' : function (k, m) { return k - m; }, 'u5g' : function (k, m) { return k * m; }, 'h2v' : function (k, m) { return k > m; }, 'J9I' : function (k, m) { return k < m; }, 'Y66' : function (k, m) { return k === m; }, 'Z8' : function (k, m) { return k / m; }, 'b1R' : function (k, m) { return k != m; }, 'c16' : function (k, m) { return k === m; }, 'E17' : function (k, m) { return k - m; }, 'q6e' : function (k, m) { return k > m; }, 'o3V' : function (k, m) { return k * m; }, 'c1q' : function (k, m) { return k !== m; }, 'e5l' : function (k, m) { return k / m; }, 'M79' : function (k, m) { return k * m; }, 'L0w' : function (k, m) { return k * m; }, 'o5I' : function (k, m) { return k / m; }, 'h2l' : function (k, m) { return k / m; }, 'S29' : function (k, m) { return k * m; }, 'k0w' : function (k, m) { return k - m; }, 'n4o' : function (k, m) { return k === m; }, 'L2r' : function (k, m) { return k === m; }, 'm2L' : function (k, m) { return k * m; }, 'p0b' : function (k, m) { return k > m; }, 't6o' : function (k, m) { return k - m; }, 'q1w' : function (k, m) { return k > m; }, 'o1v' : function (k, m) { return k === m; }, 'y39' : function (k, m) { return k / m; }, 'Z2h' : function (k, m) { return k === m; }, 'O26' : function (k, m, e, o) { return k | m | e | o; }, 'd5A' : function (k, m) { return k * m; }, 'b4L' : function (k, m) { return k - m; }, 'D53' : function (k, m) { return k < m; }, 'P17' : function (k, m) { return k - m; }, 'K0w' : function (k, m) { return k === m; }, 'x27' : function (k, m) { return k > m; }, 'D5v' : function (k, m) { return k !== m; }, 't7J' : function (k, m) { return k instanceof m; }, 'P4R' : function (k, m) { return k * m; }, 'y9P' : function (k, m, e) { return k * m / e; }, 'J8J' : function (k, m) { return k >= m; }, 'j7R' : function (k, m) { return k - m; }, 'l7A' : function (k, m) { return k === m; }, 'O4Q' : function (k, m) { return k > m; }, 'd94' : function (k, m) { return k * m; }, 'A0L' : function (k, m) { return k instanceof m; }, 't0q' : function (k, m) { return k < m; }, 'M0P' : function (k, m) { return k === m; }, 'S9R' : function (k, m) { return k >= m; }, 'P8R' : function (k, m) { return k - m; }, 'q2' : function (k, m) { return k <= m; }, 'j3b' : function (k, m) { return k >= m; }, 'V0h' : function (k, m) { return k instanceof m; }, 'y3o' : function (k, m) { return k > m; }, 'l2J' : function (k, m) { return k * m; }, 'O19' : function (k, m, e) { return k / m * e; }, 'C0g' : function (k, m) { return k / m; }, 'i3I' : function (k, m) { return k === m; }, 'm2e' : function (k, m) { return k - m; }, 'o27' : function (k, m) { return k - m; }, 'Q5B' : function (k, m) { return k * m; }, 'x86' : function (k, m) { return k === m; }, 'K2g' : function (k, m) { return k / m; }, 'b4G' : function (k, m) { return k === m; }, 'F09' : function (k, m) { return k * m; }, 'U3B' : function (k, m) { return k < m; }, 'f9L' : function (k, m) { return k < m; }, 'F4D' : function (k, m) { return k - m; }, 'w19' : function (k, m) { return k === m; }, 'G0Q' : function (k, m) { return k > m; }, 'V3I' : function (k, m) { return k < m; }, 'Z4g' : function (k, m) { return k / m; }, 'A4R' : function (k, m) { return k * m; }, 'g9o' : function (k, m) { return k == m; }, 'Z4J' : function (k, m) { return k * m; }, 'p7P' : function (k, m) { return k === m; }, 'S8P' : function (k, m) { return k > m; }, 'V2L' : function (k, m) { return k * m; }, 'N94' : function (k, m) { return k * m; }, 'f1I' : function (k, m) { return k >= m; }, 'W9b' : function (k, m) { return k > m; }, 'T39' : function (k, m) { return k > m; }, 'a5J' : function (k, m) { return k * m; }, 'M67' : function (k, m) { return k - m; }, 's5h' : function (k, m) { return k !== m; }, 'q29' : function (k, m) { return k === m; }, 'S5G' : function (k, m) { return k > m; }, 'm1d' : function (k, m) { return k - m; }, 'n74' : function (k, m) { return k / m; }, 'U6B' : function (k, m) { return k * m; }, 'q2B' : function (k, m) { return k > m; }, 'S07' : function (k, m) { return k === m; }, 'h79' : function (k, m) { return k !== m; }, 'J09' : function (k, m) { return k * m; }, 'U1D' : function (k, m) { return k !== m; }, 'F4N' : function (k, m) { return k == m; }, 'j4B' : function (k, m, e, o) { return k * m * e * o; }, 'z9B' : function (k, m) { return k === m; }, 'a17' : function (k, m) { return k < m; }, 'w0e' : function (k, m) { return k >= m; }, 'f1L' : function (k, m) { return k !== m; }, 'B0P' : function (k, m) { return k >= m; }, 'h7e' : function (k, m) { return k === m; }, 'B4V' : function (k, m) { return k % m; }, 'q69' : function (k, m) { return k === m; }, 'H47' : function (k, m) { return k < m; }, 'b86' : function (k, m) { return k === m; }, 'y0q' : function (k, m) { return k > m; }, 'R2G' : function (k, m) { return k !== m; }, 'g0e' : function (k, m) { return k < m; }, 'H5N' : function (k, m) { return k & m; }, 'K6b' : function (k, m) { return k > m; }, 'a3w' : function (k, m) { return k === m; }, 'S86' : function (k, m) { return k === m; }, 'x7R' : function (k, m) { return k / m; }, 'y6o' : function (k, m) { return k - m; }, 'b24' : function (k, m) { return k - m; }, 'v5L' : function (k, m) { return k === m; }, 'v0b' : function (k, m) { return k % m; }, 'r6V' : function (k, m) { return k * m; }, 'h1N' : function (k, m) { return k / m; }, 'k3v' : function (k, m) { return k > m; }, 'a7r' : function (k, m) { return k | m; }, 't6L' : function (k, m) { return k !== m; }, 't26' : function (k, m) { return k === m; }, 'G8' : function (k, m) { return k * m; }, 'u6l' : function (k, m) { return k === m; }, 'K6Q' : function (k, m) { return k / m; }, 'H8w' : function (k, m) { return k === m; }, 'n9B' : function (k, m) { return k - m; }, 'v39' : function (k, m) { return k / m; }, 'K0P' : function (k, m) { return k > m; }, 'V17' : function (k, m) { return k < m; }, 'G8J' : function (k, m) { return k !== m; }, 'j4d' : function (k, m) { return k * m; }, 'i6v' : function (k, m) { return k === m; }, 'J2q' : function (k, m) { return k | m; }, 'u7A' : function (k, m, e, o) { return k * m * e * o; }, 'w2e' : function (k, m) { return k << m; }, 'S1R' : function (k, m) { return k >= m; }, 'A9N' : function (k, m) { return k === m; }, 'f1N' : function (k, m) { return k === m; }, 'r6' : function (k, m) { return k * m; }, 'i9P' : function (k, m, e) { return k * m / e; }, 'K6P' : function (k, m) { return k > m; }, 'M84' : function (k, m) { return k === m; }, 'W7b' : function (k, m) { return k !== m; }, 'F47' : function (k, m) { return k < m; }, 'U3V' : function (k, m) { return k * m; }, 'x6u' : function (k, m) { return k === m; }, 'Q7P' : function (k, m) { return k * m; }, 's44' : function (k, m) { return k * m; }, 'v8o' : function (k, m) { return k - m; }, 'w1A' : function (k, m) { return k < m; }, 'y1w' : function (k, m) { return k <= m; }, 'v2d' : function (k, m) { return k < m; }, 'C0D' : function (k, m) { return k / m; }, 'B3' : function (k, m) { return k instanceof m; }, 'T79' : function (k, m) { return k * m; }, 'K3l' : function (k, m) { return k * m; }, 'x33' : function (k, m) { return k / m; }, 'o06' : function (k, m) { return k < m; }, 'E2N' : function (k, m) { return k === m; }, 'h47' : function (k, m) { return k >= m; }, 'c3D' : function (k, m) { return k * m; }, 'u4Q' : function (k, m) { return k === m; }, 'f2J' : function (k, m) { return k * m; }, 'c94' : function (k, m) { return k !== m; }, 'j6u' : function (k, m) { return k == m; }, 't1l' : function (k, m) { return k / m; }, 'y9w' : function (k, m) { return k > m; }, 'a3L' : function (k, m) { return k * m; }, 'J7B' : function (k, m) { return k > m; }, 'e4R' : function (k, m) { return k * m; }, 'x36' : function (k, m) { return k * m; }, 'r1r' : function (k, m) { return k < m; }, 'e14' : function (k, m) { return k > m; }, 'i53' : function (k, m) { return k - m; }, 'm5' : function (k, m) { return k * m; }, 'P4P' : function (k, m) { return k * m; }, 'X0P' : function (k, m) { return k > m; }, 'v36' : function (k, m) { return k * m; }, 'M6b' : function (k, m) { return k * m; }, 'R7D' : function (k, m) { return k > m; }, 'Z8Q' : function (k, m) { return k !== m; }, 'l7w' : function (k, m) { return k - m; }, 'u1r' : function (k, m) { return k < m; }, 'i4J' : function (k, m) { return k < m; }, 'P4J' : function (k, m) { return k === m; }, 'D4v' : function (k, m) { return k === m; }, 'T6N' : function (k, m) { return k % m; }, 'n59' : function (k, m) { return k === m; }, 'C9A' : function (k, m, e) { return k * m / e; }, 'a6J' : function (k, m) { return k > m; }, 'd1R' : function (k, m) { return k > m; }, 'l3B' : function (k, m) { return k === m; }, 'D2I' : function (k, m) { return k / m; }, 'Q7J' : function (k, m) { return k < m; }, 'I79' : function (k, m, e) { return k * m * e; }, 'y3r' : function (k, m) { return k * m; }, 'V8' : function (k, m) { return k / m; }, 'N0w' : function (k, m) { return k * m; }, 'x4L' : function (k, m) { return k - m; }, 'V8h' : function (k, m) { return k !== m; }, 'X9L' : function (k, m) { return k / m; }, 'm2A' : function (k, m) { return k * m; }, 'A2u' : function (k, m) { return k === m; }, 'g97' : function (k, m) { return k > m; }, 'Q4P' : function (k, m) { return k * m; }, 'b0g' : function (k, m) { return k > m; }, 'G9h' : function (k, m) { return k !== m; }, 'R3L' : function (k, m) { return k - m; }, 'h0R' : function (k, m) { return k === m; }, 'l1u' : function (k, m) { return k in m; }, 'h0v' : function (k, m) { return k !== m; }, 'l47' : function (k, m) { return k >= m; }, 'd9Q' : function (k, m) { return k * m; }, 'r5P' : function (k, m) { return k === m; }, 'y8o' : function (k, m) { return k - m; }, 'f83' : function (k, m) { return k * m; }, 'r6q' : function (k, m) { return k % m; }, 'D5Q' : function (k, m) { return k | m; }, 'h6' : function (k, m) { return k * m; }, 'C9Q' : function (k, m) { return k - m; }, 'r54' : function (k, m) { return k !== m; }, 'K9G' : function (k, m) { return k < m; }, 'w96' : function (k, m) { return k - m; }, 'o9l' : function (k, m) { return k > m; }, 'r0d' : function (k, m) { return k * m; }, 'H0v' : function (k, m) { return k === m; }, 't37' : function (k, m) { return k - m; }, 'F4r' : function (k, m) { return k === m; }, 'E3e' : function (k, m) { return k >= m; }, 'r73' : function (k, m) { return k - m; }, 'W0L' : function (k, m) { return k instanceof m; }, 'D2L' : function (k, m) { return k instanceof m; }, 'j1e' : function (k, m) { return k & m; }, 'h8d' : function (k, m) { return k !== m; }, 'C66' : function (k, m, e) { return k - m + e; }, 'r3I' : function (k, m) { return k < m; }, 'u9o' : function (k, m) { return k == m; }, 'D73' : function (k, m) { return k * m; }, 's7Q' : function (k, m) { return k > m; }, 'J0w' : function (k, m) { return k == m; }, 'N5o' : function (k, m) { return k == m; }, 'K8G' : function (k, m) { return k === m; }, 'Z0h' : function (k, m) { return k / m; }, 'j6B' : function (k, m) { return k >= m; }, 'L4b' : function (k, m) { return k % m; }, 'J3R' : function (k, m) { return k / m; }, 'B0J' : function (k, m) { return k > m; }, 'C1v' : function (k, m) { return k === m; }, 'B09' : function (k, m) { return k * m; }, 'z9I' : function (k, m) { return k < m; }, 'g54' : function (k, m) { return k !== m; }, 'M2w' : function (k, m) { return k === m; }, 'z4o' : function (k, m) { return k === m; }, 'X4N' : function (k, m) { return k - m; }, 'k8d' : function (k, m) { return k * m; }, 'X8V' : function (k, m) { return k - m; }, 'h4b' : function (k, m) { return k > m; }, 'S3q' : function (k, m) { return k <= m; }, 'G8q' : function (k, m) { return k > m; }, 'b0V' : function (k, m) { return k - m; }, 'J6d' : function (k, m) { return k % m; }, 'W9V' : function (k, m) { return k * m; }, 'E19' : function (k, m) { return k * m; }, 'h2D' : function (k, m) { return k === m; }, 'C4G' : function (k, m) { return k / m; }, 'R9b' : function (k, m) { return k <= m; }, 'u5d' : function (k, m) { return k / m; }, 'Y0J' : function (k, m) { return k >>> m; }, 'w7D' : function (k, m) { return k * m; }, 'n0l' : function (k, m) { return k > m; }, 'G7L' : function (k, m) { return k instanceof m; }, 'c24' : function (k, m) { return k - m; }, 'k7u' : function (k, m) { return k < m; }, 'P7N' : function (k, m) { return k === m; }, 'x6L' : function (k, m) { return k % m; }, 'U4e' : function (k, m) { return k >= m; }, 'z67' : function (k, m) { return k / m; }, 'P9N' : function (k, m) { return k >>> m; }, 'a66' : function (k, m) { return k === m; }, 'l6d' : function (k, m, e) { return k * m / e; }, 'w4l' : function (k, m) { return k / m; }, 'm0u' : function (k, m) { return k > m; }, 'e9b' : function (k, m) { return k | m; }, 'M57' : function (k, m) { return k < m; }, 'P96' : function (k, m) { return k < m; }, 'n3u' : function (k, m) { return k <= m; }, 'n2J' : function (k, m) { return k - m; }, 'W9r' : function (k, m) { return k !== m; }, 'Y0l' : function (k, m) { return k === m; }, 'f8q' : function (k, m) { return k % m; }, 'I9Q' : function (k, m) { return k < m; }, 'l6N' : function (k, m, e) { return k | m | e; }, 'L24' : function (k, m) { return k / m; }, 'e6V' : function (k, m) { return k / m; }, 'Z76' : function (k, m) { return k === m; }, 'd93' : function (k, m) { return k - m; }, 'p8o' : function (k, m) { return k !== m; }, 'd87' : function (k, m) { return k >= m; }, 'f43' : function (k, m) { return k - m; }, 'e4v' : function (k, m) { return k * m; }, 'W17' : function (k, m) { return k < m; }, 'Q0N' : function (k, m) { return k * m; }, 'S8r' : function (k, m) { return k > m; }, 'L6' : function (k, m) { return k * m; }, 'n3B' : function (k, m) { return k === m; }, 'H7B' : function (k, m) { return k === m; }, 'a3h' : function (k, m) { return k === m; }, 'r2N' : function (k, m) { return k / m; }, 'F7w' : function (k, m) { return k / m; }, 'c4L' : function (k, m) { return k * m; }, 'z4B' : function (k, m) { return k > m; }, 'q2o' : function (k, m) { return k === m; }, 'c6B' : function (k, m) { return k < m; }, 'F0v' : function (k, m) { return k != m; }, 'P04' : function (k, m) { return k !== m; }, 'O89' : function (k, m) { return k * m; }, 'L5D' : function (k, m) { return k > m; }, 'B66' : function (k, m) { return k !== m; }, 'N4b' : function (k, m) { return k > m; }, 'e3I' : function (k, m) { return k > m; }, 'B6I' : function (k, m) { return k >= m; }, 'y2g' : function (k, m, e) { return k * m * e; }, 'z7G' : function (k, m) { return k !== m; }, 'o7Q' : function (k, m) { return k < m; }, 'n1N' : function (k, m) { return k / m; }, 'i7V' : function (k, m) { return k > m; }, 'm3L' : function (k, m) { return k / m; }, 'o8A' : function (k, m) { return k === m; }, 'B2R' : function (k, m) { return k < m; }, 's7R' : function (k, m) { return k * m; }, 'A3h' : function (k, m) { return k - m; }, 'V89' : function (k, m) { return k - m; }, 'Y1o' : function (k, m) { return k - m; }, 'i96' : function (k, m) { return k < m; }, 'a6G' : function (k, m) { return k * m; }, 'A3G' : function (k, m) { return k / m; }, 't4e' : function (k, m) { return k >= m; }, 'Z6V' : function (k, m) { return k * m; }, 'f7h' : function (k, m) { return k < m; }, 'Y7I' : function (k, m) { return k >= m; }, 'b93' : function (k, m) { return k === m; }, 'D4l' : function (k, m) { return k > m; }, 'o5L' : function (k, m) { return k !== m; }, 'B3R' : function (k, m) { return k * m; }, 's2o' : function (k, m, e) { return k - m - e; }, 'p2P' : function (k, m) { return k * m; }, 'l3w' : function (k, m) { return k >= m; }, 'H9h' : function (k, m) { return k !== m; }, 'A76' : function (k, m) { return k === m; }, 'C9' : function (k, m) { return k * m; }, 'm1V' : function (k, m) { return k !== m; }, 't0N' : function (k, m) { return k === m; }, 'n8q' : function (k, m) { return k > m; }, 'r64' : function (k, m) { return k / m; }, 'P5v' : function (k, m) { return k == m; }, 'v4h' : function (k, m) { return k === m; }, 'I1b' : function (k, m) { return k * m; }, 'L0Q' : function (k, m) { return k < m; }, 'y7v' : function (k, m) { return k < m; }, 't9v' : function (k, m) { return k >= m; }, 'Y8g' : function (k, m) { return k * m; }, 'N8g' : function (k, m) { return k * m; }, 'V5g' : function (k, m) { return k * m; }, 'u5J' : function (k, m) { return k - m; }, 'v7l' : function (k, m) { return k > m; }, 'q2A' : function (k, m) { return k - m; }, 'e3L' : function (k, m) { return k * m; }, 't1J' : function (k, m) { return k * m; }, 'B6D' : function (k, m) { return k <= m; }, 'B9G' : function (k, m) { return k === m; }, 'B2l' : function (k, m) { return k < m; }, 'L1I' : function (k, m) { return k === m; }, 'R7b' : function (k, m) { return k === m; }, 'g5l' : function (k, m) { return k !== m; }, 'B3v' : function (k, m) { return k - m; }, 'd9u' : function (k, m, e) { return k * m * e; }, 'D6l' : function (k, m) { return k * m; }, 'r17' : function (k, m) { return k > m; }, 'u6' : function (k, m) { return k - m; }, 'u34' : function (k, m) { return k - m; }, 'n3J' : function (k, m) { return k - m; }, 'f9h' : function (k, m) { return k === m; }, 'I6h' : function (k, m) { return k === m; }, 'o5h' : function (k, m) { return k === m; }, 'f3v' : function (k, m) { return k * m; }, 'r89' : function (k, m) { return k === m; }, 'C7l' : function (k, m) { return k < m; }, 'h3u' : function (k, m) { return k <= m; }, 'A1r' : function (k, m) { return k < m; }, 't0o' : function (k, m) { return k * m; }, 'a5w' : function (k, m) { return k === m; }, 'w1r' : function (k, m) { return k > m; }, 'd6L' : function (k, m) { return k - m; }, 'O9D' : function (k, m) { return k === m; }, 'H0l' : function (k, m) { return k >= m; }, 'T5G' : function (k, m) { return k === m; }, 'H2J' : function (k, m) { return k <= m; }, 'A89' : function (k, m) { return k > m; }, 'e94' : function (k, m, e) { return k - m + e; }, 'A0d' : function (k, m) { return k * m; }, 'u4B' : function (k, m, e) { return k * m * e; }, 'r7r' : function (k, m) { return k > m; }, 'O4u' : function (k, m) { return k > m; }, 'b3N' : function (k, m) { return k === m; }, 'B67' : function (k, m) { return k - m; }, 'Y0P' : function (k, m) { return k > m; }, 'T3A' : function (k, m) { return k * m; }, 'x1J' : function (k, m) { return k * m; }, 'j0N' : function (k, m) { return k != m; }, 'P7o' : function (k, m) { return k & m; }, 'S5I' : function (k, m) { return k < m; }, 'm49' : function (k, m) { return k * m; }, 'M3u' : function (k, m) { return k - m; }, 'Z4Q' : function (k, m) { return k - m; }, 'u7V' : function (k, m) { return k instanceof m; }, 'r2G' : function (k, m) { return k == m; }, 'r97' : function (k, m) { return k < m; }, 'Q9l' : function (k, m) { return k <= m; }, 'W6e' : function (k, m) { return k & m; }, 'U3q' : function (k, m) { return k <= m; }, 'E0J' : function (k, m) { return k / m; }, 'd7g' : function (k, m) { return k === m; }, 'K5q' : function (k, m) { return k % m; }, 'Z0G' : function (k, m) { return k - m; }, 'H83' : function (k, m) { return k - m; }, 'q7R' : function (k, m) { return k === m; }, 'T27' : function (k, m) { return k / m; }, 'R4l' : function (k, m) { return k * m; }, 'L4r' : function (k, m) { return k / m; }, 'D34' : function (k, m) { return k - m; }, 'A4l' : function (k, m) { return k / m; }, 'S1o' : function (k, m) { return k - m; }, 'Z6' : function (k, m) { return k * m; }, 'n1u' : function (k, m) { return k === m; }, 'p4h' : function (k, m) { return k instanceof m; }, 'C8I' : function (k, m) { return k !== m; }, 'R53' : function (k, m) { return k < m; }, 'G46' : function (k, m) { return k * m; }, 'N2R' : function (k, m) { return k > m; }, 'b1e' : function (k, m) { return k | m; }, 'r6v' : function (k, m) { return k % m; }, 'U13' : function (k, m) { return k | m; }, 'F3R' : function (k, m) { return k >= m; }, 'V2' : function (k, m) { return k >= m; }, 'o2r' : function (k, m) { return k < m; }, 'f6b' : function (k, m) { return k > m; }, 't3N' : function (k, m) { return k instanceof m; }, 'T3q' : function (k, m) { return k <= m; }, 'c2V' : function (k, m) { return k === m; }, 'i7b' : function (k, m) { return k !== m; }, 'w0L' : function (k, m) { return k instanceof m; }, 'W0e' : function (k, m) { return k !== m; }, 'i4u' : function (k, m) { return k - m; }, 'n13' : function (k, m) { return k * m; }, 'Y4D' : function (k, m) { return k < m; }, 'r7A' : function (k, m) { return k - m; }, 'q86' : function (k, m) { return k > m; }, 'V4g' : function (k, m) { return k - m; }, 'l2b' : function (k, m) { return k * m; }, 'a1r' : function (k, m) { return k !== m; }, 'M2J' : function (k, m) { return k - m; }, 'e7V' : function (k, m) { return k * m; }, 'o37' : function (k, m) { return k === m; }, 'w8u' : function (k, m) { return k == m; }, 'a0e' : function (k, m) { return k < m; }, 'y8P' : function (k, m) { return k / m; }, 'v26' : function (k, m) { return k === m; }, 'T9u' : function (k, m) { return k > m; }, 'I4A' : function (k, m) { return k - m; }, 'L9h' : function (k, m) { return k === m; }, 'a4Q' : function (k, m) { return k === m; }, 'S33' : function (k, m) { return k > m; }, 'r0B' : function (k, m) { return k === m; }, 'M7I' : function (k, m) { return k - m; }, 'N6r' : function (k, m) { return k - m; }, 'L6r' : function (k, m) { return k >= m; }, 'Z7V' : function (k, m) { return k > m; }, 'X5q' : function (k, m) { return k | m; }, 'K2R' : function (k, m) { return k > m; }, 't1Q' : function (k, m) { return k - m; }, 'V4l' : function (k, m) { return k * m; }, 'G3v' : function (k, m) { return k > m; }, 'I1R' : function (k, m) { return k >= m; }, 'z9e' : function (k, m) { return k >= m; }, 'E4Q' : function (k, m) { return k > m; }, 'Q5h' : function (k, m) { return k * m; }, 'B13' : function (k, m) { return k * m; }, 'Q8r' : function (k, m) { return k >= m; }, 'l0w' : function (k, m) { return k > m; }, 'S3N' : function (k, m) { return k - m; }, 'r6G' : function (k, m) { return k === m; }, 'L1h' : function (k, m) { return k === m; }, 'x1d' : function (k, m) { return k * m; }, 'D7D' : function (k, m) { return k > m; }, 'Z17' : function (k, m) { return k > m; }, 'D7b' : function (k, m) { return k - m; }, 'z1u' : function (k, m) { return k === m; }, 'I3V' : function (k, m) { return k * m; }, 'E4l' : function (k, m) { return k * m; }, 'b7u' : function (k, m) { return k / m; }, 'n8w' : function (k, m) { return k > m; }, 'j69' : function (k, m) { return k > m; }, 'a9r' : function (k, m) { return k === m; }, 'l4V' : function (k, m) { return k % m; }, 'y9J' : function (k, m) { return k === m; }, 'h1h' : function (k, m) { return k / m; }, 'Q03' : function (k, m) { return k * m; }, 'v7R' : function (k, m) { return k - m; }, 'v1B' : function (k, m) { return k < m; }, 'm9V' : function (k, m) { return k * m; }, 'g76' : function (k, m) { return k - m; }, 'A0J' : function (k, m) { return k === m; }, 'G6V' : function (k, m) { return k === m; }, 'p6h' : function (k, m) { return k < m; }, 'X9h' : function (k, m) { return k instanceof m; }, 'N0R' : function (k, m) { return k >= m; }, 'b3r' : function (k, m) { return k >= m; }, 'H2B' : function (k, m) { return k < m; }, 'i5D' : function (k, m) { return k instanceof m; }, 'j9R' : function (k, m) { return k < m; }, 'Q4e' : function (k, m) { return k > m; }, 'e9D' : function (k, m) { return k * m; }, 'Y5o' : function (k, m) { return k - m; }, 's37' : function (k, m) { return k >= m; }, 'F43' : function (k, m) { return k - m; }, 'x9g' : function (k, m) { return k * m; }, 'l1N' : function (k, m) { return k - m; }, 'W53' : function (k, m) { return k - m; }, 'W1r' : function (k, m) { return k >= m; }, 'Z5R' : function (k, m) { return k <= m; }, 'n5o' : function (k, m) { return k > m; }, 'u0d' : function (k, m) { return k * m; }, 'o3g' : function (k, m) { return k * m; }, 'f5b' : function (k, m) { return k - m; }, 'M4N' : function (k, m) { return k === m; }, 'b5u' : function (k, m) { return k === m; }, 'E3d' : function (k, m) { return k < m; }, 'W99' : function (k, m) { return k / m; }, 't8b' : function (k, m) { return k > m; }, 'P9o' : function (k, m) { return k == m; }, 'i64' : function (k, m) { return k - m; }, 'W4g' : function (k, m) { return k * m; }, 'R3g' : function (k, m) { return k * m; }, 'a5' : function (k, m) { return k - m; }, 'u2u' : function (k, m) { return k > m; }, 'S7P' : function (k, m) { return k > m; }, 'B7d' : function (k, m) { return k / m; }, 'F9G' : function (k, m) { return k !== m; }, 'O9o' : function (k, m) { return k == m; }, 'T4d' : function (k, m) { return k - m; }, 'J4r' : function (k, m) { return k !== m; }, 'a6v' : function (k, m) { return k < m; }, 'W0I' : function (k, m) { return k >= m; }, 'v5G' : function (k, m) { return k === m; }, 'k09' : function (k, m) { return k / m; }, 'H2Q' : function (k, m) { return k / m; }, 'B56' : function (k, m) { return k > m; }, 'Y9A' : function (k, m) { return k / m; }, 'X4A' : function (k, m) { return k * m; }, 'E7b' : function (k, m) { return k === m; }, 'j4w' : function (k, m) { return k < m; }, 'k1N' : function (k, m) { return k | m; }, 'N1N' : function (k, m) { return k - m; }, 'a3P' : function (k, m, e, o) { return k * m * e * o; }, 'b1g' : function (k, m) { return k > m; }, 'e3w' : function (k, m, e) { return k * m * e; }, 's1R' : function (k, m) { return k === m; }, 'J3u' : function (k, m) { return k - m; }, 'U8r' : function (k, m) { return k / m; }, 'x49' : function (k, m, e) { return k * m * e; }, 'K3Q' : function (k, m) { return k - m; }, 's2V' : function (k, m) { return k === m; }, 'b1v' : function (k, m) { return k <= m; }, 'r19' : function (k, m) { return k * m; }, 'D5P' : function (k, m) { return k >= m; }, 'A6w' : function (k, m) { return k < m; }, 'z74' : function (k, m) { return k - m; }, 'P3d' : function (k, m) { return k === m; }, 's1Q' : function (k, m) { return k - m; }, 'r7D' : function (k, m) { return k > m; }, 'E1V' : function (k, m) { return k * m; }, 'P19' : function (k, m) { return k * m; }, 'X2D' : function (k, m) { return k > m; }, 'L6d' : function (k, m) { return k / m; }, 'I8Q' : function (k, m) { return k <= m; }, 'H43' : function (k, m) { return k * m; }, 'w7b' : function (k, m) { return k >= m; }, 'X2b' : function (k, m) { return k * m; }, 'c9l' : function (k, m) { return k - m; }, 'v8P' : function (k, m) { return k - m; }, 'f7w' : function (k, m) { return k >= m; }, 'e1r' : function (k, m) { return k < m; }, 'L2q' : function (k, m) { return k === m; }, 'j8A' : function (k, m) { return k === m; }, 'N84' : function (k, m) { return k <= m; }, 'a9o' : function (k, m) { return k == m; }, 'D6q' : function (k, m) { return k | m; }, 'R1A' : function (k, m) { return k !== m; }, 'C39' : function (k, m) { return k / m; }, 'R0u' : function (k, m) { return k > m; }, 'G8w' : function (k, m) { return k < m; }, 'E8B' : function (k, m) { return k > m; }, 'i1r' : function (k, m) { return k === m; }, 'n5b' : function (k, m) { return k / m; }, 'Q33' : function (k, m) { return k * m; }, 'g4v' : function (k, m) { return k * m; }, 'E6G' : function (k, m) { return k === m; }, 'G1G' : function (k, m) { return k === m; }, 'H4B' : function (k, m) { return k * m; }, 'V6g' : function (k, m) { return k - m; }, 'Y1D' : function (k, m) { return k > m; }, 'Q2A' : function (k, m) { return k != m; }, 'e8B' : function (k, m) { return k - m; }, 'K6I' : function (k, m) { return k < m; }, 'w7o' : function (k, m) { return k & m; }, 'O54' : function (k, m) { return k < m; }, 'f8V' : function (k, m) { return k * m; }, 'P7V' : function (k, m) { return k < m; }, 'H84' : function (k, m) { return k !== m; }, 'o1q' : function (k, m) { return k > m; }, 'G56' : function (k, m) { return k === m; }, 'I6Q' : function (k, m) { return k < m; }, 'i4P' : function (k, m) { return k * m; }, 'e3d' : function (k, m) { return k !== m; }, 'P0e' : function (k, m) { return k !== m; }, 's5A' : function (k, m) { return k >>> m; }, 'E1A' : function (k, m) { return k < m; }, 'd27' : function (k, m) { return k - m; }, 'a5v' : function (k, m) { return k in m; }, 'z0P' : function (k, m) { return k <= m; }, 'B3A' : function (k, m) { return k * m; }, 'r7q' : function (k, m) { return k >= m; }, 'C9u' : function (k, m) { return k === m; }, 'N4q' : function (k, m) { return k - m; }, 'n57' : function (k, m) { return k < m; }, 'Q1q' : function (k, m) { return k % m; }, 'v7Q' : function (k, m) { return k > m; }, 'l4r' : function (k, m) { return k % m; }, 'G4q' : function (k, m) { return k >= m; }, 'u9V' : function (k, m) { return k * m; }, 'y9R' : function (k, m) { return k === m; }, 'o3r' : function (k, m) { return k !== m; }, 'F8w' : function (k, m) { return k > m; }, 'm3G' : function (k, m) { return k >= m; }, 'p8P' : function (k, m) { return k === m; }, 'S79' : function (k, m) { return k > m; }, 'N6P' : function (k, m) { return k * m; }, 'N0v' : function (k, m) { return k !== m; }, 'd3V' : function (k, m) { return k - m; }, 'b2o' : function (k, m) { return k > m; }, 't29' : function (k, m) { return k === m; }, 'I6B' : function (k, m) { return k === m; }, 'h56' : function (k, m) { return k !== m; }, 'y1q' : function (k, m) { return k < m; }, 'G5N' : function (k, m) { return k >>> m; }, 'J2l' : function (k, m) { return k / m; }, 't6u' : function (k, m) { return k in m; }, 'd0q' : function (k, m) { return k - m; }, 'c9w' : function (k, m) { return k === m; }, 'r3L' : function (k, m) { return k < m; }, 'c1l' : function (k, m) { return k / m; }, 'k1u' : function (k, m) { return k === m; }, 'b9g' : function (k, m) { return k * m; }, 'N0l' : function (k, m) { return k !== m; }, 't6B' : function (k, m) { return k === m; }, 'x1R' : function (k, m) { return k > m; }, 'Y5V' : function (k, m) { return k === m; }, 'u76' : function (k, m) { return k !== m; }, 'd3r' : function (k, m) { return k >= m; }, 'V5J' : function (k, m) { return k >= m; }, 'g34' : function (k, m) { return k * m; }, 'S5e' : function (k, m) { return k > m; }, 'v3o' : function (k, m) { return k > m; }, 'y69' : function (k, m) { return k * m; }, 'I8o' : function (k, m) { return k !== m; }, 'K4q' : function (k, m) { return k > m; }, 'l5b' : function (k, m) { return k - m; }, 'j8I' : function (k, m) { return k < m; }, 'm0o' : function (k, m, e) { return k * m / e; }, 'A6V' : function (k, m) { return k * m; }, 'Z5J' : function (k, m) { return k / m; }, 'F2l' : function (k, m) { return k / m; }, 'q27' : function (k, m) { return k - m; }, 'S7R' : function (k, m) { return k * m; }, 'G57' : function (k, m) { return k === m; }, 'f0l' : function (k, m) { return k >= m; }, 'R5r' : function (k, m) { return k !== m; }, 'C7J' : function (k, m) { return k instanceof m; }, 'W2A' : function (k, m) { return k * m; }, 'l2g' : function (k, m) { return k / m; }, 'w93' : function (k, m) { return k / m; }, 'i6J' : function (k, m) { return k < m; }, 'M1h' : function (k, m) { return k > m; }, 'X6I' : function (k, m) { return k - m; }, 'u4R' : function (k, m) { return k === m; }, 'u6w' : function (k, m) { return k < m; }, 'C16' : function (k, m) { return k <= m; }, 'S9g' : function (k, m) { return k * m; }, 't0D' : function (k, m) { return k * m; }, 'U4G' : function (k, m) { return k > m; }, 'e5J' : function (k, m) { return k / m; }, 'W3I' : function (k, m) { return k < m; }, 'y4w' : function (k, m) { return k < m; }, 'R2I' : function (k, m) { return k * m; }, 'u3d' : function (k, m) { return k === m; }, 'F56' : function (k, m) { return k > m; }, 'x0o' : function (k, m) { return k > m; }, 'f66' : function (k, m) { return k - m; }, 'd7P' : function (k, m) { return k / m; }, 'G9L' : function (k, m) { return k - m; }, 'C1b' : function (k, m, e) { return k * m * e; }, 'r4Q' : function (k, m) { return k === m; }, 'E2' : function (k, m) { return k <= m; }, 'h7h' : function (k, m) { return k !== m; }, 'R4g' : function (k, m) { return k / m; }, 'c29' : function (k, m) { return k | m; }, 'R0L' : function (k, m) { return k | m; }, 's9P' : function (k, m) { return k * m; }, 'x8I' : function (k, m) { return k >= m; }, 'C9w' : function (k, m) { return k instanceof m; }, 'R2e' : function (k, m) { return k < m; }, 'w0h' : function (k, m) { return k === m; }, 'i6V' : function (k, m) { return k * m; }, 'e5R' : function (k, m) { return k == m; }, 'W7D' : function (k, m) { return k * m; }, 's7g' : function (k, m) { return k > m; }, 'W34' : function (k, m) { return k - m; }, 's7u' : function (k, m) { return k / m; }, 'c7u' : function (k, m) { return k === m; }, 'f57' : function (k, m) { return k < m; }, 'm9N' : function (k, m) { return k - m; }, 'i7N' : function (k, m) { return k === m; }, 'E7A' : function (k, m) { return k - m; }, 'J0Q' : function (k, m) { return k === m; }, 'O0h' : function (k, m) { return k instanceof m; }, 'E0G' : function (k, m) { return k / m; }, 'r5v' : function (k, m) { return k in m; }, 'p1l' : function (k, m) { return k * m; }, 'C1g' : function (k, m) { return k / m; }, 'X1o' : function (k, m) { return k > m; }, 'a0h' : function (k, m) { return k * m; }, 'Z3h' : function (k, m) { return k - m; }, 'p4e' : function (k, m) { return k !== m; }, 'Q0g' : function (k, m) { return k < m; }, 'P5l' : function (k, m) { return k | m; }, 'l6b' : function (k, m) { return k % m; }, 'k8q' : function (k, m) { return k | m; }, 'R8h' : function (k, m) { return k / m; }, 'M6A' : function (k, m) { return k === m; }, 'b4B' : function (k, m) { return k < m; }, 'n83' : function (k, m) { return k << m; }, 'X4b' : function (k, m) { return k * m; }, 'u5w' : function (k, m) { return k - m; }, 'P5e' : function (k, m, e) { return k | m | e; }, 'E0e' : function (k, m) { return k !== m; }, 'O3L' : function (k, m) { return k === m; }, 'D76' : function (k, m) { return k - m; }, 'o93' : function (k, m) { return k === m; }, 'z3J' : function (k, m) { return k > m; }, 'a0u' : function (k, m) { return k / m; }, 'E0B' : function (k, m) { return k < m; }, 'M3R' : function (k, m) { return k - m; }, 'n6I' : function (k, m) { return k >= m; }, 'K7e' : function (k, m) { return k >= m; }, 'V7r' : function (k, m) { return k !== m; }, 'r5R' : function (k, m) { return k == m; }, 'Q9Q' : function (k, m) { return k / m; }, 'H9B' : function (k, m) { return k === m; }, 'Q0V' : function (k, m) { return k < m; }, 'f7G' : function (k, m) { return k / m; }, 'h8g' : function (k, m) { return k !== m; }, 'J5o' : function (k, m) { return k == m; }, 'O0u' : function (k, m) { return k - m; }, 'h83' : function (k, m) { return k >> m; }, 't8o' : function (k, m) { return k - m; }, 'n3R' : function (k, m) { return k <= m; }, 'J46' : function (k, m) { return k < m; }, 'j2o' : function (k, m) { return k - m; }, 'W14' : function (k, m) { return k > m; }, 'l0P' : function (k, m) { return k > m; }, 'i8u' : function (k, m) { return k === m; }, 'u89' : function (k, m) { return k === m; }, 'd29' : function (k, m) { return k * m; }, 'B6r' : function (k, m) { return k < m; }, 'g0L' : function (k, m) { return k === m; }, 'w9b' : function (k, m) { return k * m; }, 'u1P' : function (k, m) { return k * m; }, 'g14' : function (k, m) { return k > m; }, 'l84' : function (k, m) { return k < m; }, 'D8Q' : function (k, m) { return k !== m; }, 'V2I' : function (k, m) { return k - m; }, 'i7o' : function (k, m) { return k / m; }, 'i99' : function (k, m) { return k * m; }, 'U4d' : function (k, m) { return k - m; }, 'b1Q' : function (k, m) { return k === m; }, 'I7J' : function (k, m) { return k < m; }, 'G6P' : function (k, m) { return k * m; }, 'j3V' : function (k, m) { return k - m; }, 'h8V' : function (k, m) { return k * m; }, 'C2V' : function (k, m) { return k === m; }, 'C8b' : function (k, m) { return k * m; }, 'z4r' : function (k, m) { return k - m; }, 'K2Q' : function (k, m) { return k === m; }, 'W2N' : function (k, m) { return k / m; }, 't7v' : function (k, m) { return k instanceof m; }, 'L4o' : function (k, m) { return k === m; }, 'Q27' : function (k, m) { return k === m; }, 'K1N' : function (k, m) { return k / m; }, 'm96' : function (k, m) { return k < m; }, 'f6A' : function (k, m) { return k === m; }, 'y4I' : function (k, m) { return k < m; }, 'q1Q' : function (k, m) { return k | m; }, 'T6d' : function (k, m) { return k * m; }, 'b7R' : function (k, m) { return k - m; }, 'd6B' : function (k, m) { return k > m; }, 'v4d' : function (k, m) { return k - m; }, 'H3l' : function (k, m) { return k * m; }, 'y86' : function (k, m) { return k === m; }, 'u6g' : function (k, m) { return k * m; }, 'i97' : function (k, m) { return k - m; }, 'D0B' : function (k, m) { return k < m; }, 'e73' : function (k, m) { return k * m; }, 'm93' : function (k, m) { return k * m; }, 'T13' : function (k, m) { return k | m; }, 'd7R' : function (k, m) { return k * m; }, 'O8h' : function (k, m) { return k / m; }, 'y4d' : function (k, m) { return k * m; }, 'G9d' : function (k, m) { return k >= m; }, 'I0D' : function (k, m) { return k / m; }, 'u19' : function (k, m) { return k === m; }, 'X3J' : function (k, m) { return k > m; }, 'Y4r' : function (k, m) { return k !== m; }, 'I27' : function (k, m) { return k > m; }, 'P9b' : function (k, m) { return k | m; }, 'c07' : function (k, m) { return k > m; }, 'T8o' : function (k, m) { return k > m; }, 'j87' : function (k, m) { return k / m; }, 'J4o' : function (k, m) { return k === m; }, 'O7B' : function (k, m) { return k / m; }, 'S0q' : function (k, m) { return k < m; }, 'n46' : function (k, m) { return k - m; }, 'G5o' : function (k, m) { return k == m; }, 'V97' : function (k, m) { return k < m; }, 'c4h' : function (k, m) { return k instanceof m; }, 'Z9r' : function (k, m) { return k !== m; }, 'l5o' : function (k, m) { return k > m; }, 'L2J' : function (k, m) { return k > m; }, 'U5B' : function (k, m) { return k / m; }, 't1e' : function (k, m) { return k & m; }, 'F8V' : function (k, m) { return k / m; }, 'Z3I' : function (k, m) { return k > m; }, 'I0A' : function (k, m) { return k & m; }, 'c3q' : function (k, m) { return k === m; }, 'H4D' : function (k, m) { return k > m; }, 'N56' : function (k, m) { return k < m; }, 'Z3g' : function (k, m) { return k * m; }, 'K7B' : function (k, m) { return k === m; }, 'g1V' : function (k, m) { return k / m; }, 'y0o' : function (k, m) { return k * m; }, 'Z99' : function (k, m) { return k | m; }, 'D0L' : function (k, m) { return k instanceof m; }, 'p9u' : function (k, m) { return k === m; }, 'W2e' : function (k, m) { return k % m; }, 'w7r' : function (k, m) { return k | m; }, 'V9q' : function (k, m) { return k >= m; }, 'J56' : function (k, m) { return k > m; }, 'j1g' : function (k, m) { return k > m; }, 'Z8h' : function (k, m) { return k === m; }, 'b9w' : function (k, m) { return k < m; }, 'Z3G' : function (k, m) { return k < m; }, 'I7v' : function (k, m) { return k - m; }, 'h5q' : function (k, m) { return k > m; }, 'J57' : function (k, m) { return k < m; }, 'h1I' : function (k, m) { return k > m; }, 'Q4G' : function (k, m) { return k > m; }, 'b14' : function (k, m) { return k > m; }, 'M8D' : function (k, m) { return k > m; }, 'x0D' : function (k, m) { return k * m; }, 'w1P' : function (k, m) { return k * m; }, 'B0v' : function (k, m) { return k / m; }, 's16' : function (k, m) { return k >= m; }, 'T3b' : function (k, m) { return k >= m; }, 'M4o' : function (k, m) { return k > m; }, 'D3h' : function (k, m) { return k === m; }, 'J6P' : function (k, m) { return k * m; }, 'r1P' : function (k, m) { return k * m; }, 'u6G' : function (k, m) { return k * m; }, 'N6I' : function (k, m) { return k <= m; }, 'G0w' : function (k, m) { return k === m; }, 'w5J' : function (k, m) { return k * m; }, 'b3q' : function (k, m) { return k === m; }, 'o9v' : function (k, m) { return k !== m; }, 'g6G' : function (k, m) { return k !== m; }, 'q6h' : function (k, m) { return k > m; }, 'E04' : function (k, m) { return k < m; }, 'Q4d' : function (k, m) { return k * m; }, 'K2q' : function (k, m) { return k > m; }, 'p3V' : function (k, m) { return k % m; }, 'n1D' : function (k, m) { return k === m; }, 'H09' : function (k, m) { return k * m; }, 's1w' : function (k, m) { return k - m; }, 'g2h' : function (k, m) { return k !== m; }, 'o9' : function (k, m) { return k * m; }, 'g6J' : function (k, m) { return k > m; }, 'W0J' : function (k, m) { return k % m; }, 'p3q' : function (k, m) { return k === m; }, 'R2L' : function (k, m) { return k * m; }, 'B8l' : function (k, m) { return k < m; }, 'U4w' : function (k, m) { return k < m; }, 'g0B' : function (k, m) { return k === m; }, 'C9g' : function (k, m) { return k * m; }, 'C4h' : function (k, m) { return k === m; }, 'C3B' : function (k, m, e, o, n) { return k * m * e * o * n; }, 'Y13' : function (k, m) { return k * m; }, 'I13' : function (k, m) { return k | m; }, 'J5b' : function (k, m) { return k - m; }, 'q5A' : function (k, m) { return k < m; }, 'p2V' : function (k, m) { return k !== m; }, 'p7v' : function (k, m) { return k * m; }, 'B59' : function (k, m) { return k in m; }, 'u9q' : function (k, m) { return k !== m; }, 'l2B' : function (k, m, e) { return k * m * e; }, 'N2B' : function (k, m, e, o) { return k * m * e / o; }, 'L5N' : function (k, m) { return k >>> m; }, 'l23' : function (k, m) { return k / m; }, 'S0r' : function (k, m) { return k / m; }, 'l7h' : function (k, m) { return k === m; }, 'j1G' : function (k, m) { return k < m; }, 'J0v' : function (k, m) { return k !== m; }, 'e6v' : function (k, m) { return k < m; }, 'E7r' : function (k, m) { return k < m; }, 'F9P' : function (k, m, e) { return k * m / e; }, 'D2e' : function (k, m) { return k & m; }, 'U7P' : function (k, m) { return k > m; }, 'g2L' : function (k, m) { return k > m; }, 'Q5N' : function (k, m) { return k > m; }, 'p14' : function (k, m) { return k === m; }, 'P5R' : function (k, m) { return k - m; }, 'O2L' : function (k, m) { return k * m; }, 'z7d' : function (k, m) { return k !== m; }, 'Z0e' : function (k, m) { return k >= m; }, 'V34' : function (k, m) { return k !== m; }, 'R9r' : function (k, m) { return k !== m; }, 'r9b' : function (k, m) { return k - m; }, 'D4R' : function (k, m) { return k * m; }, 'a9P' : function (k, m) { return k * m; }, 'a4v' : function (k, m) { return k * m; }, 'p7l' : function (k, m) { return k > m; }, 'G94' : function (k, m) { return k * m; }, 'G9e' : function (k, m) { return k >= m; }, 'w8e' : function (k, m) { return k / m; }, 'I8D' : function (k, m) { return k == m; }, 'R96' : function (k, m) { return k === m; }, 'm4P' : function (k, m) { return k - m; }, 'P0I' : function (k, m) { return k | m; }, 'j14' : function (k, m) { return k !== m; }, 'C8A' : function (k, m) { return k - m; }, 'I3D' : function (k, m) { return k > m; }, 'D6o' : function (k, m, e, o) { return k * m * e / o; }, 'u2e' : function (k, m) { return k - m; }, 'F2v' : function (k, m) { return k < m; }, 'U8D' : function (k, m) { return k * m; }, 'v1e' : function (k, m) { return k & m; }, 'M2l' : function (k, m) { return k / m; }, 'K8V' : function (k, m) { return k * m; }, 'f2q' : function (k, m) { return k | m; }, 'X43' : function (k, m) { return k < m; }, 'l0l' : function (k, m) { return k === m; }, 'F7L' : function (k, m) { return k * m; }, 'j1q' : function (k, m) { return k | m; }, 'k3g' : function (k, m) { return k * m; }, 'A2' : function (k, m) { return k * m; }, 'i1V' : function (k, m) { return k * m; }, 'E1r' : function (k, m) { return k - m; }, 'q3o' : function (k, m) { return k > m; }, 'G6A' : function (k, m) { return k == m; }, 'c5e' : function (k, m) { return k & m; }, 'E76' : function (k, m) { return k - m; }, 'n1I' : function (k, m) { return k > m; }, 'L8g' : function (k, m) { return k * m; }, 'B3u' : function (k, m) { return k !== m; }, 'm2I' : function (k, m) { return k !== m; }, 'f2D' : function (k, m) { return k / m; }, 'G2b' : function (k, m) { return k !== m; }, 'o1b' : function (k, m, e) { return k * m * e; }, 'p1e' : function (k, m) { return k & m; }, 'a3e' : function (k, m) { return k === m; }, 'n5q' : function (k, m) { return k !== m; }, 'G5q' : function (k, m) { return k >= m; }, 'f3R' : function (k, m) { return k - m; }, 'b07' : function (k, m) { return k !== m; }, 'n67' : function (k, m) { return k - m; }, 'u0L' : function (k, m) { return k instanceof m; }, 'E4u' : function (k, m) { return k / m; }, 'x4w' : function (k, m) { return k === m; }, 'M8d' : function (k, m) { return k >= m; }, 'y33' : function (k, m) { return k > m; }, 'r4P' : function (k, m) { return k * m; }, 'c1R' : function (k, m) { return k === m; }, 'l3v' : function (k, m) { return k / m; }, 'v1R' : function (k, m) { return k >= m; }, 'z84' : function (k, m) { return k >= m; }, 'p3b' : function (k, m) { return k / m; }, 'H5q' : function (k, m) { return k !== m; }, 'v9w' : function (k, m) { return k < m; }, 'T29' : function (k, m) { return k * m; }, 'A2L' : function (k, m) { return k * m; }, 'y2r' : function (k, m) { return k | m; }, 'K49' : function (k, m) { return k * m; }, 's0A' : function (k, m) { return k > m; }, 'S5u' : function (k, m) { return k !== m; }, 'P5g' : function (k, m) { return k * m; }, 'J3l' : function (k, m) { return k * m; }, 'R7V' : function (k, m) { return k === m; }, 'O5R' : function (k, m) { return k <= m; }, 'Q5' : function (k, m) { return k * m; }, 'N9L' : function (k, m) { return k >= m; }, 'M8J' : function (k, m) { return k < m; }, 'J9B' : function (k, m) { return k === m; }, 'a2u' : function (k, m) { return k / m; }, 'g2e' : function (k, m) { return k >> m; }, 'I0q' : function (k, m) { return k > m; }, 'J43' : function (k, m) { return k * m; }, 'k7d' : function (k, m) { return k > m; }, 'A9o' : function (k, m) { return k == m; }, 'T4w' : function (k, m) { return k !== m; }, 'U5A' : function (k, m) { return k / m; }, 'r4l' : function (k, m) { return k / m; }, 'P8u' : function (k, m) { return k == m; }, 'e53' : function (k, m) { return k - m; }, 'Y6b' : function (k, m) { return k % m; }, 'C8P' : function (k, m) { return k - m; }, 'v0V' : function (k, m) { return k === m; }, 'M8v' : function (k, m) { return k - m; }, 'd4h' : function (k, m) { return k > m; }, 'J0P' : function (k, m) { return k / m; }, 'j86' : function (k, m) { return k === m; }, 'u5R' : function (k, m) { return k === m; }, 'o1J' : function (k, m) { return k - m; }, 'b1b' : function (k, m) { return k * m; }, 'f0Q' : function (k, m) { return k === m; }, 'h8' : function (k, m) { return k | m; }, 'g7b' : function (k, m) { return k !== m; }, 'J6e' : function (k, m) { return k & m; }, 'f4N' : function (k, m) { return k === m; }, 'v2A' : function (k, m) { return k * m; }, 'C5d' : function (k, m) { return k - m; }, 'A7q' : function (k, m) { return k > m; }, 'W8L' : function (k, m) { return k * m; }, 'a1d' : function (k, m) { return k !== m; }, 'O2h' : function (k, m) { return k === m; }, 'G59' : function (k, m) { return k / m; }, 't9R' : function (k, m) { return k === m; }, 'O3G' : function (k, m) { return k !== m; }, 'y0A' : function (k, m) { return k === m; }, 'R8Q' : function (k, m) { return k === m; }, 'i6q' : function (k, m) { return k > m; }, 'a0I' : function (k, m) { return k / m; }, 'b6h' : function (k, m) { return k > m; }, 'K43' : function (k, m) { return k - m; }, 'I1w' : function (k, m) { return k === m; }, 'g6l' : function (k, m) { return k * m; }, 'b94' : function (k, m) { return k !== m; }, 'Y2D' : function (k, m) { return k != m; }, 'a99' : function (k, m) { return k / m; }, 's5N' : function (k, m) { return k - m; }, 'e4P' : function (k, m) { return k - m; }, 'Y8J' : function (k, m) { return k instanceof m; }, 'u53' : function (k, m) { return k - m; }, 'a9V' : function (k, m) { return k - m; }, 'x1G' : function (k, m) { return k < m; }, 'A9V' : function (k, m) { return k * m; }, 'C6Q' : function (k, m) { return k - m; }, 'K9h' : function (k, m) { return k > m; }, 'a6Q' : function (k, m) { return k !== m; }, 'm2G' : function (k, m) { return k !== m; }, 'Y2b' : function (k, m) { return k * m; }, 't3o' : function (k, m) { return k > m; }, 'O3d' : function (k, m) { return k > m; }, 'X0J' : function (k, m) { return k >> m; }, 'g2I' : function (k, m) { return k === m; }, 'v6N' : function (k, m) { return k > m; }, 'R4u' : function (k, m) { return k - m; }, 'L5b' : function (k, m) { return k - m; }, 'c3V' : function (k, m) { return k - m; }, 'C63' : function (k, m) { return k * m; }, 'd3q' : function (k, m) { return k === m; }, 'Z2N' : function (k, m) { return k - m; }, 'o2d' : function (k, m) { return k < m; }, 'J5D' : function (k, m, e) { return k * m * e; }, 'L8N' : function (k, m) { return k / m; }, 'e6R' : function (k, m) { return k - m; }, 'p24' : function (k, m) { return k - m; }, 's6h' : function (k, m) { return k !== m; }, 'G1u' : function (k, m) { return k > m; }, 'w3L' : function (k, m) { return k * m; }, 'I07' : function (k, m) { return k === m; }, 'X5o' : function (k, m) { return k === m; }, 'p5h' : function (k, m) { return k === m; }, 'W3L' : function (k, m) { return k * m; }, 'Y4b' : function (k, m) { return k * m; }, 'W7o' : function (k, m) { return k & m; }, 's6e' : function (k, m) { return k - m; }, 't5G' : function (k, m) { return k === m; }, 'M2v' : function (k, m) { return k === m; }, 'h43' : function (k, m) { return k - m; }, 'u4u' : function (k, m) { return k - m; }, 'L59' : function (k, m, e) { return k / m * e; }, 'M0Q' : function (k, m) { return k == m; }, 'D9b' : function (k, m) { return k !== m; }, 's2r' : function (k, m) { return k === m; }, 'b2V' : function (k, m) { return k < m; }, 'J4b' : function (k, m) { return k / m; }, 'E2L' : function (k, m) { return k instanceof m; }, 'N2g' : function (k, m) { return k * m; }, 'l0J' : function (k, m) { return k in m; }, 't3b' : function (k, m) { return k * m; }, 'b5I' : function (k, m) { return k !== m; }, 'D0e' : function (k, m) { return k < m; }, 'B9A' : function (k, m) { return k > m; }, 'w3G' : function (k, m) { return k / m; }, 'K7L' : function (k, m) { return k * m; }, 'c8I' : function (k, m) { return k >= m; }, 'W7A' : function (k, m) { return k * m; }, 'e2I' : function (k, m) { return k > m; }, 'H7L' : function (k, m) { return k > m; }, 'Q7Q' : function (k, m) { return k === m; }, 'm5R' : function (k, m) { return k >= m; }, 'Z0B' : function (k, m) { return k - m; }, 'k8N' : function (k, m) { return k << m; }, 'B1N' : function (k, m) { return k * m; }, 't9Q' : function (k, m) { return k / m; }, 'c9P' : function (k, m) { return k * m; }, 'R8u' : function (k, m) { return k !== m; }, 'j1v' : function (k, m) { return k <= m; }, 'q8A' : function (k, m) { return k > m; }, 'x9l' : function (k, m) { return k > m; }, 'q8I' : function (k, m) { return k - m; }, 'd1G' : function (k, m) { return k < m; }, 'A9b' : function (k, m) { return k * m; }, 'p7R' : function (k, m) { return k === m; }, 'O1A' : function (k, m) { return k === m; }, 'q37' : function (k, m) { return k < m; }, 'r99' : function (k, m) { return k * m; }, 'E9N' : function (k, m) { return k < m; }, 'x0q' : function (k, m) { return k < m; }, 'U9J' : function (k, m) { return k === m; }, 'P3h' : function (k, m) { return k === m; }, 'B2B' : function (k, m) { return k > m; }, 'F74' : function (k, m) { return k * m; }, 'T5d' : function (k, m) { return k - m; }, 'j9l' : function (k, m) { return k > m; }, 'u8h' : function (k, m) { return k !== m; }, 'x6h' : function (k, m) { return k < m; }, 'T86' : function (k, m) { return k === m; }, 'k6I' : function (k, m) { return k > m; }, 'k3u' : function (k, m) { return k - m; }, 'A3d' : function (k, m) { return k === m; }, 'P89' : function (k, m) { return k === m; }, 'S9w' : function (k, m) { return k >= m; }, 'l8q' : function (k, m) { return k % m; }, 'k5o' : function (k, m) { return k == m; }, 'z79' : function (k, m) { return k > m; }, 'G8l' : function (k, m) { return k - m; }, 'C9J' : function (k, m) { return k === m; }, 'I5I' : function (k, m) { return k >= m; }, 'Y3l' : function (k, m) { return k > m; }, 'j9J' : function (k, m) { return k === m; }, 'F66' : function (k, m) { return k instanceof m; }, 'i04' : function (k, m) { return k - m; }, 'I8A' : function (k, m) { return k >= m; }, 'x0J' : function (k, m, e) { return k * m * e; }, 'C29' : function (k, m) { return k / m; }, 'Z4l' : function (k, m) { return k * m; }, 'Q5A' : function (k, m) { return k * m; }, 'c0V' : function (k, m) { return k > m; }, 't4A' : function (k, m) { return k - m; }, 'N3u' : function (k, m) { return k - m; }, 'E3G' : function (k, m) { return k * m; }, 'l9B' : function (k, m) { return k === m; }, 's33' : function (k, m) { return k * m; }, 'M66' : function (k, m) { return k === m; }, 'v7J' : function (k, m) { return k === m; }, 'h9I' : function (k, m) { return k < m; }, 'B2D' : function (k, m) { return k === m; }, 'O4v' : function (k, m) { return k < m; }, 'p7J' : function (k, m) { return k < m; }, 'n2l' : function (k, m) { return k > m; }, 'e2L' : function (k, m) { return k >= m; }, 'r2h' : function (k, m) { return k instanceof m; }, 'x8o' : function (k, m) { return k > m; }, 'q6B' : function (k, m) { return k > m; }, 'Z5r' : function (k, m) { return k * m; }, 'T4I' : function (k, m) { return k < m; }, 'D0u' : function (k, m) { return k - m; }, 'd0A' : function (k, m) { return k > m; }, 'H0P' : function (k, m) { return k / m; }, 'M2Q' : function (k, m) { return k / m; }, 'T4e' : function (k, m) { return k >= m; }, 'y3V' : function (k, m) { return k !== m; }, 'K47' : function (k, m) { return k / m; }, 'T9J' : function (k, m) { return k > m; }, 'j5G' : function (k, m) { return k > m; }, 'D96' : function (k, m) { return k > m; }, 'B7I' : function (k, m) { return k >= m; }, 'V7V' : function (k, m) { return k > m; }, 'O6l' : function (k, m) { return k > m; }, 'o49' : function (k, m) { return k > m; }, 'B3l' : function (k, m) { return k * m; }, 'k46' : function (k, m) { return k % m; }, 's4L' : function (k, m) { return k * m; }, 'S6h' : function (k, m) { return k * m; }, 'g4P' : function (k, m) { return k * m; }, 'C0V' : function (k, m) { return k - m; }, 'F79' : function (k, m) { return k !== m; }, 'z4D' : function (k, m) { return k > m; }, 'M7G' : function (k, m) { return k !== m; }, 'v13' : function (k, m) { return k | m; }, 'x9Q' : function (k, m) { return k / m; }, 'u4v' : function (k, m) { return k === m; }, 'q5L' : function (k, m) { return k !== m; }, 'n7L' : function (k, m) { return k / m; }, 'p9v' : function (k, m) { return k - m; }, 'm4l' : function (k, m) { return k / m; }, 'n2w' : function (k, m) { return k === m; }, 'D89' : function (k, m) { return k * m; }, 'm66' : function (k, m, e) { return k - m + e; }, 's06' : function (k, m) { return k > m; }, 'K13' : function (k, m) { return k * m; }, 't5h' : function (k, m) { return k === m; }, 'q4d' : function (k, m) { return k * m; }, 'H9A' : function (k, m, e) { return k * m * e; }, 'm2' : function (k, m) { return k * m; }, 'Z77' : function (k, m) { return k < m; }, 'P6J' : function (k, m) { return k > m; }, 'h66' : function (k, m) { return k instanceof m; }, 'x29' : function (k, m) { return k * m; }, 'V4R' : function (k, m) { return k * m; }, 'F9d' : function (k, m) { return k < m; }, 'h4D' : function (k, m) { return k - m; }, 'b39' : function (k, m) { return k / m; }, 'f3l' : function (k, m) { return k * m; }, 'M8w' : function (k, m) { return k > m; }, 'B3w' : function (k, m) { return k < m; }, 'U2b' : function (k, m, e) { return k - m + e; }, 'S8D' : function (k, m) { return k == m; }, 'a77' : function (k, m) { return k > m; }, 'a7A' : function (k, m) { return k - m; }, 'Y9I' : function (k, m) { return k | m; }, 'b4e' : function (k, m) { return k > m; }, 'X9A' : function (k, m) { return k > m; }, 'e1o' : function (k, m) { return k > m; }, 'N8V' : function (k, m) { return k === m; }, 'b9P' : function (k, m) { return k * m; }, 'h8v' : function (k, m) { return k - m; }, 'G4B' : function (k, m) { return k === m; }, 'z8g' : function (k, m) { return k / m; }, 'B2b' : function (k, m) { return k * m; }, 'H4r' : function (k, m) { return k === m; }, 'L0v' : function (k, m) { return k !== m; }, 'j5L' : function (k, m) { return k !== m; }, 'r3G' : function (k, m) { return k > m; }, 'p1G' : function (k, m) { return k < m; }, 'E53' : function (k, m) { return k === m; }, 'R6g' : function (k, m) { return k < m; }, 'j3P' : function (k, m) { return k > m; }, 'D1r' : function (k, m) { return k === m; }, 'F4q' : function (k, m) { return k - m; }, 'D8' : function (k, m) { return k !== m; }, 'E7N' : function (k, m) { return k - m; }, 'Y2g' : function (k, m) { return k / m; }, 'C1R' : function (k, m) { return k >= m; }, 'z6A' : function (k, m) { return k === m; }, 'M2q' : function (k, m) { return k / m; }, 'H2R' : function (k, m) { return k > m; }, 'V5w' : function (k, m) { return k > m; }, 'r8B' : function (k, m) { return k - m; }, 'y6N' : function (k, m) { return k > m; }, 'P7q' : function (k, m) { return k % m; }, 'q7P' : function (k, m) { return k - m; }, 'j0g' : function (k, m) { return k !== m; }, 'l6Q' : function (k, m) { return k * m; }, 'L1' : function (k, m) { return k !== m; }, 'v9g' : function (k, m) { return k * m; }, 'P6o' : function (k, m) { return k > m; }, 'd16' : function (k, m) { return k === m; }, 'c2A' : function (k, m) { return k / m; }, 'E34' : function (k, m) { return k - m; }, 'e7A' : function (k, m) { return k > m; }, 'j7g' : function (k, m) { return k | m; }, 'T1J' : function (k, m) { return k > m; }, 'm0h' : function (k, m) { return k > m; }, 'B6P' : function (k, m) { return k > m; }, 'J5r' : function (k, m) { return k === m; }, 'V6v' : function (k, m) { return k / m; }, 'h8G' : function (k, m) { return k < m; }, 'e0J' : function (k, m, e) { return k / m * e; }, 'y7Q' : function (k, m) { return k > m; }, 's9v' : function (k, m) { return k === m; }, 'z8w' : function (k, m) { return k !== m; }, 'F8R' : function (k, m) { return k >= m; }, 'Q86' : function (k, m) { return k === m; }, 'u9D' : function (k, m) { return k > m; }, 'b2P' : function (k, m) { return k <= m; }, 'F0Q' : function (k, m) { return k == m; }, 't4I' : function (k, m) { return k === m; }, 'U26' : function (k, m) { return k === m; }, 'U37' : function (k, m) { return k < m; }, 'f1u' : function (k, m) { return k in m; }, 'Z9V' : function (k, m) { return k * m; }, 't27' : function (k, m) { return k === m; }, 'C6u' : function (k, m) { return k in m; }, 'n3A' : function (k, m) { return k * m; }, 'z7B' : function (k, m) { return k < m; }, 'M7h' : function (k, m) { return k <= m; }, 'P79' : function (k, m, e) { return k * m * e; }, 'l3Q' : function (k, m) { return k > m; }, 'e8u' : function (k, m) { return k == m; }, 'C7R' : function (k, m) { return k - m; }, 'F3l' : function (k, m) { return k * m; }, 'x0N' : function (k, m) { return k === m; }, 'K6D' : function (k, m) { return k >= m; }, 'y8D' : function (k, m) { return k * m; }, 'Y0v' : function (k, m) { return k - m; }, 'S03' : function (k, m) { return k - m; }, 'W7q' : function (k, m) { return k / m; }, 'l4A' : function (k, m) { return k * m; }, 'N7B' : function (k, m) { return k < m; }, 'j8o' : function (k, m) { return k !== m; }, 'N7u' : function (k, m) { return k - m; }, 'd5u' : function (k, m) { return k === m; }, 'V5v' : function (k, m) { return k > m; }, 'c8A' : function (k, m) { return k === m; }, 'L4D' : function (k, m) { return k > m; }, 'y2b' : function (k, m) { return k / m; }, 'j36' : function (k, m) { return k - m; }, 'W64' : function (k, m) { return k !== m; }, 'C3q' : function (k, m) { return k <= m; }, 'C0r' : function (k, m) { return k * m; }, 'u5B' : function (k, m) { return k === m; }, 'c7l' : function (k, m) { return k !== m; }, 'E7o' : function (k, m) { return k & m; }, 'A17' : function (k, m) { return k / m; }, 'B49' : function (k, m) { return k * m; }, 'L8l' : function (k, m) { return k > m; }, 's4h' : function (k, m) { return k instanceof m; }, 'r96' : function (k, m) { return k > m; }, 'c6L' : function (k, m) { return k - m; }, 'w8h' : function (k, m) { return k !== m; }, 'P1V' : function (k, m) { return k / m; }, 'J1D' : function (k, m) { return k - m; }, 't23' : function (k, m) { return k - m; }, 'k9G' : function (k, m) { return k == m; }, 'O6G' : function (k, m) { return k / m; }, 'i0I' : function (k, m) { return k / m; }, 'p1J' : function (k, m) { return k * m; }, 'a3I' : function (k, m) { return k * m; }, 'T3B' : function (k, m, e, o, n) { return k * m * e * o * n; }, 'T1g' : function (k, m) { return k / m; }, 'h2q' : function (k, m) { return k | m; }, 'R3G' : function (k, m) { return k < m; }, 'h3l' : function (k, m) { return k * m; }, 'p2B' : function (k, m) { return k - m; }, 'I4d' : function (k, m) { return k * m; }, 'E5B' : function (k, m) { return k > m; }, 'n8l' : function (k, m) { return k > m; }, 'R3d' : function (k, m) { return k * m; }, 'A0e' : function (k, m) { return k < m; }, 'q94' : function (k, m) { return k !== m; }, 'O8Q' : function (k, m) { return k === m; }, 'X2v' : function (k, m) { return k >= m; }, 'i8h' : function (k, m) { return k !== m; }, 'v4I' : function (k, m) { return k === m; }, 'K56' : function (k, m) { return k instanceof m; }, 'Z2e' : function (k, m) { return k & m; }, 'C1q' : function (k, m) { return k | m; }, 'C5G' : function (k, m) { return k === m; }, 'A2G' : function (k, m) { return k < m; }, 'Q6u' : function (k, m) { return k == m; }, 'P4v' : function (k, m) { return k === m; }, 'G1N' : function (k, m) { return k | m; }, 'v69' : function (k, m) { return k - m; }, 'f6P' : function (k, m) { return k > m; }, 'q9Q' : function (k, m) { return k / m; }, 'i2' : function (k, m) { return k >= m; }, 'L1N' : function (k, m) { return k === m; }, 'o6B' : function (k, m) { return k < m; }, 'h6I' : function (k, m) { return k > m; }, 'L43' : function (k, m) { return k * m; }, 'o0b' : function (k, m) { return k > m; }, 'q5h' : function (k, m) { return k === m; }, 'N4r' : function (k, m) { return k !== m; }, 'Z8R' : function (k, m) { return k === m; }, 'f7L' : function (k, m) { return k / m; }, 'E54' : function (k, m) { return k > m; }, 'D9r' : function (k, m) { return k !== m; }, 'R6w' : function (k, m) { return k < m; }, 'q5u' : function (k, m) { return k === m; }, 'B9' : function (k, m, e) { return k * m * e; }, 'a7g' : function (k, m) { return k | m; }, 'b03' : function (k, m) { return k * m; }, 'v1g' : function (k, m) { return k / m; }, 'P5J' : function (k, m) { return k - m; }, 'S3b' : function (k, m) { return k < m; }, 'p86' : function (k, m) { return k === m; }, 'T36' : function (k, m) { return k - m; }, 't7R' : function (k, m) { return k * m; }, 'm7q' : function (k, m) { return k / m; }, 'N2J' : function (k, m) { return k - m; }, 'V0B' : function (k, m) { return k === m; }, 'u77' : function (k, m) { return k >= m; }, 'd4w' : function (k, m) { return k > m; }, 'K9e' : function (k, m) { return k < m; }, 'p3r' : function (k, m) { return k === m; }, 'a6R' : function (k, m) { return k * m; }, 'V3G' : function (k, m) { return k !== m; }, 'e2G' : function (k, m) { return k >= m; }, 'B7h' : function (k, m) { return k > m; }, 'G5b' : function (k, m) { return k > m; }, 'q0o' : function (k, m) { return k & m; }, 'O1r' : function (k, m) { return k - m; }, 'B7e' : function (k, m) { return k > m; }, 'V2N' : function (k, m) { return k | m; }, 'J4V' : function (k, m) { return k === m; }, 'c7R' : function (k, m) { return k * m; }, 'b1G' : function (k, m) { return k < m; }, 's2A' : function (k, m) { return k / m; }, 'F83' : function (k, m) { return k & m; }, 'l13' : function (k, m) { return k * m; }, 'b8P' : function (k, m) { return k - m; }, 'f3Q' : function (k, m) { return k > m; }, 'I5L' : function (k, m) { return k === m; }, 'V7q' : function (k, m) { return k - m; }, 'v0D' : function (k, m) { return k > m; }, 'H9d' : function (k, m) { return k / m; }, 't4h' : function (k, m) { return k === m; }, 'k5V' : function (k, m) { return k === m; }, 'l7G' : function (k, m) { return k !== m; }, 'Q8P' : function (k, m) { return k === m; }, 'J66' : function (k, m) { return k === m; }, 'Q7u' : function (k, m) { return k / m; }, 's3q' : function (k, m) { return k === m; }, 'J2v' : function (k, m) { return k == m; }, 'W6Q' : function (k, m, e) { return k - m - e; }, 'K2J' : function (k, m) { return k * m; }, 'V1A' : function (k, m) { return k !== m; }, 'y0V' : function (k, m) { return k > m; }, 'h2R' : function (k, m) { return k < m; }, 'k56' : function (k, m) { return k === m; }, 'o9u' : function (k, m) { return k !== m; }, 'K4V' : function (k, m) { return k % m; }, 'a5l' : function (k, m) { return k > m; }, 'w9r' : function (k, m) { return k === m; }, 'U0D' : function (k, m) { return k !== m; }, 'c33' : function (k, m) { return k > m; }, 'O1P' : function (k, m) { return k * m; }, 'H8N' : function (k, m) { return k / m; }, 'A7b' : function (k, m) { return k - m; }, 'q0r' : function (k, m) { return k === m; }, 'M7e' : function (k, m) { return k !== m; }, 'o4d' : function (k, m) { return k * m; }, 'W4J' : function (k, m) { return k * m; }, 'r4R' : function (k, m) { return k / m; }, 'y6D' : function (k, m) { return k - m; }, 'U5I' : function (k, m) { return k << m; }, 'q1R' : function (k, m) { return k != m; }, 'l9A' : function (k, m) { return k > m; }, 'S37' : function (k, m) { return k / m; }, 'n0J' : function (k, m) { return k !== m; }, 'Z5l' : function (k, m) { return k | m; }, 'i4v' : function (k, m) { return k * m; }, 'O6v' : function (k, m) { return k / m; }, 'q93' : function (k, m) { return k === m; }, 'g8u' : function (k, m) { return k == m; }, 'Z5w' : function (k, m) { return k === m; }, 'T6o' : function (k, m) { return k < m; }, 'c5G' : function (k, m) { return k !== m; }, 'o4A' : function (k, m) { return k > m; }, 'A3g' : function (k, m, e) { return k / m * e; }, 'e9N' : function (k, m) { return k === m; }, 'l49' : function (k, m) { return k * m; }, 'r5w' : function (k, m) { return k === m; }, 'x1e' : function (k, m) { return k & m; }, 'W6q' : function (k, m) { return k > m; }, 'S13' : function (k, m) { return k | m; }, 'o9R' : function (k, m) { return k <= m; }, 'Q3D' : function (k, m) { return k * m; }, 'M2R' : function (k, m) { return k - m; }, 'q8P' : function (k, m) { return k - m; }, 'b4w' : function (k, m) { return k === m; }, 'A8u' : function (k, m) { return k === m; }, 'k0l' : function (k, m) { return k >= m; }, 'g6R' : function (k, m) { return k - m; }, 'E6w' : function (k, m) { return k < m; }, 'p6e' : function (k, m) { return k - m; }, 'G8R' : function (k, m) { return k / m; }, 'P2u' : function (k, m) { return k > m; }, 'F0w' : function (k, m) { return k === m; }, 'S7l' : function (k, m) { return k > m; }, 'C9v' : function (k, m) { return k > m; }, 'F0l' : function (k, m) { return k >= m; }, 'p03' : function (k, m) { return k - m; }, 'i7q' : function (k, m) { return k - m; }, 'w0G' : function (k, m) { return k / m; }, 'y7P' : function (k, m) { return k != m; }, 'N3l' : function (k, m) { return k * m; }, 'N2D' : function (k, m) { return k > m; }, 'S9u' : function (k, m) { return k !== m; }, 'A04' : function (k, m) { return k !== m; }, 'W1P' : function (k, m) { return k !== m; }, 'j79' : function (k, m) { return k * m; }, 'g2N' : function (k, m) { return k === m; }, 'J8l' : function (k, m) { return k !== m; }, 'x3N' : function (k, m) { return k - m; }, 'd5' : function (k, m) { return k * m; }, 'B7A' : function (k, m) { return k * m; }, 'P97' : function (k, m) { return k < m; }, 'K5V' : function (k, m) { return k === m; }, 'Z5g' : function (k, m) { return k * m; }, 'g5e' : function (k, m) { return k === m; }, 't3r' : function (k, m) { return k !== m; }, 'd6h' : function (k, m) { return k < m; }, 'f5r' : function (k, m, e) { return k * m * e; }, 'Y2R' : function (k, m) { return k * m; }, 'B7G' : function (k, m) { return k / m; }, 'F6I' : function (k, m) { return k !== m; }, 't33' : function (k, m) { return k / m; }, 'Q5L' : function (k, m) { return k instanceof m; }, 'x9u' : function (k, m) { return k <= m; }, 'i73' : function (k, m) { return k > m; }, 'z2Q' : function (k, m) { return k * m; }, 'u2G' : function (k, m) { return k != m; }, 'r6l' : function (k, m) { return k === m; }, 'I7Q' : function (k, m) { return k > m; }, 'n3w' : function (k, m) { return k * m; }, 'N9e' : function (k, m) { return k === m; }, 'G3R' : function (k, m) { return k > m; }, 'j7v' : function (k, m) { return k * m; }, 'Y3v' : function (k, m) { return k == m; }, 'W5' : function (k, m) { return k * m; }, 'U1g' : function (k, m) { return k / m; }, 'm6l' : function (k, m) { return k === m; }, 'E0L' : function (k, m) { return k instanceof m; }, 'A0u' : function (k, m) { return k - m; }, 'w6g' : function (k, m) { return k < m; }, 'z8V' : function (k, m) { return k - m; }, 'v5d' : function (k, m) { return k - m; }, 'T7l' : function (k, m) { return k / m; }, 'F7h' : function (k, m) { return k instanceof m; }, 'M59' : function (k, m) { return k === m; }, 'Z1P' : function (k, m) { return k * m; }, 'o4e' : function (k, m) { return k > m; }, 'v6u' : function (k, m) { return k in m; }, 's3b' : function (k, m) { return k < m; }, 'k5q' : function (k, m) { return k * m; }, 'e9r' : function (k, m) { return k === m; }, 'o9J' : function (k, m) { return k > m; }, 't0A' : function (k, m) { return k < m; }, 'b6e' : function (k, m) { return k > m; }, 'E14' : function (k, m) { return k === m; }, 'Z7o' : function (k, m) { return k === m; }, 'D8u' : function (k, m) { return k == m; }, 't5A' : function (k, m) { return k | m; }, 'k7G' : function (k, m) { return k - m; }, 'y07' : function (k, m) { return k < m; }, 'H3Q' : function (k, m) { return k < m; }, 'e5Q' : function (k, m) { return k === m; }, 'Z7r' : function (k, m) { return k < m; }, 'x4A' : function (k, m) { return k > m; }, 'e6l' : function (k, m) { return k / m; }, 'y7l' : function (k, m) { return k - m; }, 'K2w' : function (k, m) { return k === m; }, 'q4e' : function (k, m) { return k !== m; }, 'r6g' : function (k, m) { return k % m; }, 'h6d' : function (k, m) { return k === m; }, 'A1d' : function (k, m) { return k > m; }, 'J8g' : function (k, m) { return k - m; }, 'p5u' : function (k, m) { return k === m; }, 'w9N' : function (k, m) { return k < m; }, 'H4N' : function (k, m) { return k !== m; }, 'c5L' : function (k, m) { return k * m; }, 'Q3N' : function (k, m) { return k - m; }, 'C6N' : function (k, m) { return k * m; }, 'A5' : function (k, m) { return k - m; }, 'R7o' : function (k, m) { return k === m; }, 's4w' : function (k, m) { return k - m; }, 'J1' : function (k, m) { return k !== m; }, 'g0u' : function (k, m) { return k > m; }, 'E6l' : function (k, m) { return k / m; }, 'U6o' : function (k, m) { return k > m; }, 'A7D' : function (k, m) { return k * m; }, 'r9q' : function (k, m) { return k / m; }, 'y9u' : function (k, m) { return k === m; }, 'Q7g' : function (k, m) { return k * m; }, 't0b' : function (k, m) { return k < m; }, 'h5N' : function (k, m) { return k / m; }, 'p9w' : function (k, m) { return k - m; }, 't44' : function (k, m) { return k * m; }, 'q8r' : function (k, m) { return k >= m; }, 'x3r' : function (k, m) { return k !== m; }, 'A0B' : function (k, m) { return k > m; }, 'X7G' : function (k, m) { return k === m; }, 'e0u' : function (k, m) { return k - m; }, 'n6Q' : function (k, m) { return k / m; }, 'u5v' : function (k, m) { return k < m; }, 's79' : function (k, m) { return k > m; }, 'e2N' : function (k, m) { return k / m; }, 'H5V' : function (k, m) { return k === m; }, 'Q3q' : function (k, m) { return k === m; }, 'o8P' : function (k, m) { return k < m; }, 'v44' : function (k, m) { return k * m; }, 'P6' : function (k, m) { return k * m; }, 'u8L' : function (k, m) { return k !== m; }, 'r2I' : function (k, m) { return k - m; }, 'P0h' : function (k, m) { return k === m; }, 'v3A' : function (k, m) { return k - m; }, 'A8e' : function (k, m) { return k === m; }, 'j1l' : function (k, m) { return k * m; }, 'y1J' : function (k, m) { return k - m; }, 'w5w' : function (k, m) { return k === m; }, 'a5Q' : function (k, m) { return k / m; }, 'e4g' : function (k, m) { return k * m; }, 'u4g' : function (k, m) { return k > m; }, 'F2q' : function (k, m) { return k | m; }, 'X67' : function (k, m) { return k >= m; }, 'F6A' : function (k, m) { return k > m; }, 'F4o' : function (k, m) { return k instanceof m; }, 'V63' : function (k, m) { return k - m; }, 'F67' : function (k, m) { return k - m; }, 'B1u' : function (k, m) { return k in m; }, 'g6V' : function (k, m) { return k > m; }, 't5I' : function (k, m) { return k | m; }, 'e0d' : function (k, m) { return k * m; }, 'j9w' : function (k, m) { return k < m; }, 'M1b' : function (k, m, e) { return k * m * e; }, 'k43' : function (k, m) { return k - m; }, 'c5N' : function (k, m) { return k !== m; }, 'E5v' : function (k, m) { return k in m; }, 'N5B' : function (k, m, e) { return k * m * e; }, 'U6u' : function (k, m) { return k in m; }, 'h2w' : function (k, m) { return k * m; }, 'X7d' : function (k, m) { return k * m; }, 's5L' : function (k, m) { return k * m; }, 'N3R' : function (k, m) { return k === m; }, 'S69' : function (k, m) { return k / m; }, 'T9w' : function (k, m) { return k < m; }, 'n7G' : function (k, m) { return k !== m; }, 'T0q' : function (k, m) { return k < m; }, 'S1J' : function (k, m) { return k == m; }, 'R2h' : function (k, m) { return k === m; }, 'Y3u' : function (k, m) { return k === m; }, 'F7G' : function (k, m) { return k % m; }, 'C0o' : function (k, m) { return k > m; }, 'D3L' : function (k, m) { return k === m; }, 'l9e' : function (k, m) { return k > m; }, 'V64' : function (k, m) { return k < m; }, 'u3e' : function (k, m) { return k <= m; }, 'L7h' : function (k, m) { return k === m; }, 'o0N' : function (k, m) { return k === m; }, 'n0v' : function (k, m) { return k instanceof m; }, 'o0r' : function (k, m) { return k - m; }, 'M0v' : function (k, m) { return k instanceof m; }, 'i5P' : function (k, m) { return k !== m; }, 'R76' : function (k, m) { return k * m; }, 'F8q' : function (k, m) { return k > m; }, 'j0o' : function (k, m) { return k & m; }, 'W8e' : function (k, m) { return k - m; }, 'X49' : function (k, m) { return k < m; }, 'E7V' : function (k, m) { return k << m; }, 'L47' : function (k, m) { return k < m; }, 'T69' : function (k, m) { return k / m; }, 'Q2d' : function (k, m) { return k < m; }, 'L7I' : function (k, m) { return k < m; }, 'W93' : function (k, m) { return k !== m; }, 'o6D' : function (k, m) { return k > m; }, 'L7e' : function (k, m) { return k !== m; }, 'c8B' : function (k, m) { return k === m; }, 'r0e' : function (k, m) { return k >= m; }, 'b27' : function (k, m) { return k === m; }, 'w2L' : function (k, m) { return k * m; }, 'h7w' : function (k, m) { return k < m; }, 'F7u' : function (k, m, e) { return k - m + e; }, 'n9d' : function (k, m) { return k - m; }, 'p6o' : function (k, m, e, o) { return k * m * e / o; }, 'b6u' : function (k, m) { return k == m; }, 'c1d' : function (k, m) { return k < m; }, 'Z5B' : function (k, m) { return k / m; }, 't49' : function (k, m) { return k >= m; }, 'G2g' : function (k, m) { return k * m; }, 'X3B' : function (k, m, e) { return k * m / e; }, 'y6L' : function (k, m) { return k !== m; }, 'f5N' : function (k, m) { return k & m; }, 'U9l' : function (k, m) { return k > m; }, 'V6d' : function (k, m) { return k * m; }, 'c5A' : function (k, m) { return k >>> m; }, 'X9G' : function (k, m) { return k > m; }, 'd8r' : function (k, m) { return k - m; }, 'k9L' : function (k, m) { return k < m; }, 'o33' : function (k, m) { return k < m; }, 'M5r' : function (k, m) { return k < m; }, 'f5q' : function (k, m) { return k % m; }, 'g1P' : function (k, m) { return k * m; }, 'y5g' : function (k, m, e) { return k * m * e; }, 'L7B' : function (k, m) { return k < m; }, 'A0G' : function (k, m) { return k !== m; }, 'L9L' : function (k, m) { return k < m; }, 'b2d' : function (k, m) { return k === m; }, 'm97' : function (k, m) { return k > m; }, 'g6w' : function (k, m) { return k < m; }, 'y1R' : function (k, m) { return k - m; }, 'n43' : function (k, m) { return k * m; }, 'z1' : function (k, m) { return k % m; }, 'O64' : function (k, m) { return k < m; }, 'J6I' : function (k, m) { return k > m; }, 'w99' : function (k, m) { return k === m; }, 'Z6v' : function (k, m) { return k === m; }, 'P2N' : function (k, m) { return k * m; }, 'H7d' : function (k, m) { return k * m; }, 'V7B' : function (k, m) { return k * m; }, 'S16' : function (k, m) { return k <= m; }, 'G1I' : function (k, m) { return k instanceof m; }, 'U8o' : function (k, m) { return k * m; }, 'N1h' : function (k, m) { return k * m; }, 'C1Q' : function (k, m) { return k === m; }, 'I5h' : function (k, m) { return k !== m; }, 'D6v' : function (k, m) { return k * m; }, 's0N' : function (k, m) { return k == m; }, 'x39' : function (k, m) { return k - m; }, 'q14' : function (k, m) { return k > m; }, 's3D' : function (k, m) { return k * m; }, 'O4l' : function (k, m) { return k * m; }, 'W6v' : function (k, m) { return k * m; }, 'Q0r' : function (k, m) { return k | m; }, 'l3u' : function (k, m) { return k !== m; }, 'T7Q' : function (k, m) { return k < m; }, 'P6g' : function (k, m) { return k < m; }, 'R4v' : function (k, m) { return k / m; }, 'D64' : function (k, m) { return k * m; }, 'D5l' : function (k, m) { return k | m; }, 'g9V' : function (k, m) { return k * m; }, 'g1' : function (k, m) { return k * m; }, 'H6r' : function (k, m) { return k !== m; }, 'h6A' : function (k, m) { return k === m; }, 'h8R' : function (k, m) { return k >= m; }, 'M9e' : function (k, m) { return k === m; }, 'n8J' : function (k, m) { return k < m; }, 'W2G' : function (k, m) { return k === m; }, 'j3D' : function (k, m) { return k * m; }, 'c0N' : function (k, m) { return k * m; }, 'z6b' : function (k, m) { return k instanceof m; }, 'J0R' : function (k, m) { return k === m; }, 'f8G' : function (k, m) { return k === m; }, 'C1o' : function (k, m) { return k - m; }, 'X5b' : function (k, m) { return k > m; }, 'd1v' : function (k, m) { return k > m; }, 'z6I' : function (k, m) { return k > m; }, 'e3e' : function (k, m) { return k >= m; }, 'u2L' : function (k, m) { return k * m; }, 'q8o' : function (k, m) { return k !== m; }, 'h4B' : function (k, m) { return k < m; }, 'Q19' : function (k, m, e) { return k / m * e; }, 'I44' : function (k, m) { return k * m; }, 'x5B' : function (k, m, e, o) { return k * m * e / o; }, 'z5N' : function (k, m) { return k >>> m; }, 'v3g' : function (k, m) { return k - m; }, 'X0v' : function (k, m) { return k instanceof m; }, 'b4h' : function (k, m) { return k / m; }, 'o7v' : function (k, m) { return k * m; }, 'O2G' : function (k, m) { return k !== m; }, 'q4A' : function (k, m) { return k * m; }, 'l7L' : function (k, m) { return k / m; }, 'O17' : function (k, m) { return k / m; }, 'O5Q' : function (k, m) { return k < m; }, 'r9N' : function (k, m) { return k === m; }, 'I23' : function (k, m) { return k * m; }, 'D6R' : function (k, m) { return k - m; }, 'X3w' : function (k, m) { return k < m; }, 'z43' : function (k, m) { return k * m; }, 'W7g' : function (k, m) { return k | m; }, 'j39' : function (k, m) { return k - m; }, 'B47' : function (k, m) { return k === m; }, 'v4A' : function (k, m) { return k > m; }, 'L57' : function (k, m) { return k < m; }, 'f6D' : function (k, m) { return k > m; }, 'x4I' : function (k, m) { return k === m; }, 'X59' : function (k, m) { return k in m; }, 'm99' : function (k, m) { return k < m; }, 'e96' : function (k, m) { return k > m; }, 'm6G' : function (k, m) { return k >= m; }, 'g9q' : function (k, m) { return k > m; }, 'k6r' : function (k, m) { return k - m; }, 'a64' : function (k, m) { return k > m; }, 'o4I' : function (k, m) { return k < m; }, 'V4Q' : function (k, m) { return k > m; }, 'S5A' : function (k, m) { return k * m; }, 'S7v' : function (k, m) { return k - m; }, 'U0N' : function (k, m) { return k < m; }, 't59' : function (k, m, e) { return k / m * e; }, 'I0b' : function (k, m) { return k >= m; }, 'S87' : function (k, m) { return k < m; }, 'n7e' : function (k, m) { return k < m; }, 'I3q' : function (k, m) { return k <= m; }, 'k4o' : function (k, m) { return k === m; }, 'd39' : function (k, m) { return k - m; }, 'e1P' : function (k, m) { return k * m; }, 'J7w' : function (k, m) { return k !== m; }, 'x0r' : function (k, m) { return k !== m; }, 'x5L' : function (k, m) { return k !== m; }, 'f3A' : function (k, m) { return k - m; }, 'y44' : function (k, m) { return k * m; }, 'x63' : function (k, m) { return k >= m; }, 'R5g' : function (k, m) { return k * m; }, 'Y2w' : function (k, m) { return k === m; }, 'C1l' : function (k, m) { return k / m; }, 'o7R' : function (k, m) { return k / m; }, 'S2o' : function (k, m) { return k < m; }, 'g9A' : function (k, m) { return k / m; }, 'A1A' : function (k, m) { return k < m; }, 'm2u' : function (k, m) { return k !== m; }, 'w0I' : function (k, m) { return k / m; }, 'A2N' : function (k, m) { return k / m; }, 'E3L' : function (k, m) { return k / m; }, 'R6' : function (k, m) { return k * m; }, 'D9q' : function (k, m) { return k * m; }, 'R19' : function (k, m) { return k - m; }, 'g5w' : function (k, m) { return k * m; }, 'v3N' : function (k, m) { return k - m; }, 'I1D' : function (k, m) { return k * m; }, 'U5L' : function (k, m) { return k !== m; }, 'm89' : function (k, m) { return k > m; }, 'p7Q' : function (k, m) { return k === m; }, 'T1l' : function (k, m) { return k | m; }, 'K1u' : function (k, m) { return k === m; }, 'Z4v' : function (k, m) { return k === m; }, 'e6q' : function (k, m) { return k !== m; }, 't5u' : function (k, m) { return k > m; }, 'e5v' : function (k, m) { return k in m; }, 'I33' : function (k, m) { return k > m; }, 'O0B' : function (k, m) { return k > m; }, 'W4u' : function (k, m) { return k - m; }, 'z1h' : function (k, m) { return k !== m; }, 'X8G' : function (k, m) { return k === m; }, 'C5L' : function (k, m) { return k !== m; }, 'N6' : function (k, m) { return k * m; }, 'o26' : function (k, m) { return k < m; }, 'a0L' : function (k, m) { return k == m; }, 't1q' : function (k, m) { return k / m; }, 'C4I' : function (k, m) { return k === m; }, 'F5r' : function (k, m) { return k !== m; }, 'b06' : function (k, m) { return k === m; }, 'B3J' : function (k, m) { return k > m; }, 'U6h' : function (k, m) { return k / m; }, 'u6v' : function (k, m) { return k * m; }, 'S1b' : function (k, m) { return k * m; }, 'g19' : function (k, m) { return k | m; }, 'q7l' : function (k, m) { return k > m; }, 'L6A' : function (k, m) { return k > m; }, 's86' : function (k, m) { return k === m; }, 'Q07' : function (k, m) { return k - m; }, 's0V' : function (k, m) { return k - m; }, 'S8A' : function (k, m) { return k - m; }, 'R0d' : function (k, m) { return k * m; }, 'c7P' : function (k, m) { return k * m; }, 'F0P' : function (k, m) { return k > m; }, 'Q1v' : function (k, m) { return k === m; }, 'l4N' : function (k, m) { return k != m; }, 'x2b' : function (k, m, e) { return k * m / e; }, 'T0b' : function (k, m) { return k !== m; }, 'l7e' : function (k, m) { return k !== m; }, 's0q' : function (k, m) { return k - m; }, 'X4o' : function (k, m) { return k == m; }, 'W5R' : function (k, m) { return k >= m; }, 'n3g' : function (k, m, e) { return k / m * e; }, 'F5N' : function (k, m) { return k >>> m; }, 'I9l' : function (k, m) { return k > m; }, 'v5u' : function (k, m) { return k !== m; }, 'z7I' : function (k, m) { return k / m; }, 'y1B' : function (k, m) { return k - m; }, 'r2e' : function (k, m) { return k & m; }, 's6u' : function (k, m) { return k == m; }, 'I36' : function (k, m) { return k * m; }, 'T63' : function (k, m) { return k * m; }, 'u4J' : function (k, m) { return k < m; }, 'J8V' : function (k, m) { return k - m; }, 'h1D' : function (k, m) { return k * m; }, 'p1R' : function (k, m) { return k - m; }, 'X0R' : function (k, m) { return k * m; }, 'h6r' : function (k, m) { return k !== m; }, 'x0V' : function (k, m) { return k * m; }, 'l1D' : function (k, m) { return k * m; }, 'T1R' : function (k, m) { return k === m; }, 'K46' : function (k, m) { return k - m; }, 'U1R' : function (k, m) { return k * m; }, 'y2o' : function (k, m) { return k <= m; }, 'Y4V' : function (k, m) { return k * m; }, 'w9P' : function (k, m) { return k * m; }, 'N7I' : function (k, m) { return k !== m; }, 'l4P' : function (k, m, e, o) { return k * m * e * o; }, 'A2A' : function (k, m, e) { return k - m + e; }, 'T1Q' : function (k, m) { return k === m; }, 'c39' : function (k, m) { return k / m; }, 'n7I' : function (k, m) { return k % m; }, 'x07' : function (k, m) { return k < m; }, 'C3A' : function (k, m) { return k * m; }, 'V9N' : function (k, m) { return k >>> m; }, 'R04' : function (k, m) { return k === m; }, 'V2B' : function (k, m, e) { return k * m * e; }, 'Z8D' : function (k, m) { return k <= m; }, 'g8e' : function (k, m) { return k / m; }, 'a3G' : function (k, m) { return k == m; }, 'e1V' : function (k, m) { return k * m; }, 'M7L' : function (k, m) { return k * m; }, 'F1L' : function (k, m) { return k - m; }, 'E7D' : function (k, m) { return k * m; }, 'V53' : function (k, m) { return k !== m; }, 'x3w' : function (k, m, e) { return k * m * e; }, 'S0b' : function (k, m) { return k >= m; }, 'm73' : function (k, m) { return k - m; }, 'F1I' : function (k, m) { return k > m; }, 'o3N' : function (k, m) { return k - m; }, 'I0V' : function (k, m) { return k === m; }, 'M8R' : function (k, m) { return k >= m; }, 'J8N' : function (k, m) { return k >= m; }, 'N6V' : function (k, m, e) { return k * m / e; }, 'e6G' : function (k, m) { return k > m; }, 'y1l' : function (k, m) { return k / m; }, 'l2w' : function (k, m) { return k > m; }, 'x6D' : function (k, m, e) { return k * m * e; }, 'W76' : function (k, m) { return k >= m; }, 'p87' : function (k, m) { return k / m; }, 'P8D' : function (k, m) { return k > m; }, 'H4o' : function (k, m) { return k instanceof m; }, 'j06' : function (k, m) { return k !== m; }, 'd8A' : function (k, m) { return k < m; }, 'V6q' : function (k, m) { return k > m; }, 'm5P' : function (k, m) { return k - m; }, 'b1B' : function (k, m) { return k * m; }, 'p39' : function (k, m) { return k === m; }, 'h9d' : function (k, m) { return k !== m; }, 'w89' : function (k, m) { return k === m; }, 'X7h' : function (k, m) { return k === m; }, 'a2A' : function (k, m) { return k * m; }, 'q1e' : function (k, m) { return k & m; }, 'H57' : function (k, m) { return k < m; }, 'c7v' : function (k, m) { return k === m; }, 'Z9D' : function (k, m) { return k * m; }, 'r9o' : function (k, m) { return k == m; }, 'i4l' : function (k, m) { return k === m; }, 'l6A' : function (k, m) { return k === m; }, 'K7G' : function (k, m) { return k >= m; }, 'e6g' : function (k, m) { return k * m; }, 'D1V' : function (k, m) { return k < m; }, 'j93' : function (k, m) { return k === m; }, 'd63' : function (k, m, e) { return k / m / e; }, 'w4u' : function (k, m) { return k / m; }, 'I4e' : function (k, m) { return k !== m; }, 't13' : function (k, m) { return k * m; }, 'B43' : function (k, m) { return k > m; }, 't8Q' : function (k, m) { return k >= m; }, 'U5e' : function (k, m) { return k > m; }, 's94' : function (k, m) { return k < m; }, 'H9L' : function (k, m) { return k < m; }, 's24' : function (k, m) { return k - m; }, 'A6v' : function (k, m) { return k > m; }, 'a53' : function (k, m) { return k - m; }, 'R9V' : function (k, m) { return k >= m; }, 'h9h' : function (k, m) { return k * m; }, 'p0N' : function (k, m) { return k === m; }, 'n5r' : function (k, m) { return k !== m; }, 'W19' : function (k, m) { return k | m; }, 'c0q' : function (k, m) { return k > m; }, 'x4e' : function (k, m) { return k > m; }, 'y27' : function (k, m) { return k / m; }, 'm6v' : function (k, m) { return k < m; }, 'L83' : function (k, m) { return k - m; }, 'n1L' : function (k, m) { return k / m; }, 'd7u' : function (k, m) { return k <= m; }, 'x2V' : function (k, m) { return k !== m; }, 'q0A' : function (k, m) { return k > m; }, 'd3D' : function (k, m) { return k * m; }, 'D7q' : function (k, m) { return k > m; }, 'y0g' : function (k, m) { return k - m; }, 'Y56' : function (k, m) { return k === m; }, 'W9q' : function (k, m) { return k === m; }, 'i7D' : function (k, m) { return k > m; }, 's1g' : function (k, m) { return k - m; }, 'L4B' : function (k, m) { return k === m; }, 'm3d' : function (k, m) { return k === m; }, 'o7P' : function (k, m) { return k < m; }, 'e7r' : function (k, m) { return k !== m; }, 'b5' : function (k, m) { return k * m; }, 'j8B' : function (k, m) { return k * m; }, 'j6h' : function (k, m) { return k - m; }, 'R7q' : function (k, m) { return k != m; }, 'v8Q' : function (k, m) { return k >= m; }, 'K7I' : function (k, m) { return k - m; }, 'w2' : function (k, m) { return k <= m; }, 'n2b' : function (k, m) { return k / m; }, 'e0G' : function (k, m) { return k < m; }, 't6Q' : function (k, m) { return k - m; }, 'm7D' : function (k, m) { return k * m; }, 'z2l' : function (k, m) { return k / m; }, 'Q8e' : function (k, m) { return k / m; }, 'Z3L' : function (k, m) { return k > m; }, 'y3B' : function (k, m, e, o, n, u) { return k * m * e * o * n * u; }, 'F8J' : function (k, m) { return k < m; }, 'r5J' : function (k, m) { return k - m; }, 'L2l' : function (k, m) { return k / m; }, 'C1w' : function (k, m) { return k === m; }, 'n2Q' : function (k, m) { return k / m; }, 'F8G' : function (k, m) { return k < m; }, 'v8D' : function (k, m) { return k <= m; }, 'w14' : function (k, m) { return k > m; }, 'V6V' : function (k, m) { return k < m; }, 'o44' : function (k, m) { return k * m; }, 'u8u' : function (k, m) { return k == m; }, 't8D' : function (k, m) { return k * m; }, 'O6g' : function (k, m) { return k - m; }, 'y0b' : function (k, m) { return k === m; }, 'f8v' : function (k, m) { return k >= m; }, 'M1N' : function (k, m) { return k === m; }, 'w7V' : function (k, m) { return k << m; }, 'q5' : function (k, m) { return k * m; }, 'f9' : function (k, m) { return k * m; }, 'n6P' : function (k, m) { return k > m; }, 'u7D' : function (k, m) { return k > m; }, 'z8J' : function (k, m) { return k >= m; }, 'I16' : function (k, m) { return k >= m; }, 'W3G' : function (k, m) { return k >= m; }, 'W5g' : function (k, m, e) { return k * m * e; }, 'i9b' : function (k, m) { return k >= m; }, 'R3h' : function (k, m) { return k - m; }, 'L7G' : function (k, m) { return k - m; }, 'a1B' : function (k, m, e) { return k * m * e; }, 'V6' : function (k, m) { return k * m; }, 'e3G' : function (k, m) { return k === m; }, 'c0g' : function (k, m) { return k / m; }, 'r9r' : function (k, m) { return k !== m; }, 'V7o' : function (k, m) { return k === m; }, 'c5I' : function (k, m) { return k < m; }, 'l4D' : function (k, m) { return k / m; }, 'K9' : function (k, m) { return k * m; }, 'V5Q' : function (k, m) { return k >= m; }, 's9w' : function (k, m) { return k === m; }, 'w04' : function (k, m) { return k < m; }, 'G5D' : function (k, m) { return k * m; }, 'M9' : function (k, m) { return k * m; }, 'E0I' : function (k, m) { return k / m; }, 'D4u' : function (k, m) { return k - m; }, 'O6d' : function (k, m) { return k / m; }, 'y2A' : function (k, m) { return k < m; }, 'Q3g' : function (k, m, e) { return k / m * e; }, 'y13' : function (k, m) { return k * m; }, 'i0u' : function (k, m) { return k / m; }, 'c4e' : function (k, m) { return k > m; }, 'm64' : function (k, m) { return k > m; }, 'd3b' : function (k, m) { return k - m; }, 's3V' : function (k, m) { return k - m; }, 'g4Q' : function (k, m) { return k > m; }, 'f0v' : function (k, m) { return k === m; }, 'X8l' : function (k, m) { return k >= m; }, 't9w' : function (k, m) { return k > m; }, 'd0D' : function (k, m) { return k * m; }, 'Z9q' : function (k, m) { return k * m; }, 'L9d' : function (k, m) { return k !== m; }, 'v07' : function (k, m) { return k > m; }, 'Z7D' : function (k, m) { return k > m; }, 'C7v' : function (k, m) { return k - m; }, 'y5d' : function (k, m, e) { return k * m * e; }, 'z6r' : function (k, m) { return k - m; }, 'a2I' : function (k, m) { return k === m; }, 'q33' : function (k, m) { return k * m; }, 'G84' : function (k, m) { return k > m; }, 'x2A' : function (k, m) { return k^m; }, 'b26' : function (k, m) { return k <= m; }, 'j0b' : function (k, m) { return k instanceof m; }, 'j1Q' : function (k, m) { return k === m; }, 'D1P' : function (k, m) { return k * m; }, 'r7o' : function (k, m) { return k >>> m; }, 'Y2J' : function (k, m) { return k * m; }, 'Y67' : function (k, m) { return k - m; }, 'l8w' : function (k, m) { return k !== m; }, 'v6B' : function (k, m) { return k < m; }, 'O6w' : function (k, m) { return k < m; }, 'F5d' : function (k, m) { return k * m; }, 'U16' : function (k, m) { return k * m; }, 'R77' : function (k, m) { return k === m; }, 'B2v' : function (k, m) { return k === m; }, 'i2N' : function (k, m) { return k !== m; }, 'z5V' : function (k, m) { return k === m; }, 'j4L' : function (k, m) { return k >= m; }, 'Z5D' : function (k, m) { return k >= m; }, 'V9r' : function (k, m) { return k !== m; }, 'v2V' : function (k, m) { return k * m; }, 'v4L' : function (k, m) { return k - m; }, 'I8r' : function (k, m) { return k instanceof m; }, 'X09' : function (k, m) { return k * m; }, 'E89' : function (k, m) { return k < m; }, 'C27' : function (k, m) { return k === m; }, 'Y57' : function (k, m) { return k * m; }, 'X13' : function (k, m) { return k * m; }, 'X3v' : function (k, m) { return k < m; }, 'J83' : function (k, m) { return k - m; }, 'f9B' : function (k, m) { return k < m; }, 'D17' : function (k, m) { return k - m; }, 'W89' : function (k, m) { return k !== m; }, 'd37' : function (k, m) { return k >= m; }, 'f56' : function (k, m) { return k * m; }, 'g0h' : function (k, m) { return k === m; }, 'a2B' : function (k, m, e, o) { return k * m * e / o; }, 'h8J' : function (k, m) { return k < m; }, 'C07' : function (k, m) { return k < m; }, 'E7q' : function (k, m) { return k != m; }, 'G8d' : function (k, m) { return k !== m; }, 'z9G' : function (k, m) { return k === m; }, 'Q39' : function (k, m) { return k / m; }, 'O8' : function (k, m) { return k !== m; }, 'y16' : function (k, m) { return k === m; }, 'w6q' : function (k, m) { return k | m; }, 'B1o' : function (k, m) { return k === m; }, 'M7B' : function (k, m) { return k * m; }, 'Y3Q' : function (k, m) { return k < m; }, 'i0h' : function (k, m) { return k > m; }, 'U63' : function (k, m) { return k * m; }, 'q6L' : function (k, m) { return k - m; }, 'M6r' : function (k, m) { return k instanceof m; }, 'J8v' : function (k, m) { return k - m; }, 'Q9v' : function (k, m) { return k in m; }, 'e1b' : function (k, m, e) { return k * m * e; }, 'N5V' : function (k, m) { return k !== m; }, 'i77' : function (k, m) { return k > m; }, 'c06' : function (k, m) { return k < m; }, 'B2J' : function (k, m) { return k * m; }, 'x2d' : function (k, m) { return k < m; }, 'y5h' : function (k, m) { return k === m; }, 't07' : function (k, m) { return k === m; }, 'd9l' : function (k, m) { return k > m; }, 'P2G' : function (k, m) { return k == m; }, 'G9B' : function (k, m) { return k * m; }, 'E0h' : function (k, m) { return k > m; }, 'y0D' : function (k, m) { return k * m; }, 'O2B' : function (k, m) { return k > m; }, 'i5J' : function (k, m) { return k - m; }, 's8I' : function (k, m) { return k > m; }, 'Z34' : function (k, m) { return k - m; }, 'Y47' : function (k, m) { return k >= m; }, 'K1I' : function (k, m) { return k > m; }, 'j0r' : function (k, m) { return k === m; }, 'W2u' : function (k, m) { return k === m; }, 'u9N' : function (k, m) { return k === m; }, 'c1J' : function (k, m) { return k - m; }, 'r5D' : function (k, m) { return k instanceof m; }, 'u5e' : function (k, m) { return k === m; }, 'P34' : function (k, m) { return k - m; }, 'S63' : function (k, m) { return k * m; }, 'X7I' : function (k, m) { return k - m; }, 'C8o' : function (k, m) { return k !== m; }, 'X6D' : function (k, m) { return k <= m; }, 'm5w' : function (k, m) { return k === m; }, 'o1d' : function (k, m) { return k > m; }, 'x6B' : function (k, m) { return k > m; }, 'L5q' : function (k, m) { return k !== m; }, 'q8e' : function (k, m) { return k > m; }, 'R2u' : function (k, m) { return k - m; }, 'Y7A' : function (k, m) { return k * m; }, 'o8b' : function (k, m) { return k != m; }, 'O34' : function (k, m) { return k / m; }, 'I9w' : function (k, m) { return k < m; }, 'y4e' : function (k, m) { return k >= m; }, 'h7u' : function (k, m) { return k - m; }, 'U8b' : function (k, m) { return k * m; }, 'd1J' : function (k, m) { return k * m; }, 'G09' : function (k, m) { return k * m; }, 'z2q' : function (k, m) { return k / m; }, 'y9Q' : function (k, m) { return k / m; }, 'R73' : function (k, m) { return k - m; }, 'v9Q' : function (k, m) { return k / m; }, 'y9l' : function (k, m) { return k > m; }, 'x7P' : function (k, m) { return k === m; }, 'u0h' : function (k, m) { return k instanceof m; }, 'Z6l' : function (k, m) { return k | m; }, 'i3G' : function (k, m) { return k > m; }, 'Z2G' : function (k, m) { return k === m; }, 'j16' : function (k, m) { return k === m; }, 'S1w' : function (k, m) { return k === m; }, 'F2R' : function (k, m) { return k - m; }, 'A7g' : function (k, m) { return k << m; }, 'H8d' : function (k, m) { return k !== m; }, 'k9B' : function (k, m) { return k === m; }, 't1B' : function (k, m) { return k - m; }, 'Z0I' : function (k, m) { return k - m; }, 'U0r' : function (k, m) { return k >= m; }, 'G4V' : function (k, m) { return k > m; }, 'v1o' : function (k, m, e, o) { return k * m * e / o; }, 'O0d' : function (k, m) { return k >= m; }, 'm17' : function (k, m) { return k / m; }, 'a93' : function (k, m) { return k !== m; }, 'k7L' : function (k, m) { return k | m; }, 'b0r' : function (k, m) { return k === m; }, 'Q8o' : function (k, m) { return k > m; }, 'G6' : function (k, m) { return k * m; }, 'j9P' : function (k, m) { return k * m; }, 'Z5Q' : function (k, m) { return k | m; }, 'G8v' : function (k, m) { return k * m; }, 'f2l' : function (k, m) { return k <= m; }, 'L6b' : function (k, m) { return k instanceof m; }, 'O0G' : function (k, m) { return k / m; }, 'T5h' : function (k, m) { return k instanceof m; }, 'b37' : function (k, m) { return k === m; }, 'i7u' : function (k, m) { return k - m; }, 'f0P' : function (k, m) { return k >= m; }, 'r8u' : function (k, m) { return k === m; }, 't1v' : function (k, m) { return k === m; }, 't2b' : function (k, m) { return k > m; }, 'x1B' : function (k, m) { return k >= m; }, 'v1J' : function (k, m) { return k * m; }, 'S6L' : function (k, m) { return k > m; }, 'G3J' : function (k, m) { return k > m; }, 'G0l' : function (k, m) { return k <= m; }, 'm6g' : function (k, m) { return k * m; }, 'O3g' : function (k, m, e) { return k / m * e; }, 'B7w' : function (k, m) { return k < m; }, 'E77' : function (k, m) { return k > m; }, 'p27' : function (k, m) { return k === m; }, 'M1u' : function (k, m) { return k instanceof m; }, 'k6V' : function (k, m) { return k / m; }, 'F6b' : function (k, m) { return k * m; }, 'N6A' : function (k, m) { return k < m; }, 'P5P' : function (k, m) { return k === m; }, 'V2h' : function (k, m) { return k === m; }, 's29' : function (k, m) { return k === m; }, 'a8B' : function (k, m) { return k < m; }, 'd4G' : function (k, m) { return k > m; }, 'R0B' : function (k, m) { return k === m; }, 'j1J' : function (k, m) { return k * m; }, 'x8A' : function (k, m) { return k < m; }, 'Q7l' : function (k, m) { return k * m; }, 'J9G' : function (k, m) { return k !== m; }, 'e5P' : function (k, m) { return k * m; }, 'b1l' : function (k, m) { return k * m; }, 'r4J' : function (k, m) { return k * m; }, 'h0w' : function (k, m) { return k > m; }, 'K59' : function (k, m) { return k * m; }, 'Y9L' : function (k, m) { return k === m; }, 'h3v' : function (k, m) { return k - m; }, 'R5w' : function (k, m) { return k === m; }, 'r3d' : function (k, m) { return k !== m; }, 'B3Q' : function (k, m) { return k < m; }, 'e2' : function (k, m) { return k >= m; }, 'U06' : function (k, m) { return k > m; }, 'k8l' : function (k, m) { return k !== m; }, 'g7o' : function (k, m) { return k / m; }, 'u8B' : function (k, m) { return k - m; }, 'n2R' : function (k, m) { return k > m; }, 'W66' : function (k, m) { return k === m; }, 'h3J' : function (k, m) { return k < m; }, 'h4r' : function (k, m) { return k === m; }, 'Y4A' : function (k, m) { return k * m; }, 'E8u' : function (k, m) { return k == m; }, 'a4u' : function (k, m) { return k / m; }, 'W6J' : function (k, m) { return k % m; }, 'p2A' : function (k, m) { return k^m; }, 'n7d' : function (k, m) { return k - m; }, 'k8v' : function (k, m) { return k / m; }, 'J1L' : function (k, m) { return k * m; }, 'Q2V' : function (k, m) { return k === m; }, 'l1L' : function (k, m) { return k % m; }, 't7P' : function (k, m) { return k * m; }, 'A3w' : function (k, m) { return k < m; }, 'y4L' : function (k, m) { return k - m; }, 'J2B' : function (k, m) { return k * m; }, 'q1g' : function (k, m) { return k > m; }, 'w9V' : function (k, m) { return k * m; }, 'u3L' : function (k, m) { return k !== m; }, 'Q0o' : function (k, m) { return k & m; }, 'X6r' : function (k, m) { return k !== m; }, 'H8g' : function (k, m) { return k - m; }, 'n56' : function (k, m) { return k !== m; }, 'b9J' : function (k, m) { return k === m; }, 'a8L' : function (k, m) { return k * m; }, 'H6I' : function (k, m) { return k > m; }, 'H2v' : function (k, m) { return k == m; }, 'i2u' : function (k, m) { return k === m; }, 'K9d' : function (k, m) { return k !== m; }, 'E1P' : function (k, m) { return k * m; }, 'f5V' : function (k, m) { return k === m; }, 'l0v' : function (k, m) { return k !== m; }, 'o8o' : function (k, m) { return k - m; }, 'O9' : function (k, m, e) { return k * m * e; }, 'c1Q' : function (k, m) { return k - m; }, 'g3h' : function (k, m) { return k < m; }, 'R0h' : function (k, m) { return k > m; }, 'z6' : function (k, m) { return k * m; }, 'U6N' : function (k, m) { return k * m; }, 'v3P' : function (k, m) { return k === m; }, 'y63' : function (k, m) { return k << m; }, 't6h' : function (k, m) { return k / m; }, 'c1g' : function (k, m) { return k === m; }, 'q36' : function (k, m) { return k < m; }, 'w4P' : function (k, m) { return k >= m; }, 'F1N' : function (k, m) { return k > m; }, 'p37' : function (k, m) { return k < m; }, 'R54' : function (k, m) { return k - m; }, 'g1r' : function (k, m) { return k / m; }, 'D8h' : function (k, m) { return k === m; }, 'i9o' : function (k, m) { return k == m; }, 'r7V' : function (k, m) { return k - m; }, 'F6d' : function (k, m) { return k === m; }, 'C3P' : function (k, m) { return k * m; }, 'H67' : function (k, m) { return k - m; }, 'g0G' : function (k, m) { return k === m; }, 'H5r' : function (k, m) { return k !== m; }, 'a2h' : function (k, m) { return k > m; }, 'G6I' : function (k, m) { return k < m; }, 'I4L' : function (k, m) { return k === m; }, 'd0o' : function (k, m) { return k >>> m; }, 'o4L' : function (k, m) { return k >= m; }, 'B9B' : function (k, m) { return k * m; }, 'a1A' : function (k, m) { return k > m; }, 'L46' : function (k, m) { return k * m; }, 'B1D' : function (k, m) { return k > m; }, 'L4N' : function (k, m) { return k >= m; }, 'j5h' : function (k, m) { return k !== m; }, 'l8l' : function (k, m) { return k - m; }, 'q63' : function (k, m) { return k * m; }, 'l0Q' : function (k, m) { return k > m; }, 'o3w' : function (k, m) { return k * m; }, 'Z4u' : function (k, m) { return k < m; }, 'h9B' : function (k, m) { return k < m; }, 'D5D' : function (k, m) { return k >>> m; }, 'v5A' : function (k, m) { return k * m; }, 'x7v' : function (k, m) { return k * m; }, 'h1u' : function (k, m) { return k > m; }, 'J4N' : function (k, m) { return k !== m; }, 'T3o' : function (k, m) { return k * m; }, 'a2L' : function (k, m) { return k !== m; }, 'k47' : function (k, m) { return k > m; }, 'Q9R' : function (k, m) { return k > m; }, 'w4J' : function (k, m) { return k * m; }, 'x9w' : function (k, m) { return k - m; }, 'M3Q' : function (k, m) { return k > m; }, 'K7h' : function (k, m) { return k > m; }, 'q4w' : function (k, m) { return k < m; }, 'J7h' : function (k, m) { return k - m; }, 'f2Q' : function (k, m) { return k / m; }, 'o9Q' : function (k, m) { return k / m; }, 'q0g' : function (k, m) { return k | m; }, 'X74' : function (k, m) { return k > m; }, 'F7e' : function (k, m) { return k !== m; }, 'A7o' : function (k, m) { return k & m; }, 'S4I' : function (k, m) { return k | m; }, 'w5R' : function (k, m) { return k < m; }, 'U4I' : function (k, m) { return k >= m; }, 'Y4N' : function (k, m) { return k * m; }, 'Y46' : function (k, m) { return k - m; }, 'k5b' : function (k, m) { return k - m; }, 'F9L' : function (k, m) { return k !== m; }, 'J5N' : function (k, m) { return k >>> m; }, 't1g' : function (k, m) { return k > m; }, 'Z0L' : function (k, m) { return k !== m; }, 'W97' : function (k, m) { return k / m; }, 'a6l' : function (k, m) { return k === m; }, 'm5J' : function (k, m) { return k - m; }, 'o0A' : function (k, m) { return k > m; }, 'g8B' : function (k, m) { return k > m; }, 'H4b' : function (k, m) { return k / m; }, 'G5r' : function (k, m) { return k !== m; }, 'b5L' : function (k, m) { return k !== m; }, 'y8I' : function (k, m) { return k !== m; }, 'C33' : function (k, m) { return k > m; }, 'U1J' : function (k, m) { return k / m; }, 'y5u' : function (k, m) { return k === m; }, 's3P' : function (k, m) { return k !== m; }, 'j9u' : function (k, m) { return k != m; }, 'H7w' : function (k, m) { return k > m; }, 'Q5e' : function (k, m) { return k & m; }, 'I5u' : function (k, m) { return k === m; }, 'A5v' : function (k, m) { return k in m; }, 'L1u' : function (k, m) { return k < m; }, 'r04' : function (k, m) { return k > m; }, 'N2r' : function (k, m) { return k === m; }, 'N8R' : function (k, m) { return k / m; }, 'A5B' : function (k, m) { return k === m; }, 'D6V' : function (k, m) { return k * m; }, 'D6J' : function (k, m) { return k - m; }, 'h7B' : function (k, m) { return k >= m; }, 'U87' : function (k, m) { return k >= m; }, 'R1V' : function (k, m) { return k - m; }, 'f3B' : function (k, m) { return k === m; }, 'N67' : function (k, m) { return k * m; }, 'a8u' : function (k, m) { return k == m; }, 'l0R' : function (k, m) { return k * m; }, 'x3q' : function (k, m) { return k === m; }, 'F59' : function (k, m) { return k === m; }, 'g3G' : function (k, m) { return k === m; }, 'l8g' : function (k, m) { return k * m; }, 'B1L' : function (k, m) { return k % m; }, 'z8' : function (k, m) { return k | m; }, 'G74' : function (k, m) { return k !== m; }, 'w97' : function (k, m) { return k > m; }, 'k3R' : function (k, m) { return k !== m; }, 'P2e' : function (k, m) { return k >> m; }, 'T0r' : function (k, m) { return k !== m; }, 'u8Q' : function (k, m) { return k !== m; }, 'G8g' : function (k, m) { return k > m; }, 'i5l' : function (k, m) { return k - m; }, 'D2u' : function (k, m) { return k >= m; }, 'N8l' : function (k, m) { return k - m; }, 'S9Q' : function (k, m) { return k - m; }, 'T8A' : function (k, m) { return k >= m; }, 'e2P' : function (k, m, e) { return k % m / e; }, 'n4N' : function (k, m) { return k / m; }, 'U8P' : function (k, m) { return k > m; }, 'L9B' : function (k, m) { return k - m; }, 'J4D' : function (k, m) { return k > m; }, 'D7N' : function (k, m) { return k === m; }, 'Y7e' : function (k, m) { return k < m; }, 's87' : function (k, m) { return k * m; }, 'z1N' : function (k, m) { return k / m; }, 'D9N' : function (k, m) { return k >>> m; }, 'H1' : function (k, m) { return k * m; }, 'e9V' : function (k, m) { return k * m; }, 'i5g' : function (k, m) { return k * m; }, 'D5B' : function (k, m) { return k > m; }, 't1R' : function (k, m) { return k - m; }, 'U0o' : function (k, m, e) { return k * m / e; }, 'E1d' : function (k, m, e) { return k / m * e; }, 'J1h' : function (k, m) { return k > m; }, 'j5d' : function (k, m, e) { return k * m * e; }, 'u4l' : function (k, m) { return k === m; }, 'D5J' : function (k, m) { return k == m; }, 'G7u' : function (k, m) { return k > m; }, 'K9I' : function (k, m) { return k | m; }, 'z6d' : function (k, m) { return k / m; }, 'U44' : function (k, m) { return k * m; }, 'j8b' : function (k, m) { return k > m; }, 'B6A' : function (k, m) { return k > m; }, 'k4b' : function (k, m) { return k % m; }, 'W1A' : function (k, m) { return k < m; }, 'E2u' : function (k, m) { return k !== m; }, 'U3b' : function (k, m) { return k / m; }, 'w3d' : function (k, m) { return k * m; }, 'X2J' : function (k, m) { return k * m; }, 'D0I' : function (k, m) { return k - m; }, 'c3o' : function (k, m) { return k !== m; }, 'J8R' : function (k, m) { return k / m; }, 'u5D' : function (k, m) { return k == m; }, 'B4A' : function (k, m) { return k === m; }, 'q2V' : function (k, m) { return k >= m; }, 'm77' : function (k, m) { return k - m; }, 'G7I' : function (k, m) { return k !== m; }, 't1w' : function (k, m) { return k >= m; }, 'V96' : function (k, m) { return k === m; }, 'f9I' : function (k, m) { return k >= m; }, 'e6w' : function (k, m) { return k !== m; }, 'v9' : function (k, m) { return k * m; }, 'd36' : function (k, m) { return k < m; }, 't9' : function (k, m) { return k != m; }, 'L09' : function (k, m) { return k * m; }, 'c0r' : function (k, m) { return k | m; }, 'w73' : function (k, m) { return k / m; }, 'F5o' : function (k, m) { return k > m; }, 'k3Q' : function (k, m) { return k > m; }, 'N1' : function (k, m) { return k < m; }, 'v33' : function (k, m) { return k > m; }, 'd8I' : function (k, m) { return k >= m; }, 'T3V' : function (k, m) { return k * m; }, 'C1B' : function (k, m) { return k * m; }, 'e24' : function (k, m, e) { return k - m + e; }, 'U6L' : function (k, m) { return k !== m; }, 'L3u' : function (k, m) { return k > m; }, 's9R' : function (k, m) { return k >= m; }, 'H5b' : function (k, m) { return k - m; }, 'z2g' : function (k, m, e) { return k * m * e; }, 'U36' : function (k, m) { return k - m; }, 'M8V' : function (k, m) { return k / m; }, 'p9l' : function (k, m) { return k > m; }, 'O9b' : function (k, m) { return k !== m; }, 'u9r' : function (k, m) { return k !== m; }, 'b0q' : function (k, m) { return k - m; }, 'i2g' : function (k, m, e) { return k * m * e; }, 'A5l' : function (k, m) { return k <= m; }, 'l8v' : function (k, m) { return k - m; }, 'p5I' : function (k, m) { return k !== m; }, 'n6r' : function (k, m) { return k instanceof m; }, 'N7e' : function (k, m) { return k >= m; }, 'e8L' : function (k, m) { return k === m; }, 'j4h' : function (k, m) { return k / m; }, 'Y74' : function (k, m) { return k / m; }, 'Y6I' : function (k, m) { return k !== m; }, 'R8' : function (k, m) { return k * m; }, 'p0A' : function (k, m) { return k === m; }, 'z8l' : function (k, m) { return k > m; }, 'p8b' : function (k, m) { return k * m; }, 'y6u' : function (k, m) { return k > m; }, 'J67' : function (k, m) { return k >= m; }, 'h4V' : function (k, m) { return k === m; }, 'B1' : function (k, m) { return k * m; }, 's4P' : function (k, m) { return k * m; }, 'r7b' : function (k, m) { return k === m; }, 'n3v' : function (k, m) { return k > m; }, 'b0D' : function (k, m) { return k * m; }, 'T4L' : function (k, m) { return k - m; }, 'k0R' : function (k, m) { return k * m; }, 'D5r' : function (k, m) { return k * m; }, 'J7d' : function (k, m) { return k - m; }, 'Q2P' : function (k, m) { return k !== m; }, 'M0l' : function (k, m) { return k - m; }, 'Z73' : function (k, m) { return k * m; }, 'V0e' : function (k, m) { return k !== m; }, 'i2h' : function (k, m) { return k !== m; }, 'y3D' : function (k, m) { return k / m; }, 'Y6P' : function (k, m) { return k > m; }, 'd3o' : function (k, m) { return k > m; }, 'A9D' : function (k, m) { return k * m; }, 'Z7N' : function (k, m) { return k < m; }, 'y3g' : function (k, m) { return k * m; }, 'd86' : function (k, m) { return k === m; }, 'p9R' : function (k, m) { return k >= m; }, 'F8v' : function (k, m) { return k - m; }, 'X9u' : function (k, m) { return k * m; }, 'x0A' : function (k, m) { return k > m; }, 'x3o' : function (k, m) { return k > m; }, 'P2I' : function (k, m) { return k > m; }, 'O6J' : function (k, m) { return k - m; }, 'p4A' : function (k, m) { return k - m; }, 'S9l' : function (k, m) { return k > m; }, 'E9b' : function (k, m) { return k * m; }, 'd5e' : function (k, m) { return k & m; }, 'M8g' : function (k, m) { return k > m; }, 'o0J' : function (k, m) { return k > m; }, 'l46' : function (k, m) { return k - m; }, 'C5h' : function (k, m) { return k === m; }, 'H1D' : function (k, m) { return k - m; }, 'l09' : function (k, m) { return k * m; }, 'q1q' : function (k, m) { return k < m; }, 't3D' : function (k, m) { return k / m; }, 'x23' : function (k, m) { return k * m; }, 'a6e' : function (k, m) { return k & m; }, 'u5Q' : function (k, m) { return k * m; }, 'O7r' : function (k, m) { return k === m; }, 'U7Q' : function (k, m) { return k > m; }, 'V3L' : function (k, m) { return k === m; }, 'u7b' : function (k, m) { return k % m; }, 'l4q' : function (k, m) { return k > m; }, 'f2w' : function (k, m) { return k === m; }, 'V0I' : function (k, m) { return k !== m; }, 'h5b' : function (k, m) { return k < m; }, 'X1B' : function (k, m) { return k > m; }, 'i8' : function (k, m) { return k / m; }, 's3N' : function (k, m) { return k === m; }, 'z5b' : function (k, m) { return k !== m; }, 'D6N' : function (k, m, e, o) { return k | m | e | o; }, 'L8v' : function (k, m) { return k - m; }, 'A6G' : function (k, m) { return k === m; }, 's0o' : function (k, m) { return k & m; }, 'T2V' : function (k, m) { return k === m; }, 'A96' : function (k, m) { return k > m; }, 'G1e' : function (k, m, e) { return k << m >> e; }, 'q1B' : function (k, m) { return k / m; }, 'I39' : function (k, m) { return k > m; }, 'v03' : function (k, m) { return k * m; }, 'o63' : function (k, m) { return k << m; }, 'Q1Q' : function (k, m) { return k - m; }, 'K3w' : function (k, m) { return k >= m; }, 'Q2r' : function (k, m) { return k === m; }, 'j5I' : function (k, m) { return k * m; }, 'z0v' : function (k, m) { return k !== m; }, 'R3e' : function (k, m) { return k > m; }, 'Q24' : function (k, m) { return k >= m; }, 'i54' : function (k, m) { return k < m; }, 'w2u' : function (k, m) { return k < m; }, 'o16' : function (k, m) { return k === m; }, 'v1q' : function (k, m) { return k | m; }, 'x1v' : function (k, m) { return k > m; }, 'b3o' : function (k, m) { return k > m; }, 'm14' : function (k, m) { return k >= m; }, 'q8b' : function (k, m) { return k * m; }, 'm4J' : function (k, m) { return k < m; }, 'E9o' : function (k, m) { return k == m; }, 'J47' : function (k, m) { return k - m; }, 'm0I' : function (k, m) { return k - m; }, 'E9V' : function (k, m) { return k * m; }, 'x24' : function (k, m) { return k > m; }, 'k1h' : function (k, m) { return k === m; }, 'a9D' : function (k, m) { return k * m; }, 'u1V' : function (k, m) { return k * m; }, 'L4q' : function (k, m) { return k % m; }, 'A3e' : function (k, m) { return k !== m; }, 'S4A' : function (k, m) { return k % m; }, 'S8o' : function (k, m) { return k < m; }, 'x9v' : function (k, m) { return k !== m; }, 'M4D' : function (k, m) { return k !== m; }, 'T0V' : function (k, m) { return k < m; }, 'Y2l' : function (k, m) { return k * m; }, 'M9B' : function (k, m) { return k - m; }, 'q87' : function (k, m) { return k / m; }, 'A0h' : function (k, m) { return k - m; }, 'M1D' : function (k, m) { return k * m; }, 'U2q' : function (k, m) { return k - m; }, 'E3h' : function (k, m) { return k !== m; }, 'V3h' : function (k, m) { return k !== m; }, 'L6I' : function (k, m) { return k < m; }, 'o94' : function (k, m) { return k === m; }, 'x4d' : function (k, m) { return k * m; }, 't8r' : function (k, m) { return k !== m; }, 'b1d' : function (k, m) { return k === m; }, 'y7R' : function (k, m) { return k * m; }, 'y6B' : function (k, m) { return k > m; }, 'B8V' : function (k, m) { return k * m; }, 'c7J' : function (k, m) { return k > m; }, 'L3R' : function (k, m) { return k > m; }, 'G67' : function (k, m) { return k >= m; }, 'm7o' : function (k, m) { return k & m; }, 't2V' : function (k, m) { return k < m; }, 'c8b' : function (k, m) { return k - m; }, 'D3g' : function (k, m) { return k - m; }, 'F3Q' : function (k, m) { return k < m; }, 'F9I' : function (k, m) { return k - m; }, 'G7e' : function (k, m) { return k < m; }, 'A49' : function (k, m) { return k * m; }, 'K6r' : function (k, m) { return k instanceof m; }, 'Z6R' : function (k, m) { return k - m; }, 'm5Q' : function (k, m) { return k / m; }, 'n8V' : function (k, m) { return k / m; }, 'P8h' : function (k, m) { return k !== m; }, 'U5G' : function (k, m) { return k === m; }, 'j1w' : function (k, m) { return k === m; }, 'e19' : function (k, m) { return k * m; }, 'b9R' : function (k, m) { return k >= m; }, 'b4d' : function (k, m) { return k * m; }, 'N46' : function (k, m) { return k % m; }, 'Q9g' : function (k, m) { return k * m; }, 'l6P' : function (k, m) { return k > m; }, 'c3b' : function (k, m) { return k > m; }, 'P4l' : function (k, m) { return k > m; }, 'H8J' : function (k, m) { return k < m; }, 'C26' : function (k, m) { return k === m; }, 'E99' : function (k, m) { return k !== m; }, 'H2q' : function (k, m) { return k | m; }, 'b0N' : function (k, m) { return k === m; }, 'g6g' : function (k, m) { return k / m; }, 'k3J' : function (k, m) { return k > m; }, 'K9L' : function (k, m) { return k < m; }, 'P53' : function (k, m) { return k - m; }, 'c3P' : function (k, m) { return k !== m; }, 'F6r' : function (k, m) { return k instanceof m; }, 'Z2u' : function (k, m) { return k === m; }, 'g53' : function (k, m) { return k * m; }, 'Y7L' : function (k, m) { return k * m; }, 's0g' : function (k, m) { return k / m; }, 'I9J' : function (k, m) { return k === m; }, 'c0b' : function (k, m) { return k === m; }, 'J2w' : function (k, m) { return k >= m; }, 'r0L' : function (k, m) { return k instanceof m; }, 'A53' : function (k, m) { return k * m; }, 'i6G' : function (k, m) { return k === m; }, 't2d' : function (k, m) { return k < m; }, 's7v' : function (k, m) { return k instanceof m; }, 'b8o' : function (k, m) { return k !== m; }, 'W0h' : function (k, m) { return k === m; }, 'K8q' : function (k, m) { return k - m; }, 'B5V' : function (k, m) { return k === m; }, 't16' : function (k, m) { return k === m; }, 'G3Q' : function (k, m) { return k >= m; }, 'E9q' : function (k, m) { return k / m; }, 'J6' : function (k, m) { return k * m; }, 'w3e' : function (k, m) { return k >= m; }, 'O5v' : function (k, m) { return k instanceof m; }, 'W73' : function (k, m) { return k < m; }, 'a3d' : function (k, m) { return k * m; }, 'J1N' : function (k, m) { return k !== m; }, 'y2d' : function (k, m) { return k % m; }, 'M5V' : function (k, m) { return k === m; }, 'Q36' : function (k, m) { return k < m; }, 'K1' : function (k, m) { return k * m; }, 'n2q' : function (k, m) { return k | m; }, 'D1A' : function (k, m) { return k > m; }, 'P3G' : function (k, m) { return k > m; }, 'l66' : function (k, m) { return k !== m; }, 'H9G' : function (k, m) { return k !== m; }, 'J9h' : function (k, m) { return k !== m; }, 'n6D' : function (k, m) { return k === m; }, 'b0b' : function (k, m) { return k instanceof m; }, 'k4B' : function (k, m) { return k === m; }, 'b33' : function (k, m) { return k * m; }, 'e8h' : function (k, m) { return k !== m; }, 'K66' : function (k, m) { return k - m; }, 'i0e' : function (k, m) { return k === m; }, 'V2e' : function (k, m) { return k < m; }, 'o8r' : function (k, m) { return k - m; }, 'q0N' : function (k, m) { return k === m; }, 'r2L' : function (k, m) { return k > m; }, 'F4B' : function (k, m, e) { return k * m * e; }, 'Y3A' : function (k, m) { return k - m; }, 'u97' : function (k, m) { return k - m; }, 'm0L' : function (k, m) { return k instanceof m; }, 'X1h' : function (k, m) { return k * m; }, 'Y8G' : function (k, m) { return k < m; }, 'J8G' : function (k, m) { return k === m; }, 'A1P' : function (k, m) { return k * m; }, 'Q4L' : function (k, m) { return k / m; }, 's0r' : function (k, m) { return k | m; }, 'l9d' : function (k, m) { return k >= m; }, 'I4w' : function (k, m) { return k >= m; }, 'L3J' : function (k, m) { return k > m; }, 'b7J' : function (k, m) { return k % m; }, 'M46' : function (k, m) { return k - m; }, 'L4V' : function (k, m) { return k > m; }, 'n9I' : function (k, m) { return k >= m; }, 'd6e' : function (k, m) { return k - m; }, 'r6J' : function (k, m) { return k < m; }, 'I1l' : function (k, m) { return k * m; }, 'z24' : function (k, m) { return k / m; }, 'i8B' : function (k, m) { return k > m; }, 'Q06' : function (k, m) { return k < m; }, 'z3u' : function (k, m) { return k - m; }, 'c1G' : function (k, m) { return k - m; }, 'N4N' : function (k, m) { return k < m; }, 'U29' : function (k, m) { return k in m; }, 'o3o' : function (k, m) { return k > m; }, 'o4h' : function (k, m) { return k === m; }, 'W7r' : function (k, m) { return k | m; }, 'e04' : function (k, m) { return k - m; }, 'c2o' : function (k, m) { return k < m; }, 'C4L' : function (k, m) { return k < m; }, 'j3o' : function (k, m) { return k > m; }, 'D97' : function (k, m) { return k < m; }, 'X9e' : function (k, m) { return k > m; }, 'b36' : function (k, m) { return k > m; }, 'X2g' : function (k, m) { return k / m; }, 'm53' : function (k, m) { return k === m; }, 'z4V' : function (k, m) { return k > m; }, 'V99' : function (k, m) { return k < m; }, 'D19' : function (k, m) { return k * m; }, 'T9Q' : function (k, m) { return k < m; }, 'h4q' : function (k, m) { return k !== m; }, 'T0D' : function (k, m) { return k / m; }, 'K9A' : function (k, m) { return k > m; }, 'I1B' : function (k, m) { return k * m; }, 'l7I' : function (k, m) { return k >= m; }, 'Z6J' : function (k, m) { return k !== m; }, 's27' : function (k, m) { return k / m; }, 'S9v' : function (k, m) { return k > m; }, 'x8P' : function (k, m) { return k === m; }, 'z6e' : function (k, m) { return k & m; }, 'f1h' : function (k, m) { return k instanceof m; }, 'Y7w' : function (k, m) { return k < m; }, 'X8w' : function (k, m) { return k < m; }, 'p06' : function (k, m) { return k > m; }, 'q0D' : function (k, m) { return k * m; }, 'i4R' : function (k, m) { return k / m; }, 'M6Q' : function (k, m) { return k / m; }, 'p0V' : function (k, m) { return k * m; }, 'y03' : function (k, m) { return k * m; }, 'S4L' : function (k, m) { return k === m; }, 'X4r' : function (k, m) { return k / m; }, 'L56' : function (k, m) { return k !== m; }, 'F8l' : function (k, m) { return k < m; }, 'K4D' : function (k, m) { return k !== m; }, 'E6q' : function (k, m) { return k | m; }, 'z5o' : function (k, m) { return k == m; }, 'x16' : function (k, m) { return k === m; }, 'U1q' : function (k, m) { return k | m; }, 'P3I' : function (k, m) { return k < m; }, 'p4d' : function (k, m) { return k * m; }, 'Z5v' : function (k, m) { return k == m; }, 'Y6o' : function (k, m) { return k * m; }, 'i2I' : function (k, m) { return k > m; }, 'A1e' : function (k, m, e) { return k << m >>> e; }, 'b2A' : function (k, m) { return k * m; }, 'S0A' : function (k, m) { return k & m; }, 'N8' : function (k, m) { return k * m; }, 'M74' : function (k, m) { return k > m; }, 'q06' : function (k, m) { return k === m; }, 'h84' : function (k, m) { return k * m; }, 'x5h' : function (k, m) { return k === m; }, 'Y84' : function (k, m) { return k !== m; }, 'n9e' : function (k, m) { return k === m; }, 'o69' : function (k, m) { return k | m; }, 'B5o' : function (k, m) { return k !== m; }, 'e3h' : function (k, m) { return k instanceof m; }, 'R97' : function (k, m) { return k === m; }, 'J24' : function (k, m, e) { return k - m + e; }, 'd8b' : function (k, m) { return k - m; }, 't87' : function (k, m) { return k > m; }, 'z2r' : function (k, m, e) { return k * m / e; }, 'z8v' : function (k, m) { return k - m; }, 'p63' : function (k, m) { return k * m; }, 'k2P' : function (k, m) { return k - m; }, 'a54' : function (k, m) { return k < m; }, 'X6o' : function (k, m) { return k * m; }, 'o3P' : function (k, m) { return k - m; }, 'P6v' : function (k, m) { return k === m; }, 'B2g' : function (k, m) { return k / m; }, 'b44' : function (k, m) { return k * m; }, 'n8g' : function (k, m) { return k !== m; }, 'Q3r' : function (k, m) { return k === m; }, 'y37' : function (k, m) { return k >= m; }, 'G2J' : function (k, m) { return k >= m; }, 'd9R' : function (k, m) { return k >= m; }, 'P2h' : function (k, m) { return k === m; } }; (function () { var D0 = this, i = i || {}; i.WEBGL_RENDERER = 0, i.CANVAS_RENDERER = 1, i.VERSION = "v2.2.0", i.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 }, i.scaleModes = { DEFAULT : 0, LINEAR : 0, NEAREST : 1 }, 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.INTERACTION_FREQUENCY = 30, i.AUTO_PREVENT_DEFAULT = !0, i.PI_2 = y3U.n3(2, Math.PI), i.RAD_TO_DEG = y3U.f3(180, Math.PI), i.DEG_TO_RAD = y3U.K3(Math.PI, 180), i.RETINA_PREFIX = "@2x", i.dontSayHello = !1, i.defaultRenderOptions = { view : null, transparent : !1, antialias : !1, preserveDrawingBuffer : !1, resolution : 1, clearBeforeRender : !0, autoResize : !1 }, i.sayHello = function (k) { if (!i.dontSayHello) { for (var J8n in r2w8n[v8n]) { if (J8n.length == 9 && J8n.charCodeAt(8) == 116 && J8n.charCodeAt(7) == 110 && J8n.charCodeAt(0) == (0x98 >= (0x69, 1.71E2) ? (100.0E1, "e") : (77., 19) <= (5.97E2, 0xA6) ? (149., 117) : (100.2E1, 89.2E1))) break }; var m = function () { i.dontSayHello = !0; }; if (r2w8n[v8n][J8n].toLowerCase().indexOf("chrome") > -1) { var e = ["%c %c %c Pixi.js " + i.VERSION + " - " + k + " %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ ", "background: #ff66a5", "background: #ff66a5", "color: #ff66a5; background: #030307;", "background: #ff66a5", "background: #ffc3dc", "background: #ff66a5", "color: #ff2424; background: #fff", "color: #ff2424; background: #fff", "color: #ff2424; background: #fff"]; console.log.apply(console, e); } else r2w8n[E8n]['console'] && console.log("Pixi.js " + i.VERSION + " - http://www.pixijs.com/"); m(); } }, i.Polygon = function (m) { if (y3U.B3(m, Array) || (m = Array.prototype.slice.call(arguments)), y3U.l3(m[0], i.Point)) { var e = function (k) { m = k; }; for (var o = [], n = 0, u = m.length; y3U.X3(u, n); n++) o.push(m[n].x, m[n].y); e(o); } this.closed = !0, this.points = m; }, i.Polygon.prototype.clone = function () { var k = this.points.slice(); return new i.Polygon(k); }, i.Polygon.prototype.contains = function (k, m) { for (var e = !1, o = y3U.Y3(this.points.length, 2), n = 0, u = y3U.U9(o, 1); y3U.T9(o, n); u = n++) { var q = this.points[y3U.S9(2, n)], f = this.points[y3U.I9(2, n) + 1], j = this.points[y3U.C9(2, u)], U0 = this.points[y3U.v9(2, u) + 1], k0 = y3U.t9(f > m, U0 > m) && y3U.y9((j - q) * (m - f) / (U0 - f) + q, k); k0 && (e = !e); } return e; }, i.Polygon.prototype.constructor = i.Polygon, i.Matrix = function () { this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0; }, i.Matrix.prototype.fromArray = function (k) { this.a = k[0], this.b = k[1], this.c = k[3], this.d = k[4], this.tx = k[2], this.ty = k[5]; }, i.Matrix.prototype.toArray = function (k) { this.array || (this.array = new i.Float32Array(9)); var m = this.array; return k ? (m[0] = this.a, m[1] = this.b, m[2] = 0, m[3] = this.c, m[4] = this.d, m[5] = 0, m[6] = this.tx, m[7] = this.ty, m[8] = 1) : (m[0] = this.a, m[1] = this.c, m[2] = this.tx, m[3] = this.b, m[4] = this.d, m[5] = this.ty, m[6] = 0, m[7] = 0, m[8] = 1), m; }, i.Matrix.prototype.apply = function (k, m) { return m = m || new i.Point, m.x = y3U.o9(this.a, k.x) + y3U.M9(this.c, k.y) + this.tx, m.y = y3U.n9(this.b, k.x) + y3U.f9(this.d, k.y) + this.ty, m; }, i.Matrix.prototype.applyInverse = function (k, m) { var e = function () { m = m || new i.Point; }; e(); var o = 1 / (y3U.K9(this.a, this.d) + this.c * -this.b); return m.x = y3U.B9(this.d, o, k.x) + -this.c * o * k.y + y3U.R9((this.ty * this.c - this.tx * this.d), o), m.y = y3U.O9(this.a, o, k.y) + -this.b * o * k.x + (-this.ty * this.a + y3U.Q9(this.tx, this.b)) * o, m; }, i.Matrix.prototype.translate = function (k, m) { return this.tx += k, this.ty += m, this; }, i.Matrix.prototype.scale = function (k, m) { return this.a *= k, this.d *= m, this.c *= k, this.b *= m, this.tx *= k, this.ty *= m, this; }, i.Matrix.prototype.rotate = function (k) { var m = Math.cos(k), e = Math.sin(k), o = this.a, n = this.c, u = this.tx; return this.a = y3U.a5(o * m, this.b * e), this.b = y3U.W5(o, e) + y3U.m5(this.b, m), this.c = y3U.A5(n * m, this.d * e), this.d = y3U.w5(n, e) + y3U.E5(this.d, m), this.tx = y3U.e5(u * m, this.ty * e), this.ty = y3U.g5(u, e) + y3U.x5(this.ty, m), this; }, i.Matrix.prototype.append = function (k) { var m = this.a, e = this.b, o = this.c, n = this.d; return this.a = y3U.p5(k.a, m) + y3U.q5(k.b, o), this.b = y3U.b5(k.a, e) + y3U.j5(k.b, n), this.c = y3U.d5(k.c, m) + y3U.c5(k.d, o), this.d = y3U.s5(k.c, e) + y3U.Q5(k.d, n), this.tx = y3U.a2(k.tx, m) + y3U.W2(k.ty, o) + this.tx, this.ty = y3U.m2(k.tx, e) + y3U.A2(k.ty, n) + this.ty, this; }, i.Matrix.prototype.identity = function () { return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this; }, i.identityMatrix = new i.Matrix, i.Rectangle = function (k, m, e, o) { this.x = k || 0, this.y = m || 0, this.width = e || 0, this.height = o || 0; }, i.Rectangle.prototype.clone = function () { return new i.Rectangle(this.x, this.y, this.width, this.height); }, i.Rectangle.prototype.contains = function (k, m) { if (y3U.w2(this.width, 0) || y3U.E2(this.height, 0)) return !1; var e = this.x; if (y3U.e2(k, e) && y3U.o2(k, e + this.width)) { var o = this.y; if (y3U.i2(m, o) && y3U.q2(m, o + this.height)) return !0; } return !1; }, i.Rectangle.prototype.constructor = i.Rectangle, i.EmptyRectangle = new i.Rectangle(0, 0, 0, 0), i.RoundedRectangle = function (k, m, e, o, n) { this.x = k || 0, this.y = m || 0, this.width = e || 0, this.height = o || 0, this.radius = n || 20; }, i.RoundedRectangle.prototype.clone = function () { return new i.RoundedRectangle(this.x, this.y, this.width, this.height, this.radius); }, i.RoundedRectangle.prototype.contains = function (k, m) { if (y3U.K2(this.width, 0) || y3U.B2(this.height, 0)) return !1; var e = this.x; if (y3U.l2(k, e) && y3U.X2(k, e + this.width)) { var o = this.y; if (y3U.V2(m, o) && y3U.k1(m, o + this.height)) return !0; } return !1; }, i.RoundedRectangle.prototype.constructor = i.RoundedRectangle, i.DisplayObject = function () { this.position = new i.Point, this.scale = new i.Point(1, 1), this.transformCallback = null, this.transformCallbackContext = null, this.pivot = new i.Point(0, 0), this.rotation = 0, this.alpha = 1, this.visible = !0, this.hitArea = null, this.buttonMode = !1, this.renderable = !1, this.parent = null, this.stage = null, this.worldAlpha = 1, this._interactive = !1, this.defaultCursor = "pointer", this.worldTransform = new i.Matrix, this._sr = 0, this._cr = 1, this.filterArea = null, this._bounds = new i.Rectangle(0, 0, 1, 1), this._currentBounds = null, this._mask = null, this._cacheAsBitmap = !1, this._cacheIsDirty = !1; }, i.DisplayObject.prototype.constructor = i.DisplayObject, Object.defineProperty(i.DisplayObject.prototype, "interactive", { get : function () { return this._interactive; }, set : function (k) { this._interactive = k, this.stage && (this.stage.dirty = !0); } }), Object.defineProperty(i.DisplayObject.prototype, "worldVisible", { get : function () { var m = this; do { var e = function (k) { m = k.parent; }; if (!m.visible) return !1; e(m); } while (m); return !0; } }), Object.defineProperty(i.DisplayObject.prototype, "mask", { get : function () { return this._mask; }, set : function (k) { this._mask && (this._mask.isMask = !1), this._mask = k, this._mask && (this._mask.isMask = !0); } }), Object.defineProperty(i.DisplayObject.prototype, "filters", { get : function () { return this._filters; }, set : function (k) { if (k) { for (var m = [], e = 0; y3U.G1(e, k.length); e++) for (var o = k[e].passes, n = 0; y3U.N1(n, o.length); n++) m.push(o[n]); this._filterBlock = { target : this, filterPasses : m }; } this._filters = k; } }), Object.defineProperty(i.DisplayObject.prototype, "cacheAsBitmap", { get : function () { return this._cacheAsBitmap; }, set : function (k) { y3U.L1(this._cacheAsBitmap, k) && (k ? this._generateCachedSprite() : this._destroyCachedSprite(), this._cacheAsBitmap = k); } }), i.DisplayObject.prototype.updateTransform = function () { var k, m, e, o, n, u, q = this.parent.worldTransform, f = this.worldTransform; y3U.z1(this.rotation, i.PI_2) ? (y3U.J1(this.rotation, this.rotationCache) && (this.rotationCache = this.rotation, this._sr = Math.sin(this.rotation), this._cr = Math.cos(this.rotation)), k = y3U.H1(this._cr, this.scale.x), m = y3U.g1(this._sr, this.scale.x), e = -this._sr * this.scale.y, o = y3U.M1(this._cr, this.scale.y), n = this.position.x, u = this.position.y, (this.pivot.x || this.pivot.y) && (n -= y3U.n1(this.pivot.x, k) + y3U.f1(this.pivot.y, e), u -= y3U.K1(this.pivot.x, m) + y3U.B1(this.pivot.y, o)), f.a = y3U.l1(k, q.a) + y3U.X1(m, q.c), f.b = y3U.V1(k, q.b) + y3U.k6(m, q.d), f.c = y3U.G6(e, q.a) + y3U.N6(o, q.c), f.d = y3U.L6(e, q.b) + y3U.z6(o, q.d), f.tx = y3U.J6(n, q.a) + y3U.H6(u, q.c) + q.tx, f.ty = y3U.h6(n, q.b) + y3U.r6(u, q.d) + q.ty) : (k = this.scale.x, o = this.scale.y, n = y3U.i6(this.position.x, this.pivot.x * k), u = y3U.u6(this.position.y, this.pivot.y * o), f.a = y3U.P6(k, q.a), f.b = y3U.D6(k, q.b), f.c = y3U.Z6(o, q.c), f.d = y3U.R6(o, q.d), f.tx = y3U.O6(n, q.a) + y3U.V6(u, q.c) + q.tx, f.ty = y3U.k8(n, q.b) + y3U.G8(u, q.d) + q.ty), this.worldAlpha = y3U.N8(this.alpha, this.parent.worldAlpha), this.transformCallback && this.transformCallback.call(this.transformCallbackContext, f, q); }, i.DisplayObject.prototype.displayObjectUpdateTransform = i.DisplayObject.prototype.updateTransform, i.DisplayObject.prototype.getBounds = function (k) { return k = k, i.EmptyRectangle; }, i.DisplayObject.prototype.getLocalBounds = function () { return this.getBounds(i.identityMatrix); }, i.DisplayObject.prototype.setStageReference = function (k) { this.stage = k, this._interactive && (this.stage.dirty = !0); }, i.DisplayObject.prototype.generateTexture = function (k, m, e) { var o = this.getLocalBounds(), n = new i.RenderTexture(y3U.L8(0, o.width), y3U.z8(0, o.height), e, m, k); return i.DisplayObject._tempMatrix.tx = -o.x, i.DisplayObject._tempMatrix.ty = -o.y, n.render(this, i.DisplayObject._tempMatrix), n; }, i.DisplayObject.prototype.updateCache = function () { this._generateCachedSprite(); }, i.DisplayObject.prototype.toGlobal = function (k) { return this.displayObjectUpdateTransform(), this.worldTransform.apply(k); }, i.DisplayObject.prototype.toLocal = function (k, m) { return m && (k = m.toGlobal(k)), this.displayObjectUpdateTransform(), this.worldTransform.applyInverse(k); }, i.DisplayObject.prototype._renderCachedSprite = function (k) { this._cachedSprite.worldAlpha = this.worldAlpha, k.gl ? i.Sprite.prototype._renderWebGL.call(this._cachedSprite, k) : i.Sprite.prototype._renderCanvas.call(this._cachedSprite, k); }, i.DisplayObject.prototype._generateCachedSprite = function () { this._cacheAsBitmap = !1; var k = this.getLocalBounds(); if (this._cachedSprite) this._cachedSprite.texture.resize(y3U.J8(0, k.width), y3U.H8(0, k.height)); else { var m = new i.RenderTexture(y3U.h8(0, k.width), y3U.r8(0, k.height)); this._cachedSprite = new i.Sprite(m), this._cachedSprite.worldTransform = this.worldTransform; } var e = this._filters; this._filters = null, this._cachedSprite.filters = e, i.DisplayObject._tempMatrix.tx = -k.x, i.DisplayObject._tempMatrix.ty = -k.y, this._cachedSprite.texture.render(this, i.DisplayObject._tempMatrix, !0), this._cachedSprite.anchor.x = - (y3U.i8(k.x, k.width)), this._cachedSprite.anchor.y = - (y3U.u8(k.y, k.height)), this._filters = e, this._cacheAsBitmap = !0; }, i.DisplayObject.prototype._destroyCachedSprite = function () { this._cachedSprite && (this._cachedSprite.texture.destroy(!0), this._cachedSprite = null); }, i.DisplayObject.prototype._renderWebGL = function (m) { var e = function (k) { m = k; }; e(m); }, i.DisplayObject.prototype._renderCanvas = function (m) { var e = function (k) { m = k; }; e(m); }, i.DisplayObject._tempMatrix = new i.Matrix, Object.defineProperty(i.DisplayObject.prototype, "x", { get : function () { return this.position.x; }, set : function (k) { this.position.x = k; } }), Object.defineProperty(i.DisplayObject.prototype, "y", { get : function () { return this.position.y; }, set : function (k) { this.position.y = k; } }), i.DisplayObjectContainer = function () { i.DisplayObject.call(this), this.children = []; }, i.DisplayObjectContainer.prototype = Object.create(i.DisplayObject.prototype), i.DisplayObjectContainer.prototype.constructor = i.DisplayObjectContainer, Object.defineProperty(i.DisplayObjectContainer.prototype, "width", { get : function () { return y3U.P8(this.scale.x, this.getLocalBounds().width); }, set : function (k) { var m = this.getLocalBounds().width; this.scale.x = y3U.D8(0, m) ? y3U.Z8(k, m) : 1, this._width = k; } }), Object.defineProperty(i.DisplayObjectContainer.prototype, "height", { get : function () { return y3U.R8(this.scale.y, this.getLocalBounds().height); }, set : function (k) { var m = this.getLocalBounds().height; this.scale.y = y3U.O8(0, m) ? y3U.V8(k, m) : 1, this._height = k; } }), i.DisplayObjectContainer.prototype.addChild = function (k) { return this.addChildAt(k, this.children.length); }, i.DisplayObjectContainer.prototype.addChildAt = function (k, m) { if (y3U.k0l(m, 0) && y3U.G0l(m, this.children.length)) return k.parent && k.parent.removeChild(k), k.parent = this, this.children.splice(m, 0, k), this.stage && k.setStageReference(this.stage), k; throw new Error(k + "addChildAt: The index " + m + " supplied is out of bounds " + this.children.length); }, i.DisplayObjectContainer.prototype.swapChildren = function (k, m) { if (y3U.N0l(k, m)) { var e = this.getChildIndex(k), o = this.getChildIndex(m); if (y3U.L0l(0, e) || y3U.z0l(0, o)) throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller."); this.children[e] = m, this.children[o] = k; } }, i.DisplayObjectContainer.prototype.getChildIndex = function (k) { var m = this.children.indexOf(k); if (-1 === m) throw new Error("The supplied DisplayObject must be a child of the caller"); return m; }, i.DisplayObjectContainer.prototype.setChildIndex = function (k, m) { if (y3U.J0l(0, m) || y3U.H0l(m, this.children.length)) throw new Error("The supplied index is out of bounds"); var e = this.getChildIndex(k); this.children.splice(e, 1), this.children.splice(m, 0, k); }, i.DisplayObjectContainer.prototype.getChildAt = function (k) { if (y3U.h0l(0, k) || y3U.F0l(k, this.children.length)) throw new Error("getChildAt: Supplied index " + k + " does not exist in the child list, or the supplied DisplayObject must be a child of the caller"); return this.children[k]; }, i.DisplayObjectContainer.prototype.removeChild = function (k) { var m = this.children.indexOf(k); if (-1 !== m) return this.removeChildAt(m); }, i.DisplayObjectContainer.prototype.removeChildAt = function (k) { var m = this.getChildAt(k); return this.stage && m.removeStageReference(), m.parent = void 0, this.children.splice(k, 1), m; }, i.DisplayObjectContainer.prototype.removeChildren = function (k, m) { var e = k || 0, o = "number" == typeof m ? m : this.children.length, n = y3U.M0l(o, e); if (y3U.n0l(n, 0) && y3U.f0l(o, n)) { for (var u = this.children.splice(e, n), q = 0; y3U.K0l(q, u.length); q++) { var f = u[q]; this.stage && f.removeStageReference(), f.parent = void 0; } return u; } if (y3U.B0l(0, n) && y3U.l0l(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 k = 0, m = this.children.length; y3U.X0l(m, k); k++) this.children[k].updateTransform(); }, i.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = i.DisplayObjectContainer.prototype.updateTransform, i.DisplayObjectContainer.prototype.getBounds = function () { if (y3U.Y0l(0, this.children.length)) return i.EmptyRectangle; for (var k, m, e, o = y3U.U7l(1, 0), n = y3U.T7l(1, 0), u = -1 / 0, q = -1 / 0, f = !1, j = 0, U0 = this.children.length; y3U.S7l(U0, j); j++) { var k0 = this.children[j]; k0.visible && (f = !0, k = this.children[j].getBounds(), o = y3U.I7l(o, k.x) ? o : k.x, n = y3U.C7l(n, k.y) ? n : k.y, m = k.width + k.x, e = k.height + k.y, u = y3U.v7l(u, m) ? u : m, q = y3U.t7l(q, e) ? q : e); } if (!f) return i.EmptyRectangle; var a0 = this._bounds; return a0.x = o, a0.y = n, a0.width = y3U.y7l(u, o), a0.height = y3U.o7l(q, n), a0; }, i.DisplayObjectContainer.prototype.getLocalBounds = function () { var k = this.worldTransform; this.worldTransform = i.identityMatrix; for (var m = 0, e = this.children.length; y3U.x7l(e, m); m++) this.children[m].updateTransform(); var o = this.getBounds(); return this.worldTransform = k, o; }, i.DisplayObjectContainer.prototype.setStageReference = function (k) { this.stage = k, this._interactive && (this.stage.dirty = !0); for (var m = 0, e = this.children.length; y3U.p7l(e, m); m++) { var o = this.children[m]; o.setStageReference(k); } }, i.DisplayObjectContainer.prototype.removeStageReference = function () { for (var k = 0, m = this.children.length; y3U.q7l(m, k); k++) { var e = this.children[k]; e.removeStageReference(); } this._interactive && (this.stage.dirty = !0), this.stage = null; }, i.DisplayObjectContainer.prototype._renderWebGL = function (k) { if (this.visible && !(y3U.b7l(this.alpha, 0))) { if (this._cacheAsBitmap) return void this._renderCachedSprite(k); var m, e; if (this._mask || this._filters) { for (this._filters && (k.spriteBatch.flush(), k.filterManager.pushFilter(this._filterBlock)), this._mask && (k.spriteBatch.stop(), k.maskManager.pushMask(this.mask, k), k.spriteBatch.start()), m = 0, e = this.children.length; y3U.j7l(e, m); m++) this.children[m]._renderWebGL(k); k.spriteBatch.stop(), this._mask && k.maskManager.popMask(this._mask, k), this._filters && k.filterManager.popFilter(), k.spriteBatch.start(); //1111111111111111111 } else for (m = 0, e = this.children.length; y3U.d7l(e, m); m++) this.children[m]._renderWebGL(k); } }, i.DisplayObjectContainer.prototype._renderCanvas = function (k) { if (this.visible !== !1 && y3U.c7l(0, this.alpha)) { if (this._cacheAsBitmap) return void this._renderCachedSprite(k); this._mask && k.maskManager.pushMask(this._mask, k); for (var m = 0, e = this.children.length; y3U.s7l(e, m); m++) { var o = this.children[m]; o._renderCanvas(k); } this._mask && k.maskManager.popMask(k); } }, i.Sprite = function (k) { i.DisplayObjectContainer.call(this), this.anchor = new i.Point, this.texture = k || i.Texture.emptyTexture, this._width = 0, this._height = 0, this.tint = 16777215, this.blendMode = i.blendModes.NORMAL, this.shader = null, this.texture.baseTexture.hasLoaded ? this.onTextureUpdate() : this.texture.on("update", this.onTextureUpdate.bind(this)), 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 y3U.Q7l(this.scale.x, this.texture.frame.width); }, set : function (k) { this.scale.x = y3U.a4l(k, this.texture.frame.width), this._width = k; } }), Object.defineProperty(i.Sprite.prototype, "height", { get : function () { return y3U.W4l(this.scale.y, this.texture.frame.height); }, set : function (k) { this.scale.y = y3U.m4l(k, this.texture.frame.height), this._height = k; } }), i.Sprite.prototype.setTexture = function (k) { this.texture = k, this.cachedTint = 16777215; }, i.Sprite.prototype.onTextureUpdate = function () { this._width && (this.scale.x = y3U.A4l(this._width, this.texture.frame.width)), this._height && (this.scale.y = y3U.w4l(this._height, this.texture.frame.height)); }, i.Sprite.prototype.getBounds = function (k) { var m = this.texture.frame.width, e = this.texture.frame.height, o = y3U.E4l(m, (1 - this.anchor.x)), n = m * -this.anchor.x, u = y3U.e4l(e, (1 - this.anchor.y)), q = e * -this.anchor.y, f = k || this.worldTransform, j = f.a, U0 = f.b, k0 = f.c, a0 = f.d, T0 = f.tx, G0 = f.ty, W0 = -1 / 0, N0 = -1 / 0, S0 = y3U.g4l(1, 0), I0 = y3U.r4l(1, 0); if (y3U.i4l(0, U0) && y3U.u4l(0, k0)) y3U.P4l(0, j) && (j *= -1), y3U.D4l(0, a0) && (a0 *= -1), S0 = y3U.Z4l(j, n) + T0, W0 = y3U.R4l(j, o) + T0, I0 = y3U.O4l(a0, q) + G0, N0 = y3U.V4l(a0, u) + G0; else { var m0 = y3U.k3l(j, n) + y3U.G3l(k0, q) + T0, A0 = y3U.N3l(a0, q) + y3U.L3l(U0, n) + G0, L0 = y3U.z3l(j, o) + y3U.J3l(k0, q) + T0, z0 = y3U.H3l(a0, q) + y3U.h3l(U0, o) + G0, E0 = y3U.F3l(j, o) + y3U.M3l(k0, u) + T0, v0 = y3U.n3l(a0, u) + y3U.f3l(U0, o) + G0, J0 = y3U.K3l(j, n) + y3U.B3l(k0, u) + T0, t0 = y3U.l3l(a0, u) + y3U.X3l(U0, n) + G0; S0 = y3U.Y3l(S0, m0) ? m0 : S0, S0 = y3U.U9l(S0, L0) ? L0 : S0, S0 = y3U.T9l(S0, E0) ? E0 : S0, S0 = y3U.S9l(S0, J0) ? J0 : S0, I0 = y3U.I9l(I0, A0) ? A0 : I0, I0 = y3U.C9l(I0, z0) ? z0 : I0, I0 = y3U.v9l(I0, v0) ? v0 : I0, I0 = y3U.t9l(I0, t0) ? t0 : I0, W0 = y3U.y9l(m0, W0) ? m0 : W0, W0 = y3U.o9l(L0, W0) ? L0 : W0, W0 = y3U.x9l(E0, W0) ? E0 : W0, W0 = y3U.p9l(J0, W0) ? J0 : W0, N0 = y3U.q9l(A0, N0) ? A0 : N0, N0 = y3U.b9l(z0, N0) ? z0 : N0, N0 = y3U.j9l(v0, N0) ? v0 : N0, N0 = y3U.d9l(t0, N0) ? t0 : N0; } var w0 = this._bounds; return w0.x = S0, w0.width = y3U.c9l(W0, S0), w0.y = I0, w0.height = y3U.s9l(N0, I0), this._currentBounds = w0, w0; }, i.Sprite.prototype._renderWebGL = function (k) { if (this.visible && !(y3U.Q9l(this.alpha, 0)) && this.renderable) { var m, e; if (this._mask || this._filters) { var o = k.spriteBatch; for (this._filters && (o.flush(), k.filterManager.pushFilter(this._filterBlock)), this._mask && (o.stop(), k.maskManager.pushMask(this.mask, k), o.start()), o.render(this), m = 0, e = this.children.length; y3U.a5l(e, m); m++) this.children[m]._renderWebGL(k); o.stop(), this._mask && k.maskManager.popMask(this._mask, k), this._filters && k.filterManager.popFilter(), o.start(); } else for (k.spriteBatch.render(this), m = 0, e = this.children.length; y3U.W5l(e, m); m++) this.children[m]._renderWebGL(k); } }, i.Sprite.prototype._renderCanvas = function (k) { if (!(this.visible === !1 || y3U.m5l(0, this.alpha) || this.renderable === !1 || y3U.A5l(this.texture.crop.width, 0) || y3U.w5l(this.texture.crop.height, 0))) { if (y3U.E5l(this.blendMode, k.currentBlendMode) && (k.currentBlendMode = this.blendMode, k.context.globalCompositeOperation = i.blendModesCanvas[k.currentBlendMode]), this._mask && k.maskManager.pushMask(this._mask, k), this.texture.valid) { var m = y3U.e5l(this.texture.baseTexture.resolution, k.resolution); k.context.globalAlpha = this.worldAlpha, k.smoothProperty && y3U.g5l(k.scaleMode, this.texture.baseTexture.scaleMode) && (k.scaleMode = this.texture.baseTexture.scaleMode, k.context[k.smoothProperty] = y3U.r5l(k.scaleMode, i.scaleModes.LINEAR)); var e = this.texture.trim ? y3U.i5l(this.texture.trim.x, this.anchor.x * this.texture.trim.width) : this.anchor.x * -this.texture.frame.width, o = this.texture.trim ? y3U.u5l(this.texture.trim.y, this.anchor.y * this.texture.trim.height) : this.anchor.y * -this.texture.frame.height; k.roundPixels ? (k.context.setTransform(this.worldTransform.a, this.worldTransform.b, this.worldTransform.c, this.worldTransform.d, y3U.P5l(this.worldTransform.tx * k.resolution, 0), y3U.D5l(this.worldTransform.ty * k.resolution, 0)), e = y3U.Z5l(0, e), o = y3U.R5l(0, o)) : k.context.setTransform(this.worldTransform.a, this.worldTransform.b, this.worldTransform.c, this.worldTransform.d, y3U.O5l(this.worldTransform.tx, k.resolution), y3U.V5l(this.worldTransform.ty, k.resolution)), y3U.k2l(16777215, this.tint) ? (y3U.G2l(this.cachedTint, this.tint) && (this.cachedTint = this.tint, this.tintedTexture = i.CanvasTinter.getTintedTexture(this, this.tint)), k.context.drawImage(this.tintedTexture, 0, 0, this.texture.crop.width, this.texture.crop.height, y3U.N2l(e, m), y3U.L2l(o, m), y3U.z2l(this.texture.crop.width, m), y3U.J2l(this.texture.crop.height, m))) : k.context.drawImage(this.texture.baseTexture.source, this.texture.crop.x, this.texture.crop.y, this.texture.crop.width, this.texture.crop.height, y3U.H2l(e, m), y3U.h2l(o, m), y3U.F2l(this.texture.crop.width, m), y3U.M2l(this.texture.crop.height, m)); } for (var n = 0, u = this.children.length; y3U.n2l(u, n); n++) this.children[n]._renderCanvas(k); this._mask && k.maskManager.popMask(k); } }, i.Sprite.fromFrame = function (k) { var m = i.TextureCache[k]; if (!m) throw new Error('The frameId "' + k + '" does not exist in the texture cache' + this); return new i.Sprite(m); }, i.Sprite.fromImage = function (k, m, e) { var o = i.Texture.fromImage(k, m, e); return new i.Sprite(o); }, i.SpriteBatch = function (k) { i.DisplayObjectContainer.call(this), this.textureThing = k, this.ready = !1; }, i.SpriteBatch.prototype = Object.create(i.DisplayObjectContainer.prototype), i.SpriteBatch.prototype.constructor = i.SpriteBatch, i.SpriteBatch.prototype.initWebGL = function (k) { this.fastSpriteBatch = new i.WebGLFastSpriteBatch(k), this.ready = !0; }, i.SpriteBatch.prototype.updateTransform = function () { this.displayObjectUpdateTransform(); }, i.SpriteBatch.prototype._renderWebGL = function (k) { !this.visible || y3U.f2l(this.alpha, 0) || !this.children.length || (this.ready || this.initWebGL(k.gl), k.spriteBatch.stop(), k.shaderManager.setShader(k.shaderManager.fastShader), this.fastSpriteBatch.begin(this, k), this.fastSpriteBatch.render(this), k.spriteBatch.start()); }, i.SpriteBatch.prototype._renderCanvas = function (k) { if (this.visible && !(y3U.K2l(this.alpha, 0)) && this.children.length) { var m = k.context; m.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform(); for (var e = this.worldTransform, o = !0, n = 0; y3U.B2l(n, this.children.length); n++) { var u = this.children[n]; if (u.visible) { var q = u.texture, f = q.frame; if (m.globalAlpha = y3U.l2l(this.worldAlpha, u.alpha), y3U.X2l(u.rotation % (2 * Math.PI), 0)) o && (m.setTransform(e.a, e.b, e.c, e.d, e.tx, e.ty), o = !1), m.drawImage(q.baseTexture.source, f.x, f.y, f.width, f.height, u.anchor.x * -f.width * u.scale.x + u.position.x + .5 | 0, u.anchor.y * -f.height * u.scale.y + u.position.y + .5 | 0, y3U.Y2l(f.width, u.scale.x), y3U.U1l(f.height, u.scale.y)); else { o || (o = !0), u.displayObjectUpdateTransform(); var j = u.worldTransform; k.roundPixels ? m.setTransform(j.a, j.b, j.c, j.d, y3U.T1l(0, j.tx), y3U.S1l(0, j.ty)) : m.setTransform(j.a, j.b, j.c, j.d, j.tx, j.ty), m.drawImage(q.baseTexture.source, f.x, f.y, f.width, f.height, u.anchor.x * -f.width + .5 | 0, u.anchor.y * -f.height + .5 | 0, f.width, f.height); } } } } }, i.FilterBlock = function () { this.visible = !0, this.renderable = !0; }, i.FilterBlock.prototype.constructor = i.FilterBlock, i.Text = function (k, m) { this.canvas = r2w8n[H8n]['createElement']("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = 1, i.Sprite.call(this, i.Texture.fromCanvas(this.canvas)), this.setText(k), this.setStyle(m); }, i.Text.prototype = Object.create(i.Sprite.prototype), i.Text.prototype.constructor = i.Text, Object.defineProperty(i.Text.prototype, "width", { get : function () { return this.dirty && (this.updateText(), this.dirty = !1), y3U.I1l(this.scale.x, this.texture.frame.width); }, set : function (k) { this.scale.x = y3U.C1l(k, this.texture.frame.width), this._width = k; } }), Object.defineProperty(i.Text.prototype, "height", { get : function () { return this.dirty && (this.updateText(), this.dirty = !1), y3U.v1l(this.scale.y, this.texture.frame.height); }, set : function (k) { this.scale.y = y3U.t1l(k, this.texture.frame.height), this._height = k; } }), i.Text.prototype.setStyle = function (k) { k = k || {}, k.font = k.font || "bold 20pt Arial", k.fill = k.fill || "black", k.align = k.align || "left", k.stroke = k.stroke || "black", k.strokeThickness = k.strokeThickness || 0, k.wordWrap = k.wordWrap || !1, k.wordWrapWidth = k.wordWrapWidth || 100, k.dropShadow = k.dropShadow || !1, k.dropShadowAngle = k.dropShadowAngle || y3U.y1l(Math.PI, 6), k.dropShadowDistance = k.dropShadowDistance || 4, k.dropShadowColor = k.dropShadowColor || "black", this.style = k, this.dirty = !0; }, i.Text.prototype.setText = function (k) { this.text = k.toString() || " ", this.dirty = !0; }, i.Text.prototype.updateText = function () { this.texture.baseTexture.resolution = this.resolution, this.context.font = this.style.font; var k = this.text; this.style.wordWrap && (k = this.wordWrap(this.text)); for (var m = k.split(/(?:\r\n|\r|\n)/), e = [], o = 0, n = this.determineFontProperties(this.style.font), u = 0; y3U.o1l(u, m.length); u++) { var q = this.context.measureText(m[u]).width; e[u] = q, o = Math.max(o, q); } var f = o + this.style.strokeThickness; this.style.dropShadow && (f += this.style.dropShadowDistance), this.canvas.width = y3U.x1l((f + this.context.lineWidth), this.resolution); var j = n.fontSize + this.style.strokeThickness, U0 = y3U.p1l(j, m.length); this.style.dropShadow && (U0 += this.style.dropShadowDistance), this.canvas.height = y3U.q1l(U0, this.resolution), this.context.scale(this.resolution, this.resolution), r2w8n[v8n].isCocoonJS && this.context.clearRect(0, 0, this.canvas.width, this.canvas.height), this.context.font = this.style.font, this.context.strokeStyle = this.style.stroke, this.context.lineWidth = this.style.strokeThickness, this.context.textBaseline = "alphabetic"; var k0, a0; if (this.style.dropShadow) { this.context.fillStyle = this.style.dropShadowColor; var T0 = y3U.b1l(Math.sin(this.style.dropShadowAngle), this.style.dropShadowDistance), G0 = y3U.j1l(Math.cos(this.style.dropShadowAngle), this.style.dropShadowDistance); for (u = 0; y3U.d1l(u, m.length); u++) k0 = y3U.c1l(this.style.strokeThickness, 2), a0 = y3U.s1l(this.style.strokeThickness, 2) + y3U.Q1l(u, j) + n.ascent, y3U.a6l("right", this.style.align) ? k0 += y3U.W6l(o, e[u]) : y3U.m6l("center", this.style.align) && (k0 += y3U.A6l((o - e[u]), 2)), this.style.fill && this.context.fillText(m[u], k0 + T0, a0 + G0); } for (this.context.fillStyle = this.style.fill, u = 0; y3U.w6l(u, m.length); u++) k0 = y3U.E6l(this.style.strokeThickness, 2), a0 = y3U.e6l(this.style.strokeThickness, 2) + y3U.g6l(u, j) + n.ascent, y3U.r6l("right", this.style.align) ? k0 += y3U.i6l(o, e[u]) : y3U.u6l("center", this.style.align) && (k0 += y3U.P6l((o - e[u]), 2)), this.style.stroke && this.style.strokeThickness && this.context.strokeText(m[u], k0, a0), this.style.fill && this.context.fillText(m[u], k0, a0); this.updateTexture(); }, i.Text.prototype.updateTexture = function () { this.texture.baseTexture.width = this.canvas.width, this.texture.baseTexture.height = this.canvas.height, this.texture.crop.width = this.texture.frame.width = this.canvas.width, this.texture.crop.height = this.texture.frame.height = this.canvas.height, this._width = this.canvas.width, this._height = this.canvas.height, this.texture.baseTexture.dirty(); }, i.Text.prototype._renderWebGL = function (k) { this.dirty && (this.resolution = k.resolution, this.updateText(), this.dirty = !1), i.Sprite.prototype._renderWebGL.call(this, k); }, i.Text.prototype._renderCanvas = function (k) { this.dirty && (this.resolution = k.resolution, this.updateText(), this.dirty = !1), i.Sprite.prototype._renderCanvas.call(this, k); }, i.Text.prototype.determineFontProperties = function (m) { var e = i.Text.fontPropertiesCache[m]; if (!e) { var o = function (k) { u.font = k; }; e = {}; var n = i.Text.fontPropertiesCanvas, u = i.Text.fontPropertiesContext; o(m); var q = Math.ceil(u.measureText("|Mq").width), f = Math.ceil(u.measureText("M").width), j = y3U.D6l(2, f); f = y3U.Z6l(1.4 * f, 0), n.width = q, n.height = j, u.fillStyle = "#f00", u.fillRect(0, 0, q, j), u.font = m, u.textBaseline = "alphabetic", u.fillStyle = "#000", u.fillText("|MÉq", 0, f); var U0, k0, a0 = u.getImageData(0, 0, q, j).data, T0 = a0.length, G0 = y3U.R6l(4, q), W0 = 0, N0 = !1; for (U0 = 0; y3U.O6l(f, U0); U0++) { for (k0 = 0; y3U.V6l(G0, k0); k0 += 4) if (y3U.k8l(255, a0[W0 + k0])) { var S0 = function () { N0 = !0; }; S0(); break; } if (N0) break; W0 += G0; } for (e.ascent = y3U.G8l(f, U0), W0 = y3U.N8l(T0, G0), N0 = !1, U0 = j; y3U.L8l(U0, f); U0--) { for (k0 = 0; y3U.z8l(G0, k0); k0 += 4) if (y3U.J8l(255, a0[W0 + k0])) { var I0 = function () { N0 = !0; }; I0(); break; } if (N0) break; W0 -= G0; } e.descent = y3U.H8l(U0, f), e.descent += 6, e.fontSize = e.ascent + e.descent, i.Text.fontPropertiesCache[m] = e; } return e; }, i.Text.prototype.wordWrap = function (k) { for (var m = "", e = k.split("\n"), o = 0; y3U.h8l(o, e.length); o++) { for (var n = this.style.wordWrapWidth, u = e[o].split(" "), q = 0; y3U.F8l(q, u.length); q++) { var f = this.context.measureText(u[q]).width, j = f + this.context.measureText(" ").width; y3U.M8l(0, q) || y3U.n8l(j, n) ? (y3U.f8l(q, 0) && (m += "\n"), m += u[q], n = y3U.K8l(this.style.wordWrapWidth, f)) : (n -= j, m += " " + u[q]); } y3U.B8l(o, e.length - 1) && (m += "\n"); } return m; }, i.Text.prototype.getBounds = function (k) { return this.dirty && (this.updateText(), this.dirty = !1), i.Sprite.prototype.getBounds.call(this, k); }, i.Text.prototype.destroy = function (k) { this.context = null, this.canvas = null, this.texture.destroy(void 0 === k ? !0 : k); }, i.Text.fontPropertiesCache = {}, i.Text.fontPropertiesCanvas = r2w8n[H8n]['createElement']("canvas"), i.Text.fontPropertiesContext = i.Text.fontPropertiesCanvas.getContext("2d"), i.BitmapText = function (k, m) { i.DisplayObjectContainer.call(this), this.textWidth = 0, this.textHeight = 0, this._pool = [], this.setText(k), this.setStyle(m), this.updateText(), this.dirty = !1; }, i.BitmapText.prototype = Object.create(i.DisplayObjectContainer.prototype), i.BitmapText.prototype.constructor = i.BitmapText, i.BitmapText.prototype.setText = function (k) { this.text = k || " ", this.dirty = !0; }, i.BitmapText.prototype.setStyle = function (k) { k = k || {}, k.align = k.align || "left", this.style = k; var m = k.font.split(" "); this.fontName = m[y3U.l8l(m.length, 1)], this.fontSize = y3U.X8l(m.length, 2) ? parseInt(m[y3U.Y8l(m.length, 2)], 10) : i.BitmapText.fonts[this.fontName].size, this.dirty = !0, this.tint = k.tint; }, i.BitmapText.prototype.updateText = function () { for (var k = i.BitmapText.fonts[this.fontName], m = new i.Point, e = null, o = [], n = 0, u = [], q = 0, f = y3U.U0V(this.fontSize, k.size), j = 0; y3U.T0V(j, this.text.length); j++) { var U0 = this.text.charCodeAt(j); if (/(?:\r\n|\r|\n)/.test(this.text.charAt(j))) u.push(m.x), n = Math.max(n, m.x), q++, m.x = 0, m.y += k.lineHeight, e = null; else { var k0 = k.chars[U0]; k0 && (e && k0.kerning[e] && (m.x += k0.kerning[e]), o.push({ texture : k0.texture, line : q, charCode : U0, position : new i.Point(m.x + k0.xOffset, m.y + k0.yOffset) }), m.x += k0.xAdvance, e = U0); } } u.push(m.x), n = Math.max(n, m.x); var a0 = []; for (j = 0; y3U.S0V(q, j); j++) { var T0 = 0; y3U.I0V("right", this.style.align) ? T0 = y3U.C0V(n, u[j]) : y3U.v0V("center", this.style.align) && (T0 = y3U.t0V((n - u[j]), 2)), a0.push(T0); } var G0 = this.children.length, W0 = o.length, N0 = this.tint || 16777215; for (j = 0; y3U.y0V(W0, j); j++) { var S0 = y3U.o0V(G0, j) ? this.children[j] : this._pool.pop(); S0 ? S0.setTexture(o[j].texture) : S0 = new i.Sprite(o[j].texture), S0.position.x = y3U.x0V((o[j].position.x + a0[o[j].line]), f), S0.position.y = y3U.p0V(o[j].position.y, f), S0.scale.x = S0.scale.y = f, S0.tint = N0, S0.parent || this.addChild(S0); } for (; y3U.q0V(this.children.length, W0); ) { var I0 = this.getChildAt(y3U.b0V(this.children.length, 1)); this._pool.push(I0), this.removeChild(I0); } this.textWidth = y3U.j0V(n, f), this.textHeight = y3U.d0V((m.y + k.lineHeight), f); }, i.BitmapText.prototype.updateTransform = function () { this.dirty && (this.updateText(), this.dirty = !1), i.DisplayObjectContainer.prototype.updateTransform.call(this); }, i.BitmapText.fonts = {}, i.Stage = function (k) { i.DisplayObjectContainer.call(this), this.worldTransform = new i.Matrix, this.interactive = !0, this.interactionManager = new i.InteractionManager(this), this.dirty = !0, this.stage = this, this.stage.hitArea = new i.Rectangle(0, 0, 1e5, 1e5), this.setBackgroundColor(k); }, i.Stage.prototype = Object.create(i.DisplayObjectContainer.prototype), i.Stage.prototype.constructor = i.Stage, i.Stage.prototype.setInteractionDelegate = function (k) { this.interactionManager.setTargetDomElement(k); }, i.Stage.prototype.updateTransform = function () { this.worldAlpha = 1; for (var k = 0, m = this.children.length; y3U.c0V(m, k); k++) this.children[k].updateTransform(); this.dirty && (this.dirty = !1, this.interactionManager.dirty = !0), this.interactive && this.interactionManager.update(); }, i.Stage.prototype.setBackgroundColor = function (k) { this.backgroundColor = k || 0, this.backgroundColorSplit = i.hex2rgb(this.backgroundColor); var m = this.backgroundColor.toString(16); m = "000000".substr(0, y3U.s0V(6, m.length)) + m, this.backgroundColorString = "#" + m; }, i.Stage.prototype.getMousePosition = function () { return this.interactionManager.mouse.global; }, function (n) { for (var u = 0, q = ["ms", "moz", "webkit", "o"], f = 0; y3U.Q0V(f, q.length) && !n.requestAnimationFrame; ++f) n.requestAnimationFrame = n[q[f] + "RequestAnimationFrame"], n.cancelAnimationFrame = n[q[f] + "CancelAnimationFrame"] || n[q[f] + "CancelRequestAnimationFrame"]; n.requestAnimationFrame || (n.requestAnimationFrame = function (k) { var m = (new Date).getTime(), e = Math.max(0, y3U.a7V(16, (m - u))), o = n.setTimeout(function () { k(m + e); }, e); return u = m + e, o; }), n.cancelAnimationFrame || (n.cancelAnimationFrame = function (k) { clearTimeout(k); }), n.requestAnimFrame = n.requestAnimationFrame; } (this), i.hex2rgb = function (k) { return [y3U.W7V((k >> 16 & 255), 255), y3U.m7V((k >> 8 & 255), 255), y3U.A7V((255 & k), 255)]; }, i.rgb2hex = function (k) { return (y3U.w7V(255 * k[0], 16)) + (y3U.E7V(255 * k[1], 8)) + y3U.e7V(255, k[2]); }, "function" != typeof Function.prototype.bind && (Function.prototype.bind = function () { return function (e) { function o() { for (var k = arguments.length, m = new Array(k); k--; ) m[k] = arguments[k]; return m = q.concat(m), n.apply(y3U.g7V(this, o) ? this : e, m); } var n = this, u = y3U.r7V(arguments.length, 1), q = []; if (y3U.i7V(u, 0)) for (q.length = u; u--; ) q[u] = arguments[u + 1]; if ("function" != typeof n) throw new TypeError; return o.prototype = function f(k) { return k && (f.prototype = k), y3U.u7V(this, f) ? void 0 : new f; } (n.prototype), o; }; } ()), i.AjaxRequest = function () { var m = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Microsoft.XMLHTTP"]; if (!r2w8n[E8n].ActiveXObject) return r2w8n[E8n]['XMLHttpRequest'] ? new r2w8n[E8n]['XMLHttpRequest'] : !1; for (var e = 0; y3U.P7V(e, m.length); e++) try { return new r2w8n[E8n].ActiveXObject(m[e]); } catch (k) {} }, i.canUseNewCanvasBlendModes = function () { if ("undefined" == typeof document) return !1; var k = r2w8n[H8n]['createElement']("canvas"); k.width = 1, k.height = 1; var m = k.getContext("2d"); return m.fillStyle = "#000", m.fillRect(0, 0, 1, 1), m.globalCompositeOperation = "multiply", m.fillStyle = "#fff", m.fillRect(0, 0, 1, 1), y3U.D7V(0, m.getImageData(0, 0, 1, 1).data[0]); }, i.getNextPowerOfTwo = function (k) { if (y3U.Z7V(k, 0) && y3U.R7V(0, (k & k - 1))) return k; for (var m = 1; y3U.O7V(k, m); ) m <<= 1; return m; }, i.isPowerOfTwo = function (k, m) { return y3U.V7V(k, 0) && y3U.k4V(0, (k & k - 1)) && y3U.G4V(m, 0) && y3U.N4V(0, (m & m - 1)); }, i.EventTarget = { call : function (k) { k && (k = k.prototype || k, i.EventTarget.mixin(k)); }, mixin : function (q) { q.listeners = function (k) { return this._listeners = this._listeners || {}, this._listeners[k] ? this._listeners[k].slice() : []; }, q.emit = q.dispatchEvent = function (k, m) { if (this._listeners = this._listeners || {}, "object" == typeof k && (m = k, k = k.type), m && m.__isEventObject === !0 || (m = new i.Event(this, k, m)), this._listeners && this._listeners[k]) { var e, o = this._listeners[k].slice(0), n = o.length, u = o[0]; for (e = 0; y3U.L4V(n, e); u = o[++e]) if (u.call(this, m), m.stoppedImmediate) return this; if (m.stopped) return this; } return this.parent && this.parent.emit && this.parent.emit.call(this.parent, k, m), this; }, q.on = q.addEventListener = function (k, m) { return this._listeners = this._listeners || {}, (this._listeners[k] = this._listeners[k] || []).push(m), this; }, q.once = function (k, m) { function e() { m.apply(o.off(k, e), arguments); } this._listeners = this._listeners || {}; var o = this; return e._originalHandler = m, this.on(k, e); }, q.off = q.removeEventListener = function (k, m) { if (this._listeners = this._listeners || {}, !this._listeners[k]) return this; for (var e = this._listeners[k], o = m ? e.length : 0; y3U.z4V(o--, 0); ) (y3U.J4V(e[o], m) || y3U.H4V(e[o]._originalHandler, m)) && e.splice(o, 1); return y3U.h4V(0, e.length) && delete this._listeners[k], this; }, q.removeAllListeners = function (k) { return this._listeners = this._listeners || {}, this._listeners[k] ? (delete this._listeners[k], this) : this; }; } }, i.Event = function (k, m, e) { this.__isEventObject = !0, this.stopped = !1, this.stoppedImmediate = !1, this.target = k, this.type = m, this.data = e, this.content = e, this.timeStamp = Date.now(); }, i.Event.prototype.stopPropagation = function () { this.stopped = !0; }, i.Event.prototype.stopImmediatePropagation = function () { this.stoppedImmediate = !0; }, i.PolyK = {}, i.PolyK.Triangulate = function (m) { var e = function (k) { f = k; }, o = !0, n = y3U.F4V(m.length, 1); if (y3U.M4V(3, n)) return []; for (var u = [], q = [], f = 0; y3U.n4V(n, f); f++) q.push(f); e(0); for (var j = n; y3U.f4V(j, 3); ) { var U0 = q[y3U.K4V((f + 0), j)], k0 = q[y3U.B4V((f + 1), j)], a0 = q[y3U.l4V((f + 2), j)], T0 = m[y3U.X4V(2, U0)], G0 = m[y3U.Y4V(2, U0) + 1], W0 = m[y3U.U3V(2, k0)], N0 = m[y3U.T3V(2, k0) + 1], S0 = m[y3U.S3V(2, a0)], I0 = m[y3U.I3V(2, a0) + 1], m0 = !1; if (i.PolyK._convex(T0, G0, W0, N0, S0, I0, o)) { var A0 = function () { m0 = !0; }; A0(); for (var L0 = 0; y3U.C3V(j, L0); L0++) { var z0 = q[L0]; if (y3U.v3V(z0, U0) && y3U.t3V(z0, k0) && y3U.y3V(z0, a0) && i.PolyK._PointInTriangle(m[y3U.o3V(2, z0)], m[y3U.x3V(2, z0) + 1], T0, G0, W0, N0, S0, I0)) { var E0 = function () { m0 = !1; }; E0(); break; } } } if (m0) u.push(U0, k0, a0), q.splice(y3U.p3V((f + 1), j), 1), j--, f = 0; else if (y3U.q3V(f++, 3 * j)) { if (!o) return null; for (u = [], q = [], f = 0; y3U.b3V(n, f); f++) q.push(f); f = 0, j = n, o = !1; } } return u.push(q[0], q[1], q[2]), u; }, i.PolyK._PointInTriangle = function (k, m, e, o, n, u, q, f) { var j = y3U.j3V(q, e), U0 = y3U.d3V(f, o), k0 = y3U.c3V(n, e), a0 = y3U.s3V(u, o), T0 = y3U.Q3V(k, e), G0 = y3U.a9V(m, o), W0 = y3U.W9V(j, j) + y3U.m9V(U0, U0), N0 = y3U.A9V(j, k0) + y3U.w9V(U0, a0), S0 = y3U.E9V(j, T0) + y3U.e9V(U0, G0), I0 = y3U.g9V(k0, k0) + y3U.r9V(a0, a0), m0 = y3U.i9V(k0, T0) + y3U.u9V(a0, G0), A0 = y3U.P9V(1, (W0 * I0 - N0 * N0)), L0 = y3U.D9V((I0 * S0 - N0 * m0), A0), z0 = y3U.Z9V((W0 * m0 - N0 * S0), A0); return y3U.R9V(L0, 0) && y3U.O9V(z0, 0) && y3U.V9V(1, L0 + z0); }, i.PolyK._convex = function (k, m, e, o, n, u, q) { return y3U.k5V((m - o) * (n - e) + (e - k) * (u - o) >= 0, q); }, i.initDefaultShaders = function () {}, i.CompileVertexShader = function (k, m) { return i._CompileShader(k, m, k.VERTEX_SHADER); }, i.CompileFragmentShader = function (k, m) { return i._CompileShader(k, m, k.FRAGMENT_SHADER); }, i._CompileShader = function (k, m, e) { var o = m.join("\n"), n = k.createShader(e); return k.shaderSource(n, o), k.compileShader(n), k.getShaderParameter(n, k.COMPILE_STATUS) ? n : (r2w8n[E8n]['console'].log(k.getShaderInfoLog(n)), null); }, i.compileProgram = function (k, m, e) { var o = i.CompileFragmentShader(k, e), n = i.CompileVertexShader(k, m), u = k.createProgram(); return k.attachShader(u, n), k.attachShader(u, o), k.linkProgram(u), k.getProgramParameter(u, k.LINK_STATUS) || r2w8n[E8n]['console'].log("Could not initialise shaders"), u; }, i.PixiShader = function (k) { this._UID = i._UID++, this.gl = k, 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 k = this.gl, m = i.compileProgram(k, this.vertexSrc || i.PixiShader.defaultVertexSrc, this.fragmentSrc); k.useProgram(m), this.uSampler = k.getUniformLocation(m, "uSampler"), this.projectionVector = k.getUniformLocation(m, "projectionVector"), this.offsetVector = k.getUniformLocation(m, "offsetVector"), this.dimensions = k.getUniformLocation(m, "dimensions"), this.aVertexPosition = k.getAttribLocation(m, "aVertexPosition"), this.aTextureCoord = k.getAttribLocation(m, "aTextureCoord"), this.colorAttribute = k.getAttribLocation(m, "aColor"), -1 === this.colorAttribute && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aTextureCoord, this.colorAttribute]; for (var e in this.uniforms) this.uniforms[e].uniformLocation = k.getUniformLocation(m, e); this.initUniforms(), this.program = m; }, i.PixiShader.prototype.initUniforms = function () { this.textureCount = 1; var k, m = this.gl; for (var e in this.uniforms) { k = this.uniforms[e]; var o = k.type; y3U.G5V("sampler2D", o) ? (k._init = !1, y3U.N5V(null, k.value) && this.initSampler2D(k)) : y3U.L5V("mat2", o) || y3U.z5V("mat3", o) || y3U.J5V("mat4", o) ? (k.glMatrix = !0, k.glValueLength = 1, y3U.H5V("mat2", o) ? k.glFunc = m.uniformMatrix2fv : y3U.h5V("mat3", o) ? k.glFunc = m.uniformMatrix3fv : y3U.F5V("mat4", o) && (k.glFunc = m.uniformMatrix4fv)) : (k.glFunc = m["uniform" + o], k.glValueLength = y3U.M5V("2f", o) || y3U.n5V("2i", o) ? 2 : y3U.f5V("3f", o) || y3U.K5V("3i", o) ? 3 : y3U.B5V("4f", o) || y3U.l5V("4i", o) ? 4 : 1); } }, i.PixiShader.prototype.initSampler2D = function (k) { if (k.value && k.value.baseTexture && k.value.baseTexture.hasLoaded) { var m = this.gl; if (m.activeTexture(m["TEXTURE" + this.textureCount]), m.bindTexture(m.TEXTURE_2D, k.value.baseTexture._glTextures[m.id]), k.textureData) { var e = k.textureData, o = e.magFilter ? e.magFilter : m.LINEAR, n = e.minFilter ? e.minFilter : m.LINEAR, u = e.wrapS ? e.wrapS : m.CLAMP_TO_EDGE, q = e.wrapT ? e.wrapT : m.CLAMP_TO_EDGE, f = e.luminance ? m.LUMINANCE : m.RGBA; if (e.repeat && (u = m.REPEAT, q = m.REPEAT), m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL, !!e.flipY), e.width) { var j = e.width ? e.width : 512, U0 = e.height ? e.height : 2, k0 = e.border ? e.border : 0; m.texImage2D(m.TEXTURE_2D, 0, f, j, U0, k0, f, m.UNSIGNED_BYTE, null); } else m.texImage2D(m.TEXTURE_2D, 0, f, m.RGBA, m.UNSIGNED_BYTE, k.value.baseTexture.source); m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MAG_FILTER, o), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, n), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, u), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, q); } m.uniform1i(k.uniformLocation, this.textureCount), k._init = !0, this.textureCount++; } }, i.PixiShader.prototype.syncUniforms = function () { this.textureCount = 1; var k, m = this.gl; for (var e in this.uniforms) k = this.uniforms[e], y3U.X5V(1, k.glValueLength) ? k.glMatrix === !0 ? k.glFunc.call(m, k.uniformLocation, k.transpose, k.value) : k.glFunc.call(m, k.uniformLocation, k.value) : y3U.Y5V(2, k.glValueLength) ? k.glFunc.call(m, k.uniformLocation, k.value.x, k.value.y) : y3U.U2V(3, k.glValueLength) ? k.glFunc.call(m, k.uniformLocation, k.value.x, k.value.y, k.value.z) : y3U.T2V(4, k.glValueLength) ? k.glFunc.call(m, k.uniformLocation, k.value.x, k.value.y, k.value.z, k.value.w) : y3U.S2V("sampler2D", k.type) && (k._init ? (m.activeTexture(m["TEXTURE" + this.textureCount]), k.value.baseTexture._dirty[m.id] ? i.instances[m.id].updateTexture(k.value.baseTexture) : m.bindTexture(m.TEXTURE_2D, k.value.baseTexture._glTextures[m.id]), m.uniform1i(k.uniformLocation, this.textureCount), this.textureCount++) : this.initSampler2D(k)); }, 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 (k) { this._UID = i._UID++, this.gl = k, 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 k = this.gl, m = i.compileProgram(k, this.vertexSrc, this.fragmentSrc); k.useProgram(m), this.uSampler = k.getUniformLocation(m, "uSampler"), this.projectionVector = k.getUniformLocation(m, "projectionVector"), this.offsetVector = k.getUniformLocation(m, "offsetVector"), this.dimensions = k.getUniformLocation(m, "dimensions"), this.uMatrix = k.getUniformLocation(m, "uMatrix"), this.aVertexPosition = k.getAttribLocation(m, "aVertexPosition"), this.aPositionCoord = k.getAttribLocation(m, "aPositionCoord"), this.aScale = k.getAttribLocation(m, "aScale"), this.aRotation = k.getAttribLocation(m, "aRotation"), this.aTextureCoord = k.getAttribLocation(m, "aTextureCoord"), this.colorAttribute = k.getAttribLocation(m, "aColor"), -1 === this.colorAttribute && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aPositionCoord, this.aScale, this.aRotation, this.aTextureCoord, this.colorAttribute], this.program = m; }, i.PixiFastShader.prototype.destroy = function () { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null; }, i.StripShader = function (k) { this._UID = i._UID++, this.gl = k, 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 k = this.gl, m = i.compileProgram(k, this.vertexSrc, this.fragmentSrc); k.useProgram(m), this.uSampler = k.getUniformLocation(m, "uSampler"), this.projectionVector = k.getUniformLocation(m, "projectionVector"), this.offsetVector = k.getUniformLocation(m, "offsetVector"), this.colorAttribute = k.getAttribLocation(m, "aColor"), this.aVertexPosition = k.getAttribLocation(m, "aVertexPosition"), this.aTextureCoord = k.getAttribLocation(m, "aTextureCoord"), this.attributes = [this.aVertexPosition, this.aTextureCoord], this.translationMatrix = k.getUniformLocation(m, "translationMatrix"), this.alpha = k.getUniformLocation(m, "alpha"), this.program = m; }, i.StripShader.prototype.destroy = function () { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attribute = null; }, i.PrimitiveShader = function (k) { this._UID = i._UID++, this.gl = k, 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 k = this.gl, m = i.compileProgram(k, this.vertexSrc, this.fragmentSrc); k.useProgram(m), this.projectionVector = k.getUniformLocation(m, "projectionVector"), this.offsetVector = k.getUniformLocation(m, "offsetVector"), this.tintColor = k.getUniformLocation(m, "tint"), this.flipY = k.getUniformLocation(m, "flipY"), this.aVertexPosition = k.getAttribLocation(m, "aVertexPosition"), this.colorAttribute = k.getAttribLocation(m, "aColor"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = k.getUniformLocation(m, "translationMatrix"), this.alpha = k.getUniformLocation(m, "alpha"), this.program = m; }, i.PrimitiveShader.prototype.destroy = function () { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null; }, i.ComplexPrimitiveShader = function (k) { this._UID = i._UID++, this.gl = k, 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 k = this.gl, m = i.compileProgram(k, this.vertexSrc, this.fragmentSrc); k.useProgram(m), this.projectionVector = k.getUniformLocation(m, "projectionVector"), this.offsetVector = k.getUniformLocation(m, "offsetVector"), this.tintColor = k.getUniformLocation(m, "tint"), this.color = k.getUniformLocation(m, "color"), this.flipY = k.getUniformLocation(m, "flipY"), this.aVertexPosition = k.getAttribLocation(m, "aVertexPosition"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = k.getUniformLocation(m, "translationMatrix"), this.alpha = k.getUniformLocation(m, "alpha"), this.program = m; }, i.ComplexPrimitiveShader.prototype.destroy = function () { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attribute = null; }, i.WebGLGraphics = function () {}, i.WebGLGraphics.renderGraphics = function (k, m) { var e, o = m.gl, n = m.projection, u = m.offset, q = m.shaderManager.primitiveShader; k.dirty && i.WebGLGraphics.updateGraphics(k, o); for (var f = k._webGL[o.id], j = 0; y3U.I2V(j, f.data.length); j++) y3U.C2V(1, f.data[j].mode) ? (e = f.data[j], m.stencilManager.pushStencil(k, e, m), o.drawElements(o.TRIANGLE_FAN, 4, o.UNSIGNED_SHORT, y3U.v2V(2, (e.indices.length - 4))), m.stencilManager.popStencil(k, e, m)) : (e = f.data[j], m.shaderManager.setShader(q), q = m.shaderManager.primitiveShader, o.uniformMatrix3fv(q.translationMatrix, !1, k.worldTransform.toArray(!0)), o.uniform1f(q.flipY, 1), o.uniform2f(q.projectionVector, n.x, -n.y), o.uniform2f(q.offsetVector, -u.x, -u.y), o.uniform3fv(q.tintColor, i.hex2rgb(k.tint)), o.uniform1f(q.alpha, k.worldAlpha), o.bindBuffer(o.ARRAY_BUFFER, e.buffer), o.vertexAttribPointer(q.aVertexPosition, 2, o.FLOAT, !1, 24, 0), o.vertexAttribPointer(q.colorAttribute, 4, o.FLOAT, !1, 24, 8), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, e.indexBuffer), o.drawElements(o.TRIANGLE_STRIP, e.indices.length, o.UNSIGNED_SHORT, 0)); }, i.WebGLGraphics.updateGraphics = function (k, m) { var e = k._webGL[m.id]; e || (e = k._webGL[m.id] = { lastIndex : 0, data : [], gl : m }), k.dirty = !1; var o; if (k.clearDirty) { for (k.clearDirty = !1, o = 0; y3U.t2V(o, e.data.length); o++) { var n = e.data[o]; n.reset(), i.WebGLGraphics.graphicsDataPool.push(n); } e.data = [], e.lastIndex = 0; } var u; for (o = e.lastIndex; y3U.y2V(o, k.graphicsData.length); o++) { var q = k.graphicsData[o]; if (y3U.o2V(q.type, i.Graphics.POLY)) { if (q.points = q.shape.points.slice(), q.shape.closed && (y3U.x2V(q.points[0], q.points[q.points.length - 2]) || y3U.p2V(q.points[1], q.points[q.points.length - 1])) && q.points.push(q.points[0], q.points[1]), q.fill && y3U.q2V(q.points.length, 6)) if (y3U.b2V(q.points.length, 12)) { u = i.WebGLGraphics.switchMode(e, 0); var f = i.WebGLGraphics.buildPoly(q, u); f || (u = i.WebGLGraphics.switchMode(e, 1), i.WebGLGraphics.buildComplexPoly(q, u)); } else u = i.WebGLGraphics.switchMode(e, 1), i.WebGLGraphics.buildComplexPoly(q, u); y3U.j2V(q.lineWidth, 0) && (u = i.WebGLGraphics.switchMode(e, 0), i.WebGLGraphics.buildLine(q, u)); } else u = i.WebGLGraphics.switchMode(e, 0), y3U.d2V(q.type, i.Graphics.RECT) ? i.WebGLGraphics.buildRectangle(q, u) : y3U.c2V(q.type, i.Graphics.CIRC) || y3U.s2V(q.type, i.Graphics.ELIP) ? i.WebGLGraphics.buildCircle(q, u) : y3U.Q2V(q.type, i.Graphics.RREC) && i.WebGLGraphics.buildRoundedRectangle(q, u); e.lastIndex++; } for (o = 0; y3U.a1V(o, e.data.length); o++) u = e.data[o], u.dirty && u.upload(); }, i.WebGLGraphics.switchMode = function (k, m) { var e; return k.data.length ? (e = k.data[y3U.W1V(k.data.length, 1)], (y3U.m1V(e.mode, m) || y3U.A1V(1, m)) && (e = i.WebGLGraphics.graphicsDataPool.pop() || new i.WebGLGraphicsData(k.gl), e.mode = m, k.data.push(e))) : (e = i.WebGLGraphics.graphicsDataPool.pop() || new i.WebGLGraphicsData(k.gl), e.mode = m, k.data.push(e)), e.dirty = !0, e; }, i.WebGLGraphics.buildRectangle = function (k, m) { var e = k.shape, o = e.x, n = e.y, u = e.width, q = e.height; if (k.fill) { var f = i.hex2rgb(k.fillColor), j = k.fillAlpha, U0 = y3U.w1V(f[0], j), k0 = y3U.E1V(f[1], j), a0 = y3U.e1V(f[2], j), T0 = m.points, G0 = m.indices, W0 = y3U.g1V(T0.length, 6); T0.push(o, n), T0.push(U0, k0, a0, j), T0.push(o + u, n), T0.push(U0, k0, a0, j), T0.push(o, n + q), T0.push(U0, k0, a0, j), T0.push(o + u, n + q), T0.push(U0, k0, a0, j), G0.push(W0, W0, W0 + 1, W0 + 2, W0 + 3, W0 + 3); } if (k.lineWidth) { var N0 = k.points; k.points = [o, n, o + u, n, o + u, n + q, o, n + q, o, n], i.WebGLGraphics.buildLine(k, m), k.points = N0; } }, i.WebGLGraphics.buildRoundedRectangle = function (k, m) { var e = k.shape, o = e.x, n = e.y, u = e.width, q = e.height, f = e.radius, j = []; if (j.push(o, n + f), j = j.concat(i.WebGLGraphics.quadraticBezierCurve(o, n + q - f, o, n + q, o + f, n + q)), j = j.concat(i.WebGLGraphics.quadraticBezierCurve(o + u - f, n + q, o + u, n + q, o + u, n + q - f)), j = j.concat(i.WebGLGraphics.quadraticBezierCurve(o + u, n + f, o + u, n, o + u - f, n)), j = j.concat(i.WebGLGraphics.quadraticBezierCurve(o + f, n, o, n, o, n + f)), k.fill) { var U0 = i.hex2rgb(k.fillColor), k0 = k.fillAlpha, a0 = y3U.r1V(U0[0], k0), T0 = y3U.i1V(U0[1], k0), G0 = y3U.u1V(U0[2], k0), W0 = m.points, N0 = m.indices, S0 = y3U.P1V(W0.length, 6), I0 = i.PolyK.Triangulate(j), m0 = 0; for (m0 = 0; y3U.D1V(m0, I0.length); m0 += 3) N0.push(I0[m0] + S0), N0.push(I0[m0] + S0), N0.push(I0[m0 + 1] + S0), N0.push(I0[m0 + 2] + S0), N0.push(I0[m0 + 2] + S0); for (m0 = 0; y3U.Z1V(m0, j.length); m0++) W0.push(j[m0], j[++m0], a0, T0, G0, k0); } if (k.lineWidth) { var A0 = k.points; k.points = j, i.WebGLGraphics.buildLine(k, m), k.points = A0; } }, i.WebGLGraphics.quadraticBezierCurve = function (n, u, q, f, j, U0) { function k0(k, m, e) { var o = y3U.R1V(m, k); return k + y3U.O1V(o, e); } for (var a0, T0, G0, W0, N0, S0, I0 = 20, m0 = [], A0 = 0, L0 = 0; y3U.V1V(I0, L0); L0++) A0 = y3U.k6V(L0, I0), a0 = k0(n, q, A0), T0 = k0(u, f, A0), G0 = k0(q, j, A0), W0 = k0(f, U0, A0), N0 = k0(a0, G0, A0), S0 = k0(T0, W0, A0), m0.push(N0, S0); return m0; }, i.WebGLGraphics.buildCircle = function (k, m) { var e, o, n = k.shape, u = n.x, q = n.y; y3U.G6V(k.type, i.Graphics.CIRC) ? (e = n.radius, o = n.radius) : (e = n.width, o = n.height); var f = 40, j = y3U.N6V(2, Math.PI, f), U0 = 0; if (k.fill) { var k0 = i.hex2rgb(k.fillColor), a0 = k.fillAlpha, T0 = y3U.A6V(k0[0], a0), G0 = y3U.w6V(k0[1], a0), W0 = y3U.E6V(k0[2], a0), N0 = m.points, S0 = m.indices, I0 = y3U.e6V(N0.length, 6); for (S0.push(I0), U0 = 0; y3U.g6V(f + 1, U0); U0++) N0.push(u, q, T0, G0, W0, a0), N0.push(u + y3U.r6V(Math.sin(j * U0), e), q + y3U.i6V(Math.cos(j * U0), o), T0, G0, W0, a0), S0.push(I0++, I0++); S0.push(y3U.u6V(I0, 1)); } if (k.lineWidth) { var m0 = k.points; for (k.points = [], U0 = 0; y3U.P6V(f + 1, U0); U0++) k.points.push(u + y3U.D6V(Math.sin(j * U0), e), q + y3U.Z6V(Math.cos(j * U0), o)); i.WebGLGraphics.buildLine(k, m), k.points = m0; } }, i.WebGLGraphics.buildLine = function (k, m) { var e = 0, o = k.points; if (y3U.R6V(0, o.length)) { if (y3U.O6V(k.lineWidth, 2)) for (e = 0; y3U.V6V(e, o.length); e++) o[e] += .5; var n = new i.Point(o[0], o[1]), u = new i.Point(o[y3U.k8V(o.length, 2)], o[y3U.G8V(o.length, 1)]); if (y3U.N8V(n.x, u.x) && y3U.L8V(n.y, u.y)) { o = o.slice(), o.pop(), o.pop(), u = new i.Point(o[y3U.z8V(o.length, 2)], o[y3U.J8V(o.length, 1)]); var q = u.x + y3U.H8V(.5, (n.x - u.x)), f = u.y + y3U.h8V(.5, (n.y - u.y)); o.unshift(q, f), o.push(q, f); } var j, U0, k0, a0, T0, G0, W0, N0, S0, I0, m0, A0, L0, z0, E0, v0, J0, t0, w0, g0, H0, M0, p0, e0 = m.points, F0 = m.indices, P0 = y3U.F8V(o.length, 2), O0 = o.length, b0 = y3U.M8V(e0.length, 6), d0 = y3U.n8V(k.lineWidth, 2), l0 = i.hex2rgb(k.lineColor), j0 = k.lineAlpha, Z0 = y3U.f8V(l0[0], j0), R0 = y3U.K8V(l0[1], j0), q0 = y3U.B8V(l0[2], j0); for (k0 = o[0], a0 = o[1], T0 = o[2], G0 = o[3], S0 = - (y3U.l8V(a0, G0)), I0 = y3U.X8V(k0, T0), p0 = Math.sqrt(y3U.Y8V(S0, S0) + y3U.U03(I0, I0)), S0 /= p0, I0 /= p0, S0 *= d0, I0 *= d0, e0.push(y3U.T03(k0, S0), y3U.S03(a0, I0), Z0, R0, q0, j0), e0.push(k0 + S0, a0 + I0, Z0, R0, q0, j0), e = 1; y3U.I03(P0 - 1, e); e++) k0 = o[y3U.C03(2, (e - 1))], a0 = o[y3U.v03(2, (e - 1)) + 1], T0 = o[y3U.t03(2, e)], G0 = o[y3U.y03(2, e) + 1], W0 = o[y3U.o03(2, (e + 1))], N0 = o[y3U.x03(2, (e + 1)) + 1], S0 = - (y3U.p03(a0, G0)), I0 = y3U.q03(k0, T0), p0 = Math.sqrt(y3U.b03(S0, S0) + y3U.j03(I0, I0)), S0 /= p0, I0 /= p0, S0 *= d0, I0 *= d0, m0 = - (y3U.d03(G0, N0)), A0 = y3U.c03(T0, W0), p0 = Math.sqrt(y3U.s03(m0, m0) + y3U.Q03(A0, A0)), m0 /= p0, A0 /= p0, m0 *= d0, A0 *= d0, E0 = -I0 + a0 - (-I0 + G0), v0 = -S0 + T0 - (-S0 + k0), J0 = (-S0 + k0) * (-I0 + G0) - (-S0 + T0) * (-I0 + a0), t0 = -A0 + N0 - (-A0 + G0), w0 = -m0 + T0 - (-m0 + W0), g0 = (-m0 + W0) * (-A0 + G0) - (-m0 + T0) * (-A0 + N0), H0 = y3U.a73(E0 * w0, t0 * v0), y3U.W73(Math.abs(H0), .1) ? (H0 += 10.1, e0.push(y3U.m73(T0, S0), y3U.A73(G0, I0), Z0, R0, q0, j0), e0.push(T0 + S0, G0 + I0, Z0, R0, q0, j0)) : (j = y3U.w73((v0 * g0 - w0 * J0), H0), U0 = y3U.E73((t0 * J0 - E0 * g0), H0), M0 = y3U.e73((j - T0), (j - T0)) + (y3U.g73(U0, G0)) + (y3U.r73(U0, G0)), y3U.i73(M0, 19600) ? (L0 = y3U.u73(S0, m0), z0 = y3U.P73(I0, A0), p0 = Math.sqrt(y3U.D73(L0, L0) + y3U.Z73(z0, z0)), L0 /= p0, z0 /= p0, L0 *= d0, z0 *= d0, e0.push(y3U.R73(T0, L0), y3U.O73(G0, z0)), e0.push(Z0, R0, q0, j0), e0.push(T0 + L0, G0 + z0), e0.push(Z0, R0, q0, j0), e0.push(y3U.V73(T0, L0), y3U.k43(G0, z0)), e0.push(Z0, R0, q0, j0), O0++) : (e0.push(j, U0), e0.push(Z0, R0, q0, j0), e0.push(y3U.G43(T0, (j - T0)), y3U.N43(G0, (U0 - G0))), e0.push(Z0, R0, q0, j0))); for (k0 = o[y3U.L43(2, (P0 - 2))], a0 = o[y3U.z43(2, (P0 - 2)) + 1], T0 = o[y3U.J43(2, (P0 - 1))], G0 = o[y3U.H43(2, (P0 - 1)) + 1], S0 = - (y3U.h43(a0, G0)), I0 = y3U.F43(k0, T0), p0 = Math.sqrt(y3U.M43(S0, S0) + y3U.n43(I0, I0)), S0 /= p0, I0 /= p0, S0 *= d0, I0 *= d0, e0.push(y3U.f43(T0, S0), y3U.K43(G0, I0)), e0.push(Z0, R0, q0, j0), e0.push(T0 + S0, G0 + I0), e0.push(Z0, R0, q0, j0), F0.push(b0), e = 0; y3U.B43(O0, e); e++) F0.push(b0++); F0.push(y3U.l43(b0, 1)); } }, i.WebGLGraphics.buildComplexPoly = function (k, m) { var e = k.points.slice(); if (!(y3U.X43(e.length, 6))) { var o = m.indices; m.points = e, m.alpha = k.fillAlpha, m.color = i.hex2rgb(k.fillColor); for (var n, u, q = y3U.Y43(1, 0), f = -1 / 0, j = y3U.U33(1, 0), U0 = -1 / 0, k0 = 0; y3U.T33(k0, e.length); k0 += 2) n = e[k0], u = e[k0 + 1], q = y3U.S33(q, n) ? n : q, f = y3U.I33(n, f) ? n : f, j = y3U.C33(j, u) ? u : j, U0 = y3U.v33(u, U0) ? u : U0; e.push(q, j, f, j, f, U0, q, U0); var a0 = y3U.t33(e.length, 2); for (k0 = 0; y3U.y33(a0, k0); k0++) o.push(k0); } }, i.WebGLGraphics.buildPoly = function (k, m) { var e = k.points; if (!(y3U.o33(e.length, 6))) { var o = m.points, n = m.indices, u = y3U.x33(e.length, 2), q = i.hex2rgb(k.fillColor), f = k.fillAlpha, j = y3U.p33(q[0], f), U0 = y3U.q33(q[1], f), k0 = y3U.b33(q[2], f), a0 = i.PolyK.Triangulate(e); if (!a0) return !1; var T0 = y3U.j33(o.length, 6), G0 = 0; for (G0 = 0; y3U.d33(G0, a0.length); G0 += 3) n.push(a0[G0] + T0), n.push(a0[G0] + T0), n.push(a0[G0 + 1] + T0), n.push(a0[G0 + 2] + T0), n.push(a0[G0 + 2] + T0); for (G0 = 0; y3U.c33(u, G0); G0++) o.push(e[y3U.s33(2, G0)], e[y3U.Q33(2, G0) + 1], j, U0, k0, f); return !0; } }, i.WebGLGraphics.graphicsDataPool = [], i.WebGLGraphicsData = function (k) { this.gl = k, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = k.createBuffer(), this.indexBuffer = k.createBuffer(), this.mode = 1, this.alpha = 1, this.dirty = !0; }, i.WebGLGraphicsData.prototype.reset = function () { this.points = [], this.indices = []; }, i.WebGLGraphicsData.prototype.upload = function () { var k = this.gl; this.glPoints = new i.Float32Array(this.points), k.bindBuffer(k.ARRAY_BUFFER, this.buffer), k.bufferData(k.ARRAY_BUFFER, this.glPoints, k.STATIC_DRAW), this.glIndicies = new i.Uint16Array(this.indices), k.bindBuffer(k.ELEMENT_ARRAY_BUFFER, this.indexBuffer), k.bufferData(k.ELEMENT_ARRAY_BUFFER, this.glIndicies, k.STATIC_DRAW), this.dirty = !1; }, i.glContexts = [], i.instances = [], i.WebGLRenderer = function (m, e, o) { var n = function (k) { o = k.defaultRenderOptions; }; if (o) for (var u in i.defaultRenderOptions) "undefined" == typeof o[u] && (o[u] = i.defaultRenderOptions[u]); else n(i); i.defaultRenderer || (i.sayHello("webGL"), i.defaultRenderer = this), this.type = i.WEBGL_RENDERER, this.resolution = o.resolution, this.transparent = o.transparent, this.autoResize = o.autoResize || !1, this.preserveDrawingBuffer = o.preserveDrawingBuffer, this.clearBeforeRender = o.clearBeforeRender, this.width = m || 800, this.height = e || 600, this.view = o.view || r2w8n[H8n]['createElement']("canvas"), this.contextLostBound = this.handleContextLost.bind(this), this.contextRestoredBound = this.handleContextRestored.bind(this), this.view.addEventListener("webglcontextlost", this.contextLostBound, !1), this.view.addEventListener("webglcontextrestored", this.contextRestoredBound, !1), this._contextOptions = { alpha : this.transparent, antialias : o.antialias, premultipliedAlpha : this.transparent && y3U.a93("notMultiplied", this.transparent), stencil : !0, preserveDrawingBuffer : o.preserveDrawingBuffer }, this.projection = new i.Point, this.offset = new i.Point(0, 0), 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.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, this.renderSession.resolution = this.resolution, this.initContext(), this.mapBlendModes(); }, i.WebGLRenderer.prototype.constructor = i.WebGLRenderer, i.WebGLRenderer.prototype.initContext = function () { var k = this.view.getContext("webgl", this._contextOptions) || this.view.getContext("experimental-webgl", this._contextOptions); if (this.gl = k, !k) throw new Error("This browser does not support webGL. Try using the canvas renderer"); this.glContextId = k.id = i.WebGLRenderer.glContextId++, i.glContexts[this.glContextId] = k, i.instances[this.glContextId] = this, k.disable(k.DEPTH_TEST), k.disable(k.CULL_FACE), k.enable(k.BLEND), this.shaderManager.setContext(k), this.spriteBatch.setContext(k), this.maskManager.setContext(k), this.filterManager.setContext(k), this.blendModeManager.setContext(k), this.stencilManager.setContext(k), this.renderSession.gl = this.gl, this.resize(this.width, this.height); }, i.WebGLRenderer.prototype.render = function (k) { if (!this.contextLost) { y3U.W93(this.__stage, k) && (k.interactive && k.interactionManager.removeEvents(), this.__stage = k), k.updateTransform(); var m = this.gl; k._interactive ? k._interactiveEventsAdded || (k._interactiveEventsAdded = !0, k.interactionManager.setTarget(this)) : k._interactiveEventsAdded && (k._interactiveEventsAdded = !1, k.interactionManager.setTarget(this)), m.viewport(0, 0, this.width, this.height), m.bindFramebuffer(m.FRAMEBUFFER, null), this.clearBeforeRender && (this.transparent ? m.clearColor(0, 0, 0, 0) : m.clearColor(k.backgroundColorSplit[0], k.backgroundColorSplit[1], k.backgroundColorSplit[2], 1), m.clear(m.COLOR_BUFFER_BIT)), this.renderDisplayObject(k, this.projection); } }, i.WebGLRenderer.prototype.renderDisplayObject = function (k, m, e) { this.renderSession.blendModeManager.setBlendMode(i.blendModes.NORMAL), this.renderSession.drawCount = 0, this.renderSession.flipY = e ? -1 : 1, this.renderSession.projection = m, this.renderSession.offset = this.offset, this.spriteBatch.begin(this.renderSession), this.filterManager.begin(this.renderSession, e), k._renderWebGL(this.renderSession), this.spriteBatch.end(); }, i.WebGLRenderer.prototype.resize = function (k, m) { this.width = y3U.m93(k, this.resolution), this.height = y3U.A93(m, this.resolution), this.view.width = this.width, this.view.height = this.height, this.autoResize && (this.view.style.width = y3U.w93(this.width, this.resolution) + "px", this.view.style.height = y3U.E93(this.height, this.resolution) + "px"), this.gl.viewport(0, 0, this.width, this.height), this.projection.x = y3U.e93(this.width, 2, this.resolution), this.projection.y = -this.height / 2 / this.resolution; }, i.WebGLRenderer.prototype.updateTexture = function (k) { if (k.hasLoaded) { var m = this.gl; return k._glTextures[m.id] || (k._glTextures[m.id] = m.createTexture()), m.bindTexture(m.TEXTURE_2D, k._glTextures[m.id]), m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL, k.premultipliedAlpha), m.texImage2D(m.TEXTURE_2D, 0, m.RGBA, m.RGBA, m.UNSIGNED_BYTE, k.source), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MAG_FILTER, y3U.o93(k.scaleMode, i.scaleModes.LINEAR) ? m.LINEAR : m.NEAREST), k.mipmap && i.isPowerOfTwo(k.width, k.height) ? (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, y3U.x93(k.scaleMode, i.scaleModes.LINEAR) ? m.LINEAR_MIPMAP_LINEAR : m.NEAREST_MIPMAP_NEAREST), m.generateMipmap(m.TEXTURE_2D)) : m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, y3U.p93(k.scaleMode, i.scaleModes.LINEAR) ? m.LINEAR : m.NEAREST), k._powerOf2 ? (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, m.REPEAT), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, m.REPEAT)) : (m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, m.CLAMP_TO_EDGE), m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, m.CLAMP_TO_EDGE)), k._dirty[m.id] = !1, k._glTextures[m.id]; } }, i.WebGLRenderer.prototype.handleContextLost = function (k) { k.preventDefault(), this.contextLost = !0; }, i.WebGLRenderer.prototype.handleContextRestored = function () { this.initContext(); for (var k in i.TextureCache) { var m = function () { e._glTextures = []; }; var e = i.TextureCache[k].baseTexture; m(); } this.contextLost = !1; }, i.WebGLRenderer.prototype.destroy = function () { this.view.removeEventListener("webglcontextlost", this.contextLostBound), this.view.removeEventListener("webglcontextrestored", this.contextRestoredBound), 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.WebGLRenderer.prototype.mapBlendModes = function () { var k = this.gl; i.blendModesWebGL || (i.blendModesWebGL = [], i.blendModesWebGL[i.blendModes.NORMAL] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.ADD] = [k.SRC_ALPHA, k.DST_ALPHA], i.blendModesWebGL[i.blendModes.MULTIPLY] = [k.DST_COLOR, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.SCREEN] = [k.SRC_ALPHA, k.ONE], i.blendModesWebGL[i.blendModes.OVERLAY] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.DARKEN] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.LIGHTEN] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.COLOR_DODGE] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.COLOR_BURN] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.HARD_LIGHT] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.SOFT_LIGHT] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.DIFFERENCE] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.EXCLUSION] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.HUE] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.SATURATION] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.COLOR] = [k.ONE, k.ONE_MINUS_SRC_ALPHA], i.blendModesWebGL[i.blendModes.LUMINOSITY] = [k.ONE, k.ONE_MINUS_SRC_ALPHA]); }, i.WebGLRenderer.glContextId = 0, i.WebGLBlendModeManager = function () { this.currentBlendMode = 99999; }, i.WebGLBlendModeManager.prototype.constructor = i.WebGLBlendModeManager, i.WebGLBlendModeManager.prototype.setContext = function (k) { this.gl = k; }, i.WebGLBlendModeManager.prototype.setBlendMode = function (k) { if (y3U.q93(this.currentBlendMode, k)) return !1; this.currentBlendMode = k; var m = i.blendModesWebGL[this.currentBlendMode]; return this.gl.blendFunc(m[0], m[1]), !0; }, i.WebGLBlendModeManager.prototype.destroy = function () { this.gl = null; }, i.WebGLMaskManager = function () {}, i.WebGLMaskManager.prototype.constructor = i.WebGLMaskManager, i.WebGLMaskManager.prototype.setContext = function (k) { this.gl = k; }, i.WebGLMaskManager.prototype.pushMask = function (k, m) { var e = m.gl; k.dirty && i.WebGLGraphics.updateGraphics(k, e), k._webGL[e.id].data.length && m.stencilManager.pushStencil(k, k._webGL[e.id].data[0], m); }, i.WebGLMaskManager.prototype.popMask = function (k, m) { var e = this.gl; m.stencilManager.popStencil(k, k._webGL[e.id].data[0], m); }, i.WebGLMaskManager.prototype.destroy = function () { this.gl = null; }, i.WebGLStencilManager = function () { this.stencilStack = [], this.reverse = !0, this.count = 0; }, i.WebGLStencilManager.prototype.setContext = function (k) { this.gl = k; }, i.WebGLStencilManager.prototype.pushStencil = function (k, m, e) { var o = this.gl; this.bindGraphics(k, m, e), y3U.b93(0, this.stencilStack.length) && (o.enable(o.STENCIL_TEST), o.clear(o.STENCIL_BUFFER_BIT), this.reverse = !0, this.count = 0), this.stencilStack.push(m); var n = this.count; o.colorMask(!1, !1, !1, !1), o.stencilFunc(o.ALWAYS, 0, 255), o.stencilOp(o.KEEP, o.KEEP, o.INVERT), y3U.j93(1, m.mode) ? (o.drawElements(o.TRIANGLE_FAN, y3U.d93(m.indices.length, 4), o.UNSIGNED_SHORT, 0), this.reverse ? (o.stencilFunc(o.EQUAL, y3U.c93(255, n), 255), o.stencilOp(o.KEEP, o.KEEP, o.DECR)) : (o.stencilFunc(o.EQUAL, n, 255), o.stencilOp(o.KEEP, o.KEEP, o.INCR)), o.drawElements(o.TRIANGLE_FAN, 4, o.UNSIGNED_SHORT, y3U.s93(2, (m.indices.length - 4))), this.reverse ? o.stencilFunc(o.EQUAL, y3U.Q93(255, (n + 1)), 255) : o.stencilFunc(o.EQUAL, n + 1, 255), this.reverse = !this.reverse) : (this.reverse ? (o.stencilFunc(o.EQUAL, n, 255), o.stencilOp(o.KEEP, o.KEEP, o.INCR)) : (o.stencilFunc(o.EQUAL, y3U.a53(255, n), 255), o.stencilOp(o.KEEP, o.KEEP, o.DECR)), o.drawElements(o.TRIANGLE_STRIP, m.indices.length, o.UNSIGNED_SHORT, 0), this.reverse ? o.stencilFunc(o.EQUAL, n + 1, 255) : o.stencilFunc(o.EQUAL, y3U.W53(255, (n + 1)), 255)), o.colorMask(!0, !0, !0, !0), o.stencilOp(o.KEEP, o.KEEP, o.KEEP), this.count++; }, i.WebGLStencilManager.prototype.bindGraphics = function (k, m, e) { this._currentGraphics = k; var o, n = this.gl, u = e.projection, q = e.offset; y3U.m53(1, m.mode) ? (o = e.shaderManager.complexPrimitiveShader, e.shaderManager.setShader(o), n.uniform1f(o.flipY, e.flipY), n.uniformMatrix3fv(o.translationMatrix, !1, k.worldTransform.toArray(!0)), n.uniform2f(o.projectionVector, u.x, -u.y), n.uniform2f(o.offsetVector, -q.x, -q.y), n.uniform3fv(o.tintColor, i.hex2rgb(k.tint)), n.uniform3fv(o.color, m.color), n.uniform1f(o.alpha, y3U.A53(k.worldAlpha, m.alpha)), n.bindBuffer(n.ARRAY_BUFFER, m.buffer), n.vertexAttribPointer(o.aVertexPosition, 2, n.FLOAT, !1, 8, 0), n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, m.indexBuffer)) : (o = e.shaderManager.primitiveShader, e.shaderManager.setShader(o), n.uniformMatrix3fv(o.translationMatrix, !1, k.worldTransform.toArray(!0)), n.uniform1f(o.flipY, e.flipY), n.uniform2f(o.projectionVector, u.x, -u.y), n.uniform2f(o.offsetVector, -q.x, -q.y), n.uniform3fv(o.tintColor, i.hex2rgb(k.tint)), n.uniform1f(o.alpha, k.worldAlpha), n.bindBuffer(n.ARRAY_BUFFER, m.buffer), n.vertexAttribPointer(o.aVertexPosition, 2, n.FLOAT, !1, 24, 0), n.vertexAttribPointer(o.colorAttribute, 4, n.FLOAT, !1, 24, 8), n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, m.indexBuffer)); }, i.WebGLStencilManager.prototype.popStencil = function (k, m, e) { var o = this.gl; if (this.stencilStack.pop(), this.count--, y3U.w53(0, this.stencilStack.length)) o.disable(o.STENCIL_TEST); else { var n = this.count; this.bindGraphics(k, m, e), o.colorMask(!1, !1, !1, !1), y3U.E53(1, m.mode) ? (this.reverse = !this.reverse, this.reverse ? (o.stencilFunc(o.EQUAL, y3U.e53(255, (n + 1)), 255), o.stencilOp(o.KEEP, o.KEEP, o.INCR)) : (o.stencilFunc(o.EQUAL, n + 1, 255), o.stencilOp(o.KEEP, o.KEEP, o.DECR)), o.drawElements(o.TRIANGLE_FAN, 4, o.UNSIGNED_SHORT, y3U.g53(2, (m.indices.length - 4))), o.stencilFunc(o.ALWAYS, 0, 255), o.stencilOp(o.KEEP, o.KEEP, o.INVERT), o.drawElements(o.TRIANGLE_FAN, y3U.r53(m.indices.length, 4), o.UNSIGNED_SHORT, 0), this.reverse ? o.stencilFunc(o.EQUAL, n, 255) : o.stencilFunc(o.EQUAL, y3U.i53(255, n), 255)) : (this.reverse ? (o.stencilFunc(o.EQUAL, n + 1, 255), o.stencilOp(o.KEEP, o.KEEP, o.DECR)) : (o.stencilFunc(o.EQUAL, y3U.u53(255, (n + 1)), 255), o.stencilOp(o.KEEP, o.KEEP, o.INCR)), o.drawElements(o.TRIANGLE_STRIP, m.indices.length, o.UNSIGNED_SHORT, 0), this.reverse ? o.stencilFunc(o.EQUAL, n, 255) : o.stencilFunc(o.EQUAL, y3U.P53(255, n), 255)), o.colorMask(!0, !0, !0, !0), o.stencilOp(o.KEEP, o.KEEP, o.KEEP); } }, i.WebGLStencilManager.prototype.destroy = function () { this.stencilStack = null, this.gl = null; }, i.WebGLShaderManager = function () { this.maxAttibs = 10, this.attribState = [], this.tempAttribState = []; for (var k = 0; y3U.D53(k, this.maxAttibs); k++) this.attribState[k] = !1; this.stack = []; }, i.WebGLShaderManager.prototype.constructor = i.WebGLShaderManager, i.WebGLShaderManager.prototype.setContext = function (k) { this.gl = k, this.primitiveShader = new i.PrimitiveShader(k), this.complexPrimitiveShader = new i.ComplexPrimitiveShader(k), this.defaultShader = new i.PixiShader(k), this.fastShader = new i.PixiFastShader(k), this.stripShader = new i.StripShader(k), this.setShader(this.defaultShader); }, i.WebGLShaderManager.prototype.setAttribs = function (k) { var m; for (m = 0; y3U.Z53(m, this.tempAttribState.length); m++) this.tempAttribState[m] = !1; for (m = 0; y3U.R53(m, k.length); m++) { var e = k[m]; this.tempAttribState[e] = !0; } var o = this.gl; for (m = 0; y3U.O53(m, this.attribState.length); m++) y3U.V53(this.attribState[m], this.tempAttribState[m]) && (this.attribState[m] = this.tempAttribState[m], this.tempAttribState[m] ? o.enableVertexAttribArray(m) : o.disableVertexAttribArray(m)); }, i.WebGLShaderManager.prototype.setShader = function (k) { return y3U.k23(this._currentId, k._UID) ? !1 : (this._currentId = k._UID, this.currentShader = k, this.gl.useProgram(k.program), this.setAttribs(k.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 k = y3U.G23(4, this.size, 4, this.vertSize), m = y3U.I23(6, this.size); this.vertices = new i.ArrayBuffer(k), this.positions = new i.Float32Array(this.vertices), this.colors = new i.Uint32Array(this.vertices), this.indices = new i.Uint16Array(m), this.lastIndexCount = 0; for (var e = 0, o = 0; y3U.C23(m, e); e += 6, o += 4) this.indices[e + 0] = o + 0, this.indices[e + 1] = o + 1, this.indices[e + 2] = o + 2, this.indices[e + 3] = o + 0, this.indices[e + 4] = o + 2, this.indices[e + 5] = o + 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 (k) { this.gl = k, this.vertexBuffer = k.createBuffer(), this.indexBuffer = k.createBuffer(), k.bindBuffer(k.ELEMENT_ARRAY_BUFFER, this.indexBuffer), k.bufferData(k.ELEMENT_ARRAY_BUFFER, this.indices, k.STATIC_DRAW), k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), k.bufferData(k.ARRAY_BUFFER, this.vertices, k.DYNAMIC_DRAW), this.currentBlendMode = 99999; var m = new i.PixiShader(k); m.fragmentSrc = this.defaultShader.fragmentSrc, m.uniforms = {}, m.init(), this.defaultShader.shaders[k.id] = m; }, i.WebGLSpriteBatch.prototype.begin = function (k) { this.renderSession = k, this.shader = this.renderSession.shaderManager.defaultShader, this.start(); }, i.WebGLSpriteBatch.prototype.end = function () { this.flush(); }, i.WebGLSpriteBatch.prototype.render = function (k) { var m = k.texture; y3U.v23(this.currentBatchSize, this.size) && (this.flush(), this.currentBaseTexture = m.baseTexture); var e = m._uvs; if (e) { var o, n, u, q, f = k.anchor.x, j = k.anchor.y; if (m.trim) { var U0 = m.trim; n = y3U.t23(U0.x, f * U0.width), o = n + m.crop.width, q = y3U.y23(U0.y, j * U0.height), u = q + m.crop.height; } else o = y3U.o23(m.frame.width, (1 - f)), n = m.frame.width * -f, u = y3U.x23(m.frame.height, (1 - j)), q = m.frame.height * -j; var k0 = y3U.p23(4, this.currentBatchSize, this.vertSize), a0 = m.baseTexture.resolution, T0 = k.worldTransform, G0 = y3U.f23(T0.a, a0), W0 = y3U.K23(T0.b, a0), N0 = y3U.B23(T0.c, a0), S0 = y3U.l23(T0.d, a0), I0 = T0.tx, m0 = T0.ty, A0 = this.colors, L0 = this.positions; this.renderSession.roundPixels ? (L0[k0] = y3U.X23(G0 * n + N0 * q + I0, 0), L0[k0 + 1] = y3U.Y23(S0 * q + W0 * n + m0, 0), L0[k0 + 5] = y3U.U13(G0 * o + N0 * q + I0, 0), L0[k0 + 6] = y3U.T13(S0 * q + W0 * o + m0, 0), L0[k0 + 10] = y3U.S13(G0 * o + N0 * u + I0, 0), L0[k0 + 11] = y3U.I13(S0 * u + W0 * o + m0, 0), L0[k0 + 15] = y3U.C13(G0 * n + N0 * u + I0, 0), L0[k0 + 16] = y3U.v13(S0 * u + W0 * n + m0, 0)) : (L0[k0] = y3U.t13(G0, n) + y3U.y13(N0, q) + I0, L0[k0 + 1] = y3U.o13(S0, q) + y3U.M13(W0, n) + m0, L0[k0 + 5] = y3U.n13(G0, o) + y3U.f13(N0, q) + I0, L0[k0 + 6] = y3U.K13(S0, q) + y3U.B13(W0, o) + m0, L0[k0 + 10] = y3U.l13(G0, o) + y3U.X13(N0, u) + I0, L0[k0 + 11] = y3U.Y13(S0, u) + y3U.U63(W0, o) + m0, L0[k0 + 15] = y3U.T63(G0, n) + y3U.S63(N0, u) + I0, L0[k0 + 16] = y3U.I63(S0, u) + y3U.C63(W0, n) + m0), L0[k0 + 2] = e.x0, L0[k0 + 3] = e.y0, L0[k0 + 7] = e.x1, L0[k0 + 8] = e.y1, L0[k0 + 12] = e.x2, L0[k0 + 13] = e.y2, L0[k0 + 17] = e.x3, L0[k0 + 18] = e.y3; var z0 = k.tint; A0[k0 + 4] = A0[k0 + 9] = A0[k0 + 14] = A0[k0 + 19] = (y3U.v63(z0, 16)) + (y3U.t63(65280, z0)) + (y3U.y63((255 & z0), 16)) + (y3U.o63(255 * k.worldAlpha, 24)), this.sprites[this.currentBatchSize++] = k; } }, i.WebGLSpriteBatch.prototype.renderTilingSprite = function (k) { var m = k.tilingTexture; y3U.x63(this.currentBatchSize, this.size) && (this.flush(), this.currentBaseTexture = m.baseTexture), k._uvs || (k._uvs = new i.TextureUvs); var e = k._uvs; k.tilePosition.x %= y3U.p63(m.baseTexture.width, k.tileScaleOffset.x), k.tilePosition.y %= y3U.q63(m.baseTexture.height, k.tileScaleOffset.y); var o = y3U.b63(k.tilePosition.x, (m.baseTexture.width * k.tileScaleOffset.x)), n = y3U.j63(k.tilePosition.y, (m.baseTexture.height * k.tileScaleOffset.y)), u = y3U.d63(k.width, m.baseTexture.width, (k.tileScale.x * k.tileScaleOffset.x)), q = y3U.X63(k.height, m.baseTexture.height, (k.tileScale.y * k.tileScaleOffset.y)); e.x0 = y3U.V63(0, o), e.y0 = y3U.k83(0, n), e.x1 = y3U.G83(1 * u, o), e.y1 = y3U.N83(0, n), e.x2 = y3U.L83(1 * u, o), e.y2 = y3U.z83(1 * q, n), e.x3 = y3U.J83(0, o), e.y3 = y3U.H83(1 * q, n); var f = k.tint, j = (y3U.h83(f, 16)) + (y3U.F83(65280, f)) + (y3U.M83((255 & f), 16)) + (y3U.n83(255 * k.alpha, 24)), U0 = this.positions, k0 = this.colors, a0 = k.width, T0 = k.height, G0 = k.anchor.x, W0 = k.anchor.y, N0 = y3U.f83(a0, (1 - G0)), S0 = a0 * -G0, I0 = y3U.K83(T0, (1 - W0)), m0 = T0 * -W0, A0 = y3U.B83(4, this.currentBatchSize, this.vertSize), L0 = m.baseTexture.resolution, z0 = k.worldTransform, E0 = y3U.R83(z0.a, L0), v0 = y3U.O83(z0.b, L0), J0 = y3U.V83(z0.c, L0), t0 = y3U.k09(z0.d, L0), w0 = z0.tx, g0 = z0.ty; U0[A0++] = y3U.G09(E0, S0) + y3U.N09(J0, m0) + w0, U0[A0++] = y3U.L09(t0, m0) + y3U.z09(v0, S0) + g0, U0[A0++] = e.x0, U0[A0++] = e.y0, k0[A0++] = j, U0[A0++] = y3U.J09(E0, N0) + y3U.H09(J0, m0) + w0, U0[A0++] = y3U.h09(t0, m0) + y3U.F09(v0, N0) + g0, U0[A0++] = e.x1, U0[A0++] = e.y1, k0[A0++] = j, U0[A0++] = y3U.M09(E0, N0) + y3U.n09(J0, I0) + w0, U0[A0++] = y3U.f09(t0, I0) + y3U.K09(v0, N0) + g0, U0[A0++] = e.x2, U0[A0++] = e.y2, k0[A0++] = j, U0[A0++] = y3U.B09(E0, S0) + y3U.l09(J0, I0) + w0, U0[A0++] = y3U.X09(t0, I0) + y3U.Y09(v0, S0) + g0, U0[A0++] = e.x3, U0[A0++] = e.y3, k0[A0++] = j, this.sprites[this.currentBatchSize++] = k; }, i.WebGLSpriteBatch.prototype.flush = function () { if (y3U.U79(0, this.currentBatchSize)) { var k, m = this.gl; if (this.dirty) { this.dirty = !1, m.activeTexture(m.TEXTURE0), m.bindBuffer(m.ARRAY_BUFFER, this.vertexBuffer), m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, this.indexBuffer), k = this.defaultShader.shaders[m.id]; var e = y3U.T79(4, this.vertSize); m.vertexAttribPointer(k.aVertexPosition, 2, m.FLOAT, !1, e, 0), m.vertexAttribPointer(k.aTextureCoord, 2, m.FLOAT, !1, e, 8), m.vertexAttribPointer(k.colorAttribute, 4, m.UNSIGNED_BYTE, !0, e, 16); } if (y3U.S79(this.currentBatchSize, .5 * this.size)) m.bufferSubData(m.ARRAY_BUFFER, 0, this.vertices); else { var o = this.positions.subarray(0, y3U.I79(4, this.currentBatchSize, this.vertSize)); m.bufferSubData(m.ARRAY_BUFFER, 0, o); } for (var n, u, q, f, j = 0, U0 = 0, k0 = null, a0 = this.renderSession.blendModeManager.currentBlendMode, T0 = null, G0 = !1, W0 = !1, N0 = 0, S0 = this.currentBatchSize; y3U.z79(S0, N0); N0++) { if (f = this.sprites[N0], n = f.texture.baseTexture, u = f.blendMode, q = f.shader || this.defaultShader, G0 = y3U.J79(a0, u), W0 = y3U.H79(T0, q), (y3U.h79(k0, n) || G0 || W0) && (this.renderBatch(k0, j, U0), U0 = N0, j = 0, k0 = n, G0 && (a0 = u, this.renderSession.blendModeManager.setBlendMode(a0)), W0)) { T0 = q, k = T0.shaders[m.id], k || (k = new i.PixiShader(m), k.fragmentSrc = T0.fragmentSrc, k.uniforms = T0.uniforms, k.init(), T0.shaders[m.id] = k), this.renderSession.shaderManager.setShader(k), k.dirty && k.syncUniforms(); var I0 = this.renderSession.projection; m.uniform2f(k.projectionVector, I0.x, I0.y); var m0 = this.renderSession.offset; m.uniform2f(k.offsetVector, m0.x, m0.y); } j++; } this.renderBatch(k0, j, U0), this.currentBatchSize = 0; } }, i.WebGLSpriteBatch.prototype.renderBatch = function (k, m, e) { if (y3U.F79(0, m)) { var o = this.gl; k._dirty[o.id] ? this.renderSession.renderer.updateTexture(k) : o.bindTexture(o.TEXTURE_2D, k._glTextures[o.id]), o.drawElements(o.TRIANGLES, y3U.M79(6, m), o.UNSIGNED_SHORT, y3U.n79(6, e, 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 (k) { this.vertSize = 10, this.maxSize = 6e3, this.size = this.maxSize; var m = y3U.P79(4, this.size, this.vertSize), e = y3U.j79(6, this.maxSize); this.vertices = new i.Float32Array(m), this.indices = new i.Uint16Array(e), this.vertexBuffer = null, this.indexBuffer = null, this.lastIndexCount = 0; for (var o = 0, n = 0; y3U.d79(e, o); o += 6, n += 4) this.indices[o + 0] = n + 0, this.indices[o + 1] = n + 1, this.indices[o + 2] = n + 2, this.indices[o + 3] = n + 0, this.indices[o + 4] = n + 2, this.indices[o + 5] = n + 3; this.drawing = !1, this.currentBatchSize = 0, this.currentBaseTexture = null, this.currentBlendMode = 0, this.renderSession = null, this.shader = null, this.matrix = null, this.setContext(k); }, i.WebGLFastSpriteBatch.prototype.constructor = i.WebGLFastSpriteBatch, i.WebGLFastSpriteBatch.prototype.setContext = function (k) { this.gl = k, this.vertexBuffer = k.createBuffer(), this.indexBuffer = k.createBuffer(), k.bindBuffer(k.ELEMENT_ARRAY_BUFFER, this.indexBuffer), k.bufferData(k.ELEMENT_ARRAY_BUFFER, this.indices, k.STATIC_DRAW), k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), k.bufferData(k.ARRAY_BUFFER, this.vertices, k.DYNAMIC_DRAW); }, i.WebGLFastSpriteBatch.prototype.begin = function (k, m) { this.renderSession = m, this.shader = this.renderSession.shaderManager.fastShader, this.matrix = k.worldTransform.toArray(!0), this.start(); }, i.WebGLFastSpriteBatch.prototype.end = function () { this.flush(); }, i.WebGLFastSpriteBatch.prototype.render = function (k) { var m = k.children, e = m[0]; if (e.texture._uvs) { this.currentBaseTexture = e.texture.baseTexture, y3U.c79(e.blendMode, this.renderSession.blendModeManager.currentBlendMode) && (this.flush(), this.renderSession.blendModeManager.setBlendMode(e.blendMode)); for (var o = 0, n = m.length; y3U.s79(n, o); o++) this.renderSprite(m[o]); this.flush(); } }, i.WebGLFastSpriteBatch.prototype.renderSprite = function (k) { if (k.visible && (y3U.Q79(k.texture.baseTexture, this.currentBaseTexture) || (this.flush(), this.currentBaseTexture = k.texture.baseTexture, k.texture._uvs))) { var m, e, o, n, u, q, f, j, U0 = this.vertices; if (m = k.texture._uvs, e = k.texture.frame.width, o = k.texture.frame.height, k.texture.trim) { var k0 = k.texture.trim; u = y3U.a49(k0.x, k.anchor.x * k0.width), n = u + k.texture.crop.width, f = y3U.W49(k0.y, k.anchor.y * k0.height), q = f + k.texture.crop.height; } else n = y3U.m49(k.texture.frame.width, (1 - k.anchor.x)), u = k.texture.frame.width * -k.anchor.x, q = y3U.A49(k.texture.frame.height, (1 - k.anchor.y)), f = k.texture.frame.height * -k.anchor.y; j = y3U.w49(4, this.currentBatchSize, this.vertSize), U0[j++] = u, U0[j++] = f, U0[j++] = k.position.x, U0[j++] = k.position.y, U0[j++] = k.scale.x, U0[j++] = k.scale.y, U0[j++] = k.rotation, U0[j++] = m.x0, U0[j++] = m.y1, U0[j++] = k.alpha, U0[j++] = n, U0[j++] = f, U0[j++] = k.position.x, U0[j++] = k.position.y, U0[j++] = k.scale.x, U0[j++] = k.scale.y, U0[j++] = k.rotation, U0[j++] = m.x1, U0[j++] = m.y1, U0[j++] = k.alpha, U0[j++] = n, U0[j++] = q, U0[j++] = k.position.x, U0[j++] = k.position.y, U0[j++] = k.scale.x, U0[j++] = k.scale.y, U0[j++] = k.rotation, U0[j++] = m.x2, U0[j++] = m.y2, U0[j++] = k.alpha, U0[j++] = u, U0[j++] = q, U0[j++] = k.position.x, U0[j++] = k.position.y, U0[j++] = k.scale.x, U0[j++] = k.scale.y, U0[j++] = k.rotation, U0[j++] = m.x3, U0[j++] = m.y3, U0[j++] = k.alpha, this.currentBatchSize++, y3U.t49(this.currentBatchSize, this.size) && this.flush(); } }, i.WebGLFastSpriteBatch.prototype.flush = function () { if (y3U.y49(0, this.currentBatchSize)) { var k = this.gl; if (this.currentBaseTexture._glTextures[k.id] || this.renderSession.renderer.updateTexture(this.currentBaseTexture, k), k.bindTexture(k.TEXTURE_2D, this.currentBaseTexture._glTextures[k.id]), y3U.o49(this.currentBatchSize, .5 * this.size)) k.bufferSubData(k.ARRAY_BUFFER, 0, this.vertices); else { var m = this.vertices.subarray(0, y3U.x49(4, this.currentBatchSize, this.vertSize)); k.bufferSubData(k.ARRAY_BUFFER, 0, m); } k.drawElements(k.TRIANGLES, y3U.n49(6, this.currentBatchSize), k.UNSIGNED_SHORT, 0), this.currentBatchSize = 0, this.renderSession.drawCount++; } }, i.WebGLFastSpriteBatch.prototype.stop = function () { this.flush(); }, i.WebGLFastSpriteBatch.prototype.start = function () { var k = this.gl; k.activeTexture(k.TEXTURE0), k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), k.bindBuffer(k.ELEMENT_ARRAY_BUFFER, this.indexBuffer); var m = this.renderSession.projection; k.uniform2f(this.shader.projectionVector, m.x, m.y), k.uniformMatrix3fv(this.shader.uMatrix, !1, this.matrix); var e = y3U.f49(4, this.vertSize); k.vertexAttribPointer(this.shader.aVertexPosition, 2, k.FLOAT, !1, e, 0), k.vertexAttribPointer(this.shader.aPositionCoord, 2, k.FLOAT, !1, e, 8), k.vertexAttribPointer(this.shader.aScale, 2, k.FLOAT, !1, e, 16), k.vertexAttribPointer(this.shader.aRotation, 1, k.FLOAT, !1, e, 24), k.vertexAttribPointer(this.shader.aTextureCoord, 2, k.FLOAT, !1, e, 28), k.vertexAttribPointer(this.shader.colorAttribute, 1, k.FLOAT, !1, e, 36); }, i.WebGLFilterManager = function () { this.filterStack = [], this.offsetX = 0, this.offsetY = 0; }, i.WebGLFilterManager.prototype.constructor = i.WebGLFilterManager, i.WebGLFilterManager.prototype.setContext = function (k) { this.gl = k, this.texturePool = [], this.initShaderBuffers(); }, i.WebGLFilterManager.prototype.begin = function (k, m) { this.renderSession = k, this.defaultShader = k.shaderManager.defaultShader; var e = this.renderSession.projection; this.width = y3U.K49(2, e.x), this.height = 2 * -e.y, this.buffer = m; }, i.WebGLFilterManager.prototype.pushFilter = function (k) { var m = this.gl, e = this.renderSession.projection, o = this.renderSession.offset; k._filterArea = k.target.filterArea || k.target.getBounds(), this.filterStack.push(k); var n = k.filterPasses[0]; this.offsetX += k._filterArea.x, this.offsetY += k._filterArea.y; var u = this.texturePool.pop(); u ? u.resize(this.width, this.height) : u = new i.FilterTexture(this.gl, this.width, this.height), m.bindTexture(m.TEXTURE_2D, u.texture); var q = k._filterArea, f = n.padding; q.x -= f, q.y -= f, q.width += y3U.B49(2, f), q.height += y3U.l49(2, f), y3U.X49(q.x, 0) && (q.x = 0), y3U.Y49(q.width, this.width) && (q.width = this.width), y3U.U39(q.y, 0) && (q.y = 0), y3U.T39(q.height, this.height) && (q.height = this.height), m.bindFramebuffer(m.FRAMEBUFFER, u.frameBuffer), m.viewport(0, 0, q.width, q.height), e.x = y3U.S39(q.width, 2), e.y = -q.height / 2, o.x = -q.x, o.y = -q.y, m.colorMask(!0, !0, !0, !0), m.clearColor(0, 0, 0, 0), m.clear(m.COLOR_BUFFER_BIT), k._glFilterTexture = u; }, i.WebGLFilterManager.prototype.popFilter = function () { var k = this.gl, m = this.filterStack.pop(), e = m._filterArea, o = m._glFilterTexture, n = this.renderSession.projection, u = this.renderSession.offset; if (y3U.I39(m.filterPasses.length, 1)) { k.viewport(0, 0, e.width, e.height), k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = 0, this.vertexArray[1] = e.height, this.vertexArray[2] = e.width, this.vertexArray[3] = e.height, this.vertexArray[4] = 0, this.vertexArray[5] = 0, this.vertexArray[6] = e.width, this.vertexArray[7] = 0, k.bufferSubData(k.ARRAY_BUFFER, 0, this.vertexArray), k.bindBuffer(k.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = y3U.C39(e.width, this.width), this.uvArray[5] = y3U.v39(e.height, this.height), this.uvArray[6] = y3U.t39(e.width, this.width), this.uvArray[7] = y3U.y39(e.height, this.height), k.bufferSubData(k.ARRAY_BUFFER, 0, this.uvArray); var q = o, f = this.texturePool.pop(); f || (f = new i.FilterTexture(this.gl, this.width, this.height)), f.resize(this.width, this.height), k.bindFramebuffer(k.FRAMEBUFFER, f.frameBuffer), k.clear(k.COLOR_BUFFER_BIT), k.disable(k.BLEND); for (var j = 0; y3U.o39(j, m.filterPasses.length - 1); j++) { var U0 = m.filterPasses[j]; k.bindFramebuffer(k.FRAMEBUFFER, f.frameBuffer), k.activeTexture(k.TEXTURE0), k.bindTexture(k.TEXTURE_2D, q.texture), this.applyFilterPass(U0, e, e.width, e.height); var k0 = q; q = f, f = k0; } k.enable(k.BLEND), o = q, this.texturePool.push(f); } var a0 = m.filterPasses[y3U.x39(m.filterPasses.length, 1)]; this.offsetX -= e.x, this.offsetY -= e.y; var T0 = this.width, G0 = this.height, W0 = 0, N0 = 0, S0 = this.buffer; if (y3U.p39(0, this.filterStack.length)) k.colorMask(!0, !0, !0, !0); else { var I0 = this.filterStack[y3U.q39(this.filterStack.length, 1)]; e = I0._filterArea, T0 = e.width, G0 = e.height, W0 = e.x, N0 = e.y, S0 = I0._glFilterTexture.frameBuffer; } n.x = y3U.b39(T0, 2), n.y = -G0 / 2, u.x = W0, u.y = N0, e = m._filterArea; var m0 = y3U.j39(e.x, W0), A0 = y3U.d39(e.y, N0); k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = m0, this.vertexArray[1] = A0 + e.height, this.vertexArray[2] = m0 + e.width, this.vertexArray[3] = A0 + e.height, this.vertexArray[4] = m0, this.vertexArray[5] = A0, this.vertexArray[6] = m0 + e.width, this.vertexArray[7] = A0, k.bufferSubData(k.ARRAY_BUFFER, 0, this.vertexArray), k.bindBuffer(k.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = y3U.c39(e.width, this.width), this.uvArray[5] = y3U.s39(e.height, this.height), this.uvArray[6] = y3U.Q39(e.width, this.width), this.uvArray[7] = y3U.a99(e.height, this.height), k.bufferSubData(k.ARRAY_BUFFER, 0, this.uvArray), k.viewport(0, 0, T0, G0), k.bindFramebuffer(k.FRAMEBUFFER, S0), k.activeTexture(k.TEXTURE0), k.bindTexture(k.TEXTURE_2D, o.texture), this.applyFilterPass(a0, e, T0, G0), this.texturePool.push(o), m._glFilterTexture = null; }, i.WebGLFilterManager.prototype.applyFilterPass = function (k, m, e, o) { var n = this.gl, u = k.shaders[n.id]; u || (u = new i.PixiShader(n), u.fragmentSrc = k.fragmentSrc, u.uniforms = k.uniforms, u.init(), k.shaders[n.id] = u), this.renderSession.shaderManager.setShader(u), n.uniform2f(u.projectionVector, y3U.W99(e, 2), -o / 2), n.uniform2f(u.offsetVector, 0, 0), k.uniforms.dimensions && (k.uniforms.dimensions.value[0] = this.width, k.uniforms.dimensions.value[1] = this.height, k.uniforms.dimensions.value[2] = this.vertexArray[0], k.uniforms.dimensions.value[3] = this.vertexArray[5]), u.syncUniforms(), n.bindBuffer(n.ARRAY_BUFFER, this.vertexBuffer), n.vertexAttribPointer(u.aVertexPosition, 2, n.FLOAT, !1, 0, 0), n.bindBuffer(n.ARRAY_BUFFER, this.uvBuffer), n.vertexAttribPointer(u.aTextureCoord, 2, n.FLOAT, !1, 0, 0), n.bindBuffer(n.ARRAY_BUFFER, this.colorBuffer), n.vertexAttribPointer(u.colorAttribute, 2, n.FLOAT, !1, 0, 0), n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, this.indexBuffer), n.drawElements(n.TRIANGLES, 6, n.UNSIGNED_SHORT, 0), this.renderSession.drawCount++; }, i.WebGLFilterManager.prototype.initShaderBuffers = function () { var k = this.gl; this.vertexBuffer = k.createBuffer(), this.uvBuffer = k.createBuffer(), this.colorBuffer = k.createBuffer(), this.indexBuffer = k.createBuffer(), this.vertexArray = new i.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), k.bindBuffer(k.ARRAY_BUFFER, this.vertexBuffer), k.bufferData(k.ARRAY_BUFFER, this.vertexArray, k.STATIC_DRAW), this.uvArray = new i.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), k.bindBuffer(k.ARRAY_BUFFER, this.uvBuffer), k.bufferData(k.ARRAY_BUFFER, this.uvArray, k.STATIC_DRAW), this.colorArray = new i.Float32Array([1, 16777215, 1, 16777215, 1, 16777215, 1, 16777215]), k.bindBuffer(k.ARRAY_BUFFER, this.colorBuffer), k.bufferData(k.ARRAY_BUFFER, this.colorArray, k.STATIC_DRAW), k.bindBuffer(k.ELEMENT_ARRAY_BUFFER, this.indexBuffer), k.bufferData(k.ELEMENT_ARRAY_BUFFER, new Uint16Array([0, 1, 2, 1, 3, 2]), k.STATIC_DRAW); }, i.WebGLFilterManager.prototype.destroy = function () { var k = this.gl; this.filterStack = null, this.offsetX = 0, this.offsetY = 0; for (var m = 0; y3U.m99(m, this.texturePool.length); m++) this.texturePool[m].destroy(); this.texturePool = null, k.deleteBuffer(this.vertexBuffer), k.deleteBuffer(this.uvBuffer), k.deleteBuffer(this.colorBuffer), k.deleteBuffer(this.indexBuffer); }, i.FilterTexture = function (k, m, e, o) { this.gl = k, this.frameBuffer = k.createFramebuffer(), this.texture = k.createTexture(), o = o || i.scaleModes.DEFAULT, k.bindTexture(k.TEXTURE_2D, this.texture), k.texParameteri(k.TEXTURE_2D, k.TEXTURE_MAG_FILTER, y3U.A99(o, i.scaleModes.LINEAR) ? k.LINEAR : k.NEAREST), k.texParameteri(k.TEXTURE_2D, k.TEXTURE_MIN_FILTER, y3U.w99(o, i.scaleModes.LINEAR) ? k.LINEAR : k.NEAREST), k.texParameteri(k.TEXTURE_2D, k.TEXTURE_WRAP_S, k.CLAMP_TO_EDGE), k.texParameteri(k.TEXTURE_2D, k.TEXTURE_WRAP_T, k.CLAMP_TO_EDGE), k.bindFramebuffer(k.FRAMEBUFFER, this.frameBuffer), k.bindFramebuffer(k.FRAMEBUFFER, this.frameBuffer), k.framebufferTexture2D(k.FRAMEBUFFER, k.COLOR_ATTACHMENT0, k.TEXTURE_2D, this.texture, 0), this.renderBuffer = k.createRenderbuffer(), k.bindRenderbuffer(k.RENDERBUFFER, this.renderBuffer), k.framebufferRenderbuffer(k.FRAMEBUFFER, k.DEPTH_STENCIL_ATTACHMENT, k.RENDERBUFFER, this.renderBuffer), this.resize(m, e); }, i.FilterTexture.prototype.constructor = i.FilterTexture, i.FilterTexture.prototype.clear = function () { var k = this.gl; k.clearColor(0, 0, 0, 0), k.clear(k.COLOR_BUFFER_BIT); }, i.FilterTexture.prototype.resize = function (k, m) { if (y3U.E99(this.width, k) || y3U.e99(this.height, m)) { this.width = k, this.height = m; var e = this.gl; e.bindTexture(e.TEXTURE_2D, this.texture), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, k, m, 0, e.RGBA, e.UNSIGNED_BYTE, null), e.bindRenderbuffer(e.RENDERBUFFER, this.renderBuffer), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, k, m); } }, i.FilterTexture.prototype.destroy = function () { var k = this.gl; k.deleteFramebuffer(this.frameBuffer), k.deleteTexture(this.texture), this.frameBuffer = null, this.texture = null; }, i.CanvasBuffer = function (k, m) { this.width = k, this.height = m, this.canvas = r2w8n[H8n]['createElement']("canvas"), this.context = this.canvas.getContext("2d"), this.canvas.width = k, this.canvas.height = m; }, 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 (k, m) { this.width = this.canvas.width = k, this.height = this.canvas.height = m; }, i.CanvasMaskManager = function () {}, i.CanvasMaskManager.prototype.constructor = i.CanvasMaskManager, i.CanvasMaskManager.prototype.pushMask = function (k, m) { var e = m.context; e.save(); var o = k.alpha, n = k.worldTransform, u = m.resolution; e.setTransform(y3U.g99(n.a, u), y3U.r99(n.b, u), y3U.i99(n.c, u), y3U.u99(n.d, u), y3U.P99(n.tx, u), y3U.D99(n.ty, u)), i.CanvasGraphics.renderGraphicsMask(k, e), e.clip(), k.worldAlpha = o; }, i.CanvasMaskManager.prototype.popMask = function (k) { k.context.restore(); }, i.CanvasTinter = function () {}, i.CanvasTinter.getTintedTexture = function (k, m) { var e = k.texture; m = i.CanvasTinter.roundColor(m); var o = "#" + ("00000" + (y3U.Z99(0, m)).toString(16)).substr(-6); if (e.tintCache = e.tintCache || {}, e.tintCache[o]) return e.tintCache[o]; var n = i.CanvasTinter.canvas || r2w8n[H8n]['createElement']("canvas"); if (i.CanvasTinter.tintMethod(e, m, n), i.CanvasTinter.convertTintToImage) { var u = new Image; u.src = n.toDataURL(), e.tintCache[o] = u; } else e.tintCache[o] = n, i.CanvasTinter.canvas = null; return n; }, i.CanvasTinter.tintWithMultiply = function (k, m, e) { var o = e.getContext("2d"), n = k.crop; e.width = n.width, e.height = n.height, o.fillStyle = "#" + ("00000" + (y3U.R99(0, m)).toString(16)).substr(-6), o.fillRect(0, 0, n.width, n.height), o.globalCompositeOperation = "multiply", o.drawImage(k.baseTexture.source, n.x, n.y, n.width, n.height, 0, 0, n.width, n.height), o.globalCompositeOperation = "destination-atop", o.drawImage(k.baseTexture.source, n.x, n.y, n.width, n.height, 0, 0, n.width, n.height); }, i.CanvasTinter.tintWithOverlay = function (k, m, e) { var o = e.getContext("2d"), n = k.crop; e.width = n.width, e.height = n.height, o.globalCompositeOperation = "copy", o.fillStyle = "#" + ("00000" + (y3U.O99(0, m)).toString(16)).substr(-6), o.fillRect(0, 0, n.width, n.height), o.globalCompositeOperation = "destination-atop", o.drawImage(k.baseTexture.source, n.x, n.y, n.width, n.height, 0, 0, n.width, n.height); }, i.CanvasTinter.tintWithPerPixel = function (k, m, e) { var o = e.getContext("2d"), n = k.crop; e.width = n.width, e.height = n.height, o.globalCompositeOperation = "copy", o.drawImage(k.baseTexture.source, n.x, n.y, n.width, n.height, 0, 0, n.width, n.height); for (var u = i.hex2rgb(m), q = u[0], f = u[1], j = u[2], U0 = o.getImageData(0, 0, n.width, n.height), k0 = U0.data, a0 = 0; y3U.V99(a0, k0.length); a0 += 4) if (k0[a0 + 0] *= q, k0[a0 + 1] *= f, k0[a0 + 2] *= j, !i.CanvasTinter.canHandleAlpha) { var T0 = k0[a0 + 3]; k0[a0 + 0] /= y3U.k59(255, T0), k0[a0 + 1] /= y3U.G59(255, T0), k0[a0 + 2] /= y3U.N59(255, T0); } o.putImageData(U0, 0, 0); }, i.CanvasTinter.roundColor = function (k) { var m = i.CanvasTinter.cacheStepsPerColorChannel, e = i.hex2rgb(k); return e[0] = Math.min(255, y3U.L59(e[0], m, m)), e[1] = Math.min(255, y3U.w59(e[1], m, m)), e[2] = Math.min(255, y3U.t59(e[2], m, m)), i.rgb2hex(e); }, i.CanvasTinter.checkInverseAlpha = function () { var k = new i.CanvasBuffer(2, 1); k.context.fillStyle = "rgba(10, 20, 30, 0.5)", k.context.fillRect(0, 0, 1, 1); var m = k.context.getImageData(0, 0, 1, 1); k.context.putImageData(m, 1, 0); var e = k.context.getImageData(1, 0, 1, 1); return y3U.h59(e.data[0], m.data[0]) && y3U.F59(e.data[1], m.data[1]) && y3U.M59(e.data[2], m.data[2]) && y3U.n59(e.data[3], m.data[3]); }, i.CanvasTinter.cacheStepsPerColorChannel = 8, i.CanvasTinter.convertTintToImage = !1, 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 (m, e, o) { var n = function (k) { o = k.defaultRenderOptions; }; if (o) for (var u in i.defaultRenderOptions) "undefined" == typeof o[u] && (o[u] = i.defaultRenderOptions[u]); else n(i); i.defaultRenderer || (i.sayHello("Canvas"), i.defaultRenderer = this), this.type = i.CANVAS_RENDERER, this.resolution = o.resolution, this.clearBeforeRender = o.clearBeforeRender, this.transparent = o.transparent, this.autoResize = o.autoResize || !1, this.width = m || 800, this.height = e || 600, this.width *= this.resolution, this.height *= this.resolution, this.view = o.view || r2w8n[H8n]['createElement']("canvas"), this.context = this.view.getContext("2d", { alpha : this.transparent }), this.refresh = !0, this.view.width = y3U.f59(this.width, this.resolution), this.view.height = y3U.K59(this.height, this.resolution), this.count = 0, this.maskManager = new i.CanvasMaskManager, this.renderSession = { context : this.context, maskManager : this.maskManager, scaleMode : null, smoothProperty : null, roundPixels : !1 }, this.mapBlendModes(), this.resize(m, e), y3U.B59("imageSmoothingEnabled", this.context) ? this.renderSession.smoothProperty = "imageSmoothingEnabled" : y3U.l59("webkitImageSmoothingEnabled", this.context) ? this.renderSession.smoothProperty = "webkitImageSmoothingEnabled" : y3U.X59("mozImageSmoothingEnabled", this.context) ? this.renderSession.smoothProperty = "mozImageSmoothingEnabled" : y3U.Y59("oImageSmoothingEnabled", this.context) ? this.renderSession.smoothProperty = "oImageSmoothingEnabled" : y3U.U29("msImageSmoothingEnabled", this.context) && (this.renderSession.smoothProperty = "msImageSmoothingEnabled"); }, i.CanvasRenderer.prototype.constructor = i.CanvasRenderer, i.CanvasRenderer.prototype.render = function (k) { k.updateTransform(), this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.globalAlpha = 1, this.renderSession.currentBlendMode = i.blendModes.NORMAL, this.context.globalCompositeOperation = i.blendModesCanvas[i.blendModes.NORMAL], r2w8n[v8n].isCocoonJS && this.view.screencanvas && (this.context.fillStyle = "black", this.context.clear()), this.clearBeforeRender && (this.transparent ? this.context.clearRect(0, 0, this.width, this.height) : (this.context.fillStyle = k.backgroundColorString, this.context.fillRect(0, 0, this.width, this.height))), this.renderDisplayObject(k), k.interactive && (k._interactiveEventsAdded || (k._interactiveEventsAdded = !0, k.interactionManager.setTarget(this))); }, i.CanvasRenderer.prototype.destroy = function (k) { "undefined" == typeof k && (k = !0), k && 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 (k, m) { this.width = y3U.T29(k, this.resolution), this.height = y3U.S29(m, this.resolution), this.view.width = this.width, this.view.height = this.height, this.autoResize && (this.view.style.width = y3U.I29(this.width, this.resolution) + "px", this.view.style.height = y3U.C29(this.height, this.resolution) + "px"); }, i.CanvasRenderer.prototype.renderDisplayObject = function (k, m) { this.renderSession.context = m || this.context, this.renderSession.resolution = this.resolution, k._renderCanvas(this.renderSession); }, i.CanvasRenderer.prototype.mapBlendModes = function () { i.blendModesCanvas || (i.blendModesCanvas = [], i.canUseNewCanvasBlendModes() ? (i.blendModesCanvas[i.blendModes.NORMAL] = "source-over", i.blendModesCanvas[i.blendModes.ADD] = "lighter", i.blendModesCanvas[i.blendModes.MULTIPLY] = "multiply", i.blendModesCanvas[i.blendModes.SCREEN] = "screen", i.blendModesCanvas[i.blendModes.OVERLAY] = "overlay", i.blendModesCanvas[i.blendModes.DARKEN] = "darken", i.blendModesCanvas[i.blendModes.LIGHTEN] = "lighten", i.blendModesCanvas[i.blendModes.COLOR_DODGE] = "color-dodge", i.blendModesCanvas[i.blendModes.COLOR_BURN] = "color-burn", i.blendModesCanvas[i.blendModes.HARD_LIGHT] = "hard-light", i.blendModesCanvas[i.blendModes.SOFT_LIGHT] = "soft-light", i.blendModesCanvas[i.blendModes.DIFFERENCE] = "difference", i.blendModesCanvas[i.blendModes.EXCLUSION] = "exclusion", i.blendModesCanvas[i.blendModes.HUE] = "hue", i.blendModesCanvas[i.blendModes.SATURATION] = "saturation", i.blendModesCanvas[i.blendModes.COLOR] = "color", i.blendModesCanvas[i.blendModes.LUMINOSITY] = "luminosity") : (i.blendModesCanvas[i.blendModes.NORMAL] = "source-over", i.blendModesCanvas[i.blendModes.ADD] = "lighter", i.blendModesCanvas[i.blendModes.MULTIPLY] = "source-over", i.blendModesCanvas[i.blendModes.SCREEN] = "source-over", i.blendModesCanvas[i.blendModes.OVERLAY] = "source-over", i.blendModesCanvas[i.blendModes.DARKEN] = "source-over", i.blendModesCanvas[i.blendModes.LIGHTEN] = "source-over", i.blendModesCanvas[i.blendModes.COLOR_DODGE] = "source-over", i.blendModesCanvas[i.blendModes.COLOR_BURN] = "source-over", i.blendModesCanvas[i.blendModes.HARD_LIGHT] = "source-over", i.blendModesCanvas[i.blendModes.SOFT_LIGHT] = "source-over", i.blendModesCanvas[i.blendModes.DIFFERENCE] = "source-over", i.blendModesCanvas[i.blendModes.EXCLUSION] = "source-over", i.blendModesCanvas[i.blendModes.HUE] = "source-over", i.blendModesCanvas[i.blendModes.SATURATION] = "source-over", i.blendModesCanvas[i.blendModes.COLOR] = "source-over", i.blendModesCanvas[i.blendModes.LUMINOSITY] = "source-over")); }, i.CanvasGraphics = function () {}, i.CanvasGraphics.renderGraphics = function (k, m) { var e = k.worldAlpha; k.dirty && (this.updateGraphicsTint(k), k.dirty = !1); for (var o = 0; y3U.v29(o, k.graphicsData.length); o++) { var n = k.graphicsData[o], u = n.shape, q = n._fillTint, f = n._lineTint; if (m.lineWidth = n.lineWidth, y3U.t29(n.type, i.Graphics.POLY)) { m.beginPath(); var j = u.points; m.moveTo(j[0], j[1]); for (var U0 = 1; y3U.y29(U0, j.length / 2); U0++) m.lineTo(j[y3U.o29(2, U0)], j[y3U.x29(2, U0) + 1]); u.closed && m.lineTo(j[0], j[1]), y3U.p29(j[0], j[j.length - 2]) && y3U.q29(j[1], j[j.length - 1]) && m.closePath(), n.fill && (m.globalAlpha = y3U.b29(n.fillAlpha, e), m.fillStyle = "#" + ("00000" + (y3U.j29(0, q)).toString(16)).substr(-6), m.fill()), n.lineWidth && (m.globalAlpha = y3U.d29(n.lineAlpha, e), m.strokeStyle = "#" + ("00000" + (y3U.c29(0, f)).toString(16)).substr(-6), m.stroke()); } else if (y3U.s29(n.type, i.Graphics.RECT)) (n.fillColor || y3U.Q29(0, n.fillColor)) && (m.globalAlpha = y3U.a19(n.fillAlpha, e), m.fillStyle = "#" + ("00000" + (y3U.W19(0, q)).toString(16)).substr(-6), m.fillRect(u.x, u.y, u.width, u.height)), n.lineWidth && (m.globalAlpha = y3U.m19(n.lineAlpha, e), m.strokeStyle = "#" + ("00000" + (y3U.A19(0, f)).toString(16)).substr(-6), m.strokeRect(u.x, u.y, u.width, u.height)); else if (y3U.w19(n.type, i.Graphics.CIRC)) m.beginPath(), m.arc(u.x, u.y, u.radius, 0, y3U.E19(2, Math.PI)), m.closePath(), n.fill && (m.globalAlpha = y3U.e19(n.fillAlpha, e), m.fillStyle = "#" + ("00000" + (y3U.g19(0, q)).toString(16)).substr(-6), m.fill()), n.lineWidth && (m.globalAlpha = y3U.r19(n.lineAlpha, e), m.strokeStyle = "#" + ("00000" + (y3U.i19(0, f)).toString(16)).substr(-6), m.stroke()); else if (y3U.u19(n.type, i.Graphics.ELIP)) { var k0 = y3U.P19(2, u.width), a0 = y3U.D19(2, u.height), T0 = y3U.Z19(u.x, k0 / 2), G0 = y3U.R19(u.y, a0 / 2); m.beginPath(); var W0 = .5522848, N0 = y3U.O19(k0, 2, W0), S0 = y3U.Q19(a0, 2, W0), I0 = T0 + k0, m0 = G0 + a0, A0 = T0 + y3U.T69(k0, 2), L0 = G0 + y3U.S69(a0, 2); m.moveTo(T0, L0), m.bezierCurveTo(T0, y3U.I69(L0, S0), y3U.C69(A0, N0), G0, A0, G0), m.bezierCurveTo(A0 + N0, G0, I0, y3U.v69(L0, S0), I0, L0), m.bezierCurveTo(I0, L0 + S0, A0 + N0, m0, A0, m0), m.bezierCurveTo(y3U.t69(A0, N0), m0, T0, L0 + S0, T0, L0), m.closePath(), n.fill && (m.globalAlpha = y3U.y69(n.fillAlpha, e), m.fillStyle = "#" + ("00000" + (y3U.o69(0, q)).toString(16)).substr(-6), m.fill()), n.lineWidth && (m.globalAlpha = y3U.x69(n.lineAlpha, e), m.strokeStyle = "#" + ("00000" + (y3U.p69(0, f)).toString(16)).substr(-6), m.stroke()); } else if (y3U.q69(n.type, i.Graphics.RREC)) { var z0 = u.x, E0 = u.y, v0 = u.width, J0 = u.height, t0 = u.radius, w0 = y3U.b69(Math.min(v0, J0) / 2, 0); t0 = y3U.j69(t0, w0) ? w0 : t0, m.beginPath(), m.moveTo(z0, E0 + t0), m.lineTo(z0, E0 + J0 - t0), m.quadraticCurveTo(z0, E0 + J0, z0 + t0, E0 + J0), m.lineTo(z0 + v0 - t0, E0 + J0), m.quadraticCurveTo(z0 + v0, E0 + J0, z0 + v0, E0 + J0 - t0), m.lineTo(z0 + v0, E0 + t0), m.quadraticCurveTo(z0 + v0, E0, z0 + v0 - t0, E0), m.lineTo(z0 + t0, E0), m.quadraticCurveTo(z0, E0, z0, E0 + t0), m.closePath(), (n.fillColor || y3U.d69(0, n.fillColor)) && (m.globalAlpha = y3U.c69(n.fillAlpha, e), m.fillStyle = "#" + ("00000" + (y3U.s69(0, q)).toString(16)).substr(-6), m.fill()), n.lineWidth && (m.globalAlpha = y3U.Q69(n.lineAlpha, e), m.strokeStyle = "#" + ("00000" + (y3U.a89(0, f)).toString(16)).substr(-6), m.stroke()); } } }, i.CanvasGraphics.renderGraphicsMask = function (k, m) { var e = k.graphicsData.length; if (y3U.W89(0, e)) { y3U.m89(e, 1) && (e = 1, r2w8n[E8n]['console'].log("Pixi.js warning: masks in canvas can only mask using the first path in the graphics object")); for (var o = 0; y3U.A89(1, o); o++) { var n = k.graphicsData[o], u = n.shape; if (y3U.w89(n.type, i.Graphics.POLY)) { m.beginPath(); var q = u.points; m.moveTo(q[0], q[1]); for (var f = 1; y3U.E89(f, q.length / 2); f++) m.lineTo(q[y3U.e89(2, f)], q[y3U.g89(2, f) + 1]); y3U.r89(q[0], q[q.length - 2]) && y3U.i89(q[1], q[q.length - 1]) && m.closePath(); } else if (y3U.u89(n.type, i.Graphics.RECT)) m.beginPath(), m.rect(u.x, u.y, u.width, u.height), m.closePath(); else if (y3U.P89(n.type, i.Graphics.CIRC)) m.beginPath(), m.arc(u.x, u.y, u.radius, 0, y3U.D89(2, Math.PI)), m.closePath(); else if (y3U.Z89(n.type, i.Graphics.ELIP)) { var j = y3U.R89(2, u.width), U0 = y3U.O89(2, u.height), k0 = y3U.V89(u.x, j / 2), a0 = y3U.k0g(u.y, U0 / 2); m.beginPath(); var T0 = .5522848, G0 = y3U.G0g(j, 2, T0), W0 = y3U.m0g(U0, 2, T0), N0 = k0 + j, S0 = a0 + U0, I0 = k0 + y3U.C0g(j, 2), m0 = a0 + y3U.v0g(U0, 2); m.moveTo(k0, m0), m.bezierCurveTo(k0, y3U.t0g(m0, W0), y3U.y0g(I0, G0), a0, I0, a0), m.bezierCurveTo(I0 + G0, a0, N0, y3U.o0g(m0, W0), N0, m0), m.bezierCurveTo(N0, m0 + W0, I0 + G0, S0, I0, S0), m.bezierCurveTo(y3U.x0g(I0, G0), S0, k0, m0 + W0, k0, m0), m.closePath(); } else if (y3U.p0g(n.type, i.Graphics.RREC)) { var A0 = u.points, L0 = A0[0], z0 = A0[1], E0 = A0[2], v0 = A0[3], J0 = A0[4], t0 = y3U.q0g(Math.min(E0, v0) / 2, 0); J0 = y3U.b0g(J0, t0) ? t0 : J0, m.beginPath(), m.moveTo(L0, z0 + J0), m.lineTo(L0, z0 + v0 - J0), m.quadraticCurveTo(L0, z0 + v0, L0 + J0, z0 + v0), m.lineTo(L0 + E0 - J0, z0 + v0), m.quadraticCurveTo(L0 + E0, z0 + v0, L0 + E0, z0 + v0 - J0), m.lineTo(L0 + E0, z0 + J0), m.quadraticCurveTo(L0 + E0, z0, L0 + E0 - J0, z0), m.lineTo(L0 + J0, z0), m.quadraticCurveTo(L0, z0, L0, z0 + J0), m.closePath(); } } } }, i.CanvasGraphics.updateGraphicsTint = function (k) { if (y3U.j0g(16777215, k.tint)) for (var m = y3U.d0g((k.tint >> 16 & 255), 255), e = y3U.c0g((k.tint >> 8 & 255), 255), o = y3U.s0g((255 & k.tint), 255), n = 0; y3U.Q0g(n, k.graphicsData.length); n++) { var u = k.graphicsData[n], q = y3U.a7g(0, u.fillColor), f = y3U.W7g(0, u.lineColor); u._fillTint = (y3U.m7g((q >> 16 & 255) / 255 * m * 255, 16)) + (y3U.A7g((q >> 8 & 255) / 255 * e * 255, 8)) + y3U.w7g((255 & q), 255, o, 255), u._lineTint = (y3U.H7g((f >> 16 & 255) / 255 * m * 255, 16)) + (y3U.h7g((f >> 8 & 255) / 255 * e * 255, 8)) + y3U.F7g((255 & f), 255, o, 255); } }, i.Strip = function (k) { i.DisplayObjectContainer.call(this), this.texture = k, 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 (k) { !this.visible || y3U.p7g(this.alpha, 0) || (k.spriteBatch.stop(), this._vertexBuffer || this._initWebGL(k), k.shaderManager.setShader(k.shaderManager.stripShader), this._renderStrip(k), k.spriteBatch.start()); }, i.Strip.prototype._initWebGL = function (k) { var m = k.gl; this._vertexBuffer = m.createBuffer(), this._indexBuffer = m.createBuffer(), this._uvBuffer = m.createBuffer(), this._colorBuffer = m.createBuffer(), m.bindBuffer(m.ARRAY_BUFFER, this._vertexBuffer), m.bufferData(m.ARRAY_BUFFER, this.vertices, m.DYNAMIC_DRAW), m.bindBuffer(m.ARRAY_BUFFER, this._uvBuffer), m.bufferData(m.ARRAY_BUFFER, this.uvs, m.STATIC_DRAW), m.bindBuffer(m.ARRAY_BUFFER, this._colorBuffer), m.bufferData(m.ARRAY_BUFFER, this.colors, m.STATIC_DRAW), m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, this._indexBuffer), m.bufferData(m.ELEMENT_ARRAY_BUFFER, this.indices, m.STATIC_DRAW); }, i.Strip.prototype._renderStrip = function (k) { var m = k.gl, e = k.projection, o = k.offset, n = k.shaderManager.stripShader, u = y3U.q7g(this.drawMode, i.Strip.DrawModes.TRIANGLE_STRIP) ? m.TRIANGLE_STRIP : m.TRIANGLES; k.blendModeManager.setBlendMode(this.blendMode), m.uniformMatrix3fv(n.translationMatrix, !1, this.worldTransform.toArray(!0)), m.uniform2f(n.projectionVector, e.x, -e.y), m.uniform2f(n.offsetVector, -o.x, -o.y), m.uniform1f(n.alpha, this.worldAlpha), this.dirty ? (this.dirty = !1, m.bindBuffer(m.ARRAY_BUFFER, this._vertexBuffer), m.bufferData(m.ARRAY_BUFFER, this.vertices, m.STATIC_DRAW), m.vertexAttribPointer(n.aVertexPosition, 2, m.FLOAT, !1, 0, 0), m.bindBuffer(m.ARRAY_BUFFER, this._uvBuffer), m.bufferData(m.ARRAY_BUFFER, this.uvs, m.STATIC_DRAW), m.vertexAttribPointer(n.aTextureCoord, 2, m.FLOAT, !1, 0, 0), m.activeTexture(m.TEXTURE0), this.texture.baseTexture._dirty[m.id] ? k.renderer.updateTexture(this.texture.baseTexture) : m.bindTexture(m.TEXTURE_2D, this.texture.baseTexture._glTextures[m.id]), m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, this._indexBuffer), m.bufferData(m.ELEMENT_ARRAY_BUFFER, this.indices, m.STATIC_DRAW)) : (m.bindBuffer(m.ARRAY_BUFFER, this._vertexBuffer), m.bufferSubData(m.ARRAY_BUFFER, 0, this.vertices), m.vertexAttribPointer(n.aVertexPosition, 2, m.FLOAT, !1, 0, 0), m.bindBuffer(m.ARRAY_BUFFER, this._uvBuffer), m.vertexAttribPointer(n.aTextureCoord, 2, m.FLOAT, !1, 0, 0), m.activeTexture(m.TEXTURE0), this.texture.baseTexture._dirty[m.id] ? k.renderer.updateTexture(this.texture.baseTexture) : m.bindTexture(m.TEXTURE_2D, this.texture.baseTexture._glTextures[m.id]), m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, this._indexBuffer)), m.drawElements(u, this.indices.length, m.UNSIGNED_SHORT, 0); }, i.Strip.prototype._renderCanvas = function (k) { var m = k.context, e = this.worldTransform; k.roundPixels ? m.setTransform(e.a, e.b, e.c, e.d, y3U.b7g(0, e.tx), y3U.j7g(0, e.ty)) : m.setTransform(e.a, e.b, e.c, e.d, e.tx, e.ty), y3U.d7g(this.drawMode, i.Strip.DrawModes.TRIANGLE_STRIP) ? this._renderCanvasTriangleStrip(m) : this._renderCanvasTriangles(m); }, i.Strip.prototype._renderCanvasTriangleStrip = function (k) { var m = this.vertices, e = this.uvs, o = y3U.c7g(m.length, 2); this.count++; for (var n = 0; y3U.s7g(o - 2, n); n++) { var u = y3U.Q7g(2, n); this._renderCanvasDrawTriangle(k, m, e, u, u + 2, u + 4); } }, i.Strip.prototype._renderCanvasTriangles = function (k) { var m = this.vertices, e = this.uvs, o = this.indices, n = o.length; this.count++; for (var u = 0; y3U.a4g(n, u); u += 3) { var q = y3U.W4g(2, o[u]), f = y3U.m4g(2, o[u + 1]), j = y3U.A4g(2, o[u + 2]); this._renderCanvasDrawTriangle(k, m, e, q, f, j); } }, i.Strip.prototype._renderCanvasDrawTriangle = function (k, m, e, o, n, u) { var q = this.texture.baseTexture.source, f = this.texture.width, j = this.texture.height, U0 = m[o], k0 = m[n], a0 = m[u], T0 = m[o + 1], G0 = m[n + 1], W0 = m[u + 1], N0 = y3U.w4g(e[o], f), S0 = y3U.E4g(e[n], f), I0 = y3U.e4g(e[u], f), m0 = y3U.g4g(e[o + 1], j), A0 = y3U.r4g(e[n + 1], j), L0 = y3U.i4g(e[u + 1], j); if (y3U.u4g(this.canvasPadding, 0)) { var z0 = y3U.P4g(this.canvasPadding, this.worldTransform.a), E0 = y3U.D4g(this.canvasPadding, this.worldTransform.d), v0 = y3U.Z4g((U0 + k0 + a0), 3), J0 = y3U.R4g((T0 + G0 + W0), 3), t0 = y3U.O4g(U0, v0), w0 = y3U.V4g(T0, J0), g0 = Math.sqrt(y3U.k3g(t0, t0) + y3U.G3g(w0, w0)); U0 = v0 + y3U.N3g(t0, g0, (g0 + z0)), T0 = J0 + y3U.A3g(w0, g0, (g0 + E0)), t0 = y3U.v3g(k0, v0), w0 = y3U.t3g(G0, J0), g0 = Math.sqrt(y3U.y3g(t0, t0) + y3U.o3g(w0, w0)), k0 = v0 + y3U.x3g(t0, g0, (g0 + z0)), G0 = J0 + y3U.n3g(w0, g0, (g0 + E0)), t0 = y3U.P3g(a0, v0), w0 = y3U.D3g(W0, J0), g0 = Math.sqrt(y3U.Z3g(t0, t0) + y3U.R3g(w0, w0)), a0 = v0 + y3U.O3g(t0, g0, (g0 + z0)), W0 = J0 + y3U.Q3g(w0, g0, (g0 + E0)); } k.save(), k.beginPath(), k.moveTo(U0, T0), k.lineTo(k0, G0), k.lineTo(a0, W0), k.closePath(), k.clip(); var H0 = y3U.T9g(N0, A0) + y3U.S9g(m0, I0) + y3U.I9g(S0, L0) - y3U.C9g(A0, I0) - y3U.v9g(m0, S0) - y3U.t9g(N0, L0), M0 = y3U.y9g(U0, A0) + y3U.o9g(m0, a0) + y3U.x9g(k0, L0) - y3U.p9g(A0, a0) - y3U.q9g(m0, k0) - y3U.b9g(U0, L0), p0 = y3U.j9g(N0, k0) + y3U.d9g(U0, I0) + y3U.c9g(S0, a0) - y3U.s9g(k0, I0) - y3U.Q9g(U0, S0) - y3U.a5g(N0, a0), e0 = y3U.W5g(N0, A0, a0) + y3U.I5g(m0, k0, I0) + y3U.z5g(U0, S0, L0) - y3U.E5g(U0, A0, I0) - y3U.y5g(m0, S0, a0) - y3U.F5g(N0, k0, L0), F0 = y3U.i5g(T0, A0) + y3U.u5g(m0, W0) + y3U.P5g(G0, L0) - y3U.D5g(A0, W0) - y3U.Z5g(m0, G0) - y3U.R5g(T0, L0), P0 = y3U.O5g(N0, G0) + y3U.V5g(T0, I0) + y3U.k2g(S0, W0) - y3U.G2g(G0, I0) - y3U.N2g(T0, S0) - y3U.L2g(N0, W0), O0 = y3U.z2g(N0, A0, W0) + y3U.E2g(m0, G0, I0) + y3U.y2g(T0, S0, L0) - y3U.F2g(T0, A0, I0) - y3U.i2g(m0, S0, W0) - y3U.q2g(N0, G0, L0); k.transform(y3U.K2g(M0, H0), y3U.B2g(F0, H0), y3U.l2g(p0, H0), y3U.X2g(P0, H0), y3U.Y2g(e0, H0), y3U.U1g(O0, H0)), k.drawImage(q, 0, 0), k.restore(); }, i.Strip.prototype.renderStripFlat = function (k) { var m = this.context, e = k.vertices, o = y3U.T1g(e.length, 2); this.count++, m.beginPath(); for (var n = 1; y3U.S1g(o - 2, n); n++) { var u = y3U.I1g(2, n), q = e[u], f = e[u + 2], j = e[u + 4], U0 = e[u + 1], k0 = e[u + 3], a0 = e[u + 5]; m.moveTo(q, U0), m.lineTo(f, k0), m.lineTo(j, a0); } m.fillStyle = "#FF0000", m.fill(), m.closePath(); }, i.Strip.prototype.onTextureUpdate = function () { this.updateFrame = !0; }, i.Strip.prototype.getBounds = function (k) { for (var m = k || this.worldTransform, e = m.a, o = m.b, n = m.c, u = m.d, q = m.tx, f = m.ty, j = -1 / 0, U0 = -1 / 0, k0 = y3U.C1g(1, 0), a0 = y3U.v1g(1, 0), T0 = this.vertices, G0 = 0, W0 = T0.length; y3U.t1g(W0, G0); G0 += 2) { var N0 = T0[G0], S0 = T0[G0 + 1], I0 = y3U.y1g(e, N0) + y3U.o1g(n, S0) + q, m0 = y3U.x1g(u, S0) + y3U.p1g(o, N0) + f; k0 = y3U.q1g(k0, I0) ? I0 : k0, a0 = y3U.b1g(a0, m0) ? m0 : a0, j = y3U.j1g(I0, j) ? I0 : j, U0 = y3U.d1g(m0, U0) ? m0 : U0; } if (k0 === -1 / 0 || y3U.c1g(1 / 0, U0)) return i.EmptyRectangle; var A0 = this._bounds; return A0.x = k0, A0.width = y3U.s1g(j, k0), A0.y = a0, A0.height = y3U.Q1g(U0, a0), this._currentBounds = A0, A0; }, i.Strip.DrawModes = { TRIANGLE_STRIP : 0, TRIANGLES : 1 }, i.Rope = function (k, m) { i.Strip.call(this, k), this.points = m, this.vertices = new i.Float32Array(y3U.a6g(4, m.length)), this.uvs = new i.Float32Array(y3U.W6g(4, m.length)), this.colors = new i.Float32Array(y3U.m6g(2, m.length)), this.indices = new i.Uint16Array(y3U.A6g(2, m.length)), this.refresh(); }, i.Rope.prototype = Object.create(i.Strip.prototype), i.Rope.prototype.constructor = i.Rope, i.Rope.prototype.refresh = function () { var k = this.points; if (!(y3U.w6g(k.length, 1))) { var m = this.uvs, e = k[0], o = this.indices, n = this.colors; this.count -= .2, m[0] = 0, m[1] = 0, m[2] = 0, m[3] = 1, n[0] = 1, n[1] = 1, o[0] = 0, o[1] = 1; for (var u, q, f, j = k.length, U0 = 1; y3U.E6g(j, U0); U0++) u = k[U0], q = y3U.e6g(4, U0), f = y3U.g6g(U0, (j - 1)), y3U.r6g(U0, 2) ? (m[q] = f, m[q + 1] = 0, m[q + 2] = f, m[q + 3] = 1) : (m[q] = f, m[q + 1] = 0, m[q + 2] = f, m[q + 3] = 1), q = y3U.i6g(2, U0), n[q] = 1, n[q + 1] = 1, q = y3U.u6g(2, U0), o[q] = q, o[q + 1] = q + 1, e = u; } }, i.Rope.prototype.updateTransform = function () { var k = this.points; if (!(y3U.P6g(k.length, 1))) { var m, e = k[0], o = { x : 0, y : 0 }; this.count -= .2; for (var n, u, q, f, j, U0 = this.vertices, k0 = k.length, a0 = 0; y3U.D6g(k0, a0); a0++) n = k[a0], u = y3U.Z6g(4, a0), m = y3U.R6g(a0, k.length - 1) ? k[a0 + 1] : n, o.y = - (y3U.O6g(m.x, e.x)), o.x = y3U.V6g(m.y, e.y), q = y3U.k8g(10, (1 - a0 / (k0 - 1))), y3U.G8g(q, 1) && (q = 1), f = Math.sqrt(y3U.N8g(o.x, o.x) + y3U.L8g(o.y, o.y)), j = y3U.z8g(this.texture.height, 2), o.x /= f, o.y /= f, o.x *= j, o.y *= j, U0[u] = n.x + o.x, U0[u + 1] = n.y + o.y, U0[u + 2] = y3U.J8g(n.x, o.x), U0[u + 3] = y3U.H8g(n.y, o.y), e = n; i.DisplayObjectContainer.prototype.updateTransform.call(this); } }, i.Rope.prototype.setTexture = function (k) { this.texture = k; }, i.TilingSprite = function (k, m, e) { i.Sprite.call(this, k), this._width = m || 100, this._height = e || 100, this.tileScale = new i.Point(1, 1), this.tileScaleOffset = new i.Point(1, 1), this.tilePosition = new i.Point(0, 0), this.renderable = !0, this.tint = 16777215, this.blendMode = i.blendModes.NORMAL; }, i.TilingSprite.prototype = Object.create(i.Sprite.prototype), i.TilingSprite.prototype.constructor = i.TilingSprite, Object.defineProperty(i.TilingSprite.prototype, "width", { get : function () { return this._width; }, set : function (k) { this._width = k; } }), Object.defineProperty(i.TilingSprite.prototype, "height", { get : function () { return this._height; }, set : function (k) { this._height = k; } }), i.TilingSprite.prototype.setTexture = function (k) { y3U.h8g(this.texture, k) && (this.texture = k, this.refreshTexture = !0, this.cachedTint = 16777215); }, i.TilingSprite.prototype._renderWebGL = function (k) { if (this.visible !== !1 && y3U.F8g(0, this.alpha)) { var m, e; for (this._mask && (k.spriteBatch.stop(), k.maskManager.pushMask(this.mask, k), k.spriteBatch.start()), this._filters && (k.spriteBatch.flush(), k.filterManager.pushFilter(this._filterBlock)), !this.tilingTexture || this.refreshTexture ? (this.generateTilingTexture(!0), this.tilingTexture && this.tilingTexture.needsUpdate && (k.renderer.updateTexture(this.tilingTexture.baseTexture), this.tilingTexture.needsUpdate = !1)) : k.spriteBatch.renderTilingSprite(this), m = 0, e = this.children.length; y3U.M8g(e, m); m++) this.children[m]._renderWebGL(k); k.spriteBatch.stop(), this._filters && k.filterManager.popFilter(), this._mask && k.maskManager.popMask(this._mask, k), k.spriteBatch.start(); } }, i.TilingSprite.prototype._renderCanvas = function (k) { if (this.visible !== !1 && y3U.n8g(0, this.alpha)) { var m = k.context; this._mask && k.maskManager.pushMask(this._mask, m), m.globalAlpha = this.worldAlpha; var e, o, n = this.worldTransform, u = k.resolution; if (m.setTransform(y3U.f8g(n.a, u), y3U.K8g(n.b, u), y3U.B8g(n.c, u), y3U.l8g(n.d, u), y3U.X8g(n.tx, u), y3U.Y8g(n.ty, u)), !this.__tilePattern || this.refreshTexture) { if (this.generateTilingTexture(!1), !this.tilingTexture) return; this.__tilePattern = m.createPattern(this.tilingTexture.baseTexture.source, "repeat"); } y3U.U0D(this.blendMode, k.currentBlendMode) && (k.currentBlendMode = this.blendMode, m.globalCompositeOperation = i.blendModesCanvas[k.currentBlendMode]); var q = this.tilePosition, f = this.tileScale; for (q.x %= this.tilingTexture.baseTexture.width, q.y %= this.tilingTexture.baseTexture.height, m.scale(f.x, f.y), m.translate(q.x + this.anchor.x * -this._width, q.y + this.anchor.y * -this._height), m.fillStyle = this.__tilePattern, m.fillRect(-q.x, -q.y, y3U.T0D(this._width, f.x), y3U.S0D(this._height, f.y)), m.scale(y3U.I0D(1, f.x), y3U.C0D(1, f.y)), m.translate(-q.x + this.anchor.x * this._width, -q.y + this.anchor.y * this._height), this._mask && k.maskManager.popMask(k.context), e = 0, o = this.children.length; y3U.v0D(o, e); e++) this.children[e]._renderCanvas(k); } }, i.TilingSprite.prototype.getBounds = function () { var k = this._width, m = this._height, e = y3U.t0D(k, (1 - this.anchor.x)), o = k * -this.anchor.x, n = y3U.y0D(m, (1 - this.anchor.y)), u = m * -this.anchor.y, q = this.worldTransform, f = q.a, j = q.b, U0 = q.c, k0 = q.d, a0 = q.tx, T0 = q.ty, G0 = y3U.o0D(f, o) + y3U.x0D(U0, u) + a0, W0 = y3U.p0D(k0, u) + y3U.q0D(j, o) + T0, N0 = y3U.b0D(f, e) + y3U.j0D(U0, u) + a0, S0 = y3U.d0D(k0, u) + y3U.c0D(j, e) + T0, I0 = y3U.s0D(f, e) + y3U.Q0D(U0, n) + a0, m0 = y3U.a7D(k0, n) + y3U.W7D(j, e) + T0, A0 = y3U.m7D(f, o) + y3U.A7D(U0, n) + a0, L0 = y3U.w7D(k0, n) + y3U.E7D(j, o) + T0, z0 = -1 / 0, E0 = -1 / 0, v0 = y3U.e7D(1, 0), J0 = y3U.g7D(1, 0); v0 = y3U.r7D(v0, G0) ? G0 : v0, v0 = y3U.i7D(v0, N0) ? N0 : v0, v0 = y3U.u7D(v0, I0) ? I0 : v0, v0 = y3U.P7D(v0, A0) ? A0 : v0, J0 = y3U.D7D(J0, W0) ? W0 : J0, J0 = y3U.Z7D(J0, S0) ? S0 : J0, J0 = y3U.R7D(J0, m0) ? m0 : J0, J0 = y3U.O7D(J0, L0) ? L0 : J0, z0 = y3U.V7D(G0, z0) ? G0 : z0, z0 = y3U.k4D(N0, z0) ? N0 : z0, z0 = y3U.G4D(I0, z0) ? I0 : z0, z0 = y3U.N4D(A0, z0) ? A0 : z0, E0 = y3U.L4D(W0, E0) ? W0 : E0, E0 = y3U.z4D(S0, E0) ? S0 : E0, E0 = y3U.J4D(m0, E0) ? m0 : E0, E0 = y3U.H4D(L0, E0) ? L0 : E0; var t0 = this._bounds; return t0.x = v0, t0.width = y3U.h4D(z0, v0), t0.y = J0, t0.height = y3U.F4D(E0, J0), this._currentBounds = t0, t0; }, i.TilingSprite.prototype.onTextureUpdate = function () {}, i.TilingSprite.prototype.generateTilingTexture = function (k) { if (this.texture.baseTexture.hasLoaded) { var m, e, o = this.originalTexture || this.texture, n = o.frame, u = y3U.M4D(n.width, o.baseTexture.width) || y3U.n4D(n.height, o.baseTexture.height), q = !1; if (k ? (m = i.getNextPowerOfTwo(n.width), e = i.getNextPowerOfTwo(n.height), (y3U.f4D(n.width, m) || y3U.K4D(n.height, e) || y3U.B4D(o.baseTexture.width, m) || o.baseTexture.height || e) && (q = !0)) : u && (m = n.width, e = n.height, q = !0), q) { var f; this.tilingTexture && this.tilingTexture.isTiling ? (f = this.tilingTexture.canvasBuffer, f.resize(m, e), this.tilingTexture.baseTexture.width = m, this.tilingTexture.baseTexture.height = e, this.tilingTexture.needsUpdate = !0) : (f = new i.CanvasBuffer(m, e), this.tilingTexture = i.Texture.fromCanvas(f.canvas), this.tilingTexture.canvasBuffer = f, this.tilingTexture.isTiling = !0), f.context.drawImage(o.baseTexture.source, o.crop.x, o.crop.y, o.crop.width, o.crop.height, 0, 0, m, e), this.tileScaleOffset.x = y3U.l4D(n.width, m), this.tileScaleOffset.y = y3U.X4D(n.height, e); } else this.tilingTexture && this.tilingTexture.isTiling && this.tilingTexture.destroy(!0), this.tileScaleOffset.x = 1, this.tileScaleOffset.y = 1, this.tilingTexture = o; this.refreshTexture = !1, this.originalTexture = this.texture, this.texture = this.tilingTexture, this.tilingTexture.baseTexture._powerOf2 = !0; } }, i.BaseTextureCache = {}, i.BaseTextureCacheIdGenerator = 0, i.BaseTexture = function (k, m) { if (this.resolution = 1, this.width = 100, this.height = 100, this.scaleMode = m || i.scaleModes.DEFAULT, this.hasLoaded = !1, this.source = k, this._UID = i._UID++, this.premultipliedAlpha = !0, this._glTextures = [], this.mipmap = !1, this._dirty = [!0, !0, !0, !0], k) { if ((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(); else { var e = this; this.source.onload = function () { e.hasLoaded = !0, e.width = e.source.naturalWidth || e.source.width, e.height = e.source.naturalHeight || e.source.height, e.dirty(), e.dispatchEvent({ type : "loaded", content : e }); }, this.source.onerror = function () { e.dispatchEvent({ type : "error", content : e }); }; } this.imageUrl = null, this._powerOf2 = !1; } }, i.BaseTexture.prototype.constructor = i.BaseTexture, i.EventTarget.mixin(i.BaseTexture.prototype), i.BaseTexture.prototype.destroy = function () { this.imageUrl ? (delete i.BaseTextureCache[this.imageUrl], delete i.TextureCache[this.imageUrl], this.imageUrl = null, r2w8n[v8n].isCocoonJS || (this.source.src = "")) : this.source && this.source._pixiId && delete i.BaseTextureCache[this.source._pixiId], this.source = null, this.unloadFromGPU(); }, i.BaseTexture.prototype.updateSourceImage = function (k) { this.hasLoaded = !1, this.source.src = null, this.source.src = k; }, i.BaseTexture.prototype.dirty = function () { for (var k = 0; y3U.Y4D(k, this._glTextures.length); k++) this._dirty[k] = !0; }, i.BaseTexture.prototype.unloadFromGPU = function () { this.dirty(); for (var k = y3U.U3D(this._glTextures.length, 1); y3U.T3D(k, 0); k--) { var m = this._glTextures[k], e = i.glContexts[k]; e && m && e.deleteTexture(m); } this._glTextures.length = 0, this.dirty(); }, i.BaseTexture.fromImage = function (k, m, e) { var o = i.BaseTextureCache[k]; if (void 0 === m && -1 === k.indexOf("data:") && (m = !0), !o) { var n = new Image; m && (n.crossOrigin = ""), n.src = k, o = new i.BaseTexture(n, e), o.imageUrl = k, i.BaseTextureCache[k] = o, -1 !== k.indexOf(i.RETINA_PREFIX + ".") && (o.resolution = 2); } return o; }, i.BaseTexture.fromCanvas = function (k, m) { k._pixiId || (k._pixiId = "canvas_" + i.TextureCacheIdGenerator++); var e = i.BaseTextureCache[k._pixiId]; return e || (e = new i.BaseTexture(k, m), i.BaseTextureCache[k._pixiId] = e), e; }, i.TextureCache = {}, i.FrameCache = {}, i.TextureCacheIdGenerator = 0, i.Texture = function (k, m, e, o) { this.noFrame = !1, m || (this.noFrame = !0, m = new i.Rectangle(0, 0, 1, 1)), y3U.S3D(k, i.Texture) && (k = k.baseTexture), this.baseTexture = k, this.frame = m, this.trim = o, this.valid = !1, this.requiresUpdate = !1, this._uvs = null, this.width = 0, this.height = 0, this.crop = e || new i.Rectangle(0, 0, 1, 1), k.hasLoaded ? (this.noFrame && (m = new i.Rectangle(0, 0, k.width, k.height)), this.setFrame(m)) : k.addEventListener("loaded", this.onBaseTextureLoaded.bind(this)); }, i.Texture.prototype.constructor = i.Texture, i.EventTarget.mixin(i.Texture.prototype), i.Texture.prototype.onBaseTextureLoaded = function () { var k = this.baseTexture; k.removeEventListener("loaded", this.onLoaded), this.noFrame && (this.frame = new i.Rectangle(0, 0, k.width, k.height)), this.setFrame(this.frame), this.dispatchEvent({ type : "update", content : this }); }, i.Texture.prototype.destroy = function (k) { k && this.baseTexture.destroy(), this.valid = !1; }, i.Texture.prototype.setFrame = function (k) { if (this.noFrame = !1, this.frame = k, this.width = k.width, this.height = k.height, this.crop.x = k.x, this.crop.y = k.y, this.crop.width = k.width, this.crop.height = k.height, !this.trim && (y3U.I3D(k.x + k.width, this.baseTexture.width) || y3U.C3D(k.y + k.height, this.baseTexture.height))) throw new Error("Texture Error: frame does not fit inside the base Texture dimensions " + this); this.valid = k && k.width && k.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(); }, i.Texture.prototype._updateUvs = function () { this._uvs || (this._uvs = new i.TextureUvs); var k = this.crop, m = this.baseTexture.width, e = this.baseTexture.height; this._uvs.x0 = y3U.v3D(k.x, m), this._uvs.y0 = y3U.t3D(k.y, e), this._uvs.x1 = y3U.y3D((k.x + k.width), m), this._uvs.y1 = y3U.o3D(k.y, e), this._uvs.x2 = y3U.x3D((k.x + k.width), m), this._uvs.y2 = y3U.p3D((k.y + k.height), e), this._uvs.x3 = y3U.q3D(k.x, m), this._uvs.y3 = y3U.b3D((k.y + k.height), e); }, i.Texture.fromImage = function (k, m, e) { var o = i.TextureCache[k]; return o || (o = new i.Texture(i.BaseTexture.fromImage(k, m, e)), i.TextureCache[k] = o), o; }, i.Texture.fromFrame = function (k) { var m = i.TextureCache[k]; if (!m) throw new Error('The frameId "' + k + '" does not exist in the texture cache '); return m; }, i.Texture.fromCanvas = function (k, m) { var e = i.BaseTexture.fromCanvas(k, m); return new i.Texture(e); }, i.Texture.addTextureToCache = function (m, e) { var o = function (k) { i.TextureCache[e] = k; }; o(m); }, i.Texture.removeTextureFromCache = function (k) { var m = i.TextureCache[k]; return delete i.TextureCache[k], delete i.BaseTextureCache[k], m; }, 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.Texture.emptyTexture = new i.Texture(new i.BaseTexture), i.RenderTexture = function (k, m, e, o, n) { if (this.width = k || 100, this.height = m || 100, this.resolution = n || 1, this.frame = new i.Rectangle(0, 0, y3U.j3D(this.width, this.resolution), y3U.d3D(this.height, this.resolution)), this.crop = new i.Rectangle(0, 0, y3U.c3D(this.width, this.resolution), y3U.s3D(this.height, this.resolution)), this.baseTexture = new i.BaseTexture, this.baseTexture.width = y3U.Q3D(this.width, this.resolution), this.baseTexture.height = y3U.a9D(this.height, this.resolution), this.baseTexture._glTextures = [], this.baseTexture.resolution = this.resolution, this.baseTexture.scaleMode = o || i.scaleModes.DEFAULT, this.baseTexture.hasLoaded = !0, i.Texture.call(this, this.baseTexture, new i.Rectangle(0, 0, this.width, this.height)), this.renderer = e || i.defaultRenderer, y3U.W9D(this.renderer.type, i.WEBGL_RENDERER)) { var u = this.renderer.gl; this.baseTexture._dirty[u.id] = !1, this.textureBuffer = new i.FilterTexture(u, y3U.m9D(this.width, this.resolution), y3U.A9D(this.height, this.resolution), this.baseTexture.scaleMode), this.baseTexture._glTextures[u.id] = this.textureBuffer.texture, this.render = this.renderWebGL, this.projection = new i.Point(y3U.w9D(.5, this.width), .5 * -this.height); } else this.render = this.renderCanvas, this.textureBuffer = new i.CanvasBuffer(y3U.E9D(this.width, this.resolution), y3U.e9D(this.height, this.resolution)), this.baseTexture.source = this.textureBuffer.canvas; this.valid = !0, this._updateUvs(); }, i.RenderTexture.prototype = Object.create(i.Texture.prototype), i.RenderTexture.prototype.constructor = i.RenderTexture, i.RenderTexture.prototype.resize = function (k, m, e) { (y3U.g9D(k, this.width) || y3U.r9D(m, this.height)) && (this.valid = y3U.i9D(k, 0) && y3U.u9D(m, 0), this.width = this.frame.width = this.crop.width = k, this.height = this.frame.height = this.crop.height = m, e && (this.baseTexture.width = this.width, this.baseTexture.height = this.height), y3U.P9D(this.renderer.type, i.WEBGL_RENDERER) && (this.projection.x = y3U.D9D(this.width, 2), this.projection.y = -this.height / 2), this.valid && this.textureBuffer.resize(y3U.Z9D(this.width, this.resolution), y3U.R9D(this.height, this.resolution))); }, i.RenderTexture.prototype.clear = function () { this.valid && (y3U.O9D(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 (k, m, e) { if (this.valid) { var o = k.worldTransform; o.identity(), o.translate(0, y3U.V9D(2, this.projection.y)), m && o.append(m), o.scale(1, -1), k.worldAlpha = 1; for (var n = k.children, u = 0, q = n.length; y3U.k5D(q, u); u++) n[u].updateTransform(); var f = this.renderer.gl; f.viewport(0, 0, y3U.G5D(this.width, this.resolution), y3U.N5D(this.height, this.resolution)), f.bindFramebuffer(f.FRAMEBUFFER, this.textureBuffer.frameBuffer), e && this.textureBuffer.clear(), this.renderer.spriteBatch.dirty = !0, this.renderer.renderDisplayObject(k, this.projection, this.textureBuffer.frameBuffer), this.renderer.spriteBatch.dirty = !0; } }, i.RenderTexture.prototype.renderCanvas = function (k, m, e) { if (this.valid) { var o = k.worldTransform; o.identity(), m && o.append(m), k.worldAlpha = 1; for (var n = k.children, u = 0, q = n.length; y3U.L5D(q, u); u++) n[u].updateTransform(); e && this.textureBuffer.clear(); var f = this.textureBuffer.context, j = this.renderer.resolution; this.renderer.resolution = this.resolution, this.renderer.renderDisplayObject(k, f), this.renderer.resolution = j; } }, i.RenderTexture.prototype.getImage = function () { var k = new Image; return k.src = this.getBase64(), k; }, i.RenderTexture.prototype.getBase64 = function () { return this.getCanvas().toDataURL(); }, i.RenderTexture.prototype.getCanvas = function () { if (y3U.z5D(this.renderer.type, i.WEBGL_RENDERER)) { var k = this.renderer.gl, m = this.textureBuffer.width, e = this.textureBuffer.height, o = new Uint8Array(y3U.J5D(4, m, e)); k.bindFramebuffer(k.FRAMEBUFFER, this.textureBuffer.frameBuffer), k.readPixels(0, 0, m, e, k.RGBA, k.UNSIGNED_BYTE, o), k.bindFramebuffer(k.FRAMEBUFFER, null); var n = new i.CanvasBuffer(m, e), u = n.context.getImageData(0, 0, m, e); return u.data.set(o), n.context.putImageData(u, 0, 0), n.canvas; } return this.textureBuffer.canvas; }, i.RenderTexture.tempMatrix = new i.Matrix, i.AbstractFilter = function (k, m) { this.passes = [this], this.shaders = [], this.dirty = !0, this.padding = 0, this.uniforms = m || {}, this.fragmentSrc = k || []; }, i.AbstractFilter.prototype.constructor = i.AbstractFilter, i.AbstractFilter.prototype.syncUniforms = function () { for (var k = 0, m = this.shaders.length; y3U.e5D(m, k); k++) this.shaders[k].dirty = !0; }, "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = i), exports.PIXI = i) : "undefined" != typeof define && define.amd ? define("PIXI", function () { return D0.PIXI = i; } ()) : D0.PIXI = i; }).call(this), function () { function q0(k, m) { this._scaleFactor = k, this._deltaMode = m, this.originalEvent = null; } var D0 = this, i = i || { VERSION : "2.2.2", 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, 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 } }; if (PIXI.InteractionManager = PIXI.InteractionManager || function () {}, PIXI.dontSayHello = !0, Math.trunc || (Math.trunc = function (k) { return y3U.g5D(0, k) ? Math.ceil(k) : Math.floor(k); }), Function.prototype.bind || (Function.prototype.bind = function () { var q = Array.prototype.slice; return function (m) { function e() { var k = n.concat(q.call(arguments)); o.apply(y3U.r5D(this, e) ? this : m, k); } var o = this, n = q.call(arguments, 1); if ("function" != typeof o) throw new TypeError; return e.prototype = function u(k) { return k && (u.prototype = k), y3U.i5D(this, u) ? void 0 : new u; } (o.prototype), e; }; } ()), Array.isArray || (Array.isArray = function (k) { return y3U.u5D("[object Array]", Object.prototype.toString.call(k)); }), Array.prototype.forEach || (Array.prototype.forEach = function (k) { "use strict"; if (void 0 === this || y3U.P5D(null, this)) throw new TypeError; var m = Object(this), e = y3U.D5D(m.length, 0); if ("function" != typeof k) throw new TypeError; for (var o = y3U.Z5D(arguments.length, 2) ? arguments[1] : void 0, n = 0; y3U.R5D(e, n); n++) y3U.O5D(n, m) && k.call(o, m[n], n, m); }), "function" != typeof r2w8n[E8n].Uint32Array && "object" != typeof r2w8n[E8n].Uint32Array) { var k7 = function (e) { var o = new Array; r2w8n[E8n][e] = function (k) { if ("number" == typeof k) { Array.call(this, k), this.length = k; for (var m = 0; y3U.V5D(m, this.length); m++) this[m] = 0; } else { Array.call(this, k.length), this.length = k.length; for (var m = 0; y3U.k2D(m, this.length); m++) this[m] = k[m]; } }, r2w8n[E8n][e].prototype = o, r2w8n[E8n][e].constructor = r2w8n[E8n][e]; }; k7("Uint32Array"), k7("Int16Array"); } r2w8n[E8n]['console'] || (r2w8n[E8n]['console'] = {}, r2w8n[E8n]['console'].log = r2w8n[E8n]['console'].assert = function () {}, r2w8n[E8n]['console'].warn = r2w8n[E8n]['console'].assert = function () {}), i.Utils = { getProperty : function (k, m) { for (var e = m.split("."), o = e.pop(), n = e.length, u = 1, q = e[0]; y3U.G2D(n, u) && (k = k[q]); ) q = e[u], u++; return k ? k[o] : null; }, setProperty : function (k, m, e) { for (var o = m.split("."), n = o.pop(), u = o.length, q = 1, f = o[0]; y3U.N2D(u, q) && (k = k[f]); ) f = o[q], q++; return k && (k[n] = e), k; }, chanceRoll : function (k) { return "undefined" == typeof k && (k = 50), y3U.L2D(k, 0) && y3U.z2D(100 * Math.random(), k); }, randomChoice : function (k, m) { return y3U.J2D(Math.random(), .5) ? k : m; }, transposeArray : function (k) { return i.ArrayUtils.transposeMatrix(k); }, rotateArray : function (k, m) { return i.ArrayUtils.rotateMatrix(k, m); }, shuffle : function (k) { return i.ArrayUtils.shuffle(k); }, parseDimension : function (k, m) { var e = 0, o = 0; return "string" == typeof k ? "%" === k.substr(-1) ? (e = y3U.H2D(parseInt(k, 10), 100), o = y3U.h2D(0, m) ? y3U.F2D(r2w8n[E8n]['innerWidth'], e) : y3U.M2D(r2w8n[E8n]['innerHeight'], e)) : o = parseInt(k, 10) : o = k, o; }, pad : function (k, m, e, o) { var n = function () { k = new Array(j + 1).join(e) + k + new Array(f + 1).join(e); }, u = function () { k = new Array(m + 1 - k.length).join(e) + k; }; if ("undefined" == typeof m) var m = 0; if ("undefined" == typeof e) var e = " "; if ("undefined" == typeof o) var o = 3; var q = 0; if (y3U.n2D(m + 1, k.length)) switch (o) { case 1: u(); break; case 3: var f = Math.ceil(y3U.f2D((q = m - k.length), 2)), j = y3U.K2D(q, f); n(); break; default: k += new Array(m + 1 - k.length).join(e); } return k; }, isPlainObject : function (m) { if ("object" != typeof m || m.nodeType || y3U.B2D(m, m.window)) return !1; try { if (m.constructor && !{} .hasOwnProperty.call(m.constructor.prototype, "isPrototypeOf")) return !1; } catch (k) { return !1; } return !0; }, extend : function () { var k, m, e, o, n, u, q = arguments[0] || {}, f = 1, j = arguments.length, U0 = !1; for ("boolean" == typeof q && (U0 = q, q = arguments[1] || {}, f = 2), y3U.l2D(j, f) && (q = this, --f); y3U.X2D(j, f); f++) if (y3U.Y2D(null, (k = arguments[f]))) for (m in k) e = q[m], o = k[m], y3U.U1D(q, o) && (U0 && o && (i.Utils.isPlainObject(o) || (n = Array.isArray(o))) ? (n ? (n = !1, u = e && Array.isArray(e) ? e : []) : u = e && i.Utils.isPlainObject(e) ? e : {}, q[m] = i.Utils.extend(U0, u, o)) : void 0 !== o && (q[m] = o)); return q; }, mixin : function (k, m) { if (!k || "object" != typeof k) return m; for (var e in k) { var o = k[e]; if (!o.childNodes && !o.cloneNode) { var n = function () { m[e] = k[e] && y3U.T1D("object", u) ? typeof m[e] === u ? i.Utils.mixin(k[e], m[e]) : i.Utils.mixin(k[e], new o.constructor) : k[e]; }; var u = typeof k[e]; n(); } } return m; } }, i.Circle = function (k, m, e) { k = k || 0, m = m || 0, e = e || 0, this.x = k, this.y = m, this._diameter = e, this._radius = y3U.S1D(e, 0) ? y3U.I1D(.5, e) : 0; }, i.Circle.prototype = { type : null, circumference : function () { return y3U.C1D(2, Math.PI, this._radius); }, getBounds : function () { return new i.Rectangle(y3U.J1D(this.x, this.radius), y3U.H1D(this.y, this.radius), y3U.h1D(2, this.radius), y3U.F1D(2, this.radius)); }, setTo : function (k, m, e) { return this.x = k, this.y = m, this._diameter = e, this._radius = y3U.M1D(.5, e), this; }, copyFrom : function (k) { return this.setTo(k.x, k.y, k.diameter); }, copyTo : function (k) { return k.x = this.x, k.y = this.y, k.diameter = this._diameter, k; }, distance : function (k, m) { var e = i.Math.distance(this.x, this.y, k.x, k.y); return m ? Math.round(e) : e; }, clone : function (k) { return "undefined" == typeof k || y3U.n1D(null, k) ? k = new i.Circle(this.x, this.y, this.diameter) : k.setTo(this.x, this.y, this.diameter), k; }, contains : function (k, m) { return i.Circle.contains(this, k, m); }, circumferencePoint : function (k, m, e) { return i.Circle.circumferencePoint(this, k, m, e); }, offset : function (k, m) { return this.x += k, this.y += m, this; }, offsetPoint : function (k) { return this.offset(k.x, k.y); }, toString : function () { return "[{Phaser.Circle (x=" + this.x + " y=" + this.y + " diameter=" + this.diameter + " radius=" + this.radius + ")}]"; } }, i.Circle.prototype.constructor = i.Circle, Object.defineProperty(i.Circle.prototype, "diameter", { get : function () { return this._diameter; }, set : function (k) { y3U.f1D(k, 0) && (this._diameter = k, this._radius = y3U.K1D(.5, k)); } }), Object.defineProperty(i.Circle.prototype, "radius", { get : function () { return this._radius; }, set : function (k) { y3U.B1D(k, 0) && (this._radius = k, this._diameter = y3U.l1D(2, k)); } }), Object.defineProperty(i.Circle.prototype, "left", { get : function () { return y3U.X1D(this.x, this._radius); }, set : function (k) { y3U.Y1D(k, this.x) ? (this._radius = 0, this._diameter = 0) : this.radius = y3U.U6D(this.x, k); } }), Object.defineProperty(i.Circle.prototype, "right", { get : function () { return this.x + this._radius; }, set : function (k) { y3U.T6D(k, this.x) ? (this._radius = 0, this._diameter = 0) : this.radius = y3U.S6D(k, this.x); } }), Object.defineProperty(i.Circle.prototype, "top", { get : function () { return y3U.I6D(this.y, this._radius); }, set : function (k) { y3U.C6D(k, this.y) ? (this._radius = 0, this._diameter = 0) : this.radius = y3U.v6D(this.y, k); } }), Object.defineProperty(i.Circle.prototype, "bottom", { get : function () { return this.y + this._radius; }, set : function (k) { y3U.t6D(k, this.y) ? (this._radius = 0, this._diameter = 0) : this.radius = y3U.y6D(k, this.y); } }), Object.defineProperty(i.Circle.prototype, "area", { get : function () { return y3U.o6D(this._radius, 0) ? y3U.x6D(Math.PI, this._radius, this._radius) : 0; } }), Object.defineProperty(i.Circle.prototype, "empty", { get : function () { return y3U.n6D(0, this._diameter); }, set : function (k) { k === !0 && this.setTo(0, 0, 0); } }), i.Circle.contains = function (k, m, e) { if (y3U.f6D(k.radius, 0) && y3U.K6D(m, k.left) && y3U.B6D(m, k.right) && y3U.l6D(e, k.top) && y3U.X6D(e, k.bottom)) { var o = y3U.Y6D((k.x - m), (k.x - m)), n = y3U.U8D((k.y - e), (k.y - e)); return y3U.T8D(o + n, k.radius * k.radius); } return !1; }, i.Circle.equals = function (k, m) { return y3U.S8D(k.x, m.x) && y3U.I8D(k.y, m.y) && y3U.C8D(k.diameter, m.diameter); }, i.Circle.intersects = function (k, m) { return y3U.v8D(i.Math.distance(k.x, k.y, m.x, m.y), k.radius + m.radius); }, i.Circle.circumferencePoint = function (k, m, e, o) { return "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = new i.Point), e === !0 && (m = i.Math.degToRad(m)), o.x = k.x + y3U.t8D(k.radius, Math.cos(m)), o.y = k.y + y3U.y8D(k.radius, Math.sin(m)), o; }, i.Circle.intersectsRectangle = function (k, m) { var e = Math.abs(y3U.o8D(k.x, m.x, m.halfWidth)), o = m.halfWidth + k.radius; if (y3U.M8D(e, o)) return !1; var n = Math.abs(y3U.n8D(k.y, m.y, m.halfHeight)), u = m.halfHeight + k.radius; if (y3U.P8D(n, u)) return !1; if (y3U.D8D(e, m.halfWidth) || y3U.Z8D(n, m.halfHeight)) return !0; var q = y3U.R8D(e, m.halfWidth), f = y3U.O8D(n, m.halfHeight), j = y3U.V8D(q, q), U0 = y3U.k0R(f, f), k0 = y3U.G0R(k.radius, k.radius); return y3U.N0R(k0, j + U0); }, PIXI.Circle = i.Circle, i.Point = function (k, m) { k = k || 0, m = m || 0, this.x = k, this.y = m; }, i.Point.prototype = { copyFrom : function (k) { return this.setTo(k.x, k.y); }, invert : function () { return this.setTo(this.y, this.x); }, setTo : function (k, m) { return this.x = k || 0, this.y = m || (y3U.L0R(0, m) ? this.x : 0), this; }, set : function (k, m) { return this.x = k || 0, this.y = m || (y3U.z0R(0, m) ? this.x : 0), this; }, add : function (k, m) { return this.x += k, this.y += m, this; }, subtract : function (k, m) { return this.x -= k, this.y -= m, this; }, multiply : function (k, m) { return this.x *= k, this.y *= m, this; }, divide : function (k, m) { return this.x /= k, this.y /= m, this; }, clampX : function (k, m) { return this.x = i.Math.clamp(this.x, k, m), this; }, clampY : function (k, m) { return this.y = i.Math.clamp(this.y, k, m), this; }, clamp : function (k, m) { return this.x = i.Math.clamp(this.x, k, m), this.y = i.Math.clamp(this.y, k, m), this; }, clone : function (k) { return "undefined" == typeof k || y3U.J0R(null, k) ? k = new i.Point(this.x, this.y) : k.setTo(this.x, this.y), k; }, copyTo : function (k) { return k.x = this.x, k.y = this.y, k; }, distance : function (k, m) { return i.Point.distance(this, k, m); }, equals : function (k) { return y3U.H0R(k.x, this.x) && y3U.h0R(k.y, this.y); }, angle : function (k, m) { return "undefined" == typeof m && (m = !1), m ? i.Math.radToDeg(Math.atan2(y3U.F0R(k.y, this.y), y3U.M0R(k.x, this.x))) : Math.atan2(y3U.n0R(k.y, this.y), y3U.f0R(k.x, this.x)); }, rotate : function (k, m, e, o, n) { return i.Point.rotate(this, k, m, e, o, n); }, getMagnitude : function () { return Math.sqrt(y3U.K0R(this.x, this.x) + y3U.B0R(this.y, this.y)); }, getMagnitudeSq : function () { return y3U.l0R(this.x, this.x) + y3U.X0R(this.y, this.y); }, setMagnitude : function (k) { return this.normalize().multiply(k, k); }, normalize : function () { if (!this.isZero()) { var k = this.getMagnitude(); this.x /= k, this.y /= k; } return this; }, isZero : function () { return y3U.Y0R(0, this.x) && y3U.U7R(0, this.y); }, dot : function (k) { return y3U.T7R(this.x, k.x) + y3U.S7R(this.y, k.y); }, cross : function (k) { return y3U.I7R(this.x * k.y, this.y * k.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 + ")}]"; } }, i.Point.prototype.constructor = i.Point, i.Point.add = function (k, m, e) { return "undefined" == typeof e && (e = new i.Point), e.x = k.x + m.x, e.y = k.y + m.y, e; }, i.Point.subtract = function (k, m, e) { return "undefined" == typeof e && (e = new i.Point), e.x = y3U.C7R(k.x, m.x), e.y = y3U.v7R(k.y, m.y), e; }, i.Point.multiply = function (k, m, e) { return "undefined" == typeof e && (e = new i.Point), e.x = y3U.t7R(k.x, m.x), e.y = y3U.y7R(k.y, m.y), e; }, i.Point.divide = function (k, m, e) { return "undefined" == typeof e && (e = new i.Point), e.x = y3U.o7R(k.x, m.x), e.y = y3U.x7R(k.y, m.y), e; }, i.Point.equals = function (k, m) { return y3U.p7R(k.x, m.x) && y3U.q7R(k.y, m.y); }, i.Point.angle = function (k, m) { return Math.atan2(y3U.b7R(k.y, m.y), y3U.j7R(k.x, m.x)); }, i.Point.negative = function (k, m) { return "undefined" == typeof m && (m = new i.Point), m.setTo(-k.x, -k.y); }, i.Point.multiplyAdd = function (k, m, e, o) { return "undefined" == typeof o && (o = new i.Point), o.setTo(k.x + y3U.d7R(m.x, e), k.y + y3U.c7R(m.y, e)); }, i.Point.interpolate = function (k, m, e, o) { return "undefined" == typeof o && (o = new i.Point), o.setTo(k.x + y3U.s7R((m.x - k.x), e), k.y + y3U.Q7R((m.y - k.y), e)); }, i.Point.perp = function (k, m) { return "undefined" == typeof m && (m = new i.Point), m.setTo(-k.y, k.x); }, i.Point.rperp = function (k, m) { return "undefined" == typeof m && (m = new i.Point), m.setTo(k.y, -k.x); }, i.Point.distance = function (k, m, e) { var o = i.Math.distance(k.x, k.y, m.x, m.y); return e ? Math.round(o) : o; }, i.Point.project = function (k, m, e) { "undefined" == typeof e && (e = new i.Point); var o = y3U.a4R(k.dot(m), m.getMagnitudeSq()); return y3U.W4R(0, o) && e.setTo(y3U.m4R(o, m.x), y3U.A4R(o, m.y)), e; }, i.Point.projectUnit = function (k, m, e) { "undefined" == typeof e && (e = new i.Point); var o = k.dot(m); return y3U.w4R(0, o) && e.setTo(y3U.E4R(o, m.x), y3U.e4R(o, m.y)), e; }, i.Point.normalRightHand = function (k, m) { return "undefined" == typeof m && (m = new i.Point), m.setTo(-1 * k.y, k.x); }, i.Point.normalize = function (k, m) { "undefined" == typeof m && (m = new i.Point); var e = k.getMagnitude(); return y3U.g4R(0, e) && m.setTo(y3U.r4R(k.x, e), y3U.i4R(k.y, e)), m; }, i.Point.rotate = function (k, m, e, o, n, u) { n = n || !1, u = u || null, n && (o = i.Math.degToRad(o)), y3U.u4R(null, u) && (u = Math.sqrt(y3U.P4R((m - k.x), (m - k.x)) + y3U.D4R((e - k.y), (e - k.y)))); var q = o + Math.atan2(y3U.Z4R(k.y, e), y3U.R4R(k.x, m)); return k.setTo(m + y3U.O4R(u, Math.cos(q)), e + y3U.V4R(u, Math.sin(q))); }, i.Point.centroid = function (k, m) { if ("undefined" == typeof m && (m = new i.Point), y3U.k3R("[object Array]", Object.prototype.toString.call(k))) throw new Error("Phaser.Point. Parameter 'points' must be an array"); var e = k.length; if (y3U.G3R(1, e)) throw new Error("Phaser.Point. Parameter 'points' array must not be empty"); if (y3U.N3R(1, e)) return m.copyFrom(k[0]), m; for (var o = 0; y3U.L3R(e, o); o++) i.Point.add(m, k[o], m); return m.divide(e, e), m; }, i.Point.parse = function (k, m, e) { m = m || "x", e = e || "y"; var o = new i.Point; return k[m] && (o.x = parseInt(k[m], 10)), k[e] && (o.y = parseInt(k[e], 10)), o; }, PIXI.Point = i.Point, i.Rectangle = function (k, m, e, o) { k = k || 0, m = m || 0, e = e || 0, o = o || 0, this.x = k, this.y = m, this.width = e, this.height = o; }, i.Rectangle.prototype = { offset : function (k, m) { return this.x += k, this.y += m, this; }, offsetPoint : function (k) { return this.offset(k.x, k.y); }, setTo : function (k, m, e, o) { return this.x = k, this.y = m, this.width = e, this.height = o, this; }, scale : function (k, m) { return "undefined" == typeof m && (m = k), this.width *= k, this.height *= m, this; }, centerOn : function (k, m) { return this.centerX = k, this.centerY = m, 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); }, copyFrom : function (k) { return this.setTo(k.x, k.y, k.width, k.height); }, copyTo : function (k) { return k.x = this.x, k.y = this.y, k.width = this.width, k.height = this.height, k; }, inflate : function (k, m) { return i.Rectangle.inflate(this, k, m); }, size : function (k) { return i.Rectangle.size(this, k); }, clone : function (k) { return i.Rectangle.clone(this, k); }, contains : function (k, m) { return i.Rectangle.contains(this, k, m); }, containsRect : function (k) { return i.Rectangle.containsRect(k, this); }, equals : function (k) { return i.Rectangle.equals(this, k); }, intersection : function (k, m) { return i.Rectangle.intersection(this, k, m); }, intersects : function (k) { return i.Rectangle.intersects(this, k); }, intersectsRaw : function (k, m, e, o, n) { return i.Rectangle.intersectsRaw(this, k, m, e, o, n); }, union : function (k, m) { return i.Rectangle.union(this, k, m); }, toString : function () { return "[{Rectangle (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + " empty=" + this.empty + ")}]"; } }, Object.defineProperty(i.Rectangle.prototype, "halfWidth", { get : function () { return Math.round(y3U.z3R(this.width, 2)); } }), Object.defineProperty(i.Rectangle.prototype, "halfHeight", { get : function () { return Math.round(y3U.J3R(this.height, 2)); } }), Object.defineProperty(i.Rectangle.prototype, "bottom", { get : function () { return this.y + this.height; }, set : function (k) { this.height = y3U.H3R(k, this.y) ? 0 : y3U.h3R(k, this.y); } }), Object.defineProperty(i.Rectangle.prototype, "bottomRight", { get : function () { return new i.Point(this.right, this.bottom); }, set : function (k) { this.right = k.x, this.bottom = k.y; } }), Object.defineProperty(i.Rectangle.prototype, "left", { get : function () { return this.x; }, set : function (k) { this.width = y3U.F3R(k, this.right) ? 0 : y3U.M3R(this.right, k), this.x = k; } }), Object.defineProperty(i.Rectangle.prototype, "right", { get : function () { return this.x + this.width; }, set : function (k) { this.width = y3U.n3R(k, this.x) ? 0 : y3U.f3R(k, this.x); } }), Object.defineProperty(i.Rectangle.prototype, "volume", { get : function () { return y3U.K3R(this.width, this.height); } }), Object.defineProperty(i.Rectangle.prototype, "perimeter", { get : function () { return y3U.B3R(2, this.width) + y3U.l3R(2, this.height); } }), Object.defineProperty(i.Rectangle.prototype, "centerX", { get : function () { return this.x + this.halfWidth; }, set : function (k) { this.x = y3U.X3R(k, this.halfWidth); } }), Object.defineProperty(i.Rectangle.prototype, "centerY", { get : function () { return this.y + this.halfHeight; }, set : function (k) { this.y = y3U.Y3R(k, this.halfHeight); } }), Object.defineProperty(i.Rectangle.prototype, "randomX", { get : function () { return this.x + y3U.U9R(Math.random(), this.width); } }), Object.defineProperty(i.Rectangle.prototype, "randomY", { get : function () { return this.y + y3U.T9R(Math.random(), this.height); } }), Object.defineProperty(i.Rectangle.prototype, "top", { get : function () { return this.y; }, set : function (k) { y3U.S9R(k, this.bottom) ? (this.height = 0, this.y = k) : this.height = y3U.I9R(this.bottom, k); } }), Object.defineProperty(i.Rectangle.prototype, "topLeft", { get : function () { return new i.Point(this.x, this.y); }, set : function (k) { this.x = k.x, this.y = k.y; } }), Object.defineProperty(i.Rectangle.prototype, "topRight", { get : function () { return new i.Point(this.x + this.width, this.y); }, set : function (k) { this.right = k.x, this.y = k.y; } }), Object.defineProperty(i.Rectangle.prototype, "empty", { get : function () { return !this.width || !this.height; }, set : function (k) { k === !0 && this.setTo(0, 0, 0, 0); } }), i.Rectangle.prototype.constructor = i.Rectangle, i.Rectangle.inflate = function (k, m, e) { return k.x -= m, k.width += y3U.C9R(2, m), k.y -= e, k.height += y3U.v9R(2, e), k; }, i.Rectangle.inflatePoint = function (k, m) { return i.Rectangle.inflate(k, m.x, m.y); }, i.Rectangle.size = function (k, m) { return "undefined" == typeof m || y3U.t9R(null, m) ? m = new i.Point(k.width, k.height) : m.setTo(k.width, k.height), m; }, i.Rectangle.clone = function (k, m) { return "undefined" == typeof m || y3U.y9R(null, m) ? m = new i.Rectangle(k.x, k.y, k.width, k.height) : m.setTo(k.x, k.y, k.width, k.height), m; }, i.Rectangle.contains = function (k, m, e) { return y3U.o9R(k.width, 0) || y3U.x9R(k.height, 0) ? !1 : y3U.p9R(m, k.x) && y3U.q9R(m, k.right) && y3U.b9R(e, k.y) && y3U.j9R(e, k.bottom); }, i.Rectangle.containsRaw = function (k, m, e, o, n, u) { return y3U.d9R(n, k) && y3U.c9R(k + e, n) && y3U.s9R(u, m) && y3U.Q9R(m + o, u); }, i.Rectangle.containsPoint = function (k, m) { return i.Rectangle.contains(k, m.x, m.y); }, i.Rectangle.containsRect = function (k, m) { return y3U.a5R(k.volume, m.volume) ? !1 : y3U.W5R(k.x, m.x) && y3U.m5R(k.y, m.y) && y3U.A5R(k.right, m.right) && y3U.w5R(k.bottom, m.bottom); }, i.Rectangle.equals = function (k, m) { return y3U.E5R(k.x, m.x) && y3U.e5R(k.y, m.y) && y3U.g5R(k.width, m.width) && y3U.r5R(k.height, m.height); }, i.Rectangle.sameDimensions = function (k, m) { return y3U.i5R(k.width, m.width) && y3U.u5R(k.height, m.height); }, i.Rectangle.intersection = function (k, m, e) { return "undefined" == typeof e && (e = new i.Rectangle), i.Rectangle.intersects(k, m) && (e.x = Math.max(k.x, m.x), e.y = Math.max(k.y, m.y), e.width = y3U.P5R(Math.min(k.right, m.right), e.x), e.height = y3U.D5R(Math.min(k.bottom, m.bottom), e.y)), e; }, i.Rectangle.intersects = function (k, m) { return y3U.Z5R(k.width, 0) || y3U.R5R(k.height, 0) || y3U.O5R(m.width, 0) || y3U.V5R(m.height, 0) ? !1 : !(y3U.k2R(k.right, m.x) || y3U.G2R(k.bottom, m.y) || y3U.N2R(k.x, m.right) || y3U.L2R(k.y, m.bottom)); }, i.Rectangle.intersectsRaw = function (k, m, e, o, n, u) { return "undefined" == typeof u && (u = 0), !(y3U.z2R(m, k.right + u) || y3U.J2R(e, k.left - u) || y3U.H2R(o, k.bottom + u) || y3U.h2R(n, k.top - u)); }, i.Rectangle.union = function (k, m, e) { return "undefined" == typeof e && (e = new i.Rectangle), e.setTo(Math.min(k.x, m.x), Math.min(k.y, m.y), y3U.F2R(Math.max(k.right, m.right), Math.min(k.left, m.left)), y3U.M2R(Math.max(k.bottom, m.bottom), Math.min(k.top, m.top))); }, i.Rectangle.aabb = function (m, e) { "undefined" == typeof e && (e = new i.Rectangle); var o = Number.MIN_VALUE, n = Number.MAX_VALUE, u = Number.MIN_VALUE, q = Number.MAX_VALUE; return m.forEach(function (k) { y3U.n2R(k.x, o) && (o = k.x), y3U.f2R(k.x, n) && (n = k.x), y3U.K2R(k.y, u) && (u = k.y), y3U.B2R(k.y, q) && (q = k.y); }), e.setTo(n, q, y3U.l2R(o, n), y3U.X2R(u, q)), e; }, PIXI.Rectangle = i.Rectangle, PIXI.EmptyRectangle = new i.Rectangle(0, 0, 0, 0), i.Line = function (k, m, e, o) { k = k || 0, m = m || 0, e = e || 0, o = o || 0, this.start = new i.Point(k, m), this.end = new i.Point(e, o); }, i.Line.prototype = { setTo : function (k, m, e, o) { return this.start.setTo(k, m), this.end.setTo(e, o), this; }, fromSprite : function (k, m, e) { return "undefined" == typeof e && (e = !1), e ? this.setTo(k.center.x, k.center.y, m.center.x, m.center.y) : this.setTo(k.x, k.y, m.x, m.y); }, fromAngle : function (k, m, e, o) { return this.start.setTo(k, m), this.end.setTo(k + y3U.Y2R(Math.cos(e), o), m + y3U.U1R(Math.sin(e), o)), this; }, intersects : function (k, m, e) { return i.Line.intersectsPoints(this.start, this.end, k.start, k.end, m, e); }, reflect : function (k) { return i.Line.reflect(this, k); }, pointOnLine : function (k, m) { return y3U.T1R((k - this.start.x) * (this.end.y - this.start.y), (this.end.x - this.start.x) * (m - this.start.y)); }, pointOnSegment : function (k, m) { var e = Math.min(this.start.x, this.end.x), o = Math.max(this.start.x, this.end.x), n = Math.min(this.start.y, this.end.y), u = Math.max(this.start.y, this.end.y); return this.pointOnLine(k, m) && y3U.S1R(k, e) && y3U.I1R(o, k) && y3U.C1R(m, n) && y3U.v1R(u, m); }, coordinatesOnLine : function (k, m) { "undefined" == typeof k && (k = 1), "undefined" == typeof m && (m = []); var e = Math.round(this.start.x), o = Math.round(this.start.y), n = Math.round(this.end.x), u = Math.round(this.end.y), q = Math.abs(y3U.t1R(n, e)), f = Math.abs(y3U.y1R(u, o)), j = y3U.o1R(n, e) ? 1 : -1, U0 = y3U.x1R(u, o) ? 1 : -1, k0 = y3U.p1R(q, f); m.push([e, o]); for (var a0 = 1; y3U.q1R(e, n) || y3U.b1R(o, u); ) { var T0 = y3U.j1R(k0, 1); T0 > -f && (k0 -= f, e += j), y3U.d1R(q, T0) && (k0 += q, o += U0), y3U.c1R(a0 % k, 0) && m.push([e, o]), a0++; } return m; }, clone : function (k) { return "undefined" == typeof k || y3U.s1R(null, k) ? k = new i.Line(this.start.x, this.start.y, this.end.x, this.end.y) : k.setTo(this.start.x, this.start.y, this.end.x, this.end.y), k; } }, Object.defineProperty(i.Line.prototype, "length", { get : function () { return Math.sqrt(y3U.Q1R((this.end.x - this.start.x), (this.end.x - this.start.x)) + y3U.a6R((this.end.y - this.start.y), (this.end.y - this.start.y))); } }), Object.defineProperty(i.Line.prototype, "angle", { get : function () { return Math.atan2(y3U.W6R(this.end.y, this.start.y), y3U.m6R(this.end.x, this.start.x)); } }), Object.defineProperty(i.Line.prototype, "slope", { get : function () { return y3U.A6R((this.end.y - this.start.y), (this.end.x - this.start.x)); } }), Object.defineProperty(i.Line.prototype, "perpSlope", { get : function () { return - (y3U.w6R((this.end.x - this.start.x), (this.end.y - this.start.y))); } }), Object.defineProperty(i.Line.prototype, "x", { get : function () { return Math.min(this.start.x, this.end.x); } }), Object.defineProperty(i.Line.prototype, "y", { get : function () { return Math.min(this.start.y, this.end.y); } }), Object.defineProperty(i.Line.prototype, "left", { get : function () { return Math.min(this.start.x, this.end.x); } }), Object.defineProperty(i.Line.prototype, "right", { get : function () { return Math.max(this.start.x, this.end.x); } }), Object.defineProperty(i.Line.prototype, "top", { get : function () { return Math.min(this.start.y, this.end.y); } }), Object.defineProperty(i.Line.prototype, "bottom", { get : function () { return Math.max(this.start.y, this.end.y); } }), Object.defineProperty(i.Line.prototype, "width", { get : function () { return Math.abs(y3U.E6R(this.start.x, this.end.x)); } }), Object.defineProperty(i.Line.prototype, "height", { get : function () { return Math.abs(y3U.e6R(this.start.y, this.end.y)); } }), Object.defineProperty(i.Line.prototype, "normalX", { get : function () { return Math.cos(y3U.g6R(this.angle, 1.5707963267948966)); } }), Object.defineProperty(i.Line.prototype, "normalY", { get : function () { return Math.sin(y3U.r6R(this.angle, 1.5707963267948966)); } }), Object.defineProperty(i.Line.prototype, "normalAngle", { get : function () { return i.Math.wrap(y3U.i6R(this.angle, 1.5707963267948966), -Math.PI, Math.PI); } }), i.Line.intersectsPoints = function (k, m, e, o, n, u) { "undefined" == typeof n && (n = !0), "undefined" == typeof u && (u = new i.Point); var q = y3U.u6R(m.y, k.y), f = y3U.P6R(o.y, e.y), j = y3U.D6R(k.x, m.x), U0 = y3U.Z6R(e.x, o.x), k0 = y3U.R6R(m.x * k.y, k.x * m.y), a0 = y3U.O6R(o.x * e.y, e.x * o.y), T0 = y3U.V6R(q * U0, f * j); if (y3U.k8R(0, T0)) return null; if (u.x = y3U.G8R((j * a0 - U0 * k0), T0), u.y = y3U.N8R((f * k0 - q * a0), T0), n) { var G0 = y3U.L8R((o.y - e.y) * (m.x - k.x), (o.x - e.x) * (m.y - k.y)), W0 = y3U.z8R(((o.x - e.x) * (k.y - e.y) - (o.y - e.y) * (k.x - e.x)), G0), N0 = y3U.J8R(((m.x - k.x) * (k.y - e.y) - (m.y - k.y) * (k.x - e.x)), G0); return y3U.H8R(W0, 0) && y3U.h8R(1, W0) && y3U.F8R(N0, 0) && y3U.M8R(1, N0) ? u : null; } return u; }, i.Line.intersects = function (k, m, e, o) { return i.Line.intersectsPoints(k.start, k.end, m.start, m.end, e, o); }, i.Line.reflect = function (k, m) { return y3U.n8R(2 * m.normalAngle, 3.141592653589793, k.angle); }, i.Ellipse = function (k, m, e, o) { this.type = i.ELLIPSE, k = k || 0, m = m || 0, e = e || 0, o = o || 0, this.x = k, this.y = m, this.width = e, this.height = o; }, i.Ellipse.prototype = { setTo : function (k, m, e, o) { return this.x = k, this.y = m, this.width = e, this.height = o, this; }, getBounds : function () { return new i.Rectangle(y3U.P8R(this.x, this.width), y3U.D8R(this.y, this.height), this.width, this.height); }, copyFrom : function (k) { return this.setTo(k.x, k.y, k.width, k.height); }, copyTo : function (k) { return k.x = this.x, k.y = this.y, k.width = this.width, k.height = this.height, k; }, clone : function (k) { return "undefined" == typeof k || y3U.Z8R(null, k) ? k = new i.Ellipse(this.x, this.y, this.width, this.height) : k.setTo(this.x, this.y, this.width, this.height), k; }, contains : function (k, m) { return i.Ellipse.contains(this, k, m); }, toString : function () { return "[{Phaser.Ellipse (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + ")}]"; } }, i.Ellipse.prototype.constructor = i.Ellipse, Object.defineProperty(i.Ellipse.prototype, "left", { get : function () { return this.x; }, set : function (k) { this.x = k; } }), Object.defineProperty(i.Ellipse.prototype, "right", { get : function () { return this.x + this.width; }, set : function (k) { this.width = y3U.R8R(k, this.x) ? 0 : y3U.O8R(k, this.x); } }), Object.defineProperty(i.Ellipse.prototype, "top", { get : function () { return this.y; }, set : function (k) { this.y = k; } }), Object.defineProperty(i.Ellipse.prototype, "bottom", { get : function () { return this.y + this.height; }, set : function (k) { this.height = y3U.V8R(k, this.y) ? 0 : y3U.k0P(k, this.y); } }), Object.defineProperty(i.Ellipse.prototype, "empty", { get : function () { return y3U.G0P(0, this.width) || y3U.N0P(0, this.height); }, set : function (k) { k === !0 && this.setTo(0, 0, 0, 0); } }), i.Ellipse.contains = function (k, m, e) { if (y3U.L0P(k.width, 0) || y3U.z0P(k.height, 0)) return !1; var o = y3U.J0P((m - k.x), k.width), n = y3U.H0P((e - k.y), k.height); return o *= o, n *= n, y3U.h0P(1, o + n); }, PIXI.Ellipse = i.Ellipse, i.Polygon = function () { this.type = i.POLYGON, this.area = 0, this._points = [], y3U.F0P(arguments.length, 0) && this.setTo.apply(this, arguments), this.closed = !0; }, i.Polygon.prototype = { clone : function (k) { var m = this._points.slice(); return "undefined" == typeof k || y3U.M0P(null, k) ? k = new i.Polygon(m) : k.setTo(m), k; }, contains : function (k, m) { for (var e = this._points.length, o = !1, n = -1, u = y3U.n0P(e, 1); ++n < e; u = n) { var q = this._points[n].x, f = this._points[n].y, j = this._points[u].x, U0 = this._points[u].y; (y3U.f0P(m, f) && y3U.K0P(U0, m) || y3U.B0P(m, U0) && y3U.l0P(f, m)) && y3U.X0P((j - q) * (m - f) / (U0 - f) + q, k) && (o = !o); } return o; }, setTo : function (k) { if (this.area = 0, this._points = [], y3U.Y0P(arguments.length, 0)) { Array.isArray(k) || (k = Array.prototype.slice.call(arguments)); for (var m = Number.MAX_VALUE, e = 0, o = k.length; y3U.U7P(o, e); e++) { if ("number" == typeof k[e]) { var n = new i.Point(k[e], k[e + 1]); e++; } else var n = new i.Point(k[e].x, k[e].y); this._points.push(n), y3U.T7P(n.y, m) && (m = n.y); } this.calculateArea(m); } return this; }, calculateArea : function (k) { for (var m, e, o, n, u = 0, q = this._points.length; y3U.S7P(q, u); u++) m = this._points[u], e = y3U.I7P(u, q - 1) ? this._points[0] : this._points[u + 1], o = y3U.C7P((m.y - k + (e.y - k)), 2), n = y3U.v7P(m.x, e.x), this.area += y3U.t7P(o, n); return this.area; } }, i.Polygon.prototype.constructor = i.Polygon, Object.defineProperty(i.Polygon.prototype, "points", { get : function () { return this._points; }, set : function (k) { y3U.y7P(null, k) ? this.setTo(k) : this.setTo(); } }), PIXI.Graphics = function () { PIXI.DisplayObjectContainer.call(this), this.renderable = !0, this.fillAlpha = 1, this.lineWidth = 0, this.lineColor = 0, this.graphicsData = [], this.tint = 16777215, this.blendMode = PIXI.blendModes.NORMAL, this.currentPath = null, this._webGL = [], this.isMask = !1, this.boundsPadding = 0, this._localBounds = new PIXI.Rectangle(0, 0, 1, 1), this.dirty = !0, this.webGLDirty = !1, this.cachedSpriteDirty = !1; }, PIXI.Graphics.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), PIXI.Graphics.prototype.constructor = PIXI.Graphics, Object.defineProperty(PIXI.Graphics.prototype, "cacheAsBitmap", { get : function () { return this._cacheAsBitmap; }, set : function (k) { this._cacheAsBitmap = k, this._cacheAsBitmap ? this._generateCachedSprite() : (this.destroyCachedSprite(), this.dirty = !0); } }), PIXI.Graphics.prototype.lineStyle = function (k, m, e) { if (this.lineWidth = k || 0, this.lineColor = m || 0, this.lineAlpha = y3U.o7P(arguments.length, 3) ? 1 : e, this.currentPath) { if (this.currentPath.shape.points.length) return this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))), this; this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha; } return this; }, PIXI.Graphics.prototype.moveTo = function (k, m) { return this.drawShape(new PIXI.Polygon([k, m])), this; }, PIXI.Graphics.prototype.lineTo = function (k, m) { return this.currentPath.shape.points.push(k, m), this.dirty = !0, this; }, PIXI.Graphics.prototype.quadraticCurveTo = function (k, m, e, o) { this.currentPath ? y3U.x7P(0, this.currentPath.shape.points.length) && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0); var n, u, q = 20, f = this.currentPath.shape.points; y3U.p7P(0, f.length) && this.moveTo(0, 0); for (var j = f[y3U.q7P(f.length, 2)], U0 = f[y3U.b7P(f.length, 1)], k0 = 0, a0 = 1; y3U.j7P(q, a0); a0++) k0 = y3U.d7P(a0, q), n = j + y3U.c7P((k - j), k0), u = U0 + y3U.s7P((m - U0), k0), f.push(n + y3U.Q7P((k + (e - k) * k0 - n), k0), u + y3U.a4P((m + (o - m) * k0 - u), k0)); return this.dirty = !0, this; }, PIXI.Graphics.prototype.bezierCurveTo = function (k, m, e, o, n, u) { this.currentPath ? y3U.W4P(0, this.currentPath.shape.points.length) && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0); for (var q, f, j, U0, k0, a0 = 20, T0 = this.currentPath.shape.points, G0 = T0[y3U.m4P(T0.length, 2)], W0 = T0[y3U.A4P(T0.length, 1)], N0 = 0, S0 = 1; y3U.w4P(a0, S0); S0++) N0 = y3U.E4P(S0, a0), q = y3U.e4P(1, N0), f = y3U.g4P(q, q), j = y3U.r4P(f, q), U0 = y3U.i4P(N0, N0), k0 = y3U.u4P(U0, N0), T0.push(y3U.P4P(j, G0) + y3U.D4P(3, f, N0, k) + y3U.l4P(3, q, U0, e) + y3U.s4P(k0, n), y3U.Q4P(j, W0) + y3U.a3P(3, f, N0, m) + y3U.N3P(3, q, U0, o) + y3U.C3P(k0, u)); return this.dirty = !0, this; }, PIXI.Graphics.prototype.arcTo = function (k, m, e, o, n) { this.currentPath ? y3U.v3P(0, this.currentPath.shape.points.length) && this.currentPath.shape.points.push(k, m) : this.moveTo(k, m); var u = this.currentPath.shape.points, q = u[y3U.t3P(u.length, 2)], f = u[y3U.y3P(u.length, 1)], j = y3U.o3P(f, m), U0 = y3U.x3P(q, k), k0 = y3U.p3P(o, m), a0 = y3U.q3P(e, k), T0 = Math.abs(y3U.b3P(j * a0, U0 * k0)); if (y3U.j3P(1e-8, T0) || y3U.d3P(0, n)) (y3U.c3P(u[u.length - 2], k) || y3U.s3P(u[u.length - 1], m)) && u.push(k, m); else { var G0 = y3U.Q3P(j, j) + y3U.a9P(U0, U0), W0 = y3U.W9P(k0, k0) + y3U.m9P(a0, a0), N0 = y3U.A9P(j, k0) + y3U.w9P(U0, a0), S0 = y3U.E9P(n, Math.sqrt(G0), T0), I0 = y3U.y9P(n, Math.sqrt(W0), T0), m0 = y3U.F9P(S0, N0, G0), A0 = y3U.i9P(I0, N0, W0), L0 = y3U.q9P(S0, a0) + y3U.b9P(I0, U0), z0 = y3U.j9P(S0, k0) + y3U.d9P(I0, j), E0 = y3U.c9P(U0, (I0 + m0)), v0 = y3U.s9P(j, (I0 + m0)), J0 = y3U.Q9P(a0, (S0 + A0)), t0 = y3U.a5P(k0, (S0 + A0)), w0 = Math.atan2(y3U.W5P(v0, z0), y3U.m5P(E0, L0)), g0 = Math.atan2(y3U.A5P(t0, z0), y3U.w5P(J0, L0)); this.arc(L0 + k, z0 + m, n, w0, g0, y3U.E5P(U0 * k0, a0 * j)); } return this.dirty = !0, this; }, PIXI.Graphics.prototype.arc = function (k, m, e, o, n, u) { var q, f = k + y3U.e5P(Math.cos(o), e), j = m + y3U.g5P(Math.sin(o), e); if (this.currentPath ? (q = this.currentPath.shape.points, y3U.r5P(0, q.length) ? q.push(f, j) : (y3U.i5P(q[q.length - 2], f) || y3U.u5P(q[q.length - 1], j)) && q.push(f, j)) : (this.moveTo(f, j), q = this.currentPath.shape.points), y3U.P5P(o, n)) return this; !u && y3U.D5P(o, n) ? n += y3U.Z5P(2, Math.PI) : u && y3U.R5P(n, o) && (o += y3U.O5P(2, Math.PI)); var U0 = u ? -1 * (y3U.V5P(o, n)) : y3U.k2P(n, o), k0 = y3U.G2P(Math.abs(U0), (2 * Math.PI), 40); if (y3U.m2P(0, U0)) return this; for (var a0 = y3U.A2P(U0, (2 * k0)), T0 = y3U.w2P(2, a0), G0 = Math.cos(a0), W0 = Math.sin(a0), N0 = y3U.E2P(k0, 1), S0 = y3U.e2P(N0, 1, N0), I0 = 0; y3U.o2P(N0, I0); I0++) { var m0 = I0 + y3U.x2P(S0, I0), A0 = a0 + o + y3U.p2P(T0, m0), L0 = Math.cos(A0), z0 = -Math.sin(A0); q.push(y3U.q2P((G0 * L0 + W0 * z0), e) + k, (G0 * -z0 + W0 * L0) * e + m); } return this.dirty = !0, this; }, PIXI.Graphics.prototype.beginFill = function (k, m) { return this.filling = !0, this.fillColor = k || 0, this.fillAlpha = void 0 === m ? 1 : m, this.currentPath && y3U.b2P(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 (k, m, e, o) { return this.drawShape(new PIXI.Rectangle(k, m, e, o)), this; }, PIXI.Graphics.prototype.drawRoundedRect = function (k, m, e, o, n) { return this.drawShape(new PIXI.RoundedRectangle(k, m, e, o, n)), this; }, PIXI.Graphics.prototype.drawCircle = function (k, m, e) { return this.drawShape(new PIXI.Circle(k, m, e)), this; }, PIXI.Graphics.prototype.drawEllipse = function (k, m, e, o) { return this.drawShape(new PIXI.Ellipse(k, m, e, o)), this; }, PIXI.Graphics.prototype.drawPolygon = function (k) { return y3U.j2P(k, Array) || (k = Array.prototype.slice.call(arguments)), this.drawShape(new PIXI.Polygon(k)), this; }, PIXI.Graphics.prototype.clear = function () { return this.lineWidth = 0, this.filling = !1, this.dirty = !0, this.clearDirty = !0, this.graphicsData = [], this; }, PIXI.Graphics.prototype.generateTexture = function (k, m) { var e = function () { k = k || 1; }; e(); var o = this.getBounds(), n = new PIXI.CanvasBuffer(y3U.d2P(o.width, k), y3U.c2P(o.height, k)), u = PIXI.Texture.fromCanvas(n.canvas, m); return u.baseTexture.resolution = k, n.context.scale(k, k), n.context.translate(-o.x, -o.y), PIXI.CanvasGraphics.renderGraphics(this, n.context), u; }, PIXI.Graphics.prototype._renderWebGL = function (k) { if (this.visible !== !1 && y3U.s2P(0, this.alpha) && this.isMask !== !0) { 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, k); if (k.spriteBatch.stop(), k.blendModeManager.setBlendMode(this.blendMode), this._mask && k.maskManager.pushMask(this._mask, k), this._filters && k.filterManager.pushFilter(this._filterBlock), y3U.Q2P(this.blendMode, k.spriteBatch.currentBlendMode)) { k.spriteBatch.currentBlendMode = this.blendMode; var m = PIXI.blendModesWebGL[k.spriteBatch.currentBlendMode]; k.spriteBatch.gl.blendFunc(m[0], m[1]); } if (this.webGLDirty && (this.dirty = !0, this.webGLDirty = !1), PIXI.WebGLGraphics.renderGraphics(this, k), this.children.length) { k.spriteBatch.start(); for (var e = 0, o = this.children.length; y3U.a1P(o, e); e++) this.children[e]._renderWebGL(k); k.spriteBatch.stop(); } this._filters && k.filterManager.popFilter(), this._mask && k.maskManager.popMask(this.mask, k), k.drawCount++, k.spriteBatch.start(); } }, PIXI.Graphics.prototype._renderCanvas = function (k) { if (this.visible !== !1 && y3U.W1P(0, this.alpha) && this.isMask !== !0) { if (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, k); var m = k.context, e = this.worldTransform; y3U.m1P(this.blendMode, k.currentBlendMode) && (k.currentBlendMode = this.blendMode, m.globalCompositeOperation = PIXI.blendModesCanvas[k.currentBlendMode]), this._mask && k.maskManager.pushMask(this._mask, k); var o = k.resolution; m.setTransform(y3U.A1P(e.a, o), y3U.w1P(e.b, o), y3U.E1P(e.c, o), y3U.e1P(e.d, o), y3U.g1P(e.tx, o), y3U.r1P(e.ty, o)), PIXI.CanvasGraphics.renderGraphics(this, m); for (var n = 0, u = this.children.length; y3U.i1P(u, n); n++) this.children[n]._renderCanvas(k); this._mask && k.maskManager.popMask(k); } }, PIXI.Graphics.prototype.getBounds = function (k) { if (this.isMask) return PIXI.EmptyRectangle; this.dirty && (this.updateLocalBounds(), this.webGLDirty = !0, this.cachedSpriteDirty = !0, this.dirty = !1); var m = this._localBounds, e = m.x, o = m.width + m.x, n = m.y, u = m.height + m.y, q = k || this.worldTransform, f = q.a, j = q.b, U0 = q.c, k0 = q.d, a0 = q.tx, T0 = q.ty, G0 = y3U.u1P(f, o) + y3U.P1P(U0, u) + a0, W0 = y3U.D1P(k0, u) + y3U.Z1P(j, o) + T0, N0 = y3U.R1P(f, e) + y3U.O1P(U0, u) + a0, S0 = y3U.V1P(k0, u) + y3U.k6P(j, e) + T0, I0 = y3U.G6P(f, e) + y3U.N6P(U0, n) + a0, m0 = y3U.L6P(k0, n) + y3U.z6P(j, e) + T0, A0 = y3U.J6P(f, o) + y3U.H6P(U0, n) + a0, L0 = y3U.h6P(k0, n) + y3U.F6P(j, o) + T0, z0 = G0, E0 = W0, v0 = G0, J0 = W0; return v0 = y3U.M6P(v0, N0) ? N0 : v0, v0 = y3U.n6P(v0, I0) ? I0 : v0, v0 = y3U.f6P(v0, A0) ? A0 : v0, J0 = y3U.K6P(J0, S0) ? S0 : J0, J0 = y3U.B6P(J0, m0) ? m0 : J0, J0 = y3U.l6P(J0, L0) ? L0 : J0, z0 = y3U.X6P(N0, z0) ? N0 : z0, z0 = y3U.Y6P(I0, z0) ? I0 : z0, z0 = y3U.U8P(A0, z0) ? A0 : z0, E0 = y3U.T8P(S0, E0) ? S0 : E0, E0 = y3U.S8P(m0, E0) ? m0 : E0, E0 = y3U.I8P(L0, E0) ? L0 : E0, this._bounds.x = v0, this._bounds.width = y3U.C8P(z0, v0), this._bounds.y = J0, this._bounds.height = y3U.v8P(E0, J0), this._bounds; }, PIXI.Graphics.prototype.updateLocalBounds = function () { var m = y3U.t8P(1, 0), e = -1 / 0, o = y3U.y8P(1, 0), n = -1 / 0; if (this.graphicsData.length) for (var u, q, f, j, U0, k0, a0 = 0; y3U.o8P(a0, this.graphicsData.length); a0++) { var T0 = this.graphicsData[a0], G0 = T0.type, W0 = T0.lineWidth; if (u = T0.shape, y3U.x8P(G0, PIXI.Graphics.RECT) || y3U.p8P(G0, PIXI.Graphics.RREC)) f = y3U.q8P(u.x, W0 / 2), j = y3U.b8P(u.y, W0 / 2), U0 = u.width + W0, k0 = u.height + W0, m = y3U.j8P(m, f) ? f : m, e = y3U.d8P(f + U0, e) ? f + U0 : e, o = y3U.c8P(o, j) ? j : o, n = y3U.s8P(j + k0, n) ? j + k0 : n; else if (y3U.Q8P(G0, PIXI.Graphics.CIRC)) f = u.x, j = u.y, U0 = u.radius + y3U.a0u(W0, 2), k0 = u.radius + y3U.W0u(W0, 2), m = y3U.m0u(m, f - U0) ? y3U.A0u(f, U0) : m, e = y3U.w0u(f + U0, e) ? f + U0 : e, o = y3U.E0u(o, j - k0) ? y3U.e0u(j, k0) : o, n = y3U.g0u(j + k0, n) ? j + k0 : n; else if (y3U.r0u(G0, PIXI.Graphics.ELIP)) f = u.x, j = u.y, U0 = u.width + y3U.i0u(W0, 2), k0 = u.height + y3U.u0u(W0, 2), m = y3U.P0u(m, f - U0) ? y3U.D0u(f, U0) : m, e = y3U.Z0u(f + U0, e) ? f + U0 : e, o = y3U.R0u(o, j - k0) ? y3U.O0u(j, k0) : o, n = y3U.V0u(j + k0, n) ? j + k0 : n; else { var N0 = function (k) { q = k.points; }; N0(u); for (var S0 = 0; y3U.k7u(S0, q.length); S0 += 2) f = q[S0], j = q[S0 + 1], m = y3U.G7u(m, f - W0) ? y3U.N7u(f, W0) : m, e = y3U.L7u(f + W0, e) ? f + W0 : e, o = y3U.z7u(o, j - W0) ? y3U.J7u(j, W0) : o, n = y3U.H7u(j + W0, n) ? j + W0 : n; } } else m = 0, e = 0, o = 0, n = 0; var I0 = this.boundsPadding; this._localBounds.x = y3U.h7u(m, I0), this._localBounds.width = y3U.F7u(e, m, 2 * I0), this._localBounds.y = y3U.i7u(o, I0), this._localBounds.height = y3U.u7u(n, o, 2 * I0); }, PIXI.Graphics.prototype._generateCachedSprite = function () { var k = this.getLocalBounds(); if (this._cachedSprite) this._cachedSprite.buffer.resize(k.width, k.height); else { var m = new PIXI.CanvasBuffer(k.width, k.height), e = PIXI.Texture.fromCanvas(m.canvas); this._cachedSprite = new PIXI.Sprite(e), this._cachedSprite.buffer = m, this._cachedSprite.worldTransform = this.worldTransform; } this._cachedSprite.anchor.x = - (y3U.b7u(k.x, k.width)), this._cachedSprite.anchor.y = - (y3U.j7u(k.y, k.height)), this._cachedSprite.buffer.context.translate(-k.x, -k.y), this.worldAlpha = 1, PIXI.CanvasGraphics.renderGraphics(this, this._cachedSprite.buffer.context), this._cachedSprite.alpha = this.alpha; }, PIXI.Graphics.prototype.updateCachedSpriteTexture = function () { var k = this._cachedSprite, m = k.texture, e = k.buffer.canvas; m.baseTexture.width = e.width, m.baseTexture.height = e.height, m.crop.width = m.frame.width = e.width, m.crop.height = m.frame.height = e.height, k._width = e.width, k._height = e.height, m.baseTexture.dirty(); }, PIXI.Graphics.prototype.destroyCachedSprite = function () { this._cachedSprite.texture.destroy(!0), this._cachedSprite = null; }, PIXI.Graphics.prototype.drawShape = function (k) { this.currentPath && y3U.d7u(this.currentPath.shape.points.length, 2) && this.graphicsData.pop(), this.currentPath = null; var m = new PIXI.GraphicsData(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.filling, k); return this.graphicsData.push(m), y3U.c7u(m.type, PIXI.Graphics.POLY) && (m.shape.closed = this.filling, this.currentPath = m), this.dirty = !0, m; }, PIXI.GraphicsData = function (k, m, e, o, n, u, q) { this.lineWidth = k, this.lineColor = m, this.lineAlpha = e, this._lineTint = m, this.fillColor = o, this.fillAlpha = n, this._fillTint = o, this.fill = u, this.shape = q, this.type = q.type; }, PIXI.Graphics.POLY = 0, PIXI.Graphics.RECT = 1, PIXI.Graphics.CIRC = 2, PIXI.Graphics.ELIP = 3, PIXI.Graphics.RREC = 4, PIXI.Polygon.prototype.type = PIXI.Graphics.POLY, PIXI.Rectangle.prototype.type = PIXI.Graphics.RECT, PIXI.Circle.prototype.type = PIXI.Graphics.CIRC, PIXI.Ellipse.prototype.type = PIXI.Graphics.ELIP, PIXI.RoundedRectangle.prototype.type = PIXI.Graphics.RREC, i.Camera = function (k, m, e, o, n, u) { this.game = k, this.world = k.world, this.id = 0, this.view = new i.Rectangle(e, o, n, u), this.screenView = new i.Rectangle(e, o, n, u), this.bounds = new i.Rectangle(e, o, n, u), this.deadzone = null, this.visible = !0, this.roundPx = !0, this.atLimit = { x : !1, y : !1 }, this.target = null, this.displayObject = null, this.scale = null, this.totalInView = 0, this._targetPosition = new i.Point, this._edge = 0, this._position = new i.Point; }, i.Camera.FOLLOW_LOCKON = 0, i.Camera.FOLLOW_PLATFORMER = 1, i.Camera.FOLLOW_TOPDOWN = 2, i.Camera.FOLLOW_TOPDOWN_TIGHT = 3, i.Camera.prototype = { preUpdate : function () { this.totalInView = 0; }, follow : function (k, m) { "undefined" == typeof m && (m = i.Camera.FOLLOW_LOCKON), this.target = k; var e; switch (m) { case i.Camera.FOLLOW_PLATFORMER: var o = y3U.s7u(this.width, 8), n = y3U.Q7u(this.height, 3); this.deadzone = new i.Rectangle(y3U.a4u((this.width - o), 2), y3U.W4u((this.height - n) / 2, .25 * n), o, n); break; case i.Camera.FOLLOW_TOPDOWN: e = y3U.m4u(Math.max(this.width, this.height), 4), this.deadzone = new i.Rectangle(y3U.A4u((this.width - e), 2), y3U.w4u((this.height - e), 2), e, e); break; case i.Camera.FOLLOW_TOPDOWN_TIGHT: e = y3U.E4u(Math.max(this.width, this.height), 8), this.deadzone = new i.Rectangle(y3U.e4u((this.width - e), 2), y3U.g4u((this.height - e), 2), e, e); break; case i.Camera.FOLLOW_LOCKON: this.deadzone = null; break; default: this.deadzone = null; } }, unfollow : function () { this.target = null; }, focusOn : function (k) { this.setPosition(Math.round(y3U.r4u(k.x, this.view.halfWidth)), Math.round(y3U.i4u(k.y, this.view.halfHeight))); }, focusOnXY : function (k, m) { this.setPosition(Math.round(y3U.u4u(k, this.view.halfWidth)), Math.round(y3U.P4u(m, this.view.halfHeight))); }, update : function () { this.target && this.updateTarget(), this.bounds && this.checkBounds(), this.roundPx && this.view.floor(), this.displayObject.position.x = -this.view.x, this.displayObject.position.y = -this.view.y; }, updateTarget : function () { this._targetPosition.copyFrom(this.target), this.target.parent && this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d), this.deadzone ? (this._edge = y3U.D4u(this._targetPosition.x, this.view.x), y3U.Z4u(this._edge, this.deadzone.left) ? this.view.x = y3U.R4u(this._targetPosition.x, this.deadzone.left) : y3U.O4u(this._edge, this.deadzone.right) && (this.view.x = y3U.V4u(this._targetPosition.x, this.deadzone.right)), this._edge = y3U.k3u(this._targetPosition.y, this.view.y), y3U.G3u(this._edge, this.deadzone.top) ? this.view.y = y3U.N3u(this._targetPosition.y, this.deadzone.top) : y3U.L3u(this._edge, this.deadzone.bottom) && (this.view.y = y3U.z3u(this._targetPosition.y, this.deadzone.bottom))) : (this.view.x = y3U.J3u(this._targetPosition.x, this.view.halfWidth), this.view.y = y3U.H3u(this._targetPosition.y, this.view.halfHeight)); }, setBoundsToWorld : function () { this.bounds && this.bounds.setTo(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height); }, checkBounds : function () { this.atLimit.x = !1, this.atLimit.y = !1, y3U.h3u(this.view.x, this.bounds.x) && (this.atLimit.x = !0, this.view.x = this.bounds.x), y3U.F3u(this.view.right, this.bounds.right) && (this.atLimit.x = !0, this.view.x = y3U.M3u(this.bounds.right, this.width)), y3U.n3u(this.view.y, this.bounds.top) && (this.atLimit.y = !0, this.view.y = this.bounds.top), y3U.f3u(this.view.bottom, this.bounds.bottom) && (this.atLimit.y = !0, this.view.y = y3U.K3u(this.bounds.bottom, this.height)); }, setPosition : function (k, m) { this.view.x = k, this.view.y = m, this.bounds && this.checkBounds(); }, setSize : function (k, m) { this.view.width = k, this.view.height = m; }, reset : function () { this.target = null, this.view.x = 0, this.view.y = 0; } }, i.Camera.prototype.constructor = i.Camera, Object.defineProperty(i.Camera.prototype, "x", { get : function () { return this.view.x; }, set : function (k) { this.view.x = k, this.bounds && this.checkBounds(); } }), Object.defineProperty(i.Camera.prototype, "y", { get : function () { return this.view.y; }, set : function (k) { this.view.y = k, this.bounds && this.checkBounds(); } }), Object.defineProperty(i.Camera.prototype, "position", { get : function () { return this._position.set(this.view.centerX, this.view.centerY), this._position; }, set : function (k) { "undefined" != typeof k.x && (this.view.x = k.x), "undefined" != typeof k.y && (this.view.y = k.y), this.bounds && this.checkBounds(); } }), Object.defineProperty(i.Camera.prototype, "width", { get : function () { return this.view.width; }, set : function (k) { this.view.width = k; } }), Object.defineProperty(i.Camera.prototype, "height", { get : function () { return this.view.height; }, set : function (k) { this.view.height = k; } }), i.State = function () { this.game = null, this.add = null, this.make = null, this.camera = null, this.cache = null, this.input = null, this.load = null, this.math = null, this.sound = null, this.scale = null, this.stage = null, this.time = null, this.tweens = null, this.world = null, this.particles = null, this.physics = null, this.rnd = null; }, i.State.prototype = { init : function () {}, preload : function () {}, loadUpdate : function () {}, loadRender : function () {}, create : function () {}, update : function () {}, render : function () {}, resize : function () {}, paused : function () {}, pauseUpdate : function () {}, shutdown : function () {} }, i.State.prototype.constructor = i.State, i.StateManager = function (k, m) { this.game = k, this.states = {}, this._pendingState = null, "undefined" != typeof m && y3U.B3u(null, m) && (this._pendingState = m), this._clearWorld = !1, this._clearCache = !1, this._created = !1, this._args = [], this.current = "", 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; }, i.StateManager.prototype = { boot : function () { this.game.onPause.add(this.pause, this), this.game.onResume.add(this.resume, this), this.game.load.onLoadComplete.add(this.loadComplete, this), y3U.l3u(null, this._pendingState) && "string" != typeof this._pendingState && this.add("default", this._pendingState, !0); }, add : function (k, m, e) { "undefined" == typeof e && (e = !1); var o; return y3U.X3u(m, i.State) ? o = m : "object" == typeof m ? (o = m, o.game = this.game) : "function" == typeof m && (o = new m(this.game)), this.states[k] = o, e && (this.game.isBooted ? this.start(k) : this._pendingState = k), o; }, remove : function (k) { y3U.Y3u(this.current, k) && (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[k]; }, start : function (k, m, e) { "undefined" == typeof m && (m = !0), "undefined" == typeof e && (e = !1), this.checkState(k) && (this._pendingState = k, this._clearWorld = m, this._clearCache = e, y3U.U9u(arguments.length, 3) && (this._args = Array.prototype.splice.call(arguments, 3))); }, restart : function (k, m) { "undefined" == typeof k && (k = !0), "undefined" == typeof m && (m = !1), this._pendingState = this.current, this._clearWorld = k, this._clearCache = m, y3U.T9u(arguments.length, 2) && (this._args = Array.prototype.splice.call(arguments, 2)); }, dummy : function () {}, preUpdate : function () { if (this._pendingState && this.game.isBooted) { if (this.clearCurrentState(), this.setCurrentState(this._pendingState), y3U.S9u(this.current, this._pendingState)) return; this._pendingState = null, this.onPreloadCallback ? (this.game.load.reset(), this.onPreloadCallback.call(this.callbackContext, this.game), y3U.I9u(0, this.game.load.totalQueuedFiles()) && y3U.C9u(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 === !0 && this.game.cache.destroy())); }, checkState : function (k) { if (this.states[k]) { var m = !1; return (this.states[k].preload || this.states[k].create || this.states[k].update || this.states[k].render) && (m = !0), m === !1 ? (console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"), !1) : !0; } return console.warn("Phaser.StateManager - No state found with the key: " + k), !1; }, link : function (k) { this.states[k].game = this.game, this.states[k].add = this.game.add, this.states[k].make = this.game.make, this.states[k].camera = this.game.camera, this.states[k].cache = this.game.cache, this.states[k].input = this.game.input, this.states[k].load = this.game.load, this.states[k].math = this.game.math, this.states[k].sound = this.game.sound, this.states[k].scale = this.game.scale, this.states[k].state = this, this.states[k].stage = this.game.stage, this.states[k].time = this.game.time, this.states[k].tweens = this.game.tweens, this.states[k].world = this.game.world, this.states[k].particles = this.game.particles, this.states[k].rnd = this.game.rnd, this.states[k].physics = this.game.physics; }, unlink : function (k) { this.states[k] && (this.states[k].game = null, this.states[k].add = null, this.states[k].make = null, this.states[k].camera = null, this.states[k].cache = null, this.states[k].input = null, this.states[k].load = null, this.states[k].math = null, this.states[k].sound = null, this.states[k].scale = null, this.states[k].state = null, this.states[k].stage = null, this.states[k].time = null, this.states[k].tweens = null, this.states[k].world = null, this.states[k].particles = null, this.states[k].rnd = null, this.states[k].physics = null); }, setCurrentState : function (k) { this.callbackContext = this.states[k], this.link(k), this.onInitCallback = this.states[k].init || this.dummy, this.onPreloadCallback = this.states[k].preload || null, this.onLoadRenderCallback = this.states[k].loadRender || null, this.onLoadUpdateCallback = this.states[k].loadUpdate || null, this.onCreateCallback = this.states[k].create || null, this.onUpdateCallback = this.states[k].update || null, this.onPreRenderCallback = this.states[k].preRender || null, this.onRenderCallback = this.states[k].render || null, this.onResizeCallback = this.states[k].resize || null, this.onPausedCallback = this.states[k].paused || null, this.onResumedCallback = this.states[k].resumed || null, this.onPauseUpdateCallback = this.states[k].pauseUpdate || null, this.onShutDownCallback = this.states[k].shutdown || this.dummy, this.current = k, this._created = !1, this.onInitCallback.apply(this.callbackContext, this._args), y3U.v9u(k, this._pendingState) && (this._args = []); }, getCurrentState : function () { return this.states[this.current]; }, loadComplete : function () { this._created === !1 && this.onCreateCallback ? (this._created = !0, this.onCreateCallback.call(this.callbackContext, this.game)) : this._created = !0; }, pause : function () { this._created && this.onPausedCallback && this.onPausedCallback.call(this.callbackContext, this.game); }, resume : function () { this._created && this.onResumedCallback && this.onResumedCallback.call(this.callbackContext, this.game); }, update : function () { this._created && this.onUpdateCallback ? this.onUpdateCallback.call(this.callbackContext, this.game) : this.onLoadUpdateCallback && this.onLoadUpdateCallback.call(this.callbackContext, this.game); }, pauseUpdate : function () { this._created && this.onPauseUpdateCallback ? this.onPauseUpdateCallback.call(this.callbackContext, this.game) : this.onLoadUpdateCallback && this.onLoadUpdateCallback.call(this.callbackContext, this.game); }, preRender : function (k) { this.onPreRenderCallback && this.onPreRenderCallback.call(this.callbackContext, this.game, k); }, resize : function (k, m) { this.onResizeCallback && this.onResizeCallback.call(this.callbackContext, k, m); }, render : function () { this._created && this.onRenderCallback ? (y3U.t9u(this.game.renderType, i.CANVAS) && (this.game.context.save(), this.game.context.setTransform(1, 0, 0, 1, 0, 0)), this.onRenderCallback.call(this.callbackContext, this.game), y3U.y9u(this.game.renderType, i.CANVAS) && this.game.context.restore()) : this.onLoadRenderCallback && this.onLoadRenderCallback.call(this.callbackContext, this.game); }, destroy : function () { 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; } }, i.StateManager.prototype.constructor = i.StateManager, i.Signal = function () {}, i.Signal.prototype = { _bindings : null, _prevParams : null, memorize : !1, _shouldPropagate : !0, active : !0, _boundDispatch : !0, validateListener : function (k, m) { if ("function" != typeof k) throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}", m)); }, _registerListener : function (k, m, e, o) { var n, u = this._indexOfListener(k, e); if (-1 !== u) { if (n = this._bindings[u], y3U.o9u(n.isOnce(), m)) throw new Error("You cannot add" + (m ? "" : "Once") + "() then add" + (m ? "Once" : "") + "() the same listener without removing the relationship first."); } else n = new i.SignalBinding(this, k, m, e, o), this._addBinding(n); return this.memorize && this._prevParams && n.execute(this._prevParams), n; }, _addBinding : function (k) { this._bindings || (this._bindings = []); var m = this._bindings.length; do m--; while (this._bindings[m] && y3U.x9u(k._priority, this._bindings[m]._priority)); this._bindings.splice(m + 1, 0, k); }, _indexOfListener : function (k, m) { if (!this._bindings) return -1; "undefined" == typeof m && (m = null); for (var e, o = this._bindings.length; o--; ) if (e = this._bindings[o], y3U.p9u(e._listener, k) && y3U.q9u(e.context, m)) return o; return -1; }, has : function (k, m) { return -1 !== this._indexOfListener(k, m); }, add : function (k, m, e) { return this.validateListener(k, "add"), this._registerListener(k, !1, m, e); }, addOnce : function (k, m, e) { return this.validateListener(k, "addOnce"), this._registerListener(k, !0, m, e); }, remove : function (k, m) { this.validateListener(k, "remove"); var e = this._indexOfListener(k, m); return -1 !== e && (this._bindings[e]._destroy(), this._bindings.splice(e, 1)), k; }, removeAll : function (k) { if ("undefined" == typeof k && (k = null), this._bindings) { for (var m = this._bindings.length; m--; ) k ? y3U.b9u(this._bindings[m].context, k) && (this._bindings[m]._destroy(), this._bindings.splice(m, 1)) : this._bindings[m]._destroy(); k || (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 k, m = Array.prototype.slice.call(arguments), e = this._bindings.length; if (this.memorize && (this._prevParams = m), e) { k = this._bindings.slice(), this._shouldPropagate = !0; do e--; while (k[e] && this._shouldPropagate && k[e].execute(m) !== !1) } } }, 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(i.Signal.prototype, "boundDispatch", { get : function () { var k = this; return this._boundDispatch || (this._boundDispatch = function () { return k.dispatch.apply(k, arguments); }); } }), i.Signal.prototype.constructor = i.Signal, i.SignalBinding = function (k, m, e, o, n) { this._listener = m, e && (this._isOnce = !0), y3U.j9u(null, o) && (this.context = o), this._signal = k, n && (this._priority = n); }, i.SignalBinding.prototype = { context : null, _isOnce : !1, _priority : 0, callCount : 0, active : !0, params : null, execute : function (k) { var m, e; return this.active && this._listener && (e = this.params ? this.params.concat(k) : k, m = this._listener.apply(this.context, e), this.callCount++, this._isOnce && this.detach()), m; }, 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 + "]"; } }, i.SignalBinding.prototype.constructor = i.SignalBinding, i.Filter = function (k, m, e) { this.game = k, this.type = i.WEBGL_FILTER, this.passes = [this], this.shaders = [], this.dirty = !0, this.padding = 0, this.prevPoint = new i.Point; var o = 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 : [o.getFullYear(), o.getMonth(), o.getDate(), y3U.d9u(60, o.getHours(), 60) + y3U.X9u(60, o.getMinutes()) + o.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 } } }, m) for (var n in m) this.uniforms[n] = m[n]; this.fragmentSrc = e || []; }, i.Filter.prototype = { init : function () {}, setResolution : function (k, m) { this.uniforms.resolution.value.x = k, this.uniforms.resolution.value.y = m; }, update : function (k) { if ("undefined" != typeof k) { var m = y3U.Y9u(k.x, this.game.width), e = y3U.U5u(1, k.y / this.game.height); (y3U.T5u(m, this.prevPoint.x) || y3U.S5u(e, this.prevPoint.y)) && (this.uniforms.mouse.value.x = m.toFixed(2), this.uniforms.mouse.value.y = e.toFixed(2), this.prevPoint.set(m, e)); } this.uniforms.time.value = this.game.time.totalElapsedSeconds(); }, destroy : function () { this.game = null; } }, i.Filter.prototype.constructor = i.Filter, Object.defineProperty(i.Filter.prototype, "width", { get : function () { return this.uniforms.resolution.value.x; }, set : function (k) { this.uniforms.resolution.value.x = k; } }), Object.defineProperty(i.Filter.prototype, "height", { get : function () { return this.uniforms.resolution.value.y; }, set : function (k) { this.uniforms.resolution.value.y = k; } }), i.Plugin = function (k, m) { "undefined" == typeof m && (m = null), this.game = k, this.parent = m, this.active = !1, this.visible = !1, this.hasPreUpdate = !1, this.hasUpdate = !1, this.hasPostUpdate = !1, this.hasRender = !1, this.hasPostRender = !1; }, i.Plugin.prototype = { preUpdate : function () {}, update : function () {}, render : function () {}, postRender : function () {}, destroy : function () { this.game = null, this.parent = null, this.active = !1, this.visible = !1; } }, i.Plugin.prototype.constructor = i.Plugin, i.PluginManager = function (k) { this.game = k, this.plugins = [], this._len = 0, this._i = 0; }, i.PluginManager.prototype = { add : function (k) { var m = Array.prototype.splice.call(arguments, 1), e = !1; return "function" == typeof k ? k = new k(this.game, this) : (k.game = this.game, k.parent = this), "function" == typeof k.preUpdate && (k.hasPreUpdate = !0, e = !0), "function" == typeof k.update && (k.hasUpdate = !0, e = !0), "function" == typeof k.postUpdate && (k.hasPostUpdate = !0, e = !0), "function" == typeof k.render && (k.hasRender = !0, e = !0), "function" == typeof k.postRender && (k.hasPostRender = !0, e = !0), e ? ((k.hasPreUpdate || k.hasUpdate || k.hasPostUpdate) && (k.active = !0), (k.hasRender || k.hasPostRender) && (k.visible = !0), this._len = this.plugins.push(k), "function" == typeof k.init && k.init.apply(k, m), k) : null; }, remove : function (k) { for (this._i = this._len; this._i--; ) if (y3U.I5u(this.plugins[this._i], k)) return k.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; } }, i.PluginManager.prototype.constructor = i.PluginManager, i.Stage = function (k) { this.game = k, PIXI.Stage.call(this, 0), this.name = "_stage_root", this.interactive = !1, this.disableVisibilityChange = !1, this.exists = !0, this.currentRenderOrderID = 0, this._hiddenVar = "hidden", this._backgroundColor = 0, k.config && this.parseConfig(k.config); }, i.Stage.prototype = Object.create(PIXI.Stage.prototype), i.Stage.prototype.constructor = i.Stage, i.Stage.prototype.parseConfig = function (k) { k.disableVisibilityChange && (this.disableVisibilityChange = k.disableVisibilityChange), k.backgroundColor && (this.backgroundColor = k.backgroundColor); }, i.Stage.prototype.boot = function () { i.DOM.getOffset(this.game.canvas, this.offset); var m = this; this._onChange = function (k) { return m.visibilityChange(k); }, i.Canvas.setUserSelect(this.game.canvas, "none"), i.Canvas.setTouchAction(this.game.canvas, "none"), this.checkVisibility(); }, i.Stage.prototype.preUpdate = function () { this.currentRenderOrderID = 0; for (var k = 0, m = this.children.length; y3U.C5u(m, k); k++) this.children[k].preUpdate(); }, i.Stage.prototype.update = function () { for (var k = this.children.length; k--; ) this.children[k].update(); }, i.Stage.prototype.postUpdate = function () { if (this.game.world.camera.target) { this.game.world.camera.target.postUpdate(), this.game.world.camera.update(); for (var k = this.children.length; k--; ) y3U.v5u(this.children[k], this.game.world.camera.target) && this.children[k].postUpdate(); } else { this.game.world.camera.update(); for (var k = this.children.length; k--; ) this.children[k].postUpdate(); } }, i.Stage.prototype.updateTransform = function () { this.worldAlpha = 1; for (var k = 0, m = this.children.length; y3U.t5u(m, k); k++) this.children[k].updateTransform(); }, i.Stage.prototype.checkVisibility = function () { this._hiddenVar = void 0 !== r2w8n[H8n].webkitHidden ? "webkitvisibilitychange" : void 0 !== r2w8n[H8n].mozHidden ? "mozvisibilitychange" : void 0 !== r2w8n[H8n].msHidden ? "msvisibilitychange" : void 0 !== r2w8n[H8n]['hidden'] ? "visibilitychange" : null, this._hiddenVar && r2w8n[H8n]['addEventListener'](this._hiddenVar, this._onChange, !1), r2w8n[E8n]['onpagehide'] = this._onChange, r2w8n[E8n]['onpageshow'] = this._onChange, r2w8n[E8n]['onblur'] = this._onChange, r2w8n[E8n]['onfocus'] = this._onChange; var k = this; this.game.device.cocoonJSApp && (CocoonJS.App.onSuspended.addEventListener(function () { i.Stage.prototype.visibilityChange.call(k, { type : "pause" }); }), CocoonJS.App.onActivated.addEventListener(function () { i.Stage.prototype.visibilityChange.call(k, { type : "resume" }); })); }, i.Stage.prototype.visibilityChange = function (k) { return y3U.y5u("pagehide", k.type) || y3U.o5u("blur", k.type) || y3U.x5u("pageshow", k.type) || y3U.p5u("focus", k.type) ? void(y3U.q5u("pagehide", k.type) || y3U.b5u("blur", k.type) ? this.game.focusLoss(k) : (y3U.j5u("pageshow", k.type) || y3U.d5u("focus", k.type)) && this.game.focusGain(k)) : void(this.disableVisibilityChange || (r2w8n[H8n]['hidden'] || r2w8n[H8n].mozHidden || r2w8n[H8n].msHidden || r2w8n[H8n].webkitHidden || y3U.c5u("pause", k.type) ? this.game.gamePaused(k) : this.game.gameResumed(k))); }, i.Stage.prototype.setBackgroundColor = function (k) { var m = i.Color.valueToColor(k); this._backgroundColor = i.Color.getColor(m.r, m.g, m.b), this.backgroundColorSplit = [y3U.s5u(m.r, 255), y3U.Q5u(m.g, 255), y3U.a2u(m.b, 255)], this.backgroundColorString = i.Color.RGBtoString(m.r, m.g, m.b, 255, "#"); }, i.Stage.prototype.destroy = function () { this._hiddenVar && r2w8n[H8n]['removeEventListener'](this._hiddenVar, this._onChange, !1), r2w8n[E8n]['onpagehide'] = null, r2w8n[E8n]['onpageshow'] = null, r2w8n[E8n]['onblur'] = null, r2w8n[E8n]['onfocus'] = null; }, Object.defineProperty(i.Stage.prototype, "backgroundColor", { get : function () { return this._backgroundColor; }, set : function (k) { this.game.transparent || this.setBackgroundColor(k); } }), Object.defineProperty(i.Stage.prototype, "smoothed", { get : function () { return y3U.W2u(PIXI.scaleModes.DEFAULT, PIXI.scaleModes.LINEAR); }, set : function (k) { var m = function () { PIXI.scaleModes.DEFAULT = k ? PIXI.scaleModes.LINEAR : PIXI.scaleModes.NEAREST; }; m(); } }), i.Group = function (k, m, e, o, n, u) { "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = !1), "undefined" == typeof u && (u = i.Physics.ARCADE), this.game = k, "undefined" == typeof m && (m = k.world), this.name = e || "group", this.z = 0, PIXI.DisplayObjectContainer.call(this), o ? (this.game.stage.addChild(this), this.z = this.game.stage.children.length) : m && (m.addChild(this), this.z = m.children.length), this.type = i.GROUP, this.alive = !0, this.exists = !0, this.ignoreDestroy = !1, this.classType = i.Sprite, this.scale = new i.Point(1, 1), this.cursor = null, this.cameraOffset = new i.Point, this.enableBody = n, this.enableBodyDebug = !1, this.physicsBodyType = u, this.onDestroy = new i.Signal, this._sortProperty = "z", this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0, 0]; }, i.Group.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), i.Group.prototype.constructor = i.Group, i.Group.RETURN_NONE = 0, i.Group.RETURN_TOTAL = 1, i.Group.RETURN_CHILD = 2, i.Group.SORT_ASCENDING = -1, i.Group.SORT_DESCENDING = 1, i.Group.prototype.add = function (k, m) { return "undefined" == typeof m && (m = !1), y3U.m2u(k.parent, this) && (this.enableBody && this.game.physics.enable(k, this.physicsBodyType), this.addChild(k), k.z = this.children.length, !m && k.events && k.events.onAddedToGroup$dispatch(k, this), y3U.A2u(null, this.cursor) && (this.cursor = k)), k; }, i.Group.prototype.addMultiple = function (k, m) { if (Array.isArray(k)) for (var e = 0; y3U.w2u(e, k.length); e++) this.add(k[e], m); return k; }, i.Group.prototype.addAt = function (k, m, e) { return "undefined" == typeof e && (e = !1), y3U.E2u(k.parent, this) && (this.enableBody && this.game.physics.enable(k, this.physicsBodyType), this.addChildAt(k, m), this.updateZ(), !e && k.events && k.events.onAddedToGroup$dispatch(k, this), y3U.e2u(null, this.cursor) && (this.cursor = k)), k; }, i.Group.prototype.getAt = function (k) { return y3U.g2u(0, k) || y3U.r2u(k, this.children.length) ? -1 : this.getChildAt(k); }, i.Group.prototype.create = function (k, m, e, o, n) { "undefined" == typeof n && (n = !0); var u = new this.classType(this.game, k, m, e, o); return this.enableBody && this.game.physics.enable(u, this.physicsBodyType, this.enableBodyDebug), u.exists = n, u.visible = n, u.alive = n, this.addChild(u), u.z = this.children.length, u.events && u.events.onAddedToGroup$dispatch(u, this), y3U.i2u(null, this.cursor) && (this.cursor = u), u; }, i.Group.prototype.createMultiple = function (k, m, e, o) { "undefined" == typeof o && (o = !1); for (var n = 0; y3U.u2u(k, n); n++) this.create(0, 0, m, e, o); }, i.Group.prototype.updateZ = function () { for (var k = this.children.length; k--; ) this.children[k].z = k; }, i.Group.prototype.resetCursor = function (k) { return "undefined" == typeof k && (k = 0), y3U.P2u(k, this.children.length - 1) && (k = 0), this.cursor ? (this._cache[8] = k, this.cursor = this.children[this._cache[8]], this.cursor) : void 0; }, i.Group.prototype.next = function () { return this.cursor ? (y3U.D2u(this._cache[8], this.children.length - 1) ? this._cache[8] = 0 : this._cache[8]++, this.cursor = this.children[this._cache[8]], this.cursor) : void 0; }, i.Group.prototype.previous = function () { return this.cursor ? (y3U.Z2u(0, this._cache[8]) ? this._cache[8] = y3U.R2u(this.children.length, 1) : this._cache[8]--, this.cursor = this.children[this._cache[8]], this.cursor) : void 0; }, i.Group.prototype.swap = function (k, m) { this.swapChildren(k, m), this.updateZ(); }, i.Group.prototype.bringToTop = function (k) { return y3U.O2u(k.parent, this) && y3U.V2u(this.getIndex(k), this.children.length) && (this.remove(k, !1, !0), this.add(k, !0)), k; }, i.Group.prototype.sendToBack = function (k) { return y3U.k1u(k.parent, this) && y3U.G1u(this.getIndex(k), 0) && (this.remove(k, !1, !0), this.addAt(k, 0, !0)), k; }, i.Group.prototype.moveUp = function (k) { if (y3U.N1u(k.parent, this) && y3U.L1u(this.getIndex(k), this.children.length - 1)) { var m = this.getIndex(k), e = this.getAt(m + 1); e && this.swap(k, e); } return k; }, i.Group.prototype.moveDown = function (k) { if (y3U.z1u(k.parent, this) && y3U.J1u(this.getIndex(k), 0)) { var m = this.getIndex(k), e = this.getAt(y3U.H1u(m, 1)); e && this.swap(k, e); } return k; }, i.Group.prototype.xy = function (k, m, e) { return y3U.h1u(0, k) || y3U.F1u(k, this.children.length) ? -1 : (this.getChildAt(k).x = m, void(this.getChildAt(k).y = e)); }, i.Group.prototype.reverse = function () { this.children.reverse(), this.updateZ(); }, i.Group.prototype.getIndex = function (k) { return this.children.indexOf(k); }, i.Group.prototype.replace = function (k, m) { var e = this.getIndex(k); return -1 !== e ? (m.parent && (y3U.M1u(m.parent, i.Group) ? m.parent.remove(m) : m.parent.removeChild(m)), this.remove(k), this.addAt(m, e), k) : void 0; }, i.Group.prototype.hasProperty = function (k, m) { var e = m.length; return y3U.n1u(1, e) && y3U.f1u(m[0], k) ? !0 : y3U.K1u(2, e) && y3U.B1u(m[0], k) && y3U.l1u(m[1], k[m[0]]) ? !0 : y3U.X1u(3, e) && y3U.Y1u(m[0], k) && y3U.U6u(m[1], k[m[0]]) && y3U.T6u(m[2], k[m[0]][m[1]]) ? !0 : y3U.S6u(4, e) && y3U.I6u(m[0], k) && y3U.C6u(m[1], k[m[0]]) && y3U.v6u(m[2], k[m[0]][m[1]]) && y3U.t6u(m[3], k[m[0]][m[1]][m[2]]) ? !0 : !1; }, i.Group.prototype.setProperty = function (k, m, e, o, n) { if ("undefined" == typeof n && (n = !1), o = o || 0, !this.hasProperty(k, m) && (!n || y3U.y6u(o, 0))) return !1; var u = m.length; return y3U.o6u(1, u) ? y3U.x6u(0, o) ? k[m[0]] = e : y3U.p6u(1, o) ? k[m[0]] += e : y3U.q6u(2, o) ? k[m[0]] -= e : y3U.b6u(3, o) ? k[m[0]] *= e : y3U.j6u(4, o) && (k[m[0]] /= e) : y3U.d6u(2, u) ? y3U.c6u(0, o) ? k[m[0]][m[1]] = e : y3U.s6u(1, o) ? k[m[0]][m[1]] += e : y3U.Q6u(2, o) ? k[m[0]][m[1]] -= e : y3U.a8u(3, o) ? k[m[0]][m[1]] *= e : y3U.W8u(4, o) && (k[m[0]][m[1]] /= e) : y3U.m8u(3, u) ? y3U.A8u(0, o) ? k[m[0]][m[1]][m[2]] = e : y3U.w8u(1, o) ? k[m[0]][m[1]][m[2]] += e : y3U.E8u(2, o) ? k[m[0]][m[1]][m[2]] -= e : y3U.e8u(3, o) ? k[m[0]][m[1]][m[2]] *= e : y3U.g8u(4, o) && (k[m[0]][m[1]][m[2]] /= e) : y3U.r8u(4, u) && (y3U.i8u(0, o) ? k[m[0]][m[1]][m[2]][m[3]] = e : y3U.u8u(1, o) ? k[m[0]][m[1]][m[2]][m[3]] += e : y3U.P8u(2, o) ? k[m[0]][m[1]][m[2]][m[3]] -= e : y3U.D8u(3, o) ? k[m[0]][m[1]][m[2]][m[3]] *= e : y3U.Z8u(4, o) && (k[m[0]][m[1]][m[2]][m[3]] /= e)), !0; }, i.Group.prototype.checkProperty = function (k, m, e, o) { return "undefined" == typeof o && (o = !1), !i.Utils.getProperty(k, m) && o ? !1 : y3U.R8u(i.Utils.getProperty(k, m), e) ? !1 : !0; }, i.Group.prototype.set = function (k, m, e, o, n, u, q) { return "undefined" == typeof q && (q = !1), m = m.split("."), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = !1), (o === !1 || o && k.alive) && (n === !1 || n && k.visible) ? this.setProperty(k, m, e, u, q) : void 0; }, i.Group.prototype.setAll = function (k, m, e, o, n, u) { "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1), "undefined" == typeof u && (u = !1), k = k.split("."), n = n || 0; for (var q = 0, f = this.children.length; y3U.O8u(f, q); q++) (!e || e && this.children[q].alive) && (!o || o && this.children[q].visible) && this.setProperty(this.children[q], k, m, n, u); }, i.Group.prototype.setAllChildren = function (k, m, e, o, n, u) { "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1), "undefined" == typeof u && (u = !1), n = n || 0; for (var q = 0, f = this.children.length; y3U.V8u(f, q); q++) (!e || e && this.children[q].alive) && (!o || o && this.children[q].visible) && (y3U.k0Q(this.children[q], i.Group) ? this.children[q].setAllChildren(k, m, e, o, n, u) : this.setProperty(this.children[q], k.split("."), m, n, u)); }, i.Group.prototype.checkAll = function (k, m, e, o, n) { "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = !1); for (var u = 0, q = this.children.length; y3U.G0Q(q, u); u++) if ((!e || e && this.children[u].alive) && (!o || o && this.children[u].visible) && !this.checkProperty(this.children[u], k, m, n)) return !1; return !0; }, i.Group.prototype.addAll = function (k, m, e, o) { this.setAll(k, m, e, o, 1); }, i.Group.prototype.subAll = function (k, m, e, o) { this.setAll(k, m, e, o, 2); }, i.Group.prototype.multiplyAll = function (k, m, e, o) { this.setAll(k, m, e, o, 3); }, i.Group.prototype.divideAll = function (k, m, e, o) { this.setAll(k, m, e, o, 4); }, i.Group.prototype.callAllExists = function (k, m) { var e; if (y3U.N0Q(arguments.length, 2)) { var o = function () { e = []; }; o(); for (var n = 2; y3U.L0Q(n, arguments.length); n++) e.push(arguments[n]); } for (var n = 0, u = this.children.length; y3U.z0Q(u, n); n++) y3U.J0Q(this.children[n].exists, m) && this.children[n][k] && this.children[n][k].apply(this.children[n], e); }, i.Group.prototype.callbackFromArray = function (k, m, e) { if (y3U.H0Q(1, e)) { if (k[m[0]]) return k[m[0]]; } else if (y3U.h0Q(2, e)) { if (k[m[0]][m[1]]) return k[m[0]][m[1]]; } else if (y3U.F0Q(3, e)) { if (k[m[0]][m[1]][m[2]]) return k[m[0]][m[1]][m[2]]; } else if (y3U.M0Q(4, e)) { if (k[m[0]][m[1]][m[2]][m[3]]) return k[m[0]][m[1]][m[2]][m[3]]; } else if (k[m]) return k[m]; return !1; }, i.Group.prototype.callAll = function (m, e) { if ("undefined" != typeof m) { var o = function (k) { e = k; }; m = m.split("."); var n = m.length; if ("undefined" == typeof e || y3U.n0Q(null, e) || y3U.f0Q("", e)) o(null); else if ("string" == typeof e) { e = e.split("."); var u = e.length; } var q; if (y3U.K0Q(arguments.length, 2)) { var f = function () { q = []; }; f(); for (var j = 2; y3U.B0Q(j, arguments.length); j++) q.push(arguments[j]); } for (var U0 = null, k0 = null, j = 0, a0 = this.children.length; y3U.l0Q(a0, j); j++) U0 = this.callbackFromArray(this.children[j], m, n), e && U0 ? (k0 = this.callbackFromArray(this.children[j], e, u), U0 && U0.apply(k0, q)) : U0 && U0.apply(this.children[j], q); } }, i.Group.prototype.preUpdate = function () { if (!this.exists || !this.parent.exists) return this.renderOrderID = -1, !1; for (var k = this.children.length; k--; ) this.children[k].preUpdate(); return !0; }, i.Group.prototype.update = function () { for (var k = this.children.length; k--; ) this.children[k].update(); }, i.Group.prototype.postUpdate = function () { y3U.X0Q(1, this._cache[7]) && (this.x = this.game.camera.view.x + this.cameraOffset.x, this.y = this.game.camera.view.y + this.cameraOffset.y); for (var k = this.children.length; k--; ) this.children[k].postUpdate(); }, i.Group.prototype.filter = function (k, m) { for (var e = -1, o = this.children.length, n = []; ++e < o; ) { var u = this.children[e]; (!m || m && u.exists) && k(u, e, this.children) && n.push(u); } return new i.ArraySet(n); }, i.Group.prototype.forEach = function (k, m, e) { if ("undefined" == typeof e && (e = !1), y3U.Y0Q(arguments.length, 3)) for (var o = 0, n = this.children.length; y3U.U7Q(n, o); o++) (!e || e && this.children[o].exists) && k.call(m, this.children[o]); else { for (var u = [null], o = 3; y3U.T7Q(o, arguments.length); o++) u.push(arguments[o]); for (var o = 0, n = this.children.length; y3U.S7Q(n, o); o++) (!e || e && this.children[o].exists) && (u[0] = this.children[o], k.apply(m, u)); } }, i.Group.prototype.forEachExists = function (k, m) { var e; if (y3U.I7Q(arguments.length, 2)) { var o = function () { e = [null]; }; o(); for (var n = 2; y3U.C7Q(n, arguments.length); n++) e.push(arguments[n]); } this.iterate("exists", !0, i.Group.RETURN_TOTAL, k, m, e); }, i.Group.prototype.forEachAlive = function (k, m) { var e; if (y3U.v7Q(arguments.length, 2)) { var o = function () { e = [null]; }; o(); for (var n = 2; y3U.t7Q(n, arguments.length); n++) e.push(arguments[n]); } this.iterate("alive", !0, i.Group.RETURN_TOTAL, k, m, e); }, i.Group.prototype.forEachDead = function (k, m) { var e; if (y3U.y7Q(arguments.length, 2)) { var o = function () { e = [null]; }; o(); for (var n = 2; y3U.o7Q(n, arguments.length); n++) e.push(arguments[n]); } this.iterate("alive", !1, i.Group.RETURN_TOTAL, k, m, e); }, i.Group.prototype.sort = function (k, m) { y3U.x7Q(this.children.length, 2) || ("undefined" == typeof k && (k = "z"), "undefined" == typeof m && (m = i.Group.SORT_ASCENDING), this._sortProperty = k, this.children.sort(y3U.p7Q(m, i.Group.SORT_ASCENDING) ? this.ascendingSortHandler.bind(this) : this.descendingSortHandler.bind(this)), this.updateZ()); }, i.Group.prototype.customSort = function (k, m) { y3U.q7Q(this.children.length, 2) || (this.children.sort(k.bind(m)), this.updateZ()); }, i.Group.prototype.ascendingSortHandler = function (k, m) { return y3U.b7Q(k[this._sortProperty], m[this._sortProperty]) ? -1 : y3U.j7Q(k[this._sortProperty], m[this._sortProperty]) ? 1 : y3U.d7Q(k.z, m.z) ? -1 : 1; }, i.Group.prototype.descendingSortHandler = function (k, m) { return y3U.c7Q(k[this._sortProperty], m[this._sortProperty]) ? 1 : y3U.s7Q(k[this._sortProperty], m[this._sortProperty]) ? -1 : 0; }, i.Group.prototype.iterate = function (k, m, e, o, n, u) { if (y3U.Q7Q(e, i.Group.RETURN_TOTAL) && y3U.a4Q(0, this.children.length)) return 0; for (var q = 0, f = 0, j = this.children.length; y3U.W4Q(j, f); f++) if (y3U.m4Q(this.children[f][k], m) && (q++, o && (u ? (u[0] = this.children[f], o.apply(n, u)) : o.call(n, this.children[f])), y3U.A4Q(e, i.Group.RETURN_CHILD))) return this.children[f]; return y3U.w4Q(e, i.Group.RETURN_TOTAL) ? q : null; }, i.Group.prototype.getFirstExists = function (k) { return "boolean" != typeof k && (k = !0), this.iterate("exists", k, i.Group.RETURN_CHILD); }, i.Group.prototype.getFirstAlive = function () { return this.iterate("alive", !0, i.Group.RETURN_CHILD); }, i.Group.prototype.getFirstDead = function () { return this.iterate("alive", !1, i.Group.RETURN_CHILD); }, i.Group.prototype.getTop = function () { return y3U.E4Q(this.children.length, 0) ? this.children[y3U.e4Q(this.children.length, 1)] : void 0; }, i.Group.prototype.getBottom = function () { return y3U.g4Q(this.children.length, 0) ? this.children[0] : void 0; }, i.Group.prototype.countLiving = function () { return this.iterate("alive", !0, i.Group.RETURN_TOTAL); }, i.Group.prototype.countDead = function () { return this.iterate("alive", !1, i.Group.RETURN_TOTAL); }, i.Group.prototype.getRandom = function (k, m) { return y3U.r4Q(0, this.children.length) ? null : (k = k || 0, m = m || this.children.length, i.ArrayUtils.getRandomItem(this.children, k, m)); }, i.Group.prototype.remove = function (k, m, e) { if ("undefined" == typeof m && (m = !1), "undefined" == typeof e && (e = !1), y3U.i4Q(0, this.children.length) || -1 === this.children.indexOf(k)) return !1; e || !k.events || k.destroyPhase || k.events.onRemovedFromGroup$dispatch(k, this); var o = this.removeChild(k); return this.updateZ(), y3U.u4Q(this.cursor, k) && this.next(), m && o && o.destroy(!0), !0; }, i.Group.prototype.removeAll = function (k, m) { if ("undefined" == typeof k && (k = !1), "undefined" == typeof m && (m = !1), y3U.P4Q(0, this.children.length)) { do { !m && this.children[0].events && this.children[0].events.onRemovedFromGroup$dispatch(this.children[0], this); var e = this.removeChild(this.children[0]); k && e && e.destroy(!0); } while (y3U.D4Q(this.children.length, 0)); this.cursor = null; } }, i.Group.prototype.removeBetween = function (k, m, e, o) { if ("undefined" == typeof m && (m = y3U.Z4Q(this.children.length, 1)), "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1), y3U.R4Q(0, this.children.length)) { if (y3U.O4Q(k, m) || y3U.V4Q(0, k) || y3U.k3Q(m, this.children.length)) return !1; for (var n = m; y3U.G3Q(n, k); ) { !o && this.children[n].events && this.children[n].events.onRemovedFromGroup$dispatch(this.children[n], this); var u = this.removeChild(this.children[n]); e && u && u.destroy(!0), y3U.N3Q(this.cursor, this.children[n]) && (this.cursor = null), n--; } this.updateZ(); } }, i.Group.prototype.destroy = function (k, m) { y3U.L3Q(null, this.game) || this.ignoreDestroy || ("undefined" == typeof k && (k = !0), "undefined" == typeof m && (m = !1), this.onDestroy.dispatch(this, k, m), this.removeAll(k), this.cursor = null, this.filters = null, m || (this.parent && this.parent.removeChild(this), this.game = null, this.exists = !1)); }, Object.defineProperty(i.Group.prototype, "total", { get : function () { return this.iterate("exists", !0, i.Group.RETURN_TOTAL); } }), Object.defineProperty(i.Group.prototype, "length", { get : function () { return this.children.length; } }), Object.defineProperty(i.Group.prototype, "angle", { get : function () { return i.Math.radToDeg(this.rotation); }, set : function (k) { this.rotation = i.Math.degToRad(k); } }), Object.defineProperty(i.Group.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), i.World = function (k) { i.Group.call(this, k, null, "__world", !1), this.bounds = new i.Rectangle(0, 0, k.width, k.height), this.camera = null, this._definedSize = !1, this._width = k.width, this._height = k.height; }, i.World.prototype = Object.create(i.Group.prototype), i.World.prototype.constructor = i.World, i.World.prototype.boot = function () { this.camera = new i.Camera(this.game, 0, 0, 0, this.game.width, this.game.height), this.camera.displayObject = this, this.camera.scale = this.scale, this.game.camera = this.camera, this.game.stage.addChild(this); }, i.World.prototype.setBounds = function (k, m, e, o) { this._definedSize = !0, this._width = e, this._height = o, this.bounds.setTo(k, m, e, o), this.camera.bounds && this.camera.bounds.setTo(k, m, Math.max(e, this.game.width), Math.max(o, this.game.height)), this.game.physics.setBoundsToWorld(); }, i.World.prototype.resize = function (k, m) { this._definedSize && (y3U.z3Q(k, this._width) && (k = this._width), y3U.J3Q(m, this._height) && (m = this._height)), this.bounds.width = k, this.bounds.height = m, this.game.camera.setBoundsToWorld(), this.game.physics.setBoundsToWorld(); }, i.World.prototype.shutdown = function () { this.destroy(!0, !0); }, i.World.prototype.wrap = function (k, m, e, o, n) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !0), "undefined" == typeof n && (n = !0), e ? (k.getBounds(), o && (y3U.H3Q(k.x + k._currentBounds.width, this.bounds.x) ? k.x = this.bounds.right : y3U.h3Q(k.x, this.bounds.right) && (k.x = this.bounds.left)), n && (y3U.F3Q(k.y + k._currentBounds.height, this.bounds.top) ? k.y = this.bounds.bottom : y3U.M3Q(k.y, this.bounds.bottom) && (k.y = this.bounds.top))) : (o && y3U.n3Q(k.x + m, this.bounds.x) ? k.x = this.bounds.right + m : o && y3U.f3Q(k.x - m, this.bounds.right) && (k.x = y3U.K3Q(this.bounds.left, m)), n && y3U.B3Q(k.y + m, this.bounds.top) ? k.y = this.bounds.bottom + m : n && y3U.l3Q(k.y - m, this.bounds.bottom) && (k.y = y3U.X3Q(this.bounds.top, m))); }, Object.defineProperty(i.World.prototype, "width", { get : function () { return this.bounds.width; }, set : function (k) { y3U.Y3Q(k, this.game.width) && (k = this.game.width), this.bounds.width = k, this._width = k, this._definedSize = !0; } }), Object.defineProperty(i.World.prototype, "height", { get : function () { return this.bounds.height; }, set : function (k) { y3U.U9Q(k, this.game.height) && (k = this.game.height), this.bounds.height = k, this._height = k, this._definedSize = !0; } }), Object.defineProperty(i.World.prototype, "centerX", { get : function () { return this.bounds.halfWidth; } }), Object.defineProperty(i.World.prototype, "centerY", { get : function () { return this.bounds.halfHeight; } }), Object.defineProperty(i.World.prototype, "randomX", { get : function () { return y3U.T9Q(this.bounds.x, 0) ? this.game.rnd.integerInRange(this.bounds.x, y3U.S9Q(this.bounds.width, Math.abs(this.bounds.x))) : this.game.rnd.integerInRange(this.bounds.x, this.bounds.width); } }), Object.defineProperty(i.World.prototype, "randomY", { get : function () { return y3U.I9Q(this.bounds.y, 0) ? this.game.rnd.integerInRange(this.bounds.y, y3U.C9Q(this.bounds.height, Math.abs(this.bounds.y))) : this.game.rnd.integerInRange(this.bounds.y, this.bounds.height); } }), i.FlexGrid = function (k, m, e) { this.game = k.game, this.manager = k, this.width = m, this.height = e, this.boundsCustom = new i.Rectangle(0, 0, m, e), this.boundsFluid = new i.Rectangle(0, 0, m, e), this.boundsFull = new i.Rectangle(0, 0, m, e), this.boundsNone = new i.Rectangle(0, 0, m, e), this.positionCustom = new i.Point(0, 0), this.positionFluid = new i.Point(0, 0), this.positionFull = new i.Point(0, 0), this.positionNone = new i.Point(0, 0), this.scaleCustom = new i.Point(1, 1), this.scaleFluid = new i.Point(1, 1), this.scaleFluidInversed = new i.Point(1, 1), this.scaleFull = new i.Point(1, 1), this.scaleNone = new i.Point(1, 1), this.customWidth = 0, this.customHeight = 0, this.customOffsetX = 0, this.customOffsetY = 0, this.ratioH = y3U.v9Q(m, e), this.ratioV = y3U.t9Q(e, m), this.multiplier = 0, this.layers = []; }, i.FlexGrid.prototype = { setSize : function (k, m) { this.width = k, this.height = m, this.ratioH = y3U.y9Q(k, m), this.ratioV = y3U.o9Q(m, k), this.scaleNone = new i.Point(1, 1), this.boundsNone.width = this.width, this.boundsNone.height = this.height, this.refresh(); }, createCustomLayer : function (k, m, e, o) { "undefined" == typeof o && (o = !0), this.customWidth = k, this.customHeight = m, this.boundsCustom.width = k, this.boundsCustom.height = m; var n = new i.FlexLayer(this, this.positionCustom, this.boundsCustom, this.scaleCustom); return o && this.game.world.add(n), this.layers.push(n), "undefined" != typeof e && null !== typeof e && n.addMultiple(e), n; }, createFluidLayer : function (k, m) { "undefined" == typeof m && (m = !0); var e = new i.FlexLayer(this, this.positionFluid, this.boundsFluid, this.scaleFluid); return m && this.game.world.add(e), this.layers.push(e), "undefined" != typeof k && null !== typeof k && e.addMultiple(k), e; }, createFullLayer : function (k) { var m = new i.FlexLayer(this, this.positionFull, this.boundsFull, this.scaleFluid); return this.game.world.add(m), this.layers.push(m), "undefined" != typeof k && m.addMultiple(k), m; }, createFixedLayer : function (k) { var m = new i.FlexLayer(this, this.positionNone, this.boundsNone, this.scaleNone); return this.game.world.add(m), this.layers.push(m), "undefined" != typeof k && m.addMultiple(k), m; }, reset : function () { for (var k = this.layers.length; k--; ) this.layers[k].persist || (this.layers[k].position = null, this.layers[k].scale = null, this.layers.slice(k, 1)); }, onResize : function (k, m) { this.ratioH = y3U.x9Q(k, m), this.ratioV = y3U.p9Q(m, k), this.refresh(k, m); }, refresh : function () { this.multiplier = Math.min(y3U.q9Q(this.manager.height, this.height), y3U.b9Q(this.manager.width, this.width)), this.boundsFluid.width = Math.round(y3U.j9Q(this.width, this.multiplier)), this.boundsFluid.height = Math.round(y3U.d9Q(this.height, this.multiplier)), this.scaleFluid.set(y3U.c9Q(this.boundsFluid.width, this.width), y3U.s9Q(this.boundsFluid.height, this.height)), this.scaleFluidInversed.set(y3U.Q9Q(this.width, this.boundsFluid.width), y3U.a5Q(this.height, this.boundsFluid.height)), this.scaleFull.set(y3U.W5Q(this.boundsFull.width, this.width), y3U.m5Q(this.boundsFull.height, this.height)), this.boundsFull.width = Math.round(y3U.A5Q(this.manager.width, this.scaleFluidInversed.x)), this.boundsFull.height = Math.round(y3U.w5Q(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 (k) { this.manager.scaleSprite(k), k.x = this.manager.bounds.centerX, k.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); } }, i.FlexGrid.prototype.constructor = i.FlexGrid, i.FlexLayer = function (k, m, e, o) { i.Group.call(this, k.game, null, "__flexLayer" + k.game.rnd.uuid(), !1), this.manager = k.manager, this.grid = k, this.persist = !1, this.position = m, this.bounds = e, this.scale = o, this.topLeft = e.topLeft, this.topMiddle = new i.Point(e.halfWidth, 0), this.topRight = e.topRight, this.bottomLeft = e.bottomLeft, this.bottomMiddle = new i.Point(e.halfWidth, e.bottom), this.bottomRight = e.bottomRight; }, i.FlexLayer.prototype = Object.create(i.Group.prototype), i.FlexLayer.prototype.constructor = i.FlexLayer, i.FlexLayer.prototype.resize = function () {}, i.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"); }, i.ScaleManager = function (k, m, e) { this.game = k, this.dom = i.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 i.Point, this.forceLandscape = !1, this.forcePortrait = !1, this.incorrectOrientation = !1, this._pageAlignHorizontally = !1, this._pageAlignVertically = !1, this.maxIterations = 5, this.onOrientationChange = new i.Signal, this.enterLandscape = new i.Signal, this.enterPortrait = new i.Signal, this.enterIncorrectOrientation = new i.Signal, this.leaveIncorrectOrientation = new i.Signal, this.fullScreenTarget = null, this._createdFullScreenTarget = null, this.onFullScreenInit = new i.Signal, this.onFullScreenChange = new i.Signal, this.onFullScreenError = new i.Signal, this.enterFullScreen = new i.Signal, this.leaveFullScreen = new i.Signal, this.fullScreenFailed = this.onFullScreenError, this.screenOrientation = this.dom.getScreenOrientation(), this.scaleFactor = new i.Point(1, 1), this.scaleFactorInversed = new i.Point(1, 1), this.margin = { left : 0, top : 0, right : 0, bottom : 0, x : 0, y : 0 }, this.bounds = new i.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 = i.ScaleManager.NO_SCALE, this._fullScreenScaleMode = i.ScaleManager.NO_SCALE, this.parentIsWindow = !1, this.parentNode = null, this.parentScaleFactor = new i.Point(1, 1), this.trackParentInterval = 2e3, this.onSizeChange = new i.Signal, this.onResize = null, this.onResizeContext = null, this._fullScreenRestore = null, this._gameSize = new i.Rectangle, this._userScaleFactor = new i.Point(1, 1), this._userScaleTrim = new i.Point(0, 0), this._lastUpdate = 0, this._updateThrottle = 0, this._updateThrottleReset = 100, this._parentBounds = new i.Rectangle, this._tempBounds = new i.Rectangle, this._lastReportedCanvasSize = new i.Rectangle, this._lastReportedGameSize = new i.Rectangle, k.config && this.parseConfig(k.config), this.setupScale(m, e); }, i.ScaleManager.EXACT_FIT = 0, i.ScaleManager.NO_SCALE = 1, i.ScaleManager.SHOW_ALL = 2, i.ScaleManager.RESIZE = 3, i.ScaleManager.USER_SCALE = 4, i.ScaleManager.prototype = { boot : function () { var m = this.compatibility; m.supportsFullScreen = this.game.device.fullscreen && !this.game.device.cocoonJS, this.game.device.iPad || this.game.device.webApp || this.game.device.desktop || (m.scrollTo = this.game.device.android && !this.game.device.chrome ? new i.Point(0, 1) : new i.Point(0, 0)), this.game.device.desktop ? (m.orientationFallback = "screen", m.clickTrampoline = "when-not-mouse") : (m.orientationFallback = "", m.clickTrampoline = ""); var e = this; this._orientationChange = function (k) { return e.orientationChange(k); }, this._windowResize = function (k) { return e.windowResize(k); }, r2w8n[E8n]['addEventListener']("orientationchange", this._orientationChange, !1), r2w8n[E8n]['addEventListener']("resize", this._windowResize, !1), this.compatibility.supportsFullScreen && (this._fullScreenChange = function (k) { return e.fullScreenChange(k); }, this._fullScreenError = function (k) { return e.fullScreenError(k); }, r2w8n[H8n]['addEventListener']("webkitfullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['addEventListener']("mozfullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['addEventListener']("MSFullscreenChange", this._fullScreenChange, !1), r2w8n[H8n]['addEventListener']("fullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['addEventListener']("webkitfullscreenerror", this._fullScreenError, !1), r2w8n[H8n]['addEventListener']("mozfullscreenerror", this._fullScreenError, !1), r2w8n[H8n]['addEventListener']("MSFullscreenError", this._fullScreenError, !1), r2w8n[H8n]['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); }, parseConfig : function (k) { k.scaleMode && (this.scaleMode = k.scaleMode), k.fullScreenScaleMode && (this.fullScreenScaleMode = k.fullScreenScaleMode), k.fullScreenTarget && (this.fullScreenTarget = k.fullScreenTarget); }, setupScale : function (k, m) { var e, o = new i.Rectangle; y3U.E5Q("", this.game.parent) && ("string" == typeof this.game.parent ? e = r2w8n[H8n]['getElementById'](this.game.parent) : this.game.parent && y3U.e5Q(1, this.game.parent.nodeType) && (e = this.game.parent)), e ? (this.parentNode = e, this.parentIsWindow = !1, this.getParentBounds(this._parentBounds), o.width = this._parentBounds.width, o.height = this._parentBounds.height, this.offset.set(this._parentBounds.x, this._parentBounds.y)) : (this.parentNode = null, this.parentIsWindow = !0, o.width = this.dom.visualBounds.width, o.height = this.dom.visualBounds.height, this.offset.set(0, 0)); var n = 0, u = 0; "number" == typeof k ? n = k : (this.parentScaleFactor.x = y3U.g5Q(parseInt(k, 10), 100), n = y3U.r5Q(o.width, this.parentScaleFactor.x)), "number" == typeof m ? u = m : (this.parentScaleFactor.y = y3U.i5Q(parseInt(m, 10), 100), u = y3U.u5Q(o.height, this.parentScaleFactor.y)), this._gameSize.setTo(0, 0, n, u), this.grid = new i.FlexGrid(this, n, u), this.updateDimensions(n, u, !1); }, _gameResumed : function () { this.queueUpdate(!0); }, setGameSize : function (k, m) { this._gameSize.setTo(0, 0, k, m), y3U.P5Q(this.currentScaleMode, i.ScaleManager.RESIZE) && this.updateDimensions(k, m, !0), this.queueUpdate(!0); }, setUserScale : function (k, m, e, o) { this._userScaleFactor.setTo(k, m), this._userScaleTrim.setTo(y3U.D5Q(0, e), y3U.Z5Q(0, o)), this.queueUpdate(!0); }, setResizeCallback : function (k, m) { this.onResize = k, this.onResizeContext = m; }, signalSizeChange : function () { if (!i.Rectangle.sameDimensions(this, this._lastReportedCanvasSize) || !i.Rectangle.sameDimensions(this.game, this._lastReportedGameSize)) { var k = this.width, m = this.height; this._lastReportedCanvasSize.setTo(0, 0, k, m), this._lastReportedGameSize.setTo(0, 0, this.game.width, this.game.height), this.grid.onResize(k, m), this.onSizeChange.dispatch(this, k, m), y3U.R5Q(this.currentScaleMode, i.ScaleManager.RESIZE) && (this.game.state.resize(k, m), this.game.load.resize(k, m)); } }, setMinMax : function (k, m, e, o) { this.minWidth = k, this.minHeight = m, "undefined" != typeof e && (this.maxWidth = e), "undefined" != typeof o && (this.maxHeight = o); }, preUpdate : function () { if (!(y3U.O5Q(this.game.time.time, this._lastUpdate + this._updateThrottle))) { var k = this._updateThrottle; this._updateThrottleReset = y3U.V5Q(k, 400) ? 0 : 100, this.dom.getOffset(this.game.canvas, this.offset); var m = this._parentBounds.width, e = this._parentBounds.height, o = this.getParentBounds(this._parentBounds), n = y3U.k2Q(o.width, m) || y3U.G2Q(o.height, e), u = this.updateOrientationState(); (n || u) && (this.onResize && this.onResize.call(this.onResizeContext, this, o), this.updateLayout(), this.signalSizeChange()); var q = y3U.N2Q(2, this._updateThrottle); y3U.L2Q(this._updateThrottle, k) && (q = Math.min(k, this._updateThrottleReset)), this._updateThrottle = i.Math.clamp(q, 25, this.trackParentInterval), this._lastUpdate = this.game.time.time; } }, pauseUpdate : function () { this.preUpdate(), this._updateThrottle = this.trackParentInterval; }, updateDimensions : function (k, m, e) { this.width = y3U.z2Q(k, this.parentScaleFactor.x), this.height = y3U.J2Q(m, this.parentScaleFactor.y), this.game.width = this.width, this.game.height = this.height, this.sourceAspectRatio = y3U.H2Q(this.width, this.height), this.updateScalingAndBounds(), e && (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 = y3U.h2Q(this.game.width, this.width), this.scaleFactor.y = y3U.F2Q(this.game.height, this.height), this.scaleFactorInversed.x = y3U.M2Q(this.width, this.game.width), this.scaleFactorInversed.y = y3U.n2Q(this.height, this.game.height), this.aspectRatio = y3U.f2Q(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 (k, m) { "undefined" == typeof m && (m = !1), this.forceLandscape = k, this.forcePortrait = m, this.queueUpdate(!0); }, classifyOrientation : function (k) { return y3U.K2Q("portrait-primary", k) || y3U.B2Q("portrait-secondary", k) ? "portrait" : y3U.l2Q("landscape-primary", k) || y3U.X2Q("landscape-secondary", k) ? "landscape" : null; }, updateOrientationState : function () { var k = this.screenOrientation, m = this.incorrectOrientation; this.screenOrientation = this.dom.getScreenOrientation(this.compatibility.orientationFallback), this.incorrectOrientation = this.forceLandscape && !this.isLandscape || this.forcePortrait && !this.isPortrait; var e = y3U.Y2Q(k, this.screenOrientation), o = y3U.U1Q(m, this.incorrectOrientation); return e && (this.isLandscape ? this.enterLandscape.dispatch(this.orientation, !0, !1) : this.enterPortrait.dispatch(this.orientation, !1, !0)), o && (this.incorrectOrientation ? this.enterIncorrectOrientation.dispatch() : this.leaveIncorrectOrientation.dispatch()), (e || o) && this.onOrientationChange.dispatch(this, k, m), e || o; }, orientationChange : function (k) { this.event = k, this.queueUpdate(!0); }, windowResize : function (k) { this.event = k, this.queueUpdate(!0); }, scrollTop : function () { var k = this.compatibility.scrollTo; k && r2w8n[E8n]['scrollTo'](k.x, k.y); }, refresh : function () { this.scrollTop(), this.queueUpdate(!0); }, updateLayout : function () { for (var C0s in r2w8n[H8n]) { if (C0s.length == ((83, 0x1A3) >= (80.5E1, 2.66E2) ? (0x212, 15) : (39, 110.) < (0x8E, 62) ? (0xEF, 78) : 0x177 < (0x1E0, 68.) ? (4.270E2, 115.) : (1.227E3, 101)) && C0s.charCodeAt(14) == 116 && C0s.charCodeAt(13) == ((110, 18.2E1) > (14.120E2, 0x16) ? (49, 110) : (69.9E1, 14.530E2)) && C0s.charCodeAt(((0x190, 47.) <= (0x4E, 1.351E3) ? (0xFB, 0) : (0x36, 2.5E1))) == (124.80E1 >= (22., 1.163E3) ? (0x255, 100) : (0x1D9, 14.13E2) < (126.7E1, 0x75) ? (16, 'H') : (123, 68.2E1) >= (8.1E1, 9.98E2) ? 30 : (112, 0x1FB))) break }; var k = this.currentScaleMode; if (y3U.T1Q(k, i.ScaleManager.RESIZE)) return void this.reflowGame(); if (this.scrollTop(), this.compatibility.forceMinimumDocumentHeight && (r2w8n[H8n][C0s]['style']['minHeight'] = r2w8n[E8n]['innerHeight'] + "px"), this.incorrectOrientation ? this.setMaximum() : y3U.S1Q(k, i.ScaleManager.EXACT_FIT) ? this.setExactFit() : y3U.I1Q(k, i.ScaleManager.SHOW_ALL) ? !this.isFullScreen && this.boundingParent && this.compatibility.canExpandParent ? (this.setShowAll(!0), this.resetCanvas(), this.setShowAll()) : this.setShowAll() : y3U.C1Q(k, i.ScaleManager.NO_SCALE) ? (this.width = this.game.width, this.height = this.game.height) : y3U.v1Q(k, i.ScaleManager.USER_SCALE) && (this.width = y3U.t1Q(this.game.width * this._userScaleFactor.x, this._userScaleTrim.x), this.height = y3U.y1Q(this.game.height * this._userScaleFactor.y, this._userScaleTrim.y)), !this.compatibility.canExpandParent && (y3U.o1Q(k, i.ScaleManager.SHOW_ALL) || y3U.x1Q(k, i.ScaleManager.USER_SCALE))) { var m = this.getParentBounds(this._tempBounds); this.width = Math.min(this.width, m.width), this.height = Math.min(this.height, m.height); } this.width = y3U.p1Q(0, this.width), this.height = y3U.q1Q(0, this.height), this.reflowCanvas(); }, getParentBounds : function (k) { var m = k || new i.Rectangle, e = this.boundingParent, o = this.dom.visualBounds, n = this.dom.layoutBounds; if (e) { var u = e.getBoundingClientRect(); m.setTo(u.left, u.top, u.width, u.height); var q = this.windowConstraints; if (q.right) { var f = y3U.b1Q("layout", q.right) ? n : o; m.right = Math.min(m.right, f.width); } if (q.bottom) { var f = y3U.j1Q("layout", q.bottom) ? n : o; m.bottom = Math.min(m.bottom, f.height); } } else m.setTo(0, 0, o.width, o.height); return m.setTo(Math.round(m.x), Math.round(m.y), Math.round(m.width), Math.round(m.height)), m; }, alignCanvas : function (k, m) { var e = this.getParentBounds(this._tempBounds), o = this.game.canvas, n = this.margin; if (k) { n.left = n.right = 0; var u = o.getBoundingClientRect(); if (y3U.d1Q(this.width, e.width) && !this.incorrectOrientation) { var q = y3U.c1Q(u.left, e.x), f = y3U.s1Q(e.width / 2, this.width / 2); f = Math.max(f, 0); var j = y3U.Q1Q(f, q); n.left = Math.round(j); } o.style.marginLeft = n.left + "px", y3U.a6Q(0, n.left) && (n.right = - (y3U.W6Q(e.width, u.width, n.left)), o.style.marginRight = n.right + "px"); } if (m) { n.top = n.bottom = 0; var u = o.getBoundingClientRect(); if (y3U.I6Q(this.height, e.height) && !this.incorrectOrientation) { var q = y3U.C6Q(u.top, e.y), f = y3U.v6Q(e.height / 2, this.height / 2); f = Math.max(f, 0); var j = y3U.t6Q(f, q); n.top = Math.round(j); } o.style.marginTop = n.top + "px", y3U.y6Q(0, n.top) && (n.bottom = - (y3U.o6Q(e.height, u.height, n.top)), o.style.marginBottom = n.bottom + "px"); } n.x = n.left, n.y = n.top; }, reflowGame : function () { this.resetCanvas("", ""); var k = this.getParentBounds(this._tempBounds); this.updateDimensions(k.width, k.height, !0); }, reflowCanvas : function () { this.incorrectOrientation || (this.width = i.Math.clamp(this.width, this.minWidth || 0, this.maxWidth || this.width), this.height = i.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 (k, m) { "undefined" == typeof k && (k = this.width + "px"), "undefined" == typeof m && (m = this.height + "px"); var e = this.game.canvas; this.compatibility.noMargins || (e.style.marginLeft = "", e.style.marginTop = "", e.style.marginRight = "", e.style.marginBottom = ""), e.style.width = k, e.style.height = m; }, queueUpdate : function (k) { k && (this._parentBounds.width = 0, this._parentBounds.height = 0), this._updateThrottle = this._updateThrottleReset; }, reset : function (k) { k && this.grid.reset(); }, setMaximum : function () { this.width = this.dom.visualBounds.width, this.height = this.dom.visualBounds.height; }, setShowAll : function (k) { var m, e = this.getParentBounds(this._tempBounds), o = e.width, n = e.height; m = k ? Math.max(y3U.M6Q(n, this.game.height), y3U.n6Q(o, this.game.width)) : Math.min(y3U.f6Q(n, this.game.height), y3U.K6Q(o, this.game.width)), this.width = Math.round(y3U.B6Q(this.game.width, m)), this.height = Math.round(y3U.l6Q(this.game.height, m)); }, setExactFit : function () { var k = this.getParentBounds(this._tempBounds); this.width = k.width, this.height = k.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 k = r2w8n[H8n]['createElement']("div"); return k.style.margin = "0", k.style.padding = "0", k.style.background = "#000", k; }, startFullScreen : function (k, m) { if (this.isFullScreen) return !1; if (!this.compatibility.supportsFullScreen) { var e = this; return void setTimeout(function () { e.fullScreenError(); }, 10); } if (y3U.X6Q("when-not-mouse", this.compatibility.clickTrampoline)) { var o = this.game.input; if (o.activePointer && y3U.Y6Q(o.activePointer, o.mousePointer) && (m || m !== !1)) return void o.activePointer.addClickTrampoline("startFullScreen", this.startFullScreen, this, [k, !1]); } "undefined" != typeof k && y3U.U8Q(this.game.renderType, i.CANVAS) && (this.game.stage.smoothed = k); var n = this.fullScreenTarget; n || (this.cleanupCreatedTarget(), this._createdFullScreenTarget = this.createFullScreenTarget(), n = this._createdFullScreenTarget); var u = { targetElement : n }; if (this.onFullScreenInit.dispatch(this, u), this._createdFullScreenTarget) { var q = this.game.canvas, f = q.parentNode; f.insertBefore(n, q), n.appendChild(q); } return this.game.device.fullscreenKeyboard ? n[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT) : n[this.game.device.requestFullscreen](), !0; }, stopFullScreen : function () { return this.isFullScreen && this.compatibility.supportsFullScreen ? (r2w8n[H8n][this.game.device.cancelFullscreen](), !0) : !1; }, cleanupCreatedTarget : function () { var k = this._createdFullScreenTarget; if (k && k.parentNode) { var m = k.parentNode; m.insertBefore(this.game.canvas, k), m.removeChild(k); } this._createdFullScreenTarget = null; }, prepScreenMode : function (k) { var m = !!this._createdFullScreenTarget, e = this._createdFullScreenTarget || this.fullScreenTarget; k ? (m || y3U.T8Q(this.fullScreenScaleMode, i.ScaleManager.EXACT_FIT)) && y3U.S8Q(e, this.game.canvas) && (this._fullScreenRestore = { targetWidth : e.style.width, targetHeight : e.style.height }, e.style.width = "100%", e.style.height = "100%") : (this._fullScreenRestore && (e.style.width = this._fullScreenRestore.targetWidth, e.style.height = this._fullScreenRestore.targetHeight, this._fullScreenRestore = null), this.updateDimensions(this._gameSize.width, this._gameSize.height, !0), this.resetCanvas()); }, fullScreenChange : function (k) { this.event = k, this.isFullScreen ? (this.prepScreenMode(!0), this.updateLayout(), this.queueUpdate(!0), this.enterFullScreen.dispatch(this.width, this.height)) : (this.prepScreenMode(!1), this.cleanupCreatedTarget(), this.updateLayout(), this.queueUpdate(!0), this.leaveFullScreen.dispatch(this.width, this.height)), this.onFullScreenChange.dispatch(this); }, fullScreenError : function (k) { this.event = k, this.cleanupCreatedTarget(), console.warn("Phaser.ScaleManager: requestFullscreen failed or device does not support the Fullscreen API"), this.onFullScreenError.dispatch(this); }, scaleSprite : function (k, m, e, o) { if ("undefined" == typeof m && (m = this.width), "undefined" == typeof e && (e = this.height), "undefined" == typeof o && (o = !1), k.scale.set(1), y3U.I8Q(k.width, 0) || y3U.C8Q(k.height, 0) || y3U.v8Q(0, m) || y3U.t8Q(0, e)) return k; var n = m, u = y3U.y8Q(k.height, m, k.width), q = y3U.F8Q(k.width, e, k.height), f = e, j = y3U.i8Q(q, m); return j = j ? o : !o, j ? (k.width = Math.floor(n), k.height = Math.floor(u)) : (k.width = Math.floor(q), k.height = Math.floor(f)), k; }, destroy : function () { this.game.onResume.remove(this._gameResumed, this), r2w8n[E8n]['removeEventListener']("orientationchange", this._orientationChange, !1), r2w8n[E8n]['removeEventListener']("resize", this._windowResize, !1), this.compatibility.supportsFullScreen && (r2w8n[H8n]['removeEventListener']("webkitfullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['removeEventListener']("mozfullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['removeEventListener']("MSFullscreenChange", this._fullScreenChange, !1), r2w8n[H8n]['removeEventListener']("fullscreenchange", this._fullScreenChange, !1), r2w8n[H8n]['removeEventListener']("webkitfullscreenerror", this._fullScreenError, !1), r2w8n[H8n]['removeEventListener']("mozfullscreenerror", this._fullScreenError, !1), r2w8n[H8n]['removeEventListener']("MSFullscreenError", this._fullScreenError, !1), r2w8n[H8n]['removeEventListener']("fullscreenerror", this._fullScreenError, !1)); } }, i.ScaleManager.prototype.constructor = i.ScaleManager, i.ScaleManager.prototype.checkResize = i.ScaleManager.prototype.windowResize, i.ScaleManager.prototype.checkOrientation = i.ScaleManager.prototype.orientationChange, i.ScaleManager.prototype.setScreenSize = i.ScaleManager.prototype.updateLayout, i.ScaleManager.prototype.setSize = i.ScaleManager.prototype.reflowCanvas, i.ScaleManager.prototype.checkOrientationState = function () { var k = this.updateOrientationState(); return k && this.refresh(), k; }, Object.defineProperty(i.ScaleManager.prototype, "boundingParent", { get : function () { if (this.parentIsWindow || this.isFullScreen && !this._createdFullScreenTarget) return null; var k = this.game.canvas && this.game.canvas.parentNode; return k || null; } }), Object.defineProperty(i.ScaleManager.prototype, "scaleMode", { get : function () { return this._scaleMode; }, set : function (k) { return y3U.u8Q(k, this._scaleMode) && (this.isFullScreen || (this.updateDimensions(this._gameSize.width, this._gameSize.height, !0), this.queueUpdate(!0)), this._scaleMode = k), this._scaleMode; } }), Object.defineProperty(i.ScaleManager.prototype, "fullScreenScaleMode", { get : function () { return this._fullScreenScaleMode; }, set : function (k) { return y3U.P8Q(k, this._fullScreenScaleMode) && (this.isFullScreen ? (this.prepScreenMode(!1), this._fullScreenScaleMode = k, this.prepScreenMode(!0), this.queueUpdate(!0)) : this._fullScreenScaleMode = k), this._fullScreenScaleMode; } }), Object.defineProperty(i.ScaleManager.prototype, "currentScaleMode", { get : function () { return this.isFullScreen ? this._fullScreenScaleMode : this._scaleMode; } }), Object.defineProperty(i.ScaleManager.prototype, "pageAlignHorizontally", { get : function () { return this._pageAlignHorizontally; }, set : function (k) { y3U.D8Q(k, this._pageAlignHorizontally) && (this._pageAlignHorizontally = k, this.queueUpdate(!0)); } }), Object.defineProperty(i.ScaleManager.prototype, "pageAlignVertically", { get : function () { return this._pageAlignVertically; }, set : function (k) { y3U.Z8Q(k, this._pageAlignVertically) && (this._pageAlignVertically = k, this.queueUpdate(!0)); } }), Object.defineProperty(i.ScaleManager.prototype, "isFullScreen", { get : function () { return !!(r2w8n[H8n].fullscreenElement || r2w8n[H8n].webkitFullscreenElement || r2w8n[H8n].mozFullScreenElement || r2w8n[H8n].msFullscreenElement); } }), Object.defineProperty(i.ScaleManager.prototype, "isPortrait", { get : function () { return y3U.R8Q("portrait", this.classifyOrientation(this.screenOrientation)); } }), Object.defineProperty(i.ScaleManager.prototype, "isLandscape", { get : function () { return y3U.O8Q("landscape", this.classifyOrientation(this.screenOrientation)); } }), Object.defineProperty(i.ScaleManager.prototype, "orientation", { get : function () { return y3U.V8Q("portrait", this.classifyOrientation(this.screenOrientation)) ? 0 : 90; } }), i.Game = function (k, m, e, o, n, u, q, f) { return this.id = y3U.k0w(i.GAMES.push(this), 1), this.config = null, this.physicsConfig = f, this.parent = "", this.width = 800, this.height = 600, this._width = 800, this._height = 600, this.transparent = !1, this.antialias = !0, this.preserveDrawingBuffer = !1, this.renderer = null, this.renderType = i.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.rnd = null, this.device = i.Device, this.camera = null, this.canvas = null, this.context = null, this.debug = null, this.particles = 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._spiralling = 0, this.fpsProblemNotifier = new i.Signal, this.forceSingleUpdate = !1, this._nextFpsNotification = 0, y3U.G0w(1, arguments.length) && "object" == typeof arguments[0] ? this.parseConfig(arguments[0]) : (this.config = { enableDebug : !0 }, "undefined" != typeof k && (this._width = k), "undefined" != typeof m && (this._height = m), "undefined" != typeof e && (this.renderType = e), "undefined" != typeof o && (this.parent = o), "undefined" != typeof u && (this.transparent = u), "undefined" != typeof q && (this.antialias = q), this.rnd = new i.RandomDataGenerator([(y3U.N0w(Date.now(), Math.random())).toString()]), this.state = new i.StateManager(this, n)), this.device.whenReady(this.boot, this), this; }, i.Game.prototype = { parseConfig : function (k) { this.config = k, "undefined" == typeof k.enableDebug && (this.config.enableDebug = !0), k.width && (this._width = k.width), k.height && (this._height = k.height), k.renderer && (this.renderType = k.renderer), k.parent && (this.parent = k.parent), k.transparent && (this.transparent = k.transparent), k.antialias && (this.antialias = k.antialias), k.preserveDrawingBuffer && (this.preserveDrawingBuffer = k.preserveDrawingBuffer), k.physicsConfig && (this.physicsConfig = k.physicsConfig); var m = [(y3U.L0w(Date.now(), Math.random())).toString()]; k.seed && (m = k.seed), this.rnd = new i.RandomDataGenerator(m); var e = null; k.state && (e = k.state), this.state = new i.StateManager(this, e); }, boot : function () { this.isBooted || (this.onPause = new i.Signal, this.onResume = new i.Signal, this.onBlur = new i.Signal, this.onFocus = new i.Signal, this.isBooted = !0, this.math = i.Math, this.scale = new i.ScaleManager(this, this._width, this._height), this.stage = new i.Stage(this), this.setUpRenderer(), this.world = new i.World(this), this.add = new i.GameObjectFactory(this), this.make = new i.GameObjectCreator(this), this.cache = new i.Cache(this), this.load = new i.Loader(this), this.time = new i.Time(this), this.tweens = new i.TweenManager(this), this.input = new i.Input(this), this.sound = new i.SoundManager(this), this.physics = new i.Physics(this, this.physicsConfig), this.particles = new i.Particles(this), this.plugins = new i.PluginManager(this), this.net = new i.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 i.Utils.Debug(this), this.debug.boot()) : this.debug = { preUpdate : function () {}, update : function () {}, reset : function () {} }, this.showDebugHeader(), this.isRunning = !0, this.raf = this.config && this.config.forceSetTimeOut ? new i.RequestAnimationFrame(this, this.config.forceSetTimeOut) : new i.RequestAnimationFrame(this, !1), this.raf.start()); }, showDebugHeader : function () { var k = i.VERSION, m = "Canvas", e = "HTML Audio", o = 1; if (y3U.z0w(this.renderType, i.WEBGL) ? (m = "WebGL", o++) : y3U.J0w(this.renderType, i.HEADLESS) && (m = "Headless"), this.device.webAudio && (e = "WebAudio", o++), this.device.chrome) { for (var n = ["%c %c %c Phaser v" + k + " | Pixi.js " + PIXI.VERSION + " | " + m + " | " + e + " %c %c %c http://phaser.io %c♥%c♥%c♥", "background: #3db79f", "background: #329582", "color: #ffffff; background: #226558;", "background: #329582", "background: #3db79f", "background: #ffffff"], u = 0; y3U.H0w(3, u); u++) n.push(y3U.h0w(o, u) ? "color: #ff2424; background: #fff" : "color: #959595; background: #fff"); console.log.apply(console, n); } else r2w8n[E8n]['console'] && console.log("Phaser v" + k + " | Pixi.js " + PIXI.VERSION + " | " + m + " | " + e + " | http://phaser.io"); }, setUpRenderer : function () { if (this.canvas = this.config.canvasID ? i.Canvas.create(this.width, this.height, this.config.canvasID) : i.Canvas.create(this.width, this.height), this.config.canvasStyle ? this.canvas.style = this.config.canvasStyle : this.canvas.style["-webkit-full-screen"] = "width: 100%; height: 100%", this.device.cocoonJS && (this.canvas.screencanvas = y3U.F0w(this.renderType, i.CANVAS) ? !0 : !1), y3U.M0w(this.renderType, i.HEADLESS) || y3U.n0w(this.renderType, i.CANVAS) || y3U.f0w(this.renderType, i.AUTO) && this.device.webGL === !1) { if (!this.device.canvas) throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting."); y3U.K0w(this.renderType, i.AUTO) && (this.renderType = i.CANVAS), this.renderer = new PIXI.CanvasRenderer(this.width, this.height, { view : this.canvas, transparent : this.transparent, resolution : 1, clearBeforeRender : !0 }), this.context = this.renderer.context; } else this.renderType = i.WEBGL, this.renderer = new PIXI.WebGLRenderer(this.width, this.height, { view : this.canvas, transparent : this.transparent, resolution : 1, antialias : this.antialias, preserveDrawingBuffer : this.preserveDrawingBuffer }), this.context = null; y3U.B0w(this.renderType, i.HEADLESS) && (this.stage.smoothed = this.antialias, i.Canvas.addToDOM(this.canvas, this.parent, !1), i.Canvas.setTouchAction(this.canvas)); }, update : function (k) { if (this.time.update(k), y3U.l0w(this._spiralling, 1) && !this.forceSingleUpdate) y3U.X0w(this.time.time, this._nextFpsNotification) && (this._nextFpsNotification = this.time.time + 1e4, this.fpsProblemNotifier.dispatch()), this._deltaTime = 0, this._spiralling = 0, this.updateRender(y3U.Y0w(this.time.slowMotion, this.time.desiredFps)); else { var m = y3U.U7w(1e3, this.time.slowMotion, this.time.desiredFps); this._deltaTime += Math.max(Math.min(y3U.G7w(3, m), this.time.elapsed), 0); var e = 0; for (this.updatesThisFrame = Math.floor(y3U.N7w(this._deltaTime, m)), this.forceSingleUpdate && (this.updatesThisFrame = Math.min(1, this.updatesThisFrame)); y3U.L7w(this._deltaTime, m) && (this._deltaTime -= m, this.currentUpdateID = e, this.updateLogic(y3U.z7w(1, this.time.desiredFps)), this.stage.updateTransform(), e++, !this.forceSingleUpdate || y3U.J7w(1, e)); ); y3U.H7w(e, this._lastCount) ? this._spiralling++ : y3U.h7w(e, this._lastCount) && (this._spiralling = 0), this._lastCount = e, this.updateRender(y3U.F7w(this._deltaTime, m)); } }, updateLogic : function (k) { 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.world.camera.preUpdate(), this.physics.preUpdate(), this.state.preUpdate(k), this.plugins.preUpdate(k), this.stage.preUpdate(), this.state.update(), this.stage.update(), this.tweens.update(k), this.sound.update(), this.input.update(), this.physics.update(), this.particles.update(), this.plugins.update(), this.stage.postUpdate(), this.plugins.postUpdate()); }, updateRender : function (k) { this.lockRender || (this.state.preRender(k), this.renderer.render(this.stage), this.plugins.render(k), this.state.render(k), this.plugins.postRender(k)); }, 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.state = null, this.cache = null, this.input = null, this.load = null, this.sound = null, this.stage = null, this.time = null, this.world = null, this.isBooted = !1, y3U.M7w(this.renderType, i.WEBGL) ? (PIXI.glContexts[this.renderer.glContextId] = null, this.renderer.projection = null, this.renderer.offset = null, this.renderer.shaderManager.destroy(), this.renderer.spriteBatch.destroy(), this.renderer.maskManager.destroy(), this.renderer.filterManager.destroy(), this.renderer.shaderManager = null, this.renderer.spriteBatch = null, this.renderer.maskManager = null, this.renderer.filterManager = null, this.renderer.gl = null, this.renderer.renderSession = null, i.Canvas.removeFromDOM(this.canvas)) : this.renderer.destroy(!0), i.GAMES[this.id] = null; }, gamePaused : function (k) { this._paused || (this._paused = !0, this.time.gamePaused(), this.sound.setMute(), this.onPause.dispatch(k)); }, gameResumed : function (k) { this._paused && !this._codePaused && (this._paused = !1, this.time.gameResumed(), this.input.reset(), this.sound.unsetMute(), this.onResume.dispatch(k)); }, focusLoss : function (k) { this.onBlur.dispatch(k), this.stage.disableVisibilityChange || this.gamePaused(k); }, focusGain : function (k) { this.onFocus.dispatch(k), this.stage.disableVisibilityChange || this.gameResumed(k); } }, i.Game.prototype.constructor = i.Game, Object.defineProperty(i.Game.prototype, "paused", { get : function () { return this._paused; }, set : function (k) { k === !0 ? (this._paused === !1 && (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); } }), i.Input = function (k) { this.game = k, this.hitCanvas = null, this.hitContext = null, this.moveCallbacks = [], this.moveCallback = null, this.moveCallbackContext = this, this.pollRate = 0, this.enabled = !0, this.multiInputOverride = i.Input.MOUSE_TOUCH_COMBINE, this.position = null, this.speed = null, this.circle = null, this.scale = null, this.maxPointers = -1, this.currentPointers = 0, 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 i.ArraySet, this._localPoint = new i.Point, this._pollCounter = 0, this._oldPosition = null, this._x = 0, this._y = 0; }, i.Input.MOUSE_OVERRIDES_TOUCH = 0, i.Input.TOUCH_OVERRIDES_MOUSE = 1, i.Input.MOUSE_TOUCH_COMBINE = 2, i.Input.MAX_POINTERS = 10, i.Input.prototype = { boot : function () { this.mousePointer = new i.Pointer(this.game, 0), this.addPointer(), this.addPointer(), this.mouse = new i.Mouse(this.game), this.keyboard = new i.Keyboard(this.game), this.touch = new i.Touch(this.game), this.mspointer = new i.MSPointer(this.game), this.gamepad = new i.Gamepad(this.game), this.onDown = new i.Signal, this.onUp = new i.Signal, this.onTap = new i.Signal, this.onHold = new i.Signal, this.scale = new i.Point(1, 1), this.speed = new i.Point, this.position = new i.Point, this._oldPosition = new i.Point, this.circle = new i.Circle(0, 0, 44), this.activePointer = this.mousePointer, this.currentPointers = 0, this.hitCanvas = r2w8n[H8n]['createElement']("canvas"), this.hitCanvas.width = 1, this.hitCanvas.height = 1, this.hitContext = this.hitCanvas.getContext("2d"), this.mouse.start(), this.keyboard.start(), this.touch.start(), this.mspointer.start(), this.mousePointer.active = !0; var m = this; this._onClickTrampoline = function (k) { m.onClickTrampoline(k); }, this.game.canvas.addEventListener("click", this._onClickTrampoline, !1); }, destroy : function () { this.mouse.stop(), this.keyboard.stop(), this.touch.stop(), this.mspointer.stop(), this.gamepad.stop(), this.moveCallbacks = [], this.game.canvas.removeEventListener("click", this._onClickTrampoline); }, addMoveCallback : function (k, m) { return y3U.n7w(this.moveCallbacks.push({ callback : k, context : m }), 1); }, deleteMoveCallback : function (k) { this.moveCallbacks[k] && this.moveCallbacks.splice(k, 1); }, addPointer : function () { if (y3U.f7w(this.pointers.length, i.Input.MAX_POINTERS)) return console.warn("Phaser.Input.addPointer: only " + i.Input.MAX_POINTERS + " pointer allowed"), null; var k = this.pointers.length + 1, m = new i.Pointer(this.game, k); return this.pointers.push(m), this["pointer" + k] = m, m; }, update : function () { if (this.keyboard.update(), y3U.K7w(this.pollRate, 0) && y3U.B7w(this._pollCounter, this.pollRate)) return void this._pollCounter++; this.speed.x = y3U.l7w(this.position.x, this._oldPosition.x), this.speed.y = y3U.X7w(this.position.y, this._oldPosition.y), this._oldPosition.copyFrom(this.position), this.mousePointer.update(), this.gamepad.active && this.gamepad.update(); for (var k = 0; y3U.Y7w(k, this.pointers.length); k++) this.pointers[k].update(); this._pollCounter = 0; }, reset : function (k) { if (this.game.isBooted && !this.resetLocked) { "undefined" == typeof k && (k = !1), this.keyboard.reset(k), this.mousePointer.reset(), this.gamepad.reset(); for (var m = 0; y3U.U4w(m, this.pointers.length); m++) this.pointers[m].reset(); this.currentPointers = 0, y3U.T4w("none", this.game.canvas.style.cursor) && (this.game.canvas.style.cursor = "inherit"), k && (this.onDown.dispose(), this.onUp.dispose(), this.onTap.dispose(), this.onHold.dispose(), this.onDown = new i.Signal, this.onUp = new i.Signal, this.onTap = new i.Signal, this.onHold = new i.Signal, this.moveCallbacks = []), this._pollCounter = 0; } }, resetSpeed : function (k, m) { this._oldPosition.setTo(k, m), this.speed.setTo(0, 0); }, startPointer : function (k) { if (y3U.S4w(this.maxPointers, 0) && y3U.I4w(this.countActivePointers(this.maxPointers), this.maxPointers)) return null; if (!this.pointer1.active) return this.pointer1.start(k); if (!this.pointer2.active) return this.pointer2.start(k); for (var m = 2; y3U.C4w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (!e.active) return e.start(k); } return null; }, updatePointer : function (k) { if (this.pointer1.active && y3U.v4w(this.pointer1.identifier, k.identifier)) return this.pointer1.move(k); if (this.pointer2.active && y3U.t4w(this.pointer2.identifier, k.identifier)) return this.pointer2.move(k); for (var m = 2; y3U.y4w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (e.active && y3U.o4w(e.identifier, k.identifier)) return e.move(k); } return null; }, stopPointer : function (k) { if (this.pointer1.active && y3U.x4w(this.pointer1.identifier, k.identifier)) return this.pointer1.stop(k); if (this.pointer2.active && y3U.p4w(this.pointer2.identifier, k.identifier)) return this.pointer2.stop(k); for (var m = 2; y3U.q4w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (e.active && y3U.b4w(e.identifier, k.identifier)) return e.stop(k); } return null; }, countActivePointers : function (k) { "undefined" == typeof k && (k = this.pointers.length); for (var m = k, e = 0; y3U.j4w(e, this.pointers.length) && y3U.d4w(m, 0); e++) { var o = this.pointers[e]; o.active && m--; } return this.currentPointers = y3U.c4w(k, m), y3U.s4w(k, m); }, getPointer : function (k) { "undefined" == typeof k && (k = !1); for (var m = 0; y3U.Q4w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (y3U.a3w(e.active, k)) return e; } return null; }, getPointerFromIdentifier : function (k) { for (var m = 0; y3U.W3w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (y3U.m3w(e.identifier, k)) return e; } return null; }, getPointerFromId : function (k) { for (var m = 0; y3U.A3w(m, this.pointers.length); m++) { var e = this.pointers[m]; if (y3U.w3w(e.pointerId, k)) return e; } return null; }, getLocalPosition : function (k, m, e) { "undefined" == typeof e && (e = new i.Point); var o = k.worldTransform, n = 1 / (y3U.E3w(o.a, o.d) + o.c * -o.b); return e.setTo(y3U.e3w(o.d, n, m.x) + -o.c * n * m.y + y3U.o3w((o.ty * o.c - o.tx * o.d), n), y3U.x3w(o.a, n, m.y) + -o.b * n * m.x + (-o.ty * o.a + y3U.n3w(o.tx, o.b)) * n); }, hitTest : function (k, m, e) { if (!k.worldVisible) return !1; if (this.getLocalPosition(k, m, this._localPoint), e.copyFrom(this._localPoint), k.hitArea && k.hitArea.contains) return k.hitArea.contains(this._localPoint.x, this._localPoint.y); if (y3U.f3w(k, PIXI.Sprite)) { var o = k.texture.frame.width, n = k.texture.frame.height, u = -o * k.anchor.x; if (y3U.K3w(this._localPoint.x, u) && y3U.B3w(this._localPoint.x, u + o)) { var q = -n * k.anchor.y; if (y3U.l3w(this._localPoint.y, q) && y3U.X3w(this._localPoint.y, q + n)) return !0; } } else if (y3U.Y3w(k, i.TileSprite)) { var o = k.width, n = k.height, u = -o * k.anchor.x; if (y3U.U9w(this._localPoint.x, u) && y3U.T9w(this._localPoint.x, u + o)) { var q = -n * k.anchor.y; if (y3U.S9w(this._localPoint.y, q) && y3U.I9w(this._localPoint.y, q + n)) return !0; } } else if (y3U.C9w(k, i.Graphics)) for (var f = 0; y3U.v9w(f, k.graphicsData.length); f++) { var j = k.graphicsData[f]; if (j.fill && j.shape && j.shape.contains(this._localPoint.x, this._localPoint.y)) return !0; } for (var f = 0, U0 = k.children.length; y3U.t9w(U0, f); f++) if (this.hitTest(k.children[f], m, e)) return !0; return !1; }, onClickTrampoline : function () { this.activePointer.processClickTrampolines(); } }, i.Input.prototype.constructor = i.Input, Object.defineProperty(i.Input.prototype, "x", { get : function () { return this._x; }, set : function (k) { this._x = Math.floor(k); } }), Object.defineProperty(i.Input.prototype, "y", { get : function () { return this._y; }, set : function (k) { this._y = Math.floor(k); } }), Object.defineProperty(i.Input.prototype, "pollLocked", { get : function () { return y3U.y9w(this.pollRate, 0) && y3U.o9w(this._pollCounter, this.pollRate); } }), Object.defineProperty(i.Input.prototype, "totalInactivePointers", { get : function () { return y3U.x9w(this.pointers.length, this.countActivePointers()); } }), Object.defineProperty(i.Input.prototype, "totalActivePointers", { get : function () { return this.countActivePointers(); } }), Object.defineProperty(i.Input.prototype, "worldX", { get : function () { return this.game.camera.view.x + this.x; } }), Object.defineProperty(i.Input.prototype, "worldY", { get : function () { return this.game.camera.view.y + this.y; } }), Object.defineProperty(i.Input.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), i.Key = function (k, m) { this.game = k, 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 = m, this.onDown = new i.Signal, this.onHoldCallback = null, this.onHoldContext = null, this.onUp = new i.Signal, this._justDown = !1, this._justUp = !1; }, i.Key.prototype = { update : function () { this._enabled && this.isDown && (this.duration = y3U.p9w(this.game.time.time, this.timeDown), this.repeats++, this.onHoldCallback && this.onHoldCallback.call(this.onHoldContext, this)); }, processKeyDown : function (k) { this._enabled && (this.event = k, this.isDown || (this.altKey = k.altKey, this.ctrlKey = k.ctrlKey, this.shiftKey = k.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 (k) { this._enabled && (this.event = k, this.isUp || (this.isDown = !1, this.isUp = !0, this.timeUp = this.game.time.time, this.duration = y3U.q9w(this.game.time.time, this.timeDown), this._justUp = !0, this.onUp.dispatch(this))); }, reset : function (k) { "undefined" == typeof k && (k = !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, k && (this.onDown.removeAll(), this.onUp.removeAll(), this.onHoldCallback = null, this.onHoldContext = null); }, downDuration : function (k) { return "undefined" == typeof k && (k = 50), this.isDown && y3U.b9w(this.duration, k); }, upDuration : function (k) { return "undefined" == typeof k && (k = 50), !this.isDown && y3U.j9w(this.game.time.time - this.timeUp, k); } }, Object.defineProperty(i.Key.prototype, "justDown", { get : function () { var k = this._justDown; return this._justDown = !1, k; } }), Object.defineProperty(i.Key.prototype, "justUp", { get : function () { var k = this._justUp; return this._justUp = !1, k; } }), Object.defineProperty(i.Key.prototype, "enabled", { get : function () { return this._enabled; }, set : function (k) { k = !!k, y3U.d9w(k, this._enabled) && (k || this.reset(!1), this._enabled = k); } }), i.Key.prototype.constructor = i.Key, i.Keyboard = function (k) { this.game = k, this.enabled = !0, this.event = null, this.pressEvent = null, this.callbackContext = this, 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; }, i.Keyboard.prototype = { addCallbacks : function (k, m, e, o) { this.callbackContext = k, "undefined" != typeof m && (this.onDownCallback = m), "undefined" != typeof e && (this.onUpCallback = e), "undefined" != typeof o && (this.onPressCallback = o); }, addKey : function (k) { return this._keys[k] || (this._keys[k] = new i.Key(this.game, k), this.addKeyCapture(k)), this._keys[k]; }, removeKey : function (k) { this._keys[k] && (this._keys[k] = null, this.removeKeyCapture(k)); }, createCursorKeys : function () { return { up : this.addKey(i.Keyboard.UP), down : this.addKey(i.Keyboard.DOWN), left : this.addKey(i.Keyboard.LEFT), right : this.addKey(i.Keyboard.RIGHT) }; }, start : function () { if (!this.game.device.cocoonJS && y3U.c9w(null, this._onKeyDown)) { var m = this; this._onKeyDown = function (k) { return m.processKeyDown(k); }, this._onKeyUp = function (k) { return m.processKeyUp(k); }, this._onKeyPress = function (k) { return m.processKeyPress(k); }, r2w8n[E8n]['addEventListener']("keydown", this._onKeyDown, !1), r2w8n[E8n]['addEventListener']("keyup", this._onKeyUp, !1), r2w8n[E8n]['addEventListener']("keypress", this._onKeyPress, !1); } }, stop : function () { r2w8n[E8n]['removeEventListener']("keydown", this._onKeyDown), r2w8n[E8n]['removeEventListener']("keyup", this._onKeyUp), r2w8n[E8n]['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 (k) { if ("object" == typeof k) for (var m in k) this._capture[k[m]] = !0; else this._capture[k] = !0; }, removeKeyCapture : function (k) { delete this._capture[k]; }, 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 (k) { this.event = k, this.game.input.enabled && this.enabled && (this._capture[k.keyCode] && k.preventDefault(), this._keys[k.keyCode] || (this._keys[k.keyCode] = new i.Key(this.game, k.keyCode)), this._keys[k.keyCode].processKeyDown(k), this._k = k.keyCode, this.onDownCallback && this.onDownCallback.call(this.callbackContext, k)); }, processKeyPress : function (k) { this.pressEvent = k, this.game.input.enabled && this.enabled && this.onPressCallback && this.onPressCallback.call(this.callbackContext, String.fromCharCode(k.charCode), k); }, processKeyUp : function (k) { this.event = k, this.game.input.enabled && this.enabled && (this._capture[k.keyCode] && k.preventDefault(), this._keys[k.keyCode] || (this._keys[k.keyCode] = new i.Key(this.game, k.keyCode)), this._keys[k.keyCode].processKeyUp(k), this.onUpCallback && this.onUpCallback.call(this.callbackContext, k)); }, reset : function (k) { "undefined" == typeof k && (k = !0), this.event = null; for (var m = this._keys.length; m--; ) this._keys[m] && this._keys[m].reset(k); }, downDuration : function (k, m) { return this._keys[k] ? this._keys[k].downDuration(m) : null; }, upDuration : function (k, m) { return this._keys[k] ? this._keys[k].upDuration(m) : null; }, isDown : function (k) { return this._keys[k] ? this._keys[k].isDown : null; } }, Object.defineProperty(i.Keyboard.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), Object.defineProperty(i.Keyboard.prototype, "lastChar", { get : function () { return y3U.s9w(32, this.event.charCode) ? "" : String.fromCharCode(this.pressEvent.charCode); } }), Object.defineProperty(i.Keyboard.prototype, "lastKey", { get : function () { return this._keys[this._k]; } }), i.Keyboard.prototype.constructor = i.Keyboard, i.Keyboard.A = "A".charCodeAt(0), i.Keyboard.B = "B".charCodeAt(0), i.Keyboard.C = "C".charCodeAt(0), i.Keyboard.D = "D".charCodeAt(0), i.Keyboard.E = "E".charCodeAt(0), i.Keyboard.F = "F".charCodeAt(0), i.Keyboard.G = "G".charCodeAt(0), i.Keyboard.H = "H".charCodeAt(0), i.Keyboard.I = "I".charCodeAt(0), i.Keyboard.J = "J".charCodeAt(0), i.Keyboard.K = "K".charCodeAt(0), i.Keyboard.L = "L".charCodeAt(0), i.Keyboard.M = "M".charCodeAt(0), i.Keyboard.N = "N".charCodeAt(0), i.Keyboard.O = "O".charCodeAt(0), i.Keyboard.P = "P".charCodeAt(0), i.Keyboard.Q = "Q".charCodeAt(0), i.Keyboard.R = "R".charCodeAt(0), i.Keyboard.S = "S".charCodeAt(0), i.Keyboard.T = "T".charCodeAt(0), i.Keyboard.U = "U".charCodeAt(0), i.Keyboard.V = "V".charCodeAt(0), i.Keyboard.W = "W".charCodeAt(0), i.Keyboard.X = "X".charCodeAt(0), i.Keyboard.Y = "Y".charCodeAt(0), i.Keyboard.Z = "Z".charCodeAt(0), i.Keyboard.ZERO = "0".charCodeAt(0), i.Keyboard.ONE = "1".charCodeAt(0), i.Keyboard.TWO = "2".charCodeAt(0), i.Keyboard.THREE = "3".charCodeAt(0), i.Keyboard.FOUR = "4".charCodeAt(0), i.Keyboard.FIVE = "5".charCodeAt(0), i.Keyboard.SIX = "6".charCodeAt(0), i.Keyboard.SEVEN = "7".charCodeAt(0), i.Keyboard.EIGHT = "8".charCodeAt(0), i.Keyboard.NINE = "9".charCodeAt(0), i.Keyboard.NUMPAD_0 = 96, i.Keyboard.NUMPAD_1 = 97, i.Keyboard.NUMPAD_2 = 98, i.Keyboard.NUMPAD_3 = 99, i.Keyboard.NUMPAD_4 = 100, i.Keyboard.NUMPAD_5 = 101, i.Keyboard.NUMPAD_6 = 102, i.Keyboard.NUMPAD_7 = 103, i.Keyboard.NUMPAD_8 = 104, i.Keyboard.NUMPAD_9 = 105, i.Keyboard.NUMPAD_MULTIPLY = 106, i.Keyboard.NUMPAD_ADD = 107, i.Keyboard.NUMPAD_ENTER = 108, i.Keyboard.NUMPAD_SUBTRACT = 109, i.Keyboard.NUMPAD_DECIMAL = 110, i.Keyboard.NUMPAD_DIVIDE = 111, i.Keyboard.F1 = 112, i.Keyboard.F2 = 113, i.Keyboard.F3 = 114, i.Keyboard.F4 = 115, i.Keyboard.F5 = 116, i.Keyboard.F6 = 117, i.Keyboard.F7 = 118, i.Keyboard.F8 = 119, i.Keyboard.F9 = 120, i.Keyboard.F10 = 121, i.Keyboard.F11 = 122, i.Keyboard.F12 = 123, i.Keyboard.F13 = 124, i.Keyboard.F14 = 125, i.Keyboard.F15 = 126, i.Keyboard.COLON = 186, i.Keyboard.EQUALS = 187, i.Keyboard.UNDERSCORE = 189, i.Keyboard.QUESTION_MARK = 191, i.Keyboard.TILDE = 192, i.Keyboard.OPEN_BRACKET = 219, i.Keyboard.BACKWARD_SLASH = 220, i.Keyboard.CLOSED_BRACKET = 221, i.Keyboard.QUOTES = 222, i.Keyboard.BACKSPACE = 8, i.Keyboard.TAB = 9, i.Keyboard.CLEAR = 12, i.Keyboard.ENTER = 13, i.Keyboard.SHIFT = 16, i.Keyboard.CONTROL = 17, i.Keyboard.ALT = 18, i.Keyboard.CAPS_LOCK = 20, i.Keyboard.ESC = 27, i.Keyboard.SPACEBAR = 32, i.Keyboard.PAGE_UP = 33, i.Keyboard.PAGE_DOWN = 34, i.Keyboard.END = 35, i.Keyboard.HOME = 36, i.Keyboard.LEFT = 37, i.Keyboard.UP = 38, i.Keyboard.RIGHT = 39, i.Keyboard.DOWN = 40, i.Keyboard.INSERT = 45, i.Keyboard.DELETE = 46, i.Keyboard.HELP = 47, i.Keyboard.NUM_LOCK = 144, i.Keyboard.PLUS = 43, i.Keyboard.MINUS = 45, i.Mouse = function (k) { this.game = k, this.callbackContext = this.game, this.mouseDownCallback = null, this.mouseMoveCallback = 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 i.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; }, i.Mouse.NO_BUTTON = -1, i.Mouse.LEFT_BUTTON = 0, i.Mouse.MIDDLE_BUTTON = 1, i.Mouse.RIGHT_BUTTON = 2, i.Mouse.WHEEL_UP = 1, i.Mouse.WHEEL_DOWN = -1, i.Mouse.prototype = { start : function () { if ((!this.game.device.android || this.game.device.chrome !== !1) && y3U.Q9w(null, this._onMouseDown)) { var m = this; this._onMouseDown = function (k) { return m.onMouseDown(k); }, this._onMouseMove = function (k) { return m.onMouseMove(k); }, this._onMouseUp = function (k) { return m.onMouseUp(k); }, this._onMouseUpGlobal = function (k) { return m.onMouseUpGlobal(k); }, this._onMouseOut = function (k) { return m.onMouseOut(k); }, this._onMouseOver = function (k) { return m.onMouseOver(k); }, this._onMouseWheel = function (k) { return m.onMouseWheel(k); }, this.game.canvas.addEventListener("mousedown", this._onMouseDown, !0), this.game.canvas.addEventListener("mousemove", this._onMouseMove, !0), this.game.canvas.addEventListener("mouseup", this._onMouseUp, !0), this.game.device.cocoonJS || (r2w8n[E8n]['addEventListener']("mouseup", this._onMouseUpGlobal, !0), this.game.canvas.addEventListener("mouseover", this._onMouseOver, !0), this.game.canvas.addEventListener("mouseout", this._onMouseOut, !0)); var e = this.game.device.wheelEvent; e && (this.game.canvas.addEventListener(e, this._onMouseWheel, !0), y3U.a5w("mousewheel", e) ? this._wheelEvent = new q0(-1 / 40, 1) : y3U.W5w("DOMMouseScroll", e) && (this._wheelEvent = new q0(1, 1))); } }, onMouseDown : function (k) { this.event = k, this.capture && k.preventDefault(), this.button = k.button, this.mouseDownCallback && this.mouseDownCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled && (k.identifier = 0, this.game.input.mousePointer.start(k)); }, onMouseMove : function (k) { this.event = k, this.capture && k.preventDefault(), this.mouseMoveCallback && this.mouseMoveCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled && (k.identifier = 0, this.game.input.mousePointer.move(k)); }, onMouseUp : function (k) { this.event = k, this.capture && k.preventDefault(), this.button = i.Mouse.NO_BUTTON, this.mouseUpCallback && this.mouseUpCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled && (k.identifier = 0, this.game.input.mousePointer.stop(k)); }, onMouseUpGlobal : function (k) { this.game.input.mousePointer.withinGame || (this.button = i.Mouse.NO_BUTTON, this.mouseUpCallback && this.mouseUpCallback.call(this.callbackContext, k), k.identifier = 0, this.game.input.mousePointer.stop(k)); }, onMouseOut : function (k) { this.event = k, this.capture && k.preventDefault(), this.game.input.mousePointer.withinGame = !1, this.mouseOutCallback && this.mouseOutCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled && this.stopOnGameOut && (k.identifier = 0, this.game.input.mousePointer.stop(k)); }, onMouseWheel : function (k) { this._wheelEvent && (k = this._wheelEvent.bindEvent(k)), this.event = k, this.capture && k.preventDefault(), this.wheelDelta = i.Math.clamp(-k.deltaY, -1, 1), this.mouseWheelCallback && this.mouseWheelCallback.call(this.callbackContext, k); }, onMouseOver : function (k) { this.event = k, this.capture && k.preventDefault(), this.game.input.mousePointer.withinGame = !0, this.mouseOverCallback && this.mouseOverCallback.call(this.callbackContext, k), !this.game.input.enabled || !this.enabled; }, requestPointerLock : function () { if (this.game.device.pointerLock) { var m = this.game.canvas; m.requestPointerLock = m.requestPointerLock || m.mozRequestPointerLock || m.webkitRequestPointerLock, m.requestPointerLock(); var e = this; this._pointerLockChange = function (k) { return e.pointerLockChange(k); }, r2w8n[H8n]['addEventListener']("pointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['addEventListener']("mozpointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['addEventListener']("webkitpointerlockchange", this._pointerLockChange, !0); } }, pointerLockChange : function (k) { var m = this.game.canvas; y3U.m5w(r2w8n[H8n].pointerLockElement, m) || y3U.A5w(r2w8n[H8n].mozPointerLockElement, m) || y3U.w5w(r2w8n[H8n].webkitPointerLockElement, m) ? (this.locked = !0, this.pointerLock.dispatch(!0, k)) : (this.locked = !1, this.pointerLock.dispatch(!1, k)); }, releasePointerLock : function () { r2w8n[H8n].exitPointerLock = r2w8n[H8n].exitPointerLock || r2w8n[H8n].mozExitPointerLock || r2w8n[H8n].webkitExitPointerLock, r2w8n[H8n].exitPointerLock(), r2w8n[H8n]['removeEventListener']("pointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['removeEventListener']("mozpointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['removeEventListener']("webkitpointerlockchange", this._pointerLockChange, !0); }, stop : function () { this.game.canvas.removeEventListener("mousedown", this._onMouseDown, !0), this.game.canvas.removeEventListener("mousemove", this._onMouseMove, !0), this.game.canvas.removeEventListener("mouseup", this._onMouseUp, !0), this.game.canvas.removeEventListener("mouseover", this._onMouseOver, !0), this.game.canvas.removeEventListener("mouseout", this._onMouseOut, !0); var k = this.game.device.wheelEvent; k && this.game.canvas.removeEventListener(k, this._onMouseWheel, !0), r2w8n[E8n]['removeEventListener']("mouseup", this._onMouseUpGlobal, !0), r2w8n[H8n]['removeEventListener']("pointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['removeEventListener']("mozpointerlockchange", this._pointerLockChange, !0), r2w8n[H8n]['removeEventListener']("webkitpointerlockchange", this._pointerLockChange, !0); } }, i.Mouse.prototype.constructor = i.Mouse, Object.defineProperty(i.Mouse.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), q0.prototype = {}, q0.prototype.constructor = q0, q0.prototype.bindEvent = function (e) { if (!q0._stubsGenerated && e) { var o = function () { q0._stubsGenerated = !0; }; var n = function (m) { return function () { var k = this.originalEvent[m]; return "function" != typeof k ? k : k.bind(this.originalEvent); }; }; for (var u in e) y3U.E5w(u, q0.prototype) || Object.defineProperty(q0.prototype, u, { get : n(u) }); o(); } return this.originalEvent = e, this; }, Object.defineProperties(q0.prototype, { type : { value : "wheel" }, deltaMode : { get : function () { return this._deltaMode; } }, deltaY : { get : function () { return y3U.e5w(this._scaleFactor, (this.originalEvent.wheelDelta || this.originalEvent.detail)) || 0; } }, deltaX : { get : function () { return y3U.g5w(this._scaleFactor, this.originalEvent.wheelDeltaX) || 0; } }, deltaZ : { value : 0 } }), i.MSPointer = function (k) { this.game = k, this.callbackContext = this.game, this.enabled = !0, this._onMSPointerDown = null, this._onMSPointerMove = null, this._onMSPointerUp = null; }, i.MSPointer.prototype = { start : function () { if (y3U.r5w(null, this._onMSPointerDown)) { var m = this; this.game.device.mspointer && (this._onMSPointerDown = function (k) { return m.onPointerDown(k); }, this._onMSPointerMove = function (k) { return m.onPointerMove(k); }, this._onMSPointerUp = function (k) { return m.onPointerUp(k); }, this.game.canvas.addEventListener("MSPointerDown", this._onMSPointerDown, !1), this.game.canvas.addEventListener("MSPointerMove", this._onMSPointerMove, !1), this.game.canvas.addEventListener("MSPointerUp", this._onMSPointerUp, !1), this.game.canvas.addEventListener("pointerDown", this._onMSPointerDown, !1), this.game.canvas.addEventListener("pointerMove", this._onMSPointerMove, !1), this.game.canvas.addEventListener("pointerUp", this._onMSPointerUp, !1), this.game.canvas.style["-ms-content-zooming"] = "none", this.game.canvas.style["-ms-touch-action"] = "none"); } }, onPointerDown : function (k) { this.game.input.enabled && this.enabled && (k.preventDefault(), k.identifier = k.pointerId, this.game.input.startPointer(k)); }, onPointerMove : function (k) { this.game.input.enabled && this.enabled && (k.preventDefault(), k.identifier = k.pointerId, this.game.input.updatePointer(k)); }, onPointerUp : function (k) { this.game.input.enabled && this.enabled && (k.preventDefault(), k.identifier = k.pointerId, this.game.input.stopPointer(k)); }, stop : function () { this.game.canvas.removeEventListener("MSPointerDown", this._onMSPointerDown), this.game.canvas.removeEventListener("MSPointerMove", this._onMSPointerMove), this.game.canvas.removeEventListener("MSPointerUp", this._onMSPointerUp), this.game.canvas.removeEventListener("pointerDown", this._onMSPointerDown), this.game.canvas.removeEventListener("pointerMove", this._onMSPointerMove), this.game.canvas.removeEventListener("pointerUp", this._onMSPointerUp); } }, i.MSPointer.prototype.constructor = i.MSPointer, Object.defineProperty(i.MSPointer.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), i.Pointer = function (k, m) { this.game = k, this.id = m, this.type = i.POINTER, this.exists = !0, this.identifier = 0, this.pointerId = null, this.target = null, this.button = null, 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 = !1, this.isDown = !1, this.isUp = !0, this.timeDown = 0, this.timeUp = 0, this.previousTapTime = 0, this.totalTouches = 0, this.msSinceLastClick = Number.MAX_VALUE, this.targetObject = null, this.active = !1, this.dirty = !1, this.position = new i.Point, this.positionDown = new i.Point, this.positionUp = new i.Point, this.circle = new i.Circle(0, 0, 44), y3U.i5w(0, m) && (this.isMouse = !0), this._clickTrampolines = null, this._trampolineTargetObject = null; }, i.Pointer.prototype = { start : function (k) { return k.pointerId && (this.pointerId = k.pointerId), this.identifier = k.identifier, this.target = k.target, "undefined" != typeof k.button && (this.button = k.button), this._history = [], this.active = !0, this.withinGame = !0, this.isDown = !0, this.isUp = !1, this.dirty = !1, this._clickTrampolines = null, this._trampolineTargetObject = null, this.msSinceLastClick = y3U.u5w(this.game.time.time, this.timeDown), this.timeDown = this.game.time.time, this._holdSent = !1, this.move(k, !0), this.positionDown.setTo(this.x, this.y), (y3U.P5w(this.game.input.multiInputOverride, i.Input.MOUSE_OVERRIDES_TOUCH) || y3U.D5w(this.game.input.multiInputOverride, i.Input.MOUSE_TOUCH_COMBINE) || y3U.Z5w(this.game.input.multiInputOverride, i.Input.TOUCH_OVERRIDES_MOUSE) && y3U.R5w(0, this.game.input.currentPointers)) && (this.game.input.x = this.x, this.game.input.y = this.y, this.game.input.position.setTo(this.x, this.y), this.game.input.onDown.dispatch(this, k), this.game.input.resetSpeed(this.x, this.y)), this._stateReset = !1, this.totalTouches++, this.isMouse || this.game.input.currentPointers++, y3U.O5w(null, this.targetObject) && this.targetObject._touchedHandler(this), this; }, update : function () { this.active && (this.dirty && (y3U.V5w(this.game.input.interactiveItems.total, 0) && this.processInteractiveObjects(!1), this.dirty = !1), this._holdSent === !1 && y3U.k2w(this.duration, this.game.input.holdRate) && ((y3U.G2w(this.game.input.multiInputOverride, i.Input.MOUSE_OVERRIDES_TOUCH) || y3U.N2w(this.game.input.multiInputOverride, i.Input.MOUSE_TOUCH_COMBINE) || y3U.L2w(this.game.input.multiInputOverride, i.Input.TOUCH_OVERRIDES_MOUSE) && y3U.z2w(0, this.game.input.currentPointers)) && this.game.input.onHold.dispatch(this), this._holdSent = !0), this.game.input.recordPointerHistory && y3U.J2w(this.game.time.time, this._nextDrop) && (this._nextDrop = this.game.time.time + this.game.input.recordRate, this._history.push({ x : this.position.x, y : this.position.y }), y3U.H2w(this._history.length, this.game.input.recordLimit) && this._history.shift())); }, move : function (k, m) { if (!this.game.input.pollLocked) { if ("undefined" == typeof m && (m = !1), "undefined" != typeof k.button && (this.button = k.button), this.clientX = k.clientX, this.clientY = k.clientY, this.pageX = k.pageX, this.pageY = k.pageY, this.screenX = k.screenX, this.screenY = k.screenY, this.isMouse && this.game.input.mouse.locked && !m && (this.rawMovementX = k.movementX || k.mozMovementX || k.webkitMovementX || 0, this.rawMovementY = k.movementY || k.mozMovementY || k.webkitMovementY || 0, this.movementX += this.rawMovementX, this.movementY += this.rawMovementY), this.x = y3U.h2w((this.pageX - this.game.scale.offset.x), this.game.input.scale.x), this.y = y3U.F2w((this.pageY - this.game.scale.offset.y), this.game.input.scale.y), this.position.setTo(this.x, this.y), this.circle.x = this.x, this.circle.y = this.y, (y3U.M2w(this.game.input.multiInputOverride, i.Input.MOUSE_OVERRIDES_TOUCH) || y3U.n2w(this.game.input.multiInputOverride, i.Input.MOUSE_TOUCH_COMBINE) || y3U.f2w(this.game.input.multiInputOverride, i.Input.TOUCH_OVERRIDES_MOUSE) && y3U.K2w(0, this.game.input.currentPointers)) && (this.game.input.activePointer = this, this.game.input.x = this.x, this.game.input.y = this.y, this.game.input.position.setTo(this.game.input.x, this.game.input.y), this.game.input.circle.x = this.game.input.x, this.game.input.circle.y = this.game.input.y), this.withinGame = this.game.scale.bounds.contains(this.pageX, this.pageY), this.game.paused) return this; for (var e = this.game.input.moveCallbacks.length; e--; ) this.game.input.moveCallbacks[e].callback.call(this.game.input.moveCallbacks[e].context, this, this.x, this.y, m); return y3U.B2w(null, this.targetObject) && this.targetObject.isDragged === !0 ? this.targetObject.update(this) === !1 && (this.targetObject = null) : y3U.l2w(this.game.input.interactiveItems.total, 0) && this.processInteractiveObjects(m), this; } }, processInteractiveObjects : function (k) { for (var m = Number.MAX_VALUE, e = -1, o = null, n = this.game.input.interactiveItems.first; n; ) n.checked = !1, n.validForInput(e, m, !1) && (n.checked = !0, (k && n.checkPointerDown(this, !0) || !k && n.checkPointerOver(this, !0)) && (m = n.sprite._cache[3], e = n.priorityID, o = n)), n = this.game.input.interactiveItems.next; for (var n = this.game.input.interactiveItems.first; n; ) !n.checked && n.validForInput(e, m, !0) && (k && n.checkPointerDown(this, !1) || !k && n.checkPointerOver(this, !1)) && (m = n.sprite._cache[3], e = n.priorityID, o = n), n = this.game.input.interactiveItems.next; return y3U.X2w(null, o) ? this.targetObject && (this.targetObject._pointerOutHandler(this), this.targetObject = null) : y3U.Y2w(null, this.targetObject) ? (this.targetObject = o, o._pointerOverHandler(this)) : y3U.U1w(this.targetObject, o) ? o.update(this) === !1 && (this.targetObject = null) : (this.targetObject._pointerOutHandler(this), this.targetObject = o, this.targetObject._pointerOverHandler(this)), y3U.T1w(null, this.targetObject); }, leave : function (k) { this.withinGame = !1, this.move(k, !1); }, stop : function (k) { return this._stateReset ? void k.preventDefault() : (this.timeUp = this.game.time.time, (y3U.S1w(this.game.input.multiInputOverride, i.Input.MOUSE_OVERRIDES_TOUCH) || y3U.I1w(this.game.input.multiInputOverride, i.Input.MOUSE_TOUCH_COMBINE) || y3U.C1w(this.game.input.multiInputOverride, i.Input.TOUCH_OVERRIDES_MOUSE) && y3U.v1w(0, this.game.input.currentPointers)) && (this.game.input.onUp.dispatch(this, k), y3U.t1w(this.duration, 0) && y3U.y1w(this.duration, this.game.input.tapRate) && (y3U.o1w(this.timeUp - this.previousTapTime, this.game.input.doubleTapRate) ? this.game.input.onTap.dispatch(this, !0) : this.game.input.onTap.dispatch(this, !1), this.previousTapTime = this.timeUp)), y3U.x1w(this.id, 0) && (this.active = !1), this.withinGame = !1, this.isDown = !1, this.isUp = !0, this.pointerId = null, this.identifier = null, this.positionUp.setTo(this.x, this.y), this.isMouse === !1 && this.game.input.currentPointers--, this.game.input.interactiveItems.callAll("_releasedHandler", this), this._clickTrampolines && (this._trampolineTargetObject = this.targetObject), this.targetObject = null, this); }, justPressed : function (k) { return k = k || this.game.input.justPressedRate, this.isDown === !0 && y3U.p1w(this.timeDown + k, this.game.time.time); }, justReleased : function (k) { return k = k || this.game.input.justReleasedRate, this.isUp === !0 && y3U.q1w(this.timeUp + k, this.game.time.time); }, addClickTrampoline : function (k, m, e, o) { if (this.isDown) { for (var n = this._clickTrampolines = this._clickTrampolines || [], u = 0; y3U.b1w(u, n.length); u++) if (y3U.j1w(n[u].name, k)) { n.splice(u, 1); break; } n.push({ name : k, targetObject : this.targetObject, callback : m, callbackContext : e, callbackArgs : o }); } }, processClickTrampolines : function () { var k = this._clickTrampolines; if (k) { for (var m = 0; y3U.d1w(m, k.length); m++) { var e = k[m]; y3U.c1w(e.targetObject, this._trampolineTargetObject) && e.callback.apply(e.callbackContext, e.callbackArgs); } this._clickTrampolines = null, this._trampolineTargetObject = null; } }, reset : function () { this.isMouse === !1 && (this.active = !1), this.pointerId = null, this.identifier = null, this.dirty = !1, this.isDown = !1, this.isUp = !0, this.totalTouches = 0, this._holdSent = !1, this._history.length = 0, this._stateReset = !0, this.targetObject && this.targetObject._releasedHandler(this), this.targetObject = null; }, resetMovement : function () { this.movementX = 0, this.movementY = 0; } }, i.Pointer.prototype.constructor = i.Pointer, Object.defineProperty(i.Pointer.prototype, "duration", { get : function () { return this.isUp ? -1 : y3U.s1w(this.game.time.time, this.timeDown); } }), Object.defineProperty(i.Pointer.prototype, "worldX", { get : function () { return this.game.world.camera.x + this.x; } }), Object.defineProperty(i.Pointer.prototype, "worldY", { get : function () { return this.game.world.camera.y + this.y; } }), i.Touch = function (k) { this.game = k, this.enabled = !0, 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; }, i.Touch.prototype = { start : function () { if (y3U.Q1w(null, this._onTouchStart)) { var m = this; this.game.device.touch && (this._onTouchStart = function (k) { return m.onTouchStart(k); }, this._onTouchMove = function (k) { return m.onTouchMove(k); }, this._onTouchEnd = function (k) { return m.onTouchEnd(k); }, this._onTouchEnter = function (k) { return m.onTouchEnter(k); }, this._onTouchLeave = function (k) { return m.onTouchLeave(k); }, this._onTouchCancel = function (k) { return m.onTouchCancel(k); }, 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 (k) { k.preventDefault(); }, r2w8n[H8n]['addEventListener']("touchmove", this._documentTouchMove, !1); }, onTouchStart : function (k) { if (this.event = k, this.touchStartCallback && this.touchStartCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled) { this.preventDefault && k.preventDefault(); for (var m = 0; y3U.a6w(m, k.changedTouches.length); m++) this.game.input.startPointer(k.changedTouches[m]); } }, onTouchCancel : function (k) { if (this.event = k, this.touchCancelCallback && this.touchCancelCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled) { this.preventDefault && k.preventDefault(); for (var m = 0; y3U.W6w(m, k.changedTouches.length); m++) this.game.input.stopPointer(k.changedTouches[m]); } }, onTouchEnter : function (k) { this.event = k, this.touchEnterCallback && this.touchEnterCallback.call(this.callbackContext, k), this.game.input.enabled && this.enabled && this.preventDefault && k.preventDefault(); }, onTouchLeave : function (k) { this.event = k, this.touchLeaveCallback && this.touchLeaveCallback.call(this.callbackContext, k), this.preventDefault && k.preventDefault(); }, onTouchMove : function (k) { this.event = k, this.touchMoveCallback && this.touchMoveCallback.call(this.callbackContext, k), this.preventDefault && k.preventDefault(); for (var m = 0; y3U.m6w(m, k.changedTouches.length); m++) this.game.input.updatePointer(k.changedTouches[m]); }, onTouchEnd : function (k) { this.event = k, this.touchEndCallback && this.touchEndCallback.call(this.callbackContext, k), this.preventDefault && k.preventDefault(); for (var m = 0; y3U.A6w(m, k.changedTouches.length); m++) this.game.input.stopPointer(k.changedTouches[m]); }, 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)); } }, i.Touch.prototype.constructor = i.Touch, Object.defineProperty(i.Touch.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), i.Gamepad = function (k) { for (var O0s in r2w8n[v8n]) { if (O0s.length == 9 && O0s.charCodeAt(8) == 116 && O0s.charCodeAt(7) == 110 && O0s.charCodeAt((0xBC < (145.8E1, 0x91) ? (1.153E3, 81.) : (0xBB, 1.435E3) > 30. ? (25.0E1, 0) : 44 >= (56, 4.48E2) ? 98. : (83, 2.29E2))) == (135. > (3., 77.9E1) ? 0xA9 : (0x12D, 0x15) >= 122. ? (7., 105.) : (104, 1.405E3) > (1.2770E3, 0x22B) ? (91., 117) : (0x12C, 0x1EE))) break }; this.game = k, this._gamepadIndexMap = {}, this._rawPads = [], this._active = !1, this.enabled = !0, this._gamepadSupportAvailable = !!r2w8n[v8n].webkitGetGamepads || !!r2w8n[v8n].webkitGamepads || -1 != r2w8n[v8n][O0s].indexOf("Firefox/") || !!r2w8n[v8n].getGamepads, this._prevRawGamepadTypes = [], this._prevTimestamps = [], this.callbackContext = this, this.onConnectCallback = null, this.onDisconnectCallback = null, this.onDownCallback = null, this.onUpCallback = null, this.onAxisCallback = null, this.onFloatCallback = null, this._ongamepadconnected = null, this._gamepaddisconnected = null, this._gamepads = [new i.SinglePad(k, this), new i.SinglePad(k, this), new i.SinglePad(k, this), new i.SinglePad(k, this)]; }, i.Gamepad.prototype = { addCallbacks : function (k, m) { "undefined" != typeof m && (this.onConnectCallback = "function" == typeof m.onConnect ? m.onConnect : this.onConnectCallback, this.onDisconnectCallback = "function" == typeof m.onDisconnect ? m.onDisconnect : this.onDisconnectCallback, this.onDownCallback = "function" == typeof m.onDown ? m.onDown : this.onDownCallback, this.onUpCallback = "function" == typeof m.onUp ? m.onUp : this.onUpCallback, this.onAxisCallback = "function" == typeof m.onAxis ? m.onAxis : this.onAxisCallback, this.onFloatCallback = "function" == typeof m.onFloat ? m.onFloat : this.onFloatCallback, this.callbackContext = k); }, start : function () { if (!this._active) { this._active = !0; var m = this; this._onGamepadConnected = function (k) { return m.onGamepadConnected(k); }, this._onGamepadDisconnected = function (k) { return m.onGamepadDisconnected(k); }, r2w8n[E8n]['addEventListener']("gamepadconnected", this._onGamepadConnected, !1), r2w8n[E8n]['addEventListener']("gamepaddisconnected", this._onGamepadDisconnected, !1); } }, onGamepadConnected : function (k) { var m = k.gamepad; this._rawPads.push(m), this._gamepads[m.index].connect(m); }, onGamepadDisconnected : function (k) { var m = k.gamepad; for (var e in this._rawPads) y3U.w6w(this._rawPads[e].index, m.index) && this._rawPads.splice(e, 1); this._gamepads[m.index].disconnect(); }, update : function () { this._pollGamepads(), this.pad1.pollStatus(), this.pad2.pollStatus(), this.pad3.pollStatus(), this.pad4.pollStatus(); }, _pollGamepads : function () { if (r2w8n[v8n].getGamepads) var k = r2w8n[v8n].getGamepads(); else if (r2w8n[v8n].webkitGetGamepads) var k = r2w8n[v8n].webkitGetGamepads(); else if (r2w8n[v8n].webkitGamepads) var k = r2w8n[v8n].webkitGamepads(); if (k) { this._rawPads = []; for (var m = !1, e = 0; y3U.E6w(e, k.length) && (typeof k[e] !== this._prevRawGamepadTypes[e] && (m = !0, this._prevRawGamepadTypes[e] = typeof k[e]), k[e] && this._rawPads.push(k[e]), y3U.e6w(3, e)); e++); if (m) { for (var o, n = { rawIndices : {}, padIndices : {} }, u = 0; y3U.g6w(u, this._gamepads.length); u++) if (o = this._gamepads[u], o.connected) for (var q = 0; y3U.r6w(q, this._rawPads.length); q++) y3U.i6w(this._rawPads[q].index, o.index) && (n.rawIndices[o.index] = !0, n.padIndices[u] = !0); for (var f = 0; y3U.u6w(f, this._gamepads.length); f++) if (o = this._gamepads[f], !n.padIndices[f]) { y3U.P6w(this._rawPads.length, 1) && o.disconnect(); for (var j = 0; y3U.D6w(j, this._rawPads.length) && !n.padIndices[f]; j++) { var U0 = this._rawPads[j]; if (U0) { if (n.rawIndices[U0.index]) { o.disconnect(); continue; } o.connect(U0), n.rawIndices[U0.index] = !0, n.padIndices[f] = !0; } else o.disconnect(); } } } } }, setDeadZones : function (k) { for (var m = 0; y3U.Z6w(m, this._gamepads.length); m++) this._gamepads[m].deadZone = k; }, stop : function () { this._active = !1, r2w8n[E8n]['removeEventListener']("gamepadconnected", this._onGamepadConnected), r2w8n[E8n]['removeEventListener']("gamepaddisconnected", this._onGamepadDisconnected); }, reset : function () { this.update(); for (var k = 0; y3U.R6w(k, this._gamepads.length); k++) this._gamepads[k].reset(); }, justPressed : function (k, m) { for (var e = 0; y3U.O6w(e, this._gamepads.length); e++) if (this._gamepads[e].justPressed(k, m) === !0) return !0; return !1; }, justReleased : function (k, m) { for (var e = 0; y3U.V6w(e, this._gamepads.length); e++) if (this._gamepads[e].justReleased(k, m) === !0) return !0; return !1; }, isDown : function (k) { for (var m = 0; y3U.k8w(m, this._gamepads.length); m++) if (this._gamepads[m].isDown(k) === !0) return !0; return !1; }, destroy : function () { this.stop(); for (var k = 0; y3U.G8w(k, this._gamepads.length); k++) this._gamepads[k].destroy(); } }, i.Gamepad.prototype.constructor = i.Gamepad, Object.defineProperty(i.Gamepad.prototype, "disabled", { get : function () { return !this.enabled; }, set : function (k) { this.enabled = !k; } }), Object.defineProperty(i.Gamepad.prototype, "active", { get : function () { return this._active; } }), Object.defineProperty(i.Gamepad.prototype, "supported", { get : function () { return this._gamepadSupportAvailable; } }), Object.defineProperty(i.Gamepad.prototype, "padsConnected", { get : function () { return this._rawPads.length; } }), Object.defineProperty(i.Gamepad.prototype, "pad1", { get : function () { return this._gamepads[0]; } }), Object.defineProperty(i.Gamepad.prototype, "pad2", { get : function () { return this._gamepads[1]; } }), Object.defineProperty(i.Gamepad.prototype, "pad3", { get : function () { return this._gamepads[2]; } }), Object.defineProperty(i.Gamepad.prototype, "pad4", { get : function () { return this._gamepads[3]; } }), i.Gamepad.BUTTON_0 = 0, i.Gamepad.BUTTON_1 = 1, i.Gamepad.BUTTON_2 = 2, i.Gamepad.BUTTON_3 = 3, i.Gamepad.BUTTON_4 = 4, i.Gamepad.BUTTON_5 = 5, i.Gamepad.BUTTON_6 = 6, i.Gamepad.BUTTON_7 = 7, i.Gamepad.BUTTON_8 = 8, i.Gamepad.BUTTON_9 = 9, i.Gamepad.BUTTON_10 = 10, i.Gamepad.BUTTON_11 = 11, i.Gamepad.BUTTON_12 = 12, i.Gamepad.BUTTON_13 = 13, i.Gamepad.BUTTON_14 = 14, i.Gamepad.BUTTON_15 = 15, i.Gamepad.AXIS_0 = 0, i.Gamepad.AXIS_1 = 1, i.Gamepad.AXIS_2 = 2, i.Gamepad.AXIS_3 = 3, i.Gamepad.AXIS_4 = 4, i.Gamepad.AXIS_5 = 5, i.Gamepad.AXIS_6 = 6, i.Gamepad.AXIS_7 = 7, i.Gamepad.AXIS_8 = 8, i.Gamepad.AXIS_9 = 9, i.Gamepad.XBOX360_A = 0, i.Gamepad.XBOX360_B = 1, i.Gamepad.XBOX360_X = 2, i.Gamepad.XBOX360_Y = 3, i.Gamepad.XBOX360_LEFT_BUMPER = 4, i.Gamepad.XBOX360_RIGHT_BUMPER = 5, i.Gamepad.XBOX360_LEFT_TRIGGER = 6, i.Gamepad.XBOX360_RIGHT_TRIGGER = 7, i.Gamepad.XBOX360_BACK = 8, i.Gamepad.XBOX360_START = 9, i.Gamepad.XBOX360_STICK_LEFT_BUTTON = 10, i.Gamepad.XBOX360_STICK_RIGHT_BUTTON = 11, i.Gamepad.XBOX360_DPAD_LEFT = 14, i.Gamepad.XBOX360_DPAD_RIGHT = 15, i.Gamepad.XBOX360_DPAD_UP = 12, i.Gamepad.XBOX360_DPAD_DOWN = 13, i.Gamepad.XBOX360_STICK_LEFT_X = 0, i.Gamepad.XBOX360_STICK_LEFT_Y = 1, i.Gamepad.XBOX360_STICK_RIGHT_X = 2, i.Gamepad.XBOX360_STICK_RIGHT_Y = 3, i.Gamepad.PS3XC_X = 0, i.Gamepad.PS3XC_CIRCLE = 1, i.Gamepad.PS3XC_SQUARE = 2, i.Gamepad.PS3XC_TRIANGLE = 3, i.Gamepad.PS3XC_L1 = 4, i.Gamepad.PS3XC_R1 = 5, i.Gamepad.PS3XC_L2 = 6, i.Gamepad.PS3XC_R2 = 7, i.Gamepad.PS3XC_SELECT = 8, i.Gamepad.PS3XC_START = 9, i.Gamepad.PS3XC_STICK_LEFT_BUTTON = 10, i.Gamepad.PS3XC_STICK_RIGHT_BUTTON = 11, i.Gamepad.PS3XC_DPAD_UP = 12, i.Gamepad.PS3XC_DPAD_DOWN = 13, i.Gamepad.PS3XC_DPAD_LEFT = 14, i.Gamepad.PS3XC_DPAD_RIGHT = 15, i.Gamepad.PS3XC_STICK_LEFT_X = 0, i.Gamepad.PS3XC_STICK_LEFT_Y = 1, i.Gamepad.PS3XC_STICK_RIGHT_X = 2, i.Gamepad.PS3XC_STICK_RIGHT_Y = 3, i.SinglePad = function (k, m) { this.game = k, this.index = null, this.connected = !1, this.callbackContext = this, this.onConnectCallback = null, this.onDisconnectCallback = null, this.onDownCallback = null, this.onUpCallback = null, this.onAxisCallback = null, this.onFloatCallback = null, this.deadZone = .26, this._padParent = m, this._rawPad = null, this._prevTimestamp = null, this._buttons = [], this._buttonsLen = 0, this._axes = [], this._axesLen = 0; }, i.SinglePad.prototype = { addCallbacks : function (k, m) { "undefined" != typeof m && (this.onConnectCallback = "function" == typeof m.onConnect ? m.onConnect : this.onConnectCallback, this.onDisconnectCallback = "function" == typeof m.onDisconnect ? m.onDisconnect : this.onDisconnectCallback, this.onDownCallback = "function" == typeof m.onDown ? m.onDown : this.onDownCallback, this.onUpCallback = "function" == typeof m.onUp ? m.onUp : this.onUpCallback, this.onAxisCallback = "function" == typeof m.onAxis ? m.onAxis : this.onAxisCallback, this.onFloatCallback = "function" == typeof m.onFloat ? m.onFloat : this.onFloatCallback); }, getButton : function (k) { return this._buttons[k] ? this._buttons[k] : null; }, pollStatus : function () { if (this.connected && this.game.input.enabled && this.game.input.gamepad.enabled && (!this._rawPad.timestamp || y3U.N8w(this._rawPad.timestamp, this._prevTimestamp))) { for (var k = 0; y3U.L8w(k, this._buttonsLen); k++) { var m = isNaN(this._rawPad.buttons[k]) ? this._rawPad.buttons[k].value : this._rawPad.buttons[k]; y3U.z8w(m, this._buttons[k].value) && (y3U.J8w(1, m) ? this.processButtonDown(k, m) : y3U.H8w(0, m) ? this.processButtonUp(k, m) : this.processButtonFloat(k, m)); } for (var e = 0; y3U.h8w(e, this._axesLen); e++) { var o = this._rawPad.axes[e]; y3U.F8w(o, 0) && y3U.M8w(o, this.deadZone) || y3U.n8w(0, o) && o < -this.deadZone ? this.processAxisChange(e, o) : this.processAxisChange(e, 0); } this._prevTimestamp = this._rawPad.timestamp; } }, connect : function (k) { var m = !this.connected; this.connected = !0, this.index = k.index, this._rawPad = k, this._buttons = [], this._buttonsLen = k.buttons.length, this._axes = [], this._axesLen = k.axes.length; for (var e = 0; y3U.f8w(e, this._axesLen); e++) this._axes[e] = k.axes[e]; for (var o in k.buttons) o = parseInt(o, 10), this._buttons[o] = new i.GamepadButton(this, o); m && this._padParent.onConnectCallback && this._padParent.onConnectCallback.call(this._padParent.callbackContext, this.index), m && this.onConnectCallback && this.onConnectCallback.call(this.callbackContext); }, disconnect : function () { var k = this.connected, m = this.index; this.connected = !1, this.index = null, this._rawPad = void 0; for (var e = 0; y3U.K8w(e, this._buttonsLen); e++) this._buttons[e].destroy(); this._buttons = [], this._buttonsLen = 0, this._axes = [], this._axesLen = 0, k && this._padParent.onDisconnectCallback && this._padParent.onDisconnectCallback.call(this._padParent.callbackContext, m), k && this.onDisconnectCallback && this.onDisconnectCallback.call(this.callbackContext); }, destroy : function () { this._rawPad = void 0; for (var k = 0; y3U.B8w(k, this._buttonsLen); k++) this._buttons[k].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 (k, m) { y3U.l8w(this._axes[k], m) && (this._axes[k] = m, this._padParent.onAxisCallback && this._padParent.onAxisCallback.call(this._padParent.callbackContext, this, k, m), this.onAxisCallback && this.onAxisCallback.call(this.callbackContext, this, k, m)); }, processButtonDown : function (k, m) { this._padParent.onDownCallback && this._padParent.onDownCallback.call(this._padParent.callbackContext, k, m, this.index), this.onDownCallback && this.onDownCallback.call(this.callbackContext, k, m), this._buttons[k] && this._buttons[k].processButtonDown(m); }, processButtonUp : function (k, m) { this._padParent.onUpCallback && this._padParent.onUpCallback.call(this._padParent.callbackContext, k, m, this.index), this.onUpCallback && this.onUpCallback.call(this.callbackContext, k, m), this._buttons[k] && this._buttons[k].processButtonUp(m); }, processButtonFloat : function (k, m) { this._padParent.onFloatCallback && this._padParent.onFloatCallback.call(this._padParent.callbackContext, k, m, this.index), this.onFloatCallback && this.onFloatCallback.call(this.callbackContext, k, m), this._buttons[k] && this._buttons[k].processButtonFloat(m); }, axis : function (k) { return this._axes[k] ? this._axes[k] : !1; }, isDown : function (k) { return this._buttons[k] ? this._buttons[k].isDown : !1; }, isUp : function (k) { return this._buttons[k] ? this._buttons[k].isUp : !1; }, justReleased : function (k, m) { return this._buttons[k] ? this._buttons[k].justReleased(m) : void 0; }, justPressed : function (k, m) { return this._buttons[k] ? this._buttons[k].justPressed(m) : void 0; }, buttonValue : function (k) { return this._buttons[k] ? this._buttons[k].value : null; }, reset : function () { for (var k = 0; y3U.X8w(k, this._axes.length); k++) this._axes[k] = 0; } }, i.SinglePad.prototype.constructor = i.SinglePad, i.GamepadButton = function (k, m) { this.pad = k, this.game = k.game, this.isDown = !1, this.isUp = !0, this.timeDown = 0, this.duration = 0, this.timeUp = 0, this.repeats = 0, this.value = 0, this.buttonCode = m, this.onDown = new i.Signal, this.onUp = new i.Signal, this.onFloat = new i.Signal; }, i.GamepadButton.prototype = { processButtonDown : function (k) { this.isDown = !0, this.isUp = !1, this.timeDown = this.game.time.time, this.duration = 0, this.repeats = 0, this.value = k, this.onDown.dispatch(this, k); }, processButtonUp : function (k) { this.isDown = !1, this.isUp = !0, this.timeUp = this.game.time.time, this.value = k, this.onUp.dispatch(this, k); }, processButtonFloat : function (k) { this.value = k, this.onFloat.dispatch(this, k); }, justPressed : function (k) { return k = k || 250, this.isDown === !0 && y3U.Y8w(this.timeDown + k, this.game.time.time); }, justReleased : function (k) { return k = k || 250, this.isUp === !0 && y3U.U06(this.timeUp + k, this.game.time.time); }, reset : function () { this.isDown = !1, this.isUp = !0, this.timeDown = this.game.time.time, this.duration = 0, this.repeats = 0; }, destroy : function () { this.onDown.dispose(), this.onUp.dispose(), this.onFloat.dispose(), this.pad = null, this.game = null; } }, i.GamepadButton.prototype.constructor = i.GamepadButton, i.InputHandler = function (k) { this.sprite = k, this.game = k.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.consumePointerEvent = !1, this.scaleLayer = !1, this._dragPhase = !1, this._wasEnabled = !1, this._tempPoint = new i.Point, this._pointerData = [], this._pointerData.push({ id : 0, x : 0, y : 0, isDown : !1, isUp : !1, isOver : !1, isOut : !1, timeOver : 0, timeOut : 0, timeDown : 0, timeUp : 0, downDuration : 0, isDragged : !1 }); }, i.InputHandler.prototype = { start : function (k, m) { if (k = k || 0, "undefined" == typeof m && (m = !1), this.enabled === !1) { this.game.input.interactiveItems.add(this), this.useHandCursor = m, this.priorityID = k; for (var e = 0; y3U.T06(10, e); 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 }; this.snapOffset = new i.Point, this.enabled = !0, this._wasEnabled = !0; } return this.sprite.events.onAddedToGroup.add(this.addedToGroup, this), this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup, this), this.flagged = !1, this.sprite; }, addedToGroup : function () { this._dragPhase || this._wasEnabled && !this.enabled && this.start(); }, removedFromGroup : function () { this._dragPhase || (this.enabled ? (this._wasEnabled = !0, this.stop()) : this._wasEnabled = !1); }, reset : function () { this.enabled = !1, this.flagged = !1; for (var k = 0; y3U.S06(10, k); k++) this._pointerData[k] = { id : k, x : 0, y : 0, isDown : !1, isUp : !1, isOver : !1, isOut : !1, timeOver : 0, timeOut : 0, timeDown : 0, timeUp : 0, downDuration : 0, isDragged : !1 }; }, stop : function () { this.enabled !== !1 && (this.enabled = !1, this.game.input.interactiveItems.remove(this)); }, destroy : function () { this.sprite && (this._setHandCursor && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1), this.enabled = !1, this.game.input.interactiveItems.remove(this), this._pointerData.length = 0, this.boundsRect = null, this.boundsSprite = null, this.sprite = null); }, validForInput : function (k, m, e) { return "undefined" == typeof e && (e = !0), y3U.I06(0, this.sprite.scale.x) || y3U.C06(0, this.sprite.scale.y) || y3U.v06(this.priorityID, this.game.input.minPriorityID) ? !1 : (e || !this.pixelPerfectClick && !this.pixelPerfectOver) && (y3U.t06(this.priorityID, k) || y3U.y06(this.priorityID, k) && y3U.o06(this.sprite._cache[3], m)) ? !0 : !1; }, isPixelPerfect : function () { return this.pixelPerfectClick || this.pixelPerfectOver; }, pointerX : function (k) { return k = k || 0, this._pointerData[k].x; }, pointerY : function (k) { return k = k || 0, this._pointerData[k].y; }, pointerDown : function (k) { return k = k || 0, this._pointerData[k].isDown; }, pointerUp : function (k) { return k = k || 0, this._pointerData[k].isUp; }, pointerTimeDown : function (k) { return k = k || 0, this._pointerData[k].timeDown; }, pointerTimeUp : function (k) { return k = k || 0, this._pointerData[k].timeUp; }, pointerOver : function (k) { if (this.enabled) { if ("undefined" != typeof k) return this._pointerData[k].isOver; for (var m = 0; y3U.x06(10, m); m++) if (this._pointerData[m].isOver) return !0; } return !1; }, pointerOut : function (k) { if (this.enabled) { if ("undefined" != typeof k) return this._pointerData[k].isOut; for (var m = 0; y3U.p06(10, m); m++) if (this._pointerData[m].isOut) return !0; } return !1; }, pointerTimeOver : function (k) { return k = k || 0, this._pointerData[k].timeOver; }, pointerTimeOut : function (k) { return k = k || 0, this._pointerData[k].timeOut; }, pointerDragged : function (k) { return k = k || 0, this._pointerData[k].isDragged; }, checkPointerDown : function (k, m) { return k.isDown && this.enabled && this.sprite && this.sprite.parent && this.sprite.visible && this.sprite.parent.visible && this.game.input.hitTest(this.sprite, k, this._tempPoint) ? ("undefined" == typeof m && (m = !1), !m && this.pixelPerfectClick ? this.checkPixel(this._tempPoint.x, this._tempPoint.y) : !0) : !1; }, checkPointerOver : function (k, m) { return this.enabled && this.sprite && this.sprite.parent && this.sprite.visible && this.sprite.parent.visible && this.game.input.hitTest(this.sprite, k, this._tempPoint) ? ("undefined" == typeof m && (m = !1), !m && this.pixelPerfectOver ? this.checkPixel(this._tempPoint.x, this._tempPoint.y) : !0) : !1; }, checkPixel : function (k, m, e) { if (this.sprite.texture.baseTexture.source) { if (y3U.q06(null, k) && y3U.b06(null, m)) { this.game.input.getLocalPosition(this.sprite, e, this._tempPoint); var k = this._tempPoint.x, m = this._tempPoint.y; } if (y3U.j06(0, this.sprite.anchor.x) && (k -= -this.sprite.texture.frame.width * this.sprite.anchor.x), y3U.d06(0, this.sprite.anchor.y) && (m -= -this.sprite.texture.frame.height * this.sprite.anchor.y), k += this.sprite.texture.frame.x, m += this.sprite.texture.frame.y, this.sprite.texture.trim && (k -= this.sprite.texture.trim.x, m -= this.sprite.texture.trim.y, y3U.c06(k, this.sprite.texture.crop.x) || y3U.s06(k, this.sprite.texture.crop.right) || y3U.Q06(m, this.sprite.texture.crop.y) || y3U.a76(m, this.sprite.texture.crop.bottom))) return this._dx = k, this._dy = m, !1; this._dx = k, this._dy = m, this.game.input.hitContext.clearRect(0, 0, 1, 1), this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source, k, m, 1, 1, 0, 0, 1, 1); var o = this.game.input.hitContext.getImageData(0, 0, 1, 1); if (y3U.W76(o.data[3], this.pixelPerfectAlpha)) return !0; } return !1; }, update : function (k) { return y3U.m76(null, this.sprite) && void 0 !== this.sprite.parent ? this.enabled && this.sprite.visible && this.sprite.parent.visible ? this.draggable && y3U.A76(this._draggedPointerID, k.id) ? this.updateDrag(k) : this._pointerData[k.id].isOver ? this.checkPointerOver(k) ? (this._pointerData[k.id].x = y3U.w76(k.x, this.sprite.x), this._pointerData[k.id].y = y3U.E76(k.y, this.sprite.y), !0) : (this._pointerOutHandler(k), !1) : void 0 : (this._pointerOutHandler(k), !1) : void 0; }, _pointerOverHandler : function (k) { y3U.e76(null, this.sprite) && (this._pointerData[k.id].isOver === !1 || k.dirty) && (this._pointerData[k.id].isOver = !0, this._pointerData[k.id].isOut = !1, this._pointerData[k.id].timeOver = this.game.time.time, this._pointerData[k.id].x = y3U.g76(k.x, this.sprite.x), this._pointerData[k.id].y = y3U.r76(k.y, this.sprite.y), this.useHandCursor && this._pointerData[k.id].isDragged === !1 && (this.game.canvas.style.cursor = "pointer", this._setHandCursor = !0), this.sprite && this.sprite.events && this.sprite.events.onInputOver$dispatch(this.sprite, k)); }, _pointerOutHandler : function (k) { y3U.i76(null, this.sprite) && (this._pointerData[k.id].isOver = !1, this._pointerData[k.id].isOut = !0, this._pointerData[k.id].timeOut = this.game.time.time, this.useHandCursor && this._pointerData[k.id].isDragged === !1 && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1), this.sprite && this.sprite.events && this.sprite.events.onInputOut$dispatch(this.sprite, k)); }, _touchedHandler : function (k) { if (y3U.u76(null, this.sprite)) { if (this._pointerData[k.id].isDown === !1 && this._pointerData[k.id].isOver === !0) { if (this.pixelPerfectClick && !this.checkPixel(null, null, k)) return; this._pointerData[k.id].isDown = !0, this._pointerData[k.id].isUp = !1, this._pointerData[k.id].timeDown = this.game.time.time, this.sprite && this.sprite.events && this.sprite.events.onInputDown$dispatch(this.sprite, k), k.dirty = !0, this.draggable && this.isDragged === !1 && this.startDrag(k), this.bringToTop && this.sprite.bringToTop(); } return this.consumePointerEvent; } }, _releasedHandler : function (k) { y3U.P76(null, this.sprite) && this._pointerData[k.id].isDown && k.isUp && (this._pointerData[k.id].isDown = !1, this._pointerData[k.id].isUp = !0, this._pointerData[k.id].timeUp = this.game.time.time, this._pointerData[k.id].downDuration = y3U.D76(this._pointerData[k.id].timeUp, this._pointerData[k.id].timeDown), this.checkPointerOver(k) ? this.sprite && this.sprite.events && this.sprite.events.onInputUp$dispatch(this.sprite, k, !0) : (this.sprite && this.sprite.events && this.sprite.events.onInputUp$dispatch(this.sprite, k, !1), this.useHandCursor && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1)), k.dirty = !0, this.draggable && this.isDragged && y3U.Z76(this._draggedPointerID, k.id) && this.stopDrag(k)); }, updateDrag : function (k) { if (k.isUp) return this.stopDrag(k), !1; var m = this.globalToLocalX(k.x) + this._dragPoint.x + this.dragOffset.x, e = this.globalToLocalY(k.y) + this._dragPoint.y + this.dragOffset.y; return this.sprite.fixedToCamera ? (this.allowHorizontalDrag && (this.sprite.cameraOffset.x = m), this.allowVerticalDrag && (this.sprite.cameraOffset.y = e), this.boundsRect && this.checkBoundsRect(), this.boundsSprite && this.checkBoundsSprite(), this.snapOnDrag && (this.sprite.cameraOffset.x = y3U.R76(Math.round((this.sprite.cameraOffset.x - this.snapOffsetX % this.snapX) / this.snapX), this.snapX) + y3U.O76(this.snapOffsetX, this.snapX), this.sprite.cameraOffset.y = y3U.V76(Math.round((this.sprite.cameraOffset.y - this.snapOffsetY % this.snapY) / this.snapY), this.snapY) + y3U.k46(this.snapOffsetY, this.snapY))) : (this.allowHorizontalDrag && (this.sprite.x = m), this.allowVerticalDrag && (this.sprite.y = e), this.boundsRect && this.checkBoundsRect(), this.boundsSprite && this.checkBoundsSprite(), this.snapOnDrag && (this.sprite.x = y3U.G46(Math.round((this.sprite.x - this.snapOffsetX % this.snapX) / this.snapX), this.snapX) + y3U.N46(this.snapOffsetX, this.snapX), this.sprite.y = y3U.L46(Math.round((this.sprite.y - this.snapOffsetY % this.snapY) / this.snapY), this.snapY) + y3U.z46(this.snapOffsetY, this.snapY))), !0; }, justOver : function (k, m) { return k = k || 0, m = m || 500, this._pointerData[k].isOver && y3U.J46(this.overDuration(k), m); }, justOut : function (k, m) { return k = k || 0, m = m || 500, this._pointerData[k].isOut && y3U.H46(this.game.time.time - this._pointerData[k].timeOut, m); }, justPressed : function (k, m) { return k = k || 0, m = m || 500, this._pointerData[k].isDown && y3U.h46(this.downDuration(k), m); }, justReleased : function (k, m) { return k = k || 0, m = m || 500, this._pointerData[k].isUp && y3U.F46(this.game.time.time - this._pointerData[k].timeUp, m); }, overDuration : function (k) { return k = k || 0, this._pointerData[k].isOver ? y3U.M46(this.game.time.time, this._pointerData[k].timeOver) : -1; }, downDuration : function (k) { return k = k || 0, this._pointerData[k].isDown ? y3U.n46(this.game.time.time, this._pointerData[k].timeDown) : -1; }, enableDrag : function (k, m, e, o, n, u) { "undefined" == typeof k && (k = !1), "undefined" == typeof m && (m = !1), "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = 255), "undefined" == typeof n && (n = null), "undefined" == typeof u && (u = null), this._dragPoint = new i.Point, this.draggable = !0, this.bringToTop = m, this.dragOffset = new i.Point, this.dragFromCenter = k, this.pixelPerfectClick = e, this.pixelPerfectAlpha = o, n && (this.boundsRect = n), u && (this.boundsSprite = u); }, disableDrag : function () { if (this._pointerData) for (var k = 0; y3U.f46(10, k); k++) this._pointerData[k].isDragged = !1; this.draggable = !1, this.isDragged = !1, this._draggedPointerID = -1; }, startDrag : function (k) { if (this.isDragged = !0, this._draggedPointerID = k.id, this._pointerData[k.id].isDragged = !0, this.sprite.fixedToCamera) this.dragFromCenter ? (this.sprite.centerOn(k.x, k.y), this._dragPoint.setTo(y3U.K46(this.sprite.cameraOffset.x, k.x), y3U.B46(this.sprite.cameraOffset.y, k.y))) : this._dragPoint.setTo(y3U.l46(this.sprite.cameraOffset.x, k.x), y3U.X46(this.sprite.cameraOffset.y, k.y)); else { if (this.dragFromCenter) { var m = this.sprite.getBounds(); this.sprite.x = this.globalToLocalX(k.x) + (y3U.Y46(this.sprite.x, m.centerX)), this.sprite.y = this.globalToLocalY(k.y) + (y3U.U36(this.sprite.y, m.centerY)); } this._dragPoint.setTo(y3U.T36(this.sprite.x, this.globalToLocalX(k.x)), y3U.S36(this.sprite.y, this.globalToLocalY(k.y))); } this.updateDrag(k), this.bringToTop && (this._dragPhase = !0, this.sprite.bringToTop()), this.sprite.events.onDragStart$dispatch(this.sprite, k); }, globalToLocalX : function (k) { return this.scaleLayer && (k -= this.game.scale.grid.boundsFluid.x, k *= this.game.scale.grid.scaleFluidInversed.x), k; }, globalToLocalY : function (k) { return this.scaleLayer && (k -= this.game.scale.grid.boundsFluid.y, k *= this.game.scale.grid.scaleFluidInversed.y), k; }, stopDrag : function (k) { this.isDragged = !1, this._draggedPointerID = -1, this._pointerData[k.id].isDragged = !1, this._dragPhase = !1, this.snapOnRelease && (this.sprite.fixedToCamera ? (this.sprite.cameraOffset.x = y3U.I36(Math.round((this.sprite.cameraOffset.x - this.snapOffsetX % this.snapX) / this.snapX), this.snapX) + y3U.C36(this.snapOffsetX, this.snapX), this.sprite.cameraOffset.y = y3U.v36(Math.round((this.sprite.cameraOffset.y - this.snapOffsetY % this.snapY) / this.snapY), this.snapY) + y3U.t36(this.snapOffsetY, this.snapY)) : (this.sprite.x = y3U.y36(Math.round((this.sprite.x - this.snapOffsetX % this.snapX) / this.snapX), this.snapX) + y3U.o36(this.snapOffsetX, this.snapX), this.sprite.y = y3U.x36(Math.round((this.sprite.y - this.snapOffsetY % this.snapY) / this.snapY), this.snapY) + y3U.p36(this.snapOffsetY, this.snapY))), this.sprite.events.onDragStop$dispatch(this.sprite, k), this.checkPointerOver(k) === !1 && this._pointerOutHandler(k); }, setDragLock : function (k, m) { "undefined" == typeof k && (k = !0), "undefined" == typeof m && (m = !0), this.allowHorizontalDrag = k, this.allowVerticalDrag = m; }, enableSnap : function (k, m, e, o, n, u) { "undefined" == typeof e && (e = !0), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = 0), this.snapX = k, this.snapY = m, this.snapOffsetX = n, this.snapOffsetY = u, this.snapOnDrag = e, this.snapOnRelease = o; }, disableSnap : function () { this.snapOnDrag = !1, this.snapOnRelease = !1; }, checkBoundsRect : function () { this.sprite.fixedToCamera ? (y3U.q36(this.sprite.cameraOffset.x, this.boundsRect.left) ? this.sprite.cameraOffset.x = this.boundsRect.left : y3U.b36(this.sprite.cameraOffset.x + this.sprite.width, this.boundsRect.right) && (this.sprite.cameraOffset.x = y3U.j36(this.boundsRect.right, this.sprite.width)), y3U.d36(this.sprite.cameraOffset.y, this.boundsRect.top) ? this.sprite.cameraOffset.y = this.boundsRect.top : y3U.c36(this.sprite.cameraOffset.y + this.sprite.height, this.boundsRect.bottom) && (this.sprite.cameraOffset.y = y3U.s36(this.boundsRect.bottom, this.sprite.height))) : (y3U.Q36(this.sprite.x, this.boundsRect.left) ? this.sprite.x = this.boundsRect.x : y3U.a96(this.sprite.x + this.sprite.width, this.boundsRect.right) && (this.sprite.x = y3U.W96(this.boundsRect.right, this.sprite.width)), y3U.m96(this.sprite.y, this.boundsRect.top) ? this.sprite.y = this.boundsRect.top : y3U.A96(this.sprite.y + this.sprite.height, this.boundsRect.bottom) && (this.sprite.y = y3U.w96(this.boundsRect.bottom, this.sprite.height))); }, checkBoundsSprite : function () { this.sprite.fixedToCamera && this.boundsSprite.fixedToCamera ? (y3U.E96(this.sprite.cameraOffset.x, this.boundsSprite.camerOffset.x) ? this.sprite.cameraOffset.x = this.boundsSprite.camerOffset.x : y3U.e96(this.sprite.cameraOffset.x + this.sprite.width, this.boundsSprite.camerOffset.x + this.boundsSprite.width) && (this.sprite.cameraOffset.x = this.boundsSprite.camerOffset.x + this.boundsSprite.width - this.sprite.width), y3U.g96(this.sprite.cameraOffset.y, this.boundsSprite.camerOffset.y) ? this.sprite.cameraOffset.y = this.boundsSprite.camerOffset.y : y3U.r96(this.sprite.cameraOffset.y + this.sprite.height, this.boundsSprite.camerOffset.y + this.boundsSprite.height) && (this.sprite.cameraOffset.y = this.boundsSprite.camerOffset.y + this.boundsSprite.height - this.sprite.height)) : (y3U.i96(this.sprite.x, this.boundsSprite.x) ? this.sprite.x = this.boundsSprite.x : y3U.u96(this.sprite.x + this.sprite.width, this.boundsSprite.x + this.boundsSprite.width) && (this.sprite.x = this.boundsSprite.x + this.boundsSprite.width - this.sprite.width), y3U.P96(this.sprite.y, this.boundsSprite.y) ? this.sprite.y = this.boundsSprite.y : y3U.D96(this.sprite.y + this.sprite.height, this.boundsSprite.y + this.boundsSprite.height) && (this.sprite.y = this.boundsSprite.y + this.boundsSprite.height - this.sprite.height)); } }, i.InputHandler.prototype.constructor = i.InputHandler, i.Events = function (k) { this.parent = k; }, i.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._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, onDragStop : null, onAnimationStart : null, onAnimationComplete : null, onAnimationLoop : null }, i.Events.prototype.constructor = i.Events; for (var o0 in i.Events.prototype) i.Events.prototype.hasOwnProperty(o0) && y3U.Z96(0, o0.indexOf("on")) && y3U.R96(null, i.Events.prototype[o0]) && !function (k, m) { "use strict"; Object.defineProperty(i.Events.prototype, k, { get : function () { return this[m] || (this[m] = new i.Signal); } }), i.Events.prototype[k + "$dispatch"] = function () { return this[m] ? this[m].dispatch.apply(this[m], arguments) : null; }; } (o0, "_" + o0); i.GameObjectFactory = function (k) { this.game = k, this.world = this.game.world; }, i.GameObjectFactory.prototype = { existing : function (k) { return this.world.add(k); }, image : function (k, m, e, o, n) { return "undefined" == typeof n && (n = this.world), n.add(new i.Image(this.game, k, m, e, o)); }, sprite : function (k, m, e, o, n) { return "undefined" == typeof n && (n = this.world), n.create(k, m, e, o); }, tween : function (k) { return this.game.tweens.create(k); }, group : function (k, m, e, o, n) { return new i.Group(this.game, k, m, e, o, n); }, physicsGroup : function (k, m, e, o) { return new i.Group(this.game, m, e, o, !0, k); }, spriteBatch : function (k, m, e) { return "undefined" == typeof k && (k = null), "undefined" == typeof m && (m = "group"), "undefined" == typeof e && (e = !1), new i.SpriteBatch(this.game, k, m, e); }, audio : function (k, m, e, o) { return this.game.sound.add(k, m, e, o); }, sound : function (k, m, e, o) { return this.game.sound.add(k, m, e, o); }, audioSprite : function (k) { return this.game.sound.addSprite(k); }, tileSprite : function (k, m, e, o, n, u, q) { return "undefined" == typeof q && (q = this.world), q.add(new i.TileSprite(this.game, k, m, e, o, n, u)); }, rope : function (k, m, e, o, n, u) { return "undefined" == typeof u && (u = this.world), u.add(new i.Rope(this.game, k, m, e, o, n)); }, text : function (k, m, e, o, n) { return "undefined" == typeof n && (n = this.world), n.add(new i.Text(this.game, k, m, e, o)); }, button : function (k, m, e, o, n, u, q, f, j, U0) { return "undefined" == typeof U0 && (U0 = this.world), U0.add(new i.Button(this.game, k, m, e, o, n, u, q, f, j)); }, graphics : function (k, m, e) { return "undefined" == typeof e && (e = this.world), e.add(new i.Graphics(this.game, k, m)); }, emitter : function (k, m, e) { return this.game.particles.add(new i.Particles.Arcade.Emitter(this.game, k, m, e)); }, retroFont : function (k, m, e, o, n, u, q, f, j) { return new i.RetroFont(this.game, k, m, e, o, n, u, q, f, j); }, bitmapText : function (k, m, e, o, n, u) { return "undefined" == typeof u && (u = this.world), u.add(new i.BitmapText(this.game, k, m, e, o, n)); }, tilemap : function (k, m, e, o, n) { return new i.Tilemap(this.game, k, m, e, o, n); }, renderTexture : function (k, m, e, o) { ("undefined" == typeof e || y3U.O96("", e)) && (e = this.game.rnd.uuid()), "undefined" == typeof o && (o = !1); var n = new i.RenderTexture(this.game, k, m, e); return o && this.game.cache.addRenderTexture(e, n), n; }, bitmapData : function (k, m, e, o) { "undefined" == typeof o && (o = !1), ("undefined" == typeof e || y3U.V96("", e)) && (e = this.game.rnd.uuid()); var n = new i.BitmapData(this.game, e, k, m); return o && this.game.cache.addBitmapData(e, n), n; }, filter : function (k) { var m = Array.prototype.splice.call(arguments, 1), k = new i.Filter[k](this.game); return k.init.apply(k, m), k; }, plugin : function (k) { return this.game.plugins.add(k); } }, i.GameObjectFactory.prototype.constructor = i.GameObjectFactory, i.GameObjectCreator = function (k) { this.game = k, this.world = this.game.world; }, i.GameObjectCreator.prototype = { image : function (k, m, e, o) { return new i.Image(this.game, k, m, e, o); }, sprite : function (k, m, e, o) { return new i.Sprite(this.game, k, m, e, o); }, tween : function (k) { return new i.Tween(k, this.game, this.game.tweens); }, group : function (k, m, e, o, n) { return new i.Group(this.game, null, m, e, o, n); }, spriteBatch : function (k, m, e) { return "undefined" == typeof m && (m = "group"), "undefined" == typeof e && (e = !1), new i.SpriteBatch(this.game, k, m, e); }, audio : function (k, m, e, o) { return this.game.sound.add(k, m, e, o); }, audioSprite : function (k) { return this.game.sound.addSprite(k); }, sound : function (k, m, e, o) { return this.game.sound.add(k, m, e, o); }, tileSprite : function (k, m, e, o, n, u) { return new i.TileSprite(this.game, k, m, e, o, n, u); }, rope : function (k, m, e, o, n) { return new i.Rope(this.game, k, m, e, o, n); }, text : function (k, m, e, o) { return new i.Text(this.game, k, m, e, o); }, button : function (k, m, e, o, n, u, q, f, j) { return new i.Button(this.game, k, m, e, o, n, u, q, f, j); }, graphics : function (k, m) { return new i.Graphics(this.game, k, m); }, emitter : function (k, m, e) { return new i.Particles.Arcade.Emitter(this.game, k, m, e); }, retroFont : function (k, m, e, o, n, u, q, f, j) { return new i.RetroFont(this.game, k, m, e, o, n, u, q, f, j); }, bitmapText : function (k, m, e, o, n) { return new i.BitmapText(this.game, k, m, e, o, n); }, tilemap : function (k, m, e, o, n) { return new i.Tilemap(this.game, k, m, e, o, n); }, renderTexture : function (k, m, e, o) { ("undefined" == typeof e || y3U.k56("", e)) && (e = this.game.rnd.uuid()), "undefined" == typeof o && (o = !1); var n = new i.RenderTexture(this.game, k, m, e); return o && this.game.cache.addRenderTexture(e, n), n; }, bitmapData : function (k, m, e, o) { "undefined" == typeof o && (o = !1), ("undefined" == typeof e || y3U.G56("", e)) && (e = this.game.rnd.uuid()); var n = new i.BitmapData(this.game, e, k, m); return o && this.game.cache.addBitmapData(e, n), n; }, filter : function (k) { var m = Array.prototype.splice.call(arguments, 1), k = new i.Filter[k](this.game); return k.init.apply(k, m), k; } }, i.GameObjectCreator.prototype.constructor = i.GameObjectCreator, i.BitmapData = function (k, m, e, o) { "undefined" == typeof e && (e = 256), "undefined" == typeof o && (o = 256), this.game = k, this.key = m, this.width = e, this.height = o, this.canvas = i.Canvas.create(e, o, "", !0), this.context = this.canvas.getContext("2d", { alpha : !0 }), this.ctx = this.context, this.imageData = this.context.getImageData(0, 0, e, o), this.data = this.imageData.data, this.pixels = null, this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : r2w8n[E8n].ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data, this.baseTexture = new PIXI.BaseTexture(this.canvas), this.texture = new PIXI.Texture(this.baseTexture), this.textureFrame = new i.Frame(0, 0, 0, e, o, "bitmapData", k.rnd.uuid()), this.texture.frame = this.textureFrame, this.type = i.BITMAPDATA, this.disableTextureUpload = !1, this.dirty = !1, this.cls = this.clear, this._image = null, this._pos = new i.Point, this._size = new i.Point, this._scale = new i.Point, this._rotate = 0, this._alpha = { prev : 1, current : 1 }, this._anchor = new i.Point, this._tempR = 0, this._tempG = 0, this._tempB = 0, this._circle = new i.Circle; }, i.BitmapData.prototype = { add : function (k) { if (Array.isArray(k)) for (var m = 0; y3U.N56(m, k.length); m++) k[m].loadTexture && k[m].loadTexture(this); else k.loadTexture(this); return this; }, load : function (k) { return "string" == typeof k && (k = this.game.cache.getImage(k)), k ? (this.resize(k.width, k.height), this.cls(), this.draw(k), this.update(), this) : void 0; }, clear : function () { return this.context.clearRect(0, 0, this.width, this.height), this.dirty = !0, this; }, fill : function (k, m, e, o) { return "undefined" == typeof o && (o = 1), this.context.fillStyle = "rgba(" + k + "," + m + "," + e + "," + o + ")", this.context.fillRect(0, 0, this.width, this.height), this.dirty = !0, this; }, resize : function (k, m) { return (y3U.L56(k, this.width) || y3U.z56(m, this.height)) && (this.width = k, this.height = m, this.canvas.width = k, this.canvas.height = m, this.baseTexture.width = k, this.baseTexture.height = m, this.textureFrame.width = k, this.textureFrame.height = m, this.texture.width = k, this.texture.height = m, this.texture.crop.width = k, this.texture.crop.height = m, this.update(), this.dirty = !0), this; }, update : function (k, m, e, o) { return "undefined" == typeof k && (k = 0), "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = this.width), "undefined" == typeof o && (o = this.height), this.imageData = this.context.getImageData(k, m, e, o), this.data = this.imageData.data, this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : r2w8n[E8n].ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data, this; }, processPixelRGB : function (k, m, e, o, n, u) { "undefined" == typeof e && (e = 0), "undefined" == typeof o && (o = 0), "undefined" == typeof n && (n = this.width), "undefined" == typeof u && (u = this.height); for (var q = e + n, f = o + u, j = i.Color.createColor(), U0 = { r : 0, g : 0, b : 0, a : 0 }, k0 = !1, a0 = o; y3U.J56(f, a0); a0++) for (var T0 = e; y3U.H56(q, T0); T0++) i.Color.unpackPixel(this.getPixel32(T0, a0), j), U0 = k.call(m, j, T0, a0), U0 !== !1 && y3U.h56(null, U0) && void 0 !== U0 && (this.setPixel32(T0, a0, U0.r, U0.g, U0.b, U0.a, !1), k0 = !0); return k0 && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0), this; }, processPixel : function (k, m, e, o, n, u) { "undefined" == typeof e && (e = 0), "undefined" == typeof o && (o = 0), "undefined" == typeof n && (n = this.width), "undefined" == typeof u && (u = this.height); for (var q = e + n, f = o + u, j = 0, U0 = 0, k0 = !1, a0 = o; y3U.F56(f, a0); a0++) for (var T0 = e; y3U.M56(q, T0); T0++) j = this.getPixel32(T0, a0), U0 = k.call(m, j, T0, a0), y3U.n56(U0, j) && (this.pixels[y3U.f56(a0, this.width) + T0] = U0, k0 = !0); return k0 && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0), this; }, replaceRGB : function (k, m, e, o, n, u, q, f, j) { var U0 = 0, k0 = 0, a0 = this.width, T0 = this.height, G0 = i.Color.packPixel(k, m, e, o); void 0 !== j && y3U.K56(j, i.Rectangle) && (U0 = j.x, k0 = j.y, a0 = j.width, T0 = j.height); for (var W0 = 0; y3U.B56(T0, W0); W0++) for (var N0 = 0; y3U.l56(a0, N0); N0++) y3U.X56(this.getPixel32(U0 + N0, k0 + W0), G0) && this.setPixel32(U0 + N0, k0 + W0, n, u, q, f, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this; }, setHSL : function (k, m, e, o) { if (("undefined" == typeof k || y3U.Y56(null, k)) && (k = !1), ("undefined" == typeof m || y3U.U26(null, m)) && (m = !1), ("undefined" == typeof e || y3U.T26(null, e)) && (e = !1), k || m || e) { "undefined" == typeof o && (o = new i.Rectangle(0, 0, this.width, this.height)); for (var n = i.Color.createColor(), u = o.y; y3U.S26(u, o.bottom); u++) for (var q = o.x; y3U.I26(q, o.right); q++) i.Color.unpackPixel(this.getPixel32(q, u), n, !0), k && (n.h = k), m && (n.s = m), e && (n.l = e), i.Color.HSLtoRGB(n.h, n.s, n.l, n), this.setPixel32(q, u, n.r, n.g, n.b, n.a, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this; } }, shiftHSL : function (k, m, e, o) { if (("undefined" == typeof k || y3U.C26(null, k)) && (k = !1), ("undefined" == typeof m || y3U.v26(null, m)) && (m = !1), ("undefined" == typeof e || y3U.t26(null, e)) && (e = !1), k || m || e) { "undefined" == typeof o && (o = new i.Rectangle(0, 0, this.width, this.height)); for (var n = i.Color.createColor(), u = o.y; y3U.y26(u, o.bottom); u++) for (var q = o.x; y3U.o26(q, o.right); q++) i.Color.unpackPixel(this.getPixel32(q, u), n, !0), k && (n.h = this.game.math.wrap(n.h + k, 0, 1)), m && (n.s = this.game.math.limitValue(n.s + m, 0, 1)), e && (n.l = this.game.math.limitValue(n.l + e, 0, 1)), i.Color.HSLtoRGB(n.h, n.s, n.l, n), this.setPixel32(q, u, n.r, n.g, n.b, n.a, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this; } }, setPixel32 : function (k, m, e, o, n, u, q) { return "undefined" == typeof q && (q = !0), y3U.x26(k, 0) && y3U.p26(k, this.width) && y3U.q26(m, 0) && y3U.b26(m, this.height) && (this.pixels[y3U.j26(m, this.width) + k] = i.Device.LITTLE_ENDIAN ? y3U.d26(u << 24, n << 16, o << 8, e) : y3U.O26(e << 24, o << 16, n << 8, u), q && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0)), this; }, setPixel : function (k, m, e, o, n, u) { return this.setPixel32(k, m, e, o, n, 255, u); }, getPixel : function (k, m, e) { e || (e = i.Color.createColor()); var o = ~~(k + y3U.U16(m, this.width)); return o *= 4, e.r = this.data[o], e.g = this.data[++o], e.b = this.data[++o], e.a = this.data[++o], e; }, getPixel32 : function (k, m) { return y3U.T16(k, 0) && y3U.S16(k, this.width) && y3U.I16(m, 0) && y3U.C16(m, this.height) ? this.pixels[y3U.v16(m, this.width) + k] : void 0; }, getPixelRGB : function (k, m, e, o, n) { return i.Color.unpackPixel(this.getPixel32(k, m), e, o, n); }, getPixels : function (k) { return this.context.getImageData(k.x, k.y, k.width, k.height); }, getFirstPixel : function (k) { "undefined" == typeof k && (k = 0); var m = i.Color.createColor(), e = 0, o = 0, n = 1, u = !1; y3U.t16(1, k) ? (n = -1, o = this.height) : y3U.y16(3, k) && (n = -1, e = this.width); do i.Color.unpackPixel(this.getPixel32(e, o), m), y3U.o16(0, k) || y3U.x16(1, k) ? (e++, y3U.p16(e, this.width) && (e = 0, o += n, (y3U.q16(o, this.height) || y3U.b16(0, o)) && (u = !0))) : (y3U.j16(2, k) || y3U.d16(3, k)) && (o++, y3U.c16(o, this.height) && (o = 0, e += n, (y3U.s16(e, this.width) || y3U.Q16(0, e)) && (u = !0))); while (y3U.a66(0, m.a) && !u); return m.x = e, m.y = o, m; }, getBounds : function (k) { return "undefined" == typeof k && (k = new i.Rectangle), k.x = this.getFirstPixel(2).x, y3U.W66(k.x, this.width) ? k.setTo(0, 0, 0, 0) : (k.y = this.getFirstPixel(0).y, k.width = y3U.m66(this.getFirstPixel(3).x, k.x, 1), k.height = y3U.C66(this.getFirstPixel(1).y, k.y, 1), k); }, addToWorld : function (k, m, e, o, n, u) { n = n || 1, u = u || 1; var q = this.game.add.image(k, m, this); return q.anchor.set(e, o), q.scale.set(n, u), q; }, copy : function (k, m, e, o, n, u, q, f, j, U0, k0, a0, T0, G0, W0, N0, S0) { if (("undefined" == typeof k || y3U.J66(null, k)) && (k = this), this._image = k, y3U.H66(k, i.Sprite) || y3U.h66(k, i.Image) || y3U.F66(k, i.Text)) this._pos.set(k.texture.crop.x, k.texture.crop.y), this._size.set(k.texture.crop.width, k.texture.crop.height), this._scale.set(k.scale.x, k.scale.y), this._anchor.set(k.anchor.x, k.anchor.y), this._rotate = k.rotation, this._alpha.current = k.alpha, this._image = k.texture.baseTexture.source, ("undefined" == typeof u || y3U.M66(null, u)) && (u = k.x), ("undefined" == typeof q || y3U.n66(null, q)) && (q = k.y), k.texture.trim && (u += y3U.f66(k.texture.trim.x, k.anchor.x * k.texture.trim.width), q += y3U.K66(k.texture.trim.y, k.anchor.y * k.texture.trim.height)), y3U.B66(16777215, k.tint) && (y3U.l66(k.cachedTint, k.tint) && (k.cachedTint = k.tint, k.tintedTexture = PIXI.CanvasTinter.getTintedTexture(k, k.tint)), this._image = k.tintedTexture); else { if (this._pos.set(0), this._scale.set(1), this._anchor.set(0), this._rotate = 0, this._alpha.current = 1, y3U.X66(k, i.BitmapData)) this._image = k.canvas; else if ("string" == typeof k) { if (k = this.game.cache.getImage(k), y3U.Y66(null, k)) return; this._image = k; } this._size.set(this._image.width, this._image.height); } return ("undefined" == typeof m || y3U.U86(null, m)) && (m = 0), ("undefined" == typeof e || y3U.T86(null, e)) && (e = 0), o && (this._size.x = o), n && (this._size.y = n), ("undefined" == typeof u || y3U.S86(null, u)) && (u = m), ("undefined" == typeof q || y3U.I86(null, q)) && (q = e), ("undefined" == typeof f || y3U.C86(null, f)) && (f = this._size.x), ("undefined" == typeof j || y3U.v86(null, j)) && (j = this._size.y), "number" == typeof U0 && (this._rotate = U0), "number" == typeof k0 && (this._anchor.x = k0), "number" == typeof a0 && (this._anchor.y = a0), "number" == typeof T0 && (this._scale.x = T0), "number" == typeof G0 && (this._scale.y = G0), "number" == typeof W0 && (this._alpha.current = W0), "undefined" == typeof N0 && (N0 = null), "undefined" == typeof S0 && (S0 = !1), y3U.t86(this._alpha.current, 0) || y3U.y86(0, this._scale.x) || y3U.o86(0, this._scale.y) || y3U.x86(0, this._size.x) || y3U.p86(0, this._size.y) ? void 0 : (this._alpha.prev = this.context.globalAlpha, this.context.save(), this.context.globalAlpha = this._alpha.current, N0 && (this.context.globalCompositeOperation = N0), S0 && (u |= 0, q |= 0), this.context.translate(u, q), this.context.scale(this._scale.x, this._scale.y), this.context.rotate(this._rotate), this.context.drawImage(this._image, this._pos.x + m, this._pos.y + e, this._size.x, this._size.y, -f * this._anchor.x, -j * this._anchor.y, f, j), this.context.restore(), this.context.globalAlpha = this._alpha.prev, this.dirty = !0, this); }, copyRect : function (k, m, e, o, n, u, q) { return this.copy(k, m.x, m.y, m.width, m.height, e, o, m.width, m.height, 0, 0, 0, 1, 1, n, u, q); }, draw : function (k, m, e, o, n, u, q) { return this.copy(k, null, null, null, null, m, e, o, n, null, null, null, null, null, null, u, q); }, drawGroup : function (k, m, e) { return y3U.q86(k.total, 0) && k.forEachExists(this.copy, this, null, null, null, null, null, null, null, null, null, null, null, null, null, null, m, e), this; }, shadow : function (k, m, e, o) { "undefined" == typeof k || y3U.b86(null, k) ? this.context.shadowColor = "rgba(0,0,0,0)" : (this.context.shadowColor = k, this.context.shadowBlur = m || 5, this.context.shadowOffsetX = e || 10, this.context.shadowOffsetY = o || 10); }, alphaMask : function (k, m, e, o) { return "undefined" == typeof o || y3U.j86(null, o) ? this.draw(m).blendSourceAtop() : this.draw(m, o.x, o.y, o.width, o.height).blendSourceAtop(), "undefined" == typeof e || y3U.d86(null, e) ? this.draw(k).blendReset() : this.draw(k, e.x, e.y, e.width, e.height).blendReset(), this; }, extract : function (o, n, u, q, f, j, U0, k0, a0) { return "undefined" == typeof f && (f = 255), "undefined" == typeof j && (j = !1), "undefined" == typeof U0 && (U0 = n), "undefined" == typeof k0 && (k0 = u), "undefined" == typeof a0 && (a0 = q), j && o.resize(this.width, this.height), this.processPixelRGB(function (k, m, e) { return y3U.c86(k.r, n) && y3U.s86(k.g, u) && y3U.Q86(k.b, q) && o.setPixel32(m, e, U0, k0, a0, f, !1), !1; }, this), o.context.putImageData(o.imageData, 0, 0), o.dirty = !0, o; }, rect : function (k, m, e, o, n) { return "undefined" != typeof n && (this.context.fillStyle = n), this.context.fillRect(k, m, e, o), this; }, circle : function (k, m, e, o) { return "undefined" != typeof o && (this.context.fillStyle = o), this.context.beginPath(), this.context.arc(k, m, e, 0, y3U.a0h(2, Math.PI), !1), this.context.closePath(), this.context.fill(), this; }, textureLine : function (k, m, e) { if ("undefined" == typeof e && (e = "repeat-x"), "string" != typeof m || (m = this.game.cache.getImage(m))) { var o = k.length; return y3U.W0h("no-repeat", e) && y3U.m0h(o, m.width) && (o = m.width), this.context.fillStyle = this.context.createPattern(m, e), this._circle = new i.Circle(k.start.x, k.start.y, m.height), this._circle.circumferencePoint(y3U.A0h(k.angle, 1.5707963267948966), !1, this._pos), this.context.save(), this.context.translate(this._pos.x, this._pos.y), this.context.rotate(k.angle), this.context.fillRect(0, 0, o, m.height), this.context.restore(), this.dirty = !0, this; } }, render : function () { return !this.disableTextureUpload && this.dirty && (this.baseTexture.dirty(), this.dirty = !1), this; }, blendReset : function () { return this.context.globalCompositeOperation = "source-over", this; }, blendSourceOver : function () { return this.context.globalCompositeOperation = "source-over", this; }, blendSourceIn : function () { return this.context.globalCompositeOperation = "source-in", this; }, blendSourceOut : function () { return this.context.globalCompositeOperation = "source-out", this; }, blendSourceAtop : function () { return this.context.globalCompositeOperation = "source-atop", this; }, blendDestinationOver : function () { return this.context.globalCompositeOperation = "destination-over", this; }, blendDestinationIn : function () { return this.context.globalCompositeOperation = "destination-in", this; }, blendDestinationOut : function () { return this.context.globalCompositeOperation = "destination-out", this; }, blendDestinationAtop : function () { return this.context.globalCompositeOperation = "destination-atop", this; }, blendXor : function () { return this.context.globalCompositeOperation = "xor", this; }, blendAdd : function () { return this.context.globalCompositeOperation = "lighter", this; }, blendMultiply : function () { return this.context.globalCompositeOperation = "multiply", this; }, blendScreen : function () { return this.context.globalCompositeOperation = "screen", this; }, blendOverlay : function () { return this.context.globalCompositeOperation = "overlay", this; }, blendDarken : function () { return this.context.globalCompositeOperation = "darken", this; }, blendLighten : function () { return this.context.globalCompositeOperation = "lighten", this; }, blendColorDodge : function () { return this.context.globalCompositeOperation = "color-dodge", this; }, blendColorBurn : function () { return this.context.globalCompositeOperation = "color-burn", this; }, blendHardLight : function () { return this.context.globalCompositeOperation = "hard-light", this; }, blendSoftLight : function () { return this.context.globalCompositeOperation = "soft-light", this; }, blendDifference : function () { return this.context.globalCompositeOperation = "difference", this; }, blendExclusion : function () { return this.context.globalCompositeOperation = "exclusion", this; }, blendHue : function () { return this.context.globalCompositeOperation = "hue", this; }, blendSaturation : function () { return this.context.globalCompositeOperation = "saturation", this; }, blendColor : function () { return this.context.globalCompositeOperation = "color", this; }, blendLuminosity : function () { return this.context.globalCompositeOperation = "luminosity", this; } }, Object.defineProperty(i.BitmapData.prototype, "smoothed", { get : function () { i.Canvas.getSmoothingEnabled(this.context); }, set : function (k) { i.Canvas.setSmoothingEnabled(this.context, k); } }), i.BitmapData.getTransform = function (k, m, e, o, n, u) { return "number" != typeof k && (k = 0), "number" != typeof m && (m = 0), "number" != typeof e && (e = 1), "number" != typeof o && (o = 1), "number" != typeof n && (n = 0), "number" != typeof u && (u = 0), { sx : e, sy : o, scaleX : e, scaleY : o, skewX : n, skewY : u, translateX : k, translateY : m, tx : k, ty : m }; }, i.BitmapData.prototype.constructor = i.BitmapData, i.Sprite = function (k, m, e, o, n) { m = m || 0, e = e || 0, o = o || null, n = n || null, this.game = k, this.name = "", this.type = i.SPRITE, this.z = 0, this.events = new i.Events(this), this.animations = new i.AnimationManager(this), this.key = o, PIXI.Sprite.call(this, PIXI.TextureCache.__default), this.transformCallback = this.checkTransform, this.transformCallbackContext = this, this.position.set(m, e), this.world = new i.Point(m, e), this.autoCull = !1, this.input = null, this.body = null, this.alive = !0, this.health = 1, this.lifespan = 0, this.checkWorldBounds = !1, this.outOfBoundsKill = !1, this.debug = !1, this.cameraOffset = new i.Point, this.cropRect = null, this.scaleMin = null, this.scaleMax = null, this._cache = [0, 0, 0, 0, 1, 0, 1, 0], this._crop = null, this._frame = null, this._bounds = new i.Rectangle, this.loadTexture(o, n); }, i.Sprite.prototype = Object.create(PIXI.Sprite.prototype), i.Sprite.prototype.constructor = i.Sprite, i.Sprite.prototype.preUpdate = function () { if (y3U.w0h(1, this._cache[4]) && this.exists) return 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._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, this.body && this.body.preUpdate(), this._cache[4] = 0, !1; if (this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, !this.exists || !this.parent.exists) return this._cache[3] = -1, !1; if (y3U.E0h(this.lifespan, 0) && (this.lifespan -= this.game.time.physicsElapsedMS, y3U.e0h(this.lifespan, 0))) return this.kill(), !1; if ((this.autoCull || this.checkWorldBounds) && (this._bounds.copyFrom(this.getBounds()), this._bounds.x += this.game.camera.view.x, this._bounds.y += this.game.camera.view.y, this.autoCull && (this.game.world.camera.view.intersects(this._bounds) ? (this.renderable = !0, this.game.world.camera.totalInView++) : this.renderable = !1), this.checkWorldBounds)) if (y3U.g0h(1, this._cache[5]) && this.game.world.bounds.intersects(this._bounds)) this._cache[5] = 0, this.events.onEnterBounds$dispatch(this); else if (y3U.r0h(0, this._cache[5]) && !this.game.world.bounds.intersects(this._bounds) && (this._cache[5] = 1, this.events.onOutOfBounds$dispatch(this), this.outOfBoundsKill)) return this.kill(), !1; this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++), this.animations.update(), this.body && this.body.preUpdate(); for (var k = 0, m = this.children.length; y3U.i0h(m, k); k++) this.children[k].preUpdate(); return !0; }, i.Sprite.prototype.update = function () {}, i.Sprite.prototype.postUpdate = function () { y3U.u0h(this.key, i.BitmapData) && this.key.render(), this.exists && this.body && this.body.postUpdate(), y3U.P0h(1, this._cache[7]) && (this.position.x = y3U.D0h((this.game.camera.view.x + this.cameraOffset.x), this.game.camera.scale.x), this.position.y = y3U.Z0h((this.game.camera.view.y + this.cameraOffset.y), this.game.camera.scale.y)); for (var k = 0, m = this.children.length; y3U.R0h(m, k); k++) this.children[k].postUpdate(); }, i.Sprite.prototype.loadTexture = function (k, m, e) { m = m || 0, (e || "undefined" == typeof e) && this.animations.stop(), this.key = k; var o = !0, n = this.smoothed; y3U.O0h(k, i.RenderTexture) ? (this.key = k.key, this.setTexture(k)) : y3U.V0h(k, i.BitmapData) ? (this.setTexture(k.texture), this.game.cache.getFrameData(k.key, i.Cache.BITMAPDATA) && (o = !this.animations.loadFrameData(this.game.cache.getFrameData(k.key, i.Cache.BITMAPDATA), m))) : y3U.k7h(k, PIXI.Texture) ? this.setTexture(k) : y3U.G7h(null, k) || "undefined" == typeof k ? (this.key = "__default", this.setTexture(PIXI.TextureCache[this.key])) : "string" != typeof k || this.game.cache.checkImageKey(k) ? (this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[k])), o = !this.animations.loadFrameData(this.game.cache.getFrameData(k), m)) : (console.warn("Texture with key '" + k + "' not found."), this.key = "__missing", this.setTexture(PIXI.TextureCache[this.key])), this.texture.baseTexture.dirty(), o && (this._frame = i.Rectangle.clone(this.texture.frame)), n || (this.smoothed = !1); }, i.Sprite.prototype.setFrame = function (k) { this._frame = k, this.texture.frame.x = k.x, this.texture.frame.y = k.y, this.texture.frame.width = k.width, this.texture.frame.height = k.height, this.texture.crop.x = k.x, this.texture.crop.y = k.y, this.texture.crop.width = k.width, this.texture.crop.height = k.height, k.trimmed ? (this.texture.trim ? (this.texture.trim.x = k.spriteSourceSizeX, this.texture.trim.y = k.spriteSourceSizeY, this.texture.trim.width = k.sourceSizeW, this.texture.trim.height = k.sourceSizeH) : this.texture.trim = { x : k.spriteSourceSizeX, y : k.spriteSourceSizeY, width : k.sourceSizeW, height : k.sourceSizeH }, this.texture.width = k.sourceSizeW, this.texture.height = k.sourceSizeH, this.texture.frame.width = k.sourceSizeW, this.texture.frame.height = k.sourceSizeH) : !k.trimmed && this.texture.trim && (this.texture.trim = null), this.cropRect && this.updateCrop(), this.texture._updateUvs(); }, i.Sprite.prototype.resetFrame = function () { this._frame && this.setFrame(this._frame); }, i.Sprite.prototype.crop = function (k, m) { "undefined" == typeof m && (m = !1), k ? (m && y3U.N7h(null, this.cropRect) ? this.cropRect.setTo(k.x, k.y, k.width, k.height) : this.cropRect = m && y3U.L7h(null, this.cropRect) ? new i.Rectangle(k.x, k.y, k.width, k.height) : k, this.updateCrop()) : (this._crop = null, this.cropRect = null, this.resetFrame()); }, i.Sprite.prototype.updateCrop = function () { if (this.cropRect) { this._crop = i.Rectangle.clone(this.cropRect, this._crop), this._crop.x += this._frame.x, this._crop.y += this._frame.y; var k = Math.max(this._frame.x, this._crop.x), m = Math.max(this._frame.y, this._crop.y), e = y3U.z7h(Math.min(this._frame.right, this._crop.right), k), o = y3U.J7h(Math.min(this._frame.bottom, this._crop.bottom), m); this.texture.crop.x = k, this.texture.crop.y = m, this.texture.crop.width = e, this.texture.crop.height = o, this.texture.frame.width = Math.min(e, this.cropRect.width), this.texture.frame.height = Math.min(o, this.cropRect.height), this.texture.width = this.texture.frame.width, this.texture.height = this.texture.frame.height, this.texture._updateUvs(); } }, i.Sprite.prototype.revive = function (k) { return "undefined" == typeof k && (k = 1), this.alive = !0, this.exists = !0, this.visible = !0, this.health = k, this.events && this.events.onRevived$dispatch(this), this; }, i.Sprite.prototype.kill = function () { return this.alive = !1, this.exists = !1, this.visible = !1, this.events && this.events.onKilled$dispatch(this), this; }, i.Sprite.prototype.destroy = function (k) { if (y3U.H7h(null, this.game) && y3U.h7h(1, this._cache[8])) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.events && this.events.onDestroy$dispatch(this), this.parent && (y3U.F7h(this.parent, i.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(); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this._crop && (this._crop = null), this._frame && (this._frame = null), this.alive = !1, this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, i.Sprite.prototype.damage = function (k) { return this.alive && (this.health -= k, y3U.M7h(this.health, 0) && this.kill()), this; }, i.Sprite.prototype.reset = function (k, m, e) { return "undefined" == typeof e && (e = 1), this.world.setTo(k, m), this.position.x = k, this.position.y = m, this.alive = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this._outOfBoundsFired = !1, this.health = e, this.body && this.body.reset(k, m, !1, !1), this._cache[4] = 1, this; }, i.Sprite.prototype.bringToTop = function () { return this.parent && this.parent.bringToTop(this), this; }, i.Sprite.prototype.play = function (k, m, e, o) { return this.animations ? this.animations.play(k, m, e, o) : void 0; }, i.Sprite.prototype.overlap = function (k) { return i.Rectangle.intersects(this.getBounds(), k.getBounds()); }, i.Sprite.prototype.checkTransform = function (k) { this.scaleMin && (y3U.n7h(k.a, this.scaleMin.x) && (k.a = this.scaleMin.x), y3U.f7h(k.d, this.scaleMin.y) && (k.d = this.scaleMin.y)), this.scaleMax && (y3U.K7h(k.a, this.scaleMax.x) && (k.a = this.scaleMax.x), y3U.B7h(k.d, this.scaleMax.y) && (k.d = this.scaleMax.y)); }, i.Sprite.prototype.setScaleMinMax = function (k, m, e, o) { "undefined" == typeof m ? m = e = o = k : "undefined" == typeof e && (e = o = m, m = k), y3U.l7h(null, k) ? this.scaleMin = null : this.scaleMin ? this.scaleMin.set(k, m) : this.scaleMin = new i.Point(k, m), y3U.X7h(null, e) ? this.scaleMax = null : this.scaleMax ? this.scaleMax.set(e, o) : this.scaleMax = new i.Point(e, o); }, Object.defineProperty(i.Sprite.prototype, "angle", { get : function () { return i.Math.wrapAngle(i.Math.radToDeg(this.rotation)); }, set : function (k) { this.rotation = i.Math.degToRad(i.Math.wrapAngle(k)); } }), Object.defineProperty(i.Sprite.prototype, "deltaX", { get : function () { return y3U.Y7h(this.world.x, this._cache[0]); } }), Object.defineProperty(i.Sprite.prototype, "deltaY", { get : function () { return y3U.U4h(this.world.y, this._cache[1]); } }), Object.defineProperty(i.Sprite.prototype, "deltaZ", { get : function () { return y3U.T4h(this.rotation, this._cache[2]); } }), Object.defineProperty(i.Sprite.prototype, "inWorld", { get : function () { return this.game.world.bounds.intersects(this.getBounds()); } }), Object.defineProperty(i.Sprite.prototype, "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); } }), Object.defineProperty(i.Sprite.prototype, "frame", { get : function () { return this.animations.frame; }, set : function (k) { this.animations.frame = k; } }), Object.defineProperty(i.Sprite.prototype, "frameName", { get : function () { return this.animations.frameName; }, set : function (k) { this.animations.frameName = k; } }), Object.defineProperty(i.Sprite.prototype, "renderOrderID", { get : function () { return this._cache[3]; } }), Object.defineProperty(i.Sprite.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.S4h(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.Sprite.prototype, "exists", { get : function () { return !!this._cache[6]; }, set : function (k) { k ? (this._cache[6] = 1, this.body && y3U.I4h(this.body.type, i.Physics.P2JS) && this.body.addToWorld(), this.visible = !0) : (this._cache[6] = 0, this.body && y3U.C4h(this.body.type, i.Physics.P2JS) && this.body.removeFromWorld(), this.visible = !1); } }), Object.defineProperty(i.Sprite.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.Sprite.prototype, "smoothed", { get : function () { return !this.texture.baseTexture.scaleMode; }, set : function (k) { k ? this.texture && (this.texture.baseTexture.scaleMode = 0) : this.texture && (this.texture.baseTexture.scaleMode = 1); } }), Object.defineProperty(i.Sprite.prototype, "x", { get : function () { return this.position.x; }, set : function (k) { this.position.x = k, this.body && y3U.v4h(this.body.type, i.Physics.ARCADE) && y3U.t4h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.Sprite.prototype, "y", { get : function () { return this.position.y; }, set : function (k) { this.position.y = k, this.body && y3U.y4h(this.body.type, i.Physics.ARCADE) && y3U.o4h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.Sprite.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.Image = function (k, m, e, o, n) { m = m || 0, e = e || 0, o = o || null, n = n || null, this.game = k, this.exists = !0, this.name = "", this.type = i.IMAGE, this.z = 0, this.events = new i.Events(this), this.animations = new i.AnimationManager(this), this.key = o, PIXI.Sprite.call(this, PIXI.TextureCache.__default), this.transformCallback = this.checkTransform, this.transformCallbackContext = this, this.position.set(m, e), this.world = new i.Point(m, e), this.alive = !0, this.autoCull = !1, this.input = null, this.debug = !1, this.cameraOffset = new i.Point, this.cropRect = null, this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0], this._crop = null, this._frame = null, this._bounds = new i.Rectangle, this.loadTexture(o, n); }, i.Image.prototype = Object.create(PIXI.Sprite.prototype), i.Image.prototype.constructor = i.Image, i.Image.prototype.preUpdate = function () { if (this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, !this.exists || !this.parent.exists) return this._cache[3] = -1, !1; this.autoCull && (this._bounds.copyFrom(this.getBounds()), this.renderable = this.game.world.camera.screenView.intersects(this._bounds)), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++); for (var k = 0, m = this.children.length; y3U.x4h(m, k); k++) this.children[k].preUpdate(); return !0; }, i.Image.prototype.update = function () {}, i.Image.prototype.postUpdate = function () { y3U.p4h(this.key, i.BitmapData) && this.key.render(), y3U.q4h(1, this._cache[7]) && (this.position.x = y3U.b4h((this.game.camera.view.x + this.cameraOffset.x), this.game.camera.scale.x), this.position.y = y3U.j4h((this.game.camera.view.y + this.cameraOffset.y), this.game.camera.scale.y)); for (var k = 0, m = this.children.length; y3U.d4h(m, k); k++) this.children[k].postUpdate(); }, i.Image.prototype.loadTexture = function (k, m) { m = m || 0, this.key = k; var e = !0, o = this.smoothed; y3U.c4h(k, i.RenderTexture) ? (this.key = k.key, this.setTexture(k)) : y3U.s4h(k, i.BitmapData) ? (this.setTexture(k.texture), this.game.cache.getFrameData(k.key, i.Cache.BITMAPDATA) && (e = !this.animations.loadFrameData(this.game.cache.getFrameData(k.key, i.Cache.BITMAPDATA), m))) : y3U.Q4h(k, PIXI.Texture) ? this.setTexture(k) : y3U.a3h(null, k) || "undefined" == typeof k ? (this.key = "__default", this.setTexture(PIXI.TextureCache[this.key])) : "string" != typeof k || this.game.cache.checkImageKey(k) ? (this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[k])), e = !this.animations.loadFrameData(this.game.cache.getFrameData(k), m)) : (console.warn("Texture with key '" + k + "' not found."), this.key = "__missing", this.setTexture(PIXI.TextureCache[this.key])), this.texture.baseTexture.dirty(), e && (this._frame = i.Rectangle.clone(this.texture.frame)), o || (this.smoothed = !1); }, i.Image.prototype.setFrame = function (k) { this._frame = k, this.texture.frame.x = k.x, this.texture.frame.y = k.y, this.texture.frame.width = k.width, this.texture.frame.height = k.height, this.texture.crop.x = k.x, this.texture.crop.y = k.y, this.texture.crop.width = k.width, this.texture.crop.height = k.height, k.trimmed ? (this.texture.trim ? (this.texture.trim.x = k.spriteSourceSizeX, this.texture.trim.y = k.spriteSourceSizeY, this.texture.trim.width = k.sourceSizeW, this.texture.trim.height = k.sourceSizeH) : this.texture.trim = { x : k.spriteSourceSizeX, y : k.spriteSourceSizeY, width : k.sourceSizeW, height : k.sourceSizeH }, this.texture.width = k.sourceSizeW, this.texture.height = k.sourceSizeH, this.texture.frame.width = k.sourceSizeW, this.texture.frame.height = k.sourceSizeH) : !k.trimmed && this.texture.trim && (this.texture.trim = null), this.cropRect && this.updateCrop(), this.texture._updateUvs(); }, i.Image.prototype.resetFrame = function () { this._frame && this.setFrame(this._frame); }, i.Image.prototype.crop = function (k, m) { "undefined" == typeof m && (m = !1), k ? (m && y3U.W3h(null, this.cropRect) ? this.cropRect.setTo(k.x, k.y, k.width, k.height) : this.cropRect = m && y3U.m3h(null, this.cropRect) ? new i.Rectangle(k.x, k.y, k.width, k.height) : k, this.updateCrop()) : (this._crop = null, this.cropRect = null, this.resetFrame()); }, i.Image.prototype.updateCrop = function () { if (this.cropRect) { this._crop = i.Rectangle.clone(this.cropRect, this._crop), this._crop.x += this._frame.x, this._crop.y += this._frame.y; var k = Math.max(this._frame.x, this._crop.x), m = Math.max(this._frame.y, this._crop.y), e = y3U.A3h(Math.min(this._frame.right, this._crop.right), k), o = y3U.w3h(Math.min(this._frame.bottom, this._crop.bottom), m); this.texture.crop.x = k, this.texture.crop.y = m, this.texture.crop.width = e, this.texture.crop.height = o, this.texture.frame.width = Math.min(e, this.cropRect.width), this.texture.frame.height = Math.min(o, this.cropRect.height), this.texture.width = this.texture.frame.width, this.texture.height = this.texture.frame.height, this.texture._updateUvs(); } }, i.Image.prototype.revive = function () { return this.alive = !0, this.exists = !0, this.visible = !0, this.events && this.events.onRevived$dispatch(this), this; }, i.Image.prototype.kill = function () { return this.alive = !1, this.exists = !1, this.visible = !1, this.events && this.events.onKilled$dispatch(this), this; }, i.Image.prototype.destroy = function (k) { if (y3U.E3h(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.events && this.events.onDestroy$dispatch(this), this.parent && (y3U.e3h(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)), this.events && this.events.destroy(), this.input && this.input.destroy(), this.animations && this.animations.destroy(); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this.alive = !1, this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, i.Image.prototype.reset = function (k, m) { return this.world.setTo(k, m), this.position.x = k, this.position.y = m, this.alive = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this; }, i.Image.prototype.bringToTop = function () { return this.parent && this.parent.bringToTop(this), this; }, i.Image.prototype.checkTransform = function (k) { this.scaleMin && (y3U.g3h(k.a, this.scaleMin.x) && (k.a = this.scaleMin.x), y3U.r3h(k.d, this.scaleMin.y) && (k.d = this.scaleMin.y)), this.scaleMax && (y3U.i3h(k.a, this.scaleMax.x) && (k.a = this.scaleMax.x), y3U.u3h(k.d, this.scaleMax.y) && (k.d = this.scaleMax.y)); }, i.Image.prototype.setScaleMinMax = function (k, m, e, o) { "undefined" == typeof m ? m = e = o = k : "undefined" == typeof e && (e = o = m, m = k), y3U.P3h(null, k) ? this.scaleMin = null : this.scaleMin ? this.scaleMin.set(k, m) : this.scaleMin = new i.Point(k, m), y3U.D3h(null, e) ? this.scaleMax = null : this.scaleMax ? this.scaleMax.set(e, o) : this.scaleMax = new i.Point(e, o); }, Object.defineProperty(i.Image.prototype, "angle", { get : function () { return i.Math.wrapAngle(i.Math.radToDeg(this.rotation)); }, set : function (k) { this.rotation = i.Math.degToRad(i.Math.wrapAngle(k)); } }), Object.defineProperty(i.Image.prototype, "deltaX", { get : function () { return y3U.Z3h(this.world.x, this._cache[0]); } }), Object.defineProperty(i.Image.prototype, "deltaY", { get : function () { return y3U.R3h(this.world.y, this._cache[1]); } }), Object.defineProperty(i.Image.prototype, "deltaZ", { get : function () { return y3U.O3h(this.rotation, this._cache[2]); } }), Object.defineProperty(i.Image.prototype, "inWorld", { get : function () { return this.game.world.bounds.intersects(this.getBounds()); } }), Object.defineProperty(i.Image.prototype, "inCamera", { get : function () { return this.game.world.camera.screenView.intersects(this.getBounds()); } }), Object.defineProperty(i.Image.prototype, "frame", { get : function () { return this._frame; }, set : function (k) { if (y3U.V3h(k, this.frame)) { var m = this.game.cache.getFrameData(this.key); m && y3U.k9h(k, m.total) && m.getFrame(k) && (this.setTexture(PIXI.TextureCache[m.getFrame(k).uuid]), this._frame = k); } } }), Object.defineProperty(i.Image.prototype, "frameName", { get : function () { return this._frameName; }, set : function (k) { if (y3U.G9h(k, this.frameName)) { var m = this.game.cache.getFrameData(this.key); m && m.getFrameByName(k) && (this.setTexture(PIXI.TextureCache[m.getFrameByName(k).uuid]), this._frameName = k); } } }), Object.defineProperty(i.Image.prototype, "renderOrderID", { get : function () { return this._cache[3]; } }), Object.defineProperty(i.Image.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.N9h(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.Image.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.Image.prototype, "smoothed", { get : function () { return !this.texture.baseTexture.scaleMode; }, set : function (k) { k ? this.texture && (this.texture.baseTexture.scaleMode = 0) : this.texture && (this.texture.baseTexture.scaleMode = 1); } }), Object.defineProperty(i.Image.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.TileSprite = function (k, m, e, o, n, u, q) { m = m || 0, e = e || 0, o = o || 256, n = n || 256, u = u || null, q = q || null, this.game = k, this.name = "", this.type = i.TILESPRITE, this.z = 0, this.events = new i.Events(this), this.animations = new i.AnimationManager(this), this.key = u, this._frame = 0, this._frameName = "", this._scroll = new i.Point, PIXI.TilingSprite.call(this, PIXI.TextureCache.__default, o, n), this.position.set(m, e), this.input = null, this.world = new i.Point(m, e), this.autoCull = !1, this.checkWorldBounds = !1, this.cameraOffset = new i.Point, this.body = null, this.alive = !0, this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0], this.loadTexture(u, q); }, i.TileSprite.prototype = Object.create(PIXI.TilingSprite.prototype), i.TileSprite.prototype.constructor = i.TileSprite, i.TileSprite.prototype.preUpdate = function () { if (y3U.L9h(1, this._cache[4]) && this.exists) return 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._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, this.body && this.body.preUpdate(), this._cache[4] = 0, !1; if (this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, !this.exists || !this.parent.exists) return this._cache[3] = -1, !1; (this.autoCull || this.checkWorldBounds) && this._bounds.copyFrom(this.getBounds()), this.autoCull && (this.renderable = this.game.world.camera.screenView.intersects(this._bounds)), this.checkWorldBounds && (y3U.z9h(1, this._cache[5]) && this.game.world.bounds.intersects(this._bounds) ? (this._cache[5] = 0, this.events.onEnterBounds$dispatch(this)) : y3U.J9h(0, this._cache[5]) || this.game.world.bounds.intersects(this._bounds) || (this._cache[5] = 1, this.events.onOutOfBounds$dispatch(this))), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++), this.animations.update(), y3U.H9h(0, this._scroll.x) && (this.tilePosition.x += y3U.h9h(this._scroll.x, this.game.time.physicsElapsed)), y3U.F9h(0, this._scroll.y) && (this.tilePosition.y += y3U.M9h(this._scroll.y, this.game.time.physicsElapsed)), this.body && this.body.preUpdate(); for (var k = 0, m = this.children.length; y3U.n9h(m, k); k++) this.children[k].preUpdate(); return !0; }, i.TileSprite.prototype.update = function () {}, i.TileSprite.prototype.postUpdate = function () { this.exists && this.body && this.body.postUpdate(), y3U.f9h(1, this._cache[7]) && (this.position.x = this.game.camera.view.x + this.cameraOffset.x, this.position.y = this.game.camera.view.y + this.cameraOffset.y); for (var k = 0, m = this.children.length; y3U.K9h(m, k); k++) this.children[k].postUpdate(); }, i.TileSprite.prototype.autoScroll = function (k, m) { this._scroll.set(k, m); }, i.TileSprite.prototype.stopScroll = function () { this._scroll.set(0, 0); }, i.TileSprite.prototype.loadTexture = function (k, m) { m = m || 0, this.key = k, y3U.B9h(k, i.RenderTexture) ? (this.key = k.key, this.setTexture(k)) : y3U.l9h(k, i.BitmapData) ? this.setTexture(k.texture) : y3U.X9h(k, PIXI.Texture) ? this.setTexture(k) : y3U.Y9h(null, k) || "undefined" == typeof k ? (this.key = "__default", this.setTexture(PIXI.TextureCache[this.key])) : "string" != typeof k || this.game.cache.checkImageKey(k) ? (this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[k])), this.animations.loadFrameData(this.game.cache.getFrameData(k), m)) : (console.warn("Texture with key '" + k + "' not found."), this.key = "__missing", this.setTexture(PIXI.TextureCache[this.key])), this.texture.baseTexture.dirty(); }, i.TileSprite.prototype.setFrame = function (k) { this.texture.frame.x = k.x, this.texture.frame.y = k.y, this.texture.frame.width = k.width, this.texture.frame.height = k.height, this.texture.crop.x = k.x, this.texture.crop.y = k.y, this.texture.crop.width = k.width, this.texture.crop.height = k.height, k.trimmed ? (this.texture.trim ? (this.texture.trim.x = k.spriteSourceSizeX, this.texture.trim.y = k.spriteSourceSizeY, this.texture.trim.width = k.sourceSizeW, this.texture.trim.height = k.sourceSizeH) : this.texture.trim = { x : k.spriteSourceSizeX, y : k.spriteSourceSizeY, width : k.sourceSizeW, height : k.sourceSizeH }, this.texture.width = k.sourceSizeW, this.texture.height = k.sourceSizeH, this.texture.frame.width = k.sourceSizeW, this.texture.frame.height = k.sourceSizeH) : !k.trimmed && this.texture.trim && (this.texture.trim = null), this.texture._updateUvs(); }, i.TileSprite.prototype.destroy = function (k) { if (y3U.U5h(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.events && this.events.onDestroy$dispatch(this), this.filters && (this.filters = null), this.parent && (y3U.T5h(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)), this.animations.destroy(), this.events.destroy(); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this.exists = !1, this.visible = !1, this.alive = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, i.TileSprite.prototype.play = function (k, m, e, o) { return this.animations.play(k, m, e, o); }, i.TileSprite.prototype.reset = function (k, m) { return this.world.setTo(k, m), this.position.x = k, this.position.y = m, this.alive = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this._outOfBoundsFired = !1, this.tilePosition.x = 0, this.tilePosition.y = 0, this.body && this.body.reset(k, m, !1, !1), this._cache[4] = 1, this; }, Object.defineProperty(i.TileSprite.prototype, "angle", { get : function () { return i.Math.wrapAngle(i.Math.radToDeg(this.rotation)); }, set : function (k) { this.rotation = i.Math.degToRad(i.Math.wrapAngle(k)); } }), Object.defineProperty(i.TileSprite.prototype, "frame", { get : function () { return this.animations.frame; }, set : function (k) { y3U.S5h(k, this.animations.frame) && (this.animations.frame = k); } }), Object.defineProperty(i.TileSprite.prototype, "frameName", { get : function () { return this.animations.frameName; }, set : function (k) { y3U.I5h(k, this.animations.frameName) && (this.animations.frameName = k); } }), Object.defineProperty(i.TileSprite.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.TileSprite.prototype, "exists", { get : function () { return !!this._cache[6]; }, set : function (k) { k ? (this._cache[6] = 1, this.body && y3U.C5h(this.body.type, i.Physics.P2JS) && this.body.addToWorld(), this.visible = !0) : (this._cache[6] = 0, this.body && y3U.v5h(this.body.type, i.Physics.P2JS) && (this.body.safeRemove = !0), this.visible = !1); } }), Object.defineProperty(i.TileSprite.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.t5h(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.TileSprite.prototype, "x", { get : function () { return this.position.x; }, set : function (k) { this.position.x = k, this.body && y3U.y5h(this.body.type, i.Physics.ARCADE) && y3U.o5h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.TileSprite.prototype, "y", { get : function () { return this.position.y; }, set : function (k) { this.position.y = k, this.body && y3U.x5h(this.body.type, i.Physics.ARCADE) && y3U.p5h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.TileSprite.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.Rope = function (k, m, e, o, n, u) { this.points = [], this.points = u, this._hasUpdateAnimation = !1, this._updateAnimationCallback = null, m = m || 0, e = e || 0, o = o || null, n = n || null, this.game = k, this.name = "", this.type = i.ROPE, this.z = 0, this.events = new i.Events(this), this.animations = new i.AnimationManager(this), this.key = o, this._frame = 0, this._frameName = "", this._scroll = new i.Point, PIXI.Rope.call(this, o, this.points), this.position.set(m, e), this.input = null, this.world = new i.Point(m, e), this.autoCull = !1, this.checkWorldBounds = !1, this.cameraOffset = new i.Point, this.body = null, this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0], this.loadTexture(o, n); }, i.Rope.prototype = Object.create(PIXI.Rope.prototype), i.Rope.prototype.constructor = i.Rope, i.Rope.prototype.preUpdate = function () { if (y3U.q5h(1, this._cache[4]) && this.exists) return 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._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, this.body && this.body.preUpdate(), this._cache[4] = 0, !1; if (this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, !this.exists || !this.parent.exists) return this._cache[3] = -1, !1; (this.autoCull || this.checkWorldBounds) && this._bounds.copyFrom(this.getBounds()), this.autoCull && (this.renderable = this.game.world.camera.screenView.intersects(this._bounds)), this.checkWorldBounds && (y3U.b5h(1, this._cache[5]) && this.game.world.bounds.intersects(this._bounds) ? (this._cache[5] = 0, this.events.onEnterBounds$dispatch(this)) : y3U.j5h(0, this._cache[5]) || this.game.world.bounds.intersects(this._bounds) || (this._cache[5] = 1, this.events.onOutOfBounds$dispatch(this))), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++), this.animations.update(), y3U.d5h(0, this._scroll.x) && (this.tilePosition.x += y3U.c5h(this._scroll.x, this.game.time.physicsElapsed)), y3U.s5h(0, this._scroll.y) && (this.tilePosition.y += y3U.Q5h(this._scroll.y, this.game.time.physicsElapsed)), this.body && this.body.preUpdate(); for (var k = 0, m = this.children.length; y3U.a2h(m, k); k++) this.children[k].preUpdate(); return !0; }, i.Rope.prototype.update = function () { this._hasUpdateAnimation && this.updateAnimation.call(this); }, i.Rope.prototype.postUpdate = function () { this.exists && this.body && this.body.postUpdate(), y3U.W2h(1, this._cache[7]) && (this.position.x = this.game.camera.view.x + this.cameraOffset.x, this.position.y = this.game.camera.view.y + this.cameraOffset.y); for (var k = 0, m = this.children.length; y3U.m2h(m, k); k++) this.children[k].postUpdate(); }, i.Rope.prototype.loadTexture = function (k, m) { m = m || 0, this.key = k, y3U.A2h(k, i.RenderTexture) ? (this.key = k.key, this.setTexture(k)) : y3U.w2h(k, i.BitmapData) ? this.setTexture(k.texture) : y3U.E2h(k, PIXI.Texture) ? this.setTexture(k) : y3U.e2h(null, k) || "undefined" == typeof k ? (this.key = "__default", this.setTexture(PIXI.TextureCache[this.key])) : "string" != typeof k || this.game.cache.checkImageKey(k) ? (this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[k])), this.animations.loadFrameData(this.game.cache.getFrameData(k), m)) : (console.warn("Texture with key '" + k + "' not found."), this.key = "__missing", this.setTexture(PIXI.TextureCache[this.key])); }, i.Rope.prototype.setFrame = function (k) { this.texture.frame.x = k.x, this.texture.frame.y = k.y, this.texture.frame.width = k.width, this.texture.frame.height = k.height, this.texture.crop.x = k.x, this.texture.crop.y = k.y, this.texture.crop.width = k.width, this.texture.crop.height = k.height, k.trimmed ? (this.texture.trim ? (this.texture.trim.x = k.spriteSourceSizeX, this.texture.trim.y = k.spriteSourceSizeY, this.texture.trim.width = k.sourceSizeW, this.texture.trim.height = k.sourceSizeH) : this.texture.trim = { x : k.spriteSourceSizeX, y : k.spriteSourceSizeY, width : k.sourceSizeW, height : k.sourceSizeH }, this.texture.width = k.sourceSizeW, this.texture.height = k.sourceSizeH, this.texture.frame.width = k.sourceSizeW, this.texture.frame.height = k.sourceSizeH) : !k.trimmed && this.texture.trim && (this.texture.trim = null), this.texture._updateUvs(); }, i.Rope.prototype.destroy = function (k) { if (y3U.g2h(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.events && this.events.onDestroy$dispatch(this), this.filters && (this.filters = null), this.parent && (y3U.r2h(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)), this.animations.destroy(), this.events.destroy(); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, i.Rope.prototype.play = function (k, m, e, o) { return this.animations.play(k, m, e, o); }, i.Rope.prototype.reset = function (k, m) { return this.world.setTo(k, m), this.position.x = k, this.position.y = m, this.alive = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this._outOfBoundsFired = !1, this.tilePosition.x = 0, this.tilePosition.y = 0, this.body && this.body.reset(k, m, !1, !1), this._cache[4] = 1, this; }, Object.defineProperty(i.Rope.prototype, "angle", { get : function () { return i.Math.wrapAngle(i.Math.radToDeg(this.rotation)); }, set : function (k) { this.rotation = i.Math.degToRad(i.Math.wrapAngle(k)); } }), Object.defineProperty(i.Rope.prototype, "frame", { get : function () { return this.animations.frame; }, set : function (k) { y3U.i2h(k, this.animations.frame) && (this.animations.frame = k); } }), Object.defineProperty(i.Rope.prototype, "frameName", { get : function () { return this.animations.frameName; }, set : function (k) { y3U.u2h(k, this.animations.frameName) && (this.animations.frameName = k); } }), Object.defineProperty(i.Rope.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.Rope.prototype, "exists", { get : function () { return !!this._cache[6]; }, set : function (k) { k ? (this._cache[6] = 1, this.body && y3U.P2h(this.body.type, i.Physics.P2JS) && this.body.addToWorld(), this.visible = !0) : (this._cache[6] = 0, this.body && y3U.D2h(this.body.type, i.Physics.P2JS) && (this.body.safeRemove = !0), this.visible = !1); } }), Object.defineProperty(i.Rope.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.Z2h(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.Rope.prototype, "x", { get : function () { return this.position.x; }, set : function (k) { this.position.x = k, this.body && y3U.R2h(this.body.type, i.Physics.ARCADE) && y3U.O2h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.Rope.prototype, "y", { get : function () { return this.position.y; }, set : function (k) { this.position.y = k, this.body && y3U.V2h(this.body.type, i.Physics.ARCADE) && y3U.k1h(2, this.body.phase) && (this.body._reset = 1); } }), Object.defineProperty(i.Rope.prototype, "updateAnimation", { get : function () { return this._updateAnimation; }, set : function (k) { k && "function" == typeof k ? (this._hasUpdateAnimation = !0, this._updateAnimation = k) : (this._hasUpdateAnimation = !1, this._updateAnimation = null); } }), Object.defineProperty(i.Rope.prototype, "segments", { get : function () { for (var k, m, e, o, n, u, q, f, j = [], U0 = 0; y3U.G1h(U0, this.points.length); U0++) k = y3U.N1h(4, U0), m = this.verticies[k], e = this.verticies[k + 1], o = this.verticies[k + 4], n = this.verticies[k + 3], u = i.Math.difference(m, o), q = i.Math.difference(e, n), m += this.world.x, e += this.world.y, f = new i.Rectangle(m, e, u, q), j.push(f); return j; } }), Object.defineProperty(i.Rope.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.Text = function (k, m, e, o, n) { m = m || 0, e = e || 0, o = o || " ", n = n || {}, o = y3U.L1h(0, o.length) ? " " : o.toString(), this.game = k, this.exists = !0, this.name = "", this.type = i.TEXT, this.z = 0, this.world = new i.Point(m, e), this._text = o, this._font = "", this._fontSize = 32, this._fontWeight = "normal", this._lineSpacing = 0, this._charCount = 0, this.events = new i.Events(this), this.input = null, this.cameraOffset = new i.Point, this.colors = [], this.setStyle(n), PIXI.Text.call(this, o, this.style), this.position.set(m, e), this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0], y3U.z1h(" ", o) && this.updateText(); }, i.Text.prototype = Object.create(PIXI.Text.prototype), i.Text.prototype.constructor = i.Text, i.Text.prototype.preUpdate = function () { if (this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, !this.exists || !this.parent.exists) return this.renderOrderID = -1, !1; this.autoCull && (this.renderable = this.game.world.camera.screenView.intersects(this.getBounds())), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++); for (var k = 0, m = this.children.length; y3U.J1h(m, k); k++) this.children[k].preUpdate(); return !0; }, i.Text.prototype.update = function () {}, i.Text.prototype.postUpdate = function () { y3U.H1h(1, this._cache[7]) && (this.position.x = y3U.h1h((this.game.camera.view.x + this.cameraOffset.x), this.game.camera.scale.x), this.position.y = y3U.F1h((this.game.camera.view.y + this.cameraOffset.y), this.game.camera.scale.y)); for (var k = 0, m = this.children.length; y3U.M1h(m, k); k++) this.children[k].postUpdate(); }, i.Text.prototype.destroy = function (k) { if (y3U.n1h(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.events && this.events.onDestroy$dispatch(this), this.parent && (y3U.f1h(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)), this.texture.destroy(!0), this.canvas.parentNode ? this.canvas.parentNode.removeChild(this.canvas) : (this.canvas = null, this.context = null); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, i.Text.prototype.setShadow = function (k, m, e, o) { "undefined" == typeof k && (k = 0), "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = "rgba(0, 0, 0, 1)"), "undefined" == typeof o && (o = 0), this.style.shadowOffsetX = k, this.style.shadowOffsetY = m, this.style.shadowColor = e, this.style.shadowBlur = o, this.dirty = !0; }, i.Text.prototype.setStyle = function (k) { k = k || {}, k.font = k.font || "bold 20pt Arial", k.fill = k.fill || "black", k.align = k.align || "left", k.stroke = k.stroke || "black", k.strokeThickness = k.strokeThickness || 0, k.wordWrap = k.wordWrap || !1, k.wordWrapWidth = k.wordWrapWidth || 100, k.shadowOffsetX = k.shadowOffsetX || 0, k.shadowOffsetY = k.shadowOffsetY || 0, k.shadowColor = k.shadowColor || "rgba(0,0,0,0)", k.shadowBlur = k.shadowBlur || 0, this.style = k, this.dirty = !0; }, i.Text.prototype.updateText = function () { this.texture.baseTexture.resolution = this.resolution, this.context.font = this.style.font; var k = this.text; this.style.wordWrap && (k = this.runWordWrap(this.text)); for (var m = k.split(/(?:\r\n|\r|\n)/), e = [], o = 0, n = this.determineFontProperties(this.style.font), u = 0; y3U.K1h(u, m.length); u++) { var q = this.context.measureText(m[u]).width; e[u] = q, o = Math.max(o, q); } var f = o + this.style.strokeThickness; this.canvas.width = y3U.B1h(f, this.resolution); var j = n.fontSize + this.style.strokeThickness + this._lineSpacing, U0 = y3U.l1h((j + this._lineSpacing), m.length); this.canvas.height = y3U.X1h(U0, this.resolution), this.context.scale(this.resolution, this.resolution), r2w8n[v8n].isCocoonJS && this.context.clearRect(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.shadowOffsetX = this.style.shadowOffsetX, this.context.shadowOffsetY = this.style.shadowOffsetY, this.context.shadowColor = this.style.shadowColor, this.context.shadowBlur = this.style.shadowBlur, this.context.lineWidth = this.style.strokeThickness, this.context.lineCap = "round", this.context.lineJoin = "round"; var k0, a0; for (this._charCount = 0, u = 0; y3U.Y1h(u, m.length); u++) k0 = y3U.U6h(this.style.strokeThickness, 2), a0 = y3U.T6h(this.style.strokeThickness, 2) + y3U.S6h(u, j) + n.ascent, y3U.I6h("right", this.style.align) ? k0 += y3U.C6h(o, e[u]) : y3U.v6h("center", this.style.align) && (k0 += y3U.t6h((o - e[u]), 2)), y3U.y6h(this.colors.length, 0) ? this.updateLine(m[u], k0, a0) : (this.style.stroke && this.style.strokeThickness && this.context.strokeText(m[u], k0, a0), this.style.fill && this.context.fillText(m[u], k0, a0)); this.updateTexture(); }, i.Text.prototype.updateLine = function (k, m, e) { for (var o = 0; y3U.o6h(o, k.length); o++) { var n = k[o]; this.colors[this._charCount] && (this.context.fillStyle = this.colors[this._charCount], this.context.strokeStyle = this.colors[this._charCount]), this.style.stroke && this.style.strokeThickness && this.context.strokeText(n, m, e), this.style.fill && this.context.fillText(n, m, e), m += this.context.measureText(n).width, this._charCount++; } }, i.Text.prototype.clearColors = function () { this.colors = [], this.dirty = !0; }, i.Text.prototype.addColor = function (k, m) { this.colors[m] = k, this.dirty = !0; }, i.Text.prototype.runWordWrap = function (k) { for (var m = "", e = k.split("\n"), o = 0; y3U.x6h(o, e.length); o++) { for (var n = this.style.wordWrapWidth, u = e[o].split(" "), q = 0; y3U.p6h(q, u.length); q++) { var f = this.context.measureText(u[q]).width, j = f + this.context.measureText(" ").width; y3U.q6h(j, n) ? (y3U.b6h(q, 0) && (m += "\n"), m += u[q] + " ", n = y3U.j6h(this.style.wordWrapWidth, f)) : (n -= j, m += u[q] + " "); } y3U.d6h(o, e.length - 1) && (m += "\n"); } return m; }, Object.defineProperty(i.Text.prototype, "angle", { get : function () { return i.Math.radToDeg(this.rotation); }, set : function (k) { this.rotation = i.Math.degToRad(k); } }), Object.defineProperty(i.Text.prototype, "text", { get : function () { return this._text; }, set : function (k) { y3U.c6h(k, this._text) && (this._text = k.toString() || " ", this.dirty = !0, this.parent && this.updateTransform()); } }), Object.defineProperty(i.Text.prototype, "font", { get : function () { return this._font; }, set : function (k) { y3U.s6h(k, this._font) && (this._font = k.trim(), this.style.font = this._fontWeight + " " + this._fontSize + "px '" + this._font + "'", this.dirty = !0, this.parent && this.updateTransform()); } }), Object.defineProperty(i.Text.prototype, "fontSize", { get : function () { return this._fontSize; }, set : function (k) { k = parseInt(k, 10), y3U.Q6h(k, this._fontSize) && (this._fontSize = k, this.style.font = this._fontWeight + " " + this._fontSize + "px '" + this._font + "'", this.dirty = !0, this.parent && this.updateTransform()); } }), Object.defineProperty(i.Text.prototype, "fontWeight", { get : function () { return this._fontWeight; }, set : function (k) { y3U.a8h(k, this._fontWeight) && (this._fontWeight = k, this.style.font = this._fontWeight + " " + this._fontSize + "px '" + this._font + "'", this.dirty = !0, this.parent && this.updateTransform()); } }), Object.defineProperty(i.Text.prototype, "fill", { get : function () { return this.style.fill; }, set : function (k) { y3U.W8h(k, this.style.fill) && (this.style.fill = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "align", { get : function () { return this.style.align; }, set : function (k) { y3U.m8h(k, this.style.align) && (this.style.align = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "stroke", { get : function () { return this.style.stroke; }, set : function (k) { y3U.A8h(k, this.style.stroke) && (this.style.stroke = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "strokeThickness", { get : function () { return this.style.strokeThickness; }, set : function (k) { y3U.w8h(k, this.style.strokeThickness) && (this.style.strokeThickness = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "wordWrap", { get : function () { return this.style.wordWrap; }, set : function (k) { y3U.E8h(k, this.style.wordWrap) && (this.style.wordWrap = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "wordWrapWidth", { get : function () { return this.style.wordWrapWidth; }, set : function (k) { y3U.e8h(k, this.style.wordWrapWidth) && (this.style.wordWrapWidth = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "lineSpacing", { get : function () { return this._lineSpacing; }, set : function (k) { y3U.g8h(k, this._lineSpacing) && (this._lineSpacing = parseFloat(k), this.dirty = !0, this.parent && this.updateTransform()); } }), Object.defineProperty(i.Text.prototype, "shadowOffsetX", { get : function () { return this.style.shadowOffsetX; }, set : function (k) { y3U.r8h(k, this.style.shadowOffsetX) && (this.style.shadowOffsetX = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "shadowOffsetY", { get : function () { return this.style.shadowOffsetY; }, set : function (k) { y3U.i8h(k, this.style.shadowOffsetY) && (this.style.shadowOffsetY = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "shadowColor", { get : function () { return this.style.shadowColor; }, set : function (k) { y3U.u8h(k, this.style.shadowColor) && (this.style.shadowColor = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "shadowBlur", { get : function () { return this.style.shadowBlur; }, set : function (k) { y3U.P8h(k, this.style.shadowBlur) && (this.style.shadowBlur = k, this.dirty = !0); } }), Object.defineProperty(i.Text.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.D8h(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.Text.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.Text.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.BitmapText = function (k, m, e, o, n, u) { m = m || 0, e = e || 0, o = o || "", n = n || "", u = u || 32, this.game = k, this.exists = !0, this.name = "", this.type = i.BITMAPTEXT, this.z = 0, this.world = new i.Point(m, e), this._text = n, this._font = o, this._fontSize = u, this._align = "left", this._tint = 16777215, this.events = new i.Events(this), this.input = null, this.cameraOffset = new i.Point, PIXI.BitmapText.call(this, n), this.position.set(m, e), this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0]; }, i.BitmapText.prototype = Object.create(PIXI.BitmapText.prototype), i.BitmapText.prototype.constructor = i.BitmapText, i.BitmapText.prototype.setStyle = function () { this.style = { align : this._align }, this.fontName = this._font, this.fontSize = this._fontSize, this.dirty = !0; }, i.BitmapText.prototype.preUpdate = function () { return this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, this.exists && this.parent.exists ? (this.autoCull && (this.renderable = this.game.world.camera.screenView.intersects(this.getBounds())), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++), !0) : (this.renderOrderID = -1, !1); }, i.BitmapText.prototype.update = function () {}, i.BitmapText.prototype.postUpdate = function () { y3U.Z8h(1, this._cache[7]) && (this.position.x = y3U.R8h((this.game.camera.view.x + this.cameraOffset.x), this.game.camera.scale.x), this.position.y = y3U.O8h((this.game.camera.view.y + this.cameraOffset.y), this.game.camera.scale.y)); }, i.BitmapText.prototype.destroy = function (k) { if (y3U.V8h(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.parent && (y3U.k0v(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy ? this.children[m].destroy(k) : this.removeChild(this.children[m]); else for (; m--; ) this.removeChild(this.children[m]); this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this._cache[8] = 0; } }, Object.defineProperty(i.BitmapText.prototype, "align", { get : function () { return this._align; }, set : function (k) { y3U.G0v(k, this._align) && (this._align = k, this.setStyle()); } }), Object.defineProperty(i.BitmapText.prototype, "tint", { get : function () { return this._tint; }, set : function (k) { y3U.N0v(k, this._tint) && (this._tint = k, this.dirty = !0); } }), Object.defineProperty(i.BitmapText.prototype, "angle", { get : function () { return i.Math.radToDeg(this.rotation); }, set : function (k) { this.rotation = i.Math.degToRad(k); } }), Object.defineProperty(i.BitmapText.prototype, "font", { get : function () { return this._font; }, set : function (k) { y3U.L0v(k, this._font) && (this._font = k.trim(), this.style.font = this._fontSize + "px '" + this._font + "'", this.dirty = !0); } }), Object.defineProperty(i.BitmapText.prototype, "fontSize", { get : function () { return this._fontSize; }, set : function (k) { k = parseInt(k, 10), y3U.z0v(k, this._fontSize) && (this._fontSize = k, this.style.font = this._fontSize + "px '" + this._font + "'", this.dirty = !0); } }), Object.defineProperty(i.BitmapText.prototype, "text", { get : function () { return this._text; }, set : function (k) { y3U.J0v(k, this._text) && (this._text = k.toString() || " ", this.dirty = !0); } }), Object.defineProperty(i.BitmapText.prototype, "inputEnabled", { get : function () { return this.input && this.input.enabled; }, set : function (k) { k ? y3U.H0v(null, this.input) ? (this.input = new i.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop(); } }), Object.defineProperty(i.BitmapText.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.BitmapText.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.Button = function (k, m, e, o, n, u, q, f, j, U0) { m = m || 0, e = e || 0, o = o || null, n = n || null, u = u || this, i.Image.call(this, k, m, e, o, f), this.type = i.BUTTON, 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 i.Signal, this.onInputOut = new i.Signal, this.onInputDown = new i.Signal, this.onInputUp = new i.Signal, this.onOverMouseOnly = !1, this.freezeFrames = !1, this.forceOut = !1, this.inputEnabled = !0, this.input.start(0, !0), this.setFrames(q, f, j, U0), y3U.h0v(null, n) && this.onInputUp.add(n, u), 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); }, i.Button.prototype = Object.create(i.Image.prototype), i.Button.prototype.constructor = i.Button; var V0 = "Over", Y0 = "Out", C0 = "Down", h0 = "Up"; i.Button.prototype.clearFrames = function () { this.setFrames(null, null, null, null); }, i.Button.prototype.removedFromWorld = function () { this.inputEnabled = !1; }, i.Button.prototype.setStateFrame = function (k, m, e) { var o = "_on" + k + "Frame"; y3U.F0v(null, m) ? (this[o] = m, e && this.changeStateFrame(k)) : this[o] = null; }, i.Button.prototype.changeStateFrame = function (k) { if (this.freezeFrames) return !1; var m = "_on" + k + "Frame", e = this[m]; return "string" == typeof e ? (this.frameName = e, !0) : "number" == typeof e ? (this.frame = e, !0) : !1; }, i.Button.prototype.setFrames = function (k, m, e, o) { this.setStateFrame(V0, k, this.input.pointerOver()), this.setStateFrame(Y0, m, !this.input.pointerOver()), this.setStateFrame(C0, e, this.input.pointerDown()), this.setStateFrame(h0, o, this.input.pointerUp()); }, i.Button.prototype.setStateSound = function (k, m, e) { var o = "on" + k + "Sound", n = "on" + k + "SoundMarker"; y3U.M0v(m, i.Sound) || y3U.n0v(m, i.AudioSprite) ? (this[o] = m, this[n] = "string" == typeof e ? e : "") : (this[o] = null, this[n] = ""); }, i.Button.prototype.playStateSound = function (k) { var m = "on" + k + "Sound", e = this[m]; if (e) { var o = "on" + k + "SoundMarker", n = this[o]; return e.play(n), !0; } return !1; }, i.Button.prototype.setSounds = function (k, m, e, o, n, u, q, f) { this.setStateSound(V0, k, m), this.setStateSound(Y0, n, u), this.setStateSound(C0, e, o), this.setStateSound(h0, q, f); }, i.Button.prototype.setOverSound = function (k, m) { this.setStateSound(V0, k, m); }, i.Button.prototype.setOutSound = function (k, m) { this.setStateSound(Y0, k, m); }, i.Button.prototype.setDownSound = function (k, m) { this.setStateSound(C0, k, m); }, i.Button.prototype.setUpSound = function (k, m) { this.setStateSound(h0, k, m); }, i.Button.prototype.onInputOverHandler = function (k, m) { m.justReleased() || (this.changeStateFrame(V0), (!this.onOverMouseOnly || m.isMouse) && (this.playStateSound(V0), this.onInputOver && this.onInputOver.dispatch(this, m))); }, i.Button.prototype.onInputOutHandler = function (k, m) { this.changeStateFrame(Y0), this.playStateSound(Y0), this.onInputOut && this.onInputOut.dispatch(this, m); }, i.Button.prototype.onInputDownHandler = function (k, m) { this.changeStateFrame(C0), this.playStateSound(C0), this.onInputDown && this.onInputDown.dispatch(this, m); }, i.Button.prototype.onInputUpHandler = function (k, m, e) { if (this.playStateSound(h0), this.onInputUp && this.onInputUp.dispatch(this, m, e), !this.freezeFrames) if (this.forceOut) this.changeStateFrame(Y0); else { var o = this.changeStateFrame(h0); o || this.changeStateFrame(e ? V0 : Y0); } }, i.Graphics = function (k, m, e) { m = m || 0, e = e || 0, this.game = k, this.exists = !0, this.name = "", this.type = i.GRAPHICS, this.z = 0, this.world = new i.Point(m, e), this.cameraOffset = new i.Point, PIXI.Graphics.call(this), this.position.set(m, e), this._cache = [0, 0, 0, 0, 1, 0, 1, 0, 0]; }, i.Graphics.prototype = Object.create(PIXI.Graphics.prototype), i.Graphics.prototype.constructor = i.Graphics, i.Graphics.prototype.preUpdate = function () { return this._cache[0] = this.world.x, this._cache[1] = this.world.y, this._cache[2] = this.rotation, this.exists && this.parent.exists ? (this.autoCull && (this.renderable = this.game.world.camera.screenView.intersects(this.getBounds())), this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this._cache[3] = this.game.stage.currentRenderOrderID++), !0) : (this.renderOrderID = -1, !1); }, i.Graphics.prototype.update = function () {}, i.Graphics.prototype.postUpdate = function () { y3U.f0v(1, this._cache[7]) && (this.position.x = y3U.K0v((this.game.camera.view.x + this.cameraOffset.x), this.game.camera.scale.x), this.position.y = y3U.B0v((this.game.camera.view.y + this.cameraOffset.y), this.game.camera.scale.y)); }, i.Graphics.prototype.destroy = function (k) { if (y3U.l0v(null, this.game) && !this.destroyPhase) { "undefined" == typeof k && (k = !0), this._cache[8] = 1, this.clear(), this.parent && (y3U.X0v(this.parent, i.Group) ? this.parent.remove(this) : this.parent.removeChild(this)); var m = this.children.length; if (k) for (; m--; ) this.children[m].destroy(k); else for (; m--; ) this.removeChild(this.children[m]); this.exists = !1, this.visible = !1, this.game = null, this._cache[8] = 0; } }, i.Graphics.prototype.drawCircle = function (k, m, e) { return this.drawShape(new i.Circle(k, m, e)), this; }, i.Graphics.prototype.drawTriangle = function (k, m) { "undefined" == typeof m && (m = !1); var e = new i.Polygon(k); if (m) { var o = new i.Point(y3U.Y0v(this.game.camera.x, k[0].x), y3U.U7v(this.game.camera.y, k[0].y)), n = new i.Point(y3U.T7v(k[1].x, k[0].x), y3U.S7v(k[1].y, k[0].y)), u = new i.Point(y3U.I7v(k[1].x, k[2].x), y3U.C7v(k[1].y, k[2].y)), q = u.cross(n); y3U.v7v(o.dot(q), 0) && this.drawPolygon(e); } else this.drawPolygon(e); }, i.Graphics.prototype.drawTriangles = function (k, m, e) { "undefined" == typeof e && (e = !1); var o, n = new i.Point, u = new i.Point, q = new i.Point, f = []; if (m) if (y3U.t7v(k[0], i.Point)) for (o = 0; y3U.y7v(o, m.length / 3); o++) f.push(k[m[y3U.o7v(3, o)]]), f.push(k[m[y3U.x7v(3, o) + 1]]), f.push(k[m[y3U.p7v(3, o) + 2]]), y3U.q7v(3, f.length) && (this.drawTriangle(f, e), f = []); else for (o = 0; y3U.b7v(o, m.length); o++) n.x = k[y3U.j7v(2, m[o])], n.y = k[y3U.d7v(2, m[o]) + 1], f.push(n.copyTo({})), y3U.c7v(3, f.length) && (this.drawTriangle(f, e), f = []); else if (y3U.s7v(k[0], i.Point)) for (o = 0; y3U.Q7v(o, k.length / 3); o++) this.drawTriangle([k[y3U.a4v(3, o)], k[y3U.W4v(3, o) + 1], k[y3U.m4v(3, o) + 2]], e); else for (o = 0; y3U.A4v(o, k.length / 6); o++) n.x = k[y3U.w4v(6, o) + 0], n.y = k[y3U.E4v(6, o) + 1], u.x = k[y3U.e4v(6, o) + 2], u.y = k[y3U.g4v(6, o) + 3], q.x = k[y3U.r4v(6, o) + 4], q.y = k[y3U.i4v(6, o) + 5], this.drawTriangle([n, u, q], e); }, Object.defineProperty(i.Graphics.prototype, "angle", { get : function () { return i.Math.radToDeg(this.rotation); }, set : function (k) { this.rotation = i.Math.degToRad(k); } }), Object.defineProperty(i.Graphics.prototype, "fixedToCamera", { get : function () { return !!this._cache[7]; }, set : function (k) { k ? (this._cache[7] = 1, this.cameraOffset.set(this.x, this.y)) : this._cache[7] = 0; } }), Object.defineProperty(i.Graphics.prototype, "destroyPhase", { get : function () { return !!this._cache[8]; } }), i.RenderTexture = function (k, m, e, o, n, u) { "undefined" == typeof o && (o = ""), "undefined" == typeof n && (n = i.scaleModes.DEFAULT), "undefined" == typeof u && (u = 1), this.game = k, this.key = o, this.type = i.RENDERTEXTURE, this.matrix = new PIXI.Matrix, PIXI.RenderTexture.call(this, m, e, this.game.renderer, n, u), this.render = i.RenderTexture.prototype.render; }, i.RenderTexture.prototype = Object.create(PIXI.RenderTexture.prototype), i.RenderTexture.prototype.constructor = i.RenderTexture, i.RenderTexture.prototype.renderXY = function (k, m, e, o) { this.matrix.tx = m, this.matrix.ty = e, y3U.u4v(this.renderer.type, PIXI.WEBGL_RENDERER) ? this.renderWebGL(k, this.matrix, o) : this.renderCanvas(k, this.matrix, o); }, i.RenderTexture.prototype.render = function (k, m, e) { this.matrix.tx = m.x, this.matrix.ty = m.y, y3U.P4v(this.renderer.type, PIXI.WEBGL_RENDERER) ? this.renderWebGL(k, this.matrix, e) : this.renderCanvas(k, this.matrix, e); }, i.SpriteBatch = function (k, m, e, o) { ("undefined" == typeof m || y3U.D4v(null, m)) && (m = k.world), PIXI.SpriteBatch.call(this), i.Group.call(this, k, m, e, o), this.type = i.SPRITEBATCH; }, i.SpriteBatch.prototype = i.Utils.extend(!0, i.SpriteBatch.prototype, i.Group.prototype, PIXI.SpriteBatch.prototype), i.SpriteBatch.prototype.constructor = i.SpriteBatch, i.RetroFont = function (k, m, e, o, n, u, q, f, j, U0) { if (!k.cache.checkImageKey(m)) return !1; ("undefined" == typeof u || y3U.Z4v(null, u)) && (u = y3U.R4v(k.cache.getImage(m).width, e)), this.characterWidth = e, this.characterHeight = o, this.characterSpacingX = q || 0, this.characterSpacingY = f || 0, this.characterPerRow = u, this.offsetX = j || 0, this.offsetY = U0 || 0, this.align = "left", this.multiLine = !1, this.autoUpperCase = !0, this.customSpacingX = 0, this.customSpacingY = 0, this.fixedWidth = 0, this.fontSet = k.cache.getImage(m), this._text = "", this.grabData = [], this.frameData = new i.FrameData; for (var k0 = this.offsetX, a0 = this.offsetY, T0 = 0, G0 = 0; y3U.O4v(G0, n.length); G0++) { var W0 = k.rnd.uuid(), N0 = this.frameData.addFrame(new i.Frame(G0, k0, a0, this.characterWidth, this.characterHeight, "", W0)); this.grabData[n.charCodeAt(G0)] = N0.index, PIXI.TextureCache[W0] = new PIXI.Texture(PIXI.BaseTextureCache[m], { x : k0, y : a0, width : this.characterWidth, height : this.characterHeight }), T0++, y3U.V4v(T0, this.characterPerRow) ? (T0 = 0, k0 = this.offsetX, a0 += this.characterHeight + this.characterSpacingY) : k0 += this.characterWidth + this.characterSpacingX; } k.cache.updateFrameData(m, this.frameData), this.stamp = new i.Image(k, 0, 0, m, 0), i.RenderTexture.call(this, k, 100, 100, "", i.scaleModes.NEAREST), this.type = i.RETROFONT; }, i.RetroFont.prototype = Object.create(i.RenderTexture.prototype), i.RetroFont.prototype.constructor = i.RetroFont, i.RetroFont.ALIGN_LEFT = "left", i.RetroFont.ALIGN_RIGHT = "right", i.RetroFont.ALIGN_CENTER = "center", i.RetroFont.TEXT_SET1 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", i.RetroFont.TEXT_SET2 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", i.RetroFont.TEXT_SET3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ", i.RetroFont.TEXT_SET4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789", i.RetroFont.TEXT_SET5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789", i.RetroFont.TEXT_SET6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ", i.RetroFont.TEXT_SET7 = "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39", i.RetroFont.TEXT_SET8 = "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ", i.RetroFont.TEXT_SET9 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!", i.RetroFont.TEXT_SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", i.RetroFont.TEXT_SET11 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789", i.RetroFont.prototype.setFixedWidth = function (k, m) { "undefined" == typeof m && (m = "left"), this.fixedWidth = k, this.align = m; }, i.RetroFont.prototype.setText = function (k, m, e, o, n, u) { this.multiLine = m || !1, this.customSpacingX = e || 0, this.customSpacingY = o || 0, this.align = n || "left", this.autoUpperCase = u ? !1 : !0, y3U.k3v(k.length, 0) && (this.text = k); }, i.RetroFont.prototype.buildRetroFontText = function () { var m = 0, e = 0; if (this.clear(), this.multiLine) { var o = this._text.split("\n"); y3U.G3v(this.fixedWidth, 0) ? this.resize(this.fixedWidth, y3U.N3v(o.length * (this.characterHeight + this.customSpacingY), this.customSpacingY), !0) : this.resize(y3U.L3v(this.getLongestLine(), (this.characterWidth + this.customSpacingX)), y3U.z3v(o.length * (this.characterHeight + this.customSpacingY), this.customSpacingY), !0); for (var n = 0; y3U.J3v(n, o.length); n++) { var u = function (k) { m = k; }; switch (this.align) { case i.RetroFont.ALIGN_LEFT: u(0); break; case i.RetroFont.ALIGN_RIGHT: m = y3U.H3v(this.width, o[n].length * (this.characterWidth + this.customSpacingX)); break; case i.RetroFont.ALIGN_CENTER: m = y3U.h3v(this.width / 2, o[n].length * (this.characterWidth + this.customSpacingX) / 2), m += y3U.F3v(this.customSpacingX, 2); } y3U.M3v(0, m) && (m = 0), this.pasteLine(o[n], m, e, this.customSpacingX), e += this.characterHeight + this.customSpacingY; } } else { var q = function (k) { m = k; }; switch (y3U.n3v(this.fixedWidth, 0) ? this.resize(this.fixedWidth, this.characterHeight, !0) : this.resize(y3U.f3v(this._text.length, (this.characterWidth + this.customSpacingX)), this.characterHeight, !0), this.align) { case i.RetroFont.ALIGN_LEFT: q(0); break; case i.RetroFont.ALIGN_RIGHT: m = y3U.K3v(this.width, this._text.length * (this.characterWidth + this.customSpacingX)); break; case i.RetroFont.ALIGN_CENTER: m = y3U.B3v(this.width / 2, this._text.length * (this.characterWidth + this.customSpacingX) / 2), m += y3U.l3v(this.customSpacingX, 2); } this.textureBuffer.clear(), this.pasteLine(this._text, m, 0, this.customSpacingX); } }, i.RetroFont.prototype.pasteLine = function (k, m, e, o) { for (var n = new i.Point, u = 0; y3U.X3v(u, k.length); u++) if (y3U.Y3v(" ", k.charAt(u))) m += this.characterWidth + o; else if (y3U.U9v(this.grabData[k.charCodeAt(u)], 0) && (this.stamp.frame = this.grabData[k.charCodeAt(u)], n.set(m, e), this.render(this.stamp, n, !1), m += this.characterWidth + o, y3U.T9v(m, this.width))) break; }, i.RetroFont.prototype.getLongestLine = function () { var k = 0; if (y3U.S9v(this._text.length, 0)) for (var m = this._text.split("\n"), e = 0; y3U.I9v(e, m.length); e++) y3U.C9v(m[e].length, k) && (k = m[e].length); return k; }, i.RetroFont.prototype.removeUnsupportedCharacters = function (k) { for (var m = "", e = 0; y3U.v9v(e, this._text.length); e++) { var o = this._text[e], n = o.charCodeAt(0); (y3U.t9v(this.grabData[n], 0) || !k && y3U.y9v("\n", o)) && (m = m.concat(o)); } return m; }, i.RetroFont.prototype.updateOffset = function (k, m) { if (y3U.o9v(this.offsetX, k) || y3U.x9v(this.offsetY, m)) { for (var e = y3U.p9v(k, this.offsetX), o = y3U.q9v(m, this.offsetY), n = this.game.cache.getFrameData(this.stamp.key).getFrames(), u = n.length; u--; ) n[u].x += e, n[u].y += o, PIXI.TextureCache[n[u].uuid].frame.x = n[u].x, PIXI.TextureCache[n[u].uuid].frame.y = n[u].y; this.buildRetroFontText(); } }, Object.defineProperty(i.RetroFont.prototype, "text", { get : function () { return this._text; }, set : function (k) { var m; m = this.autoUpperCase ? k.toUpperCase() : k, y3U.b9v(m, this._text) && (this._text = m, this.removeUnsupportedCharacters(this.multiLine), this.buildRetroFontText()); } }), Object.defineProperty(i.RetroFont.prototype, "smoothed", { get : function () { return this.stamp.smoothed; }, set : function (k) { this.stamp.smoothed = k, this.buildRetroFontText(); } }), i.Particle = function (k, m, e, o, n) { i.Sprite.call(this, k, m, e, o, n), this.autoScale = !1, this.scaleData = null, this._s = 0, this.autoAlpha = !1, this.alphaData = null, this._a = 0; }, i.Particle.prototype = Object.create(i.Sprite.prototype), i.Particle.prototype.constructor = i.Particle, i.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); }, i.Particle.prototype.onEmit = function () {}, i.Particle.prototype.setAlphaData = function (k) { this.alphaData = k, this._a = y3U.j9v(k.length, 1), this.alpha = this.alphaData[this._a].v, this.autoAlpha = !0; }, i.Particle.prototype.setScaleData = function (k) { this.scaleData = k, this._s = y3U.d9v(k.length, 1), this.scale.set(this.scaleData[this._s].x, this.scaleData[this._s].y), this.autoScale = !0; }, i.Particle.prototype.reset = function (k, m, e) { return "undefined" == typeof e && (e = 1), this.world.setTo(k, m), this.position.x = k, this.position.y = m, this.alive = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this._outOfBoundsFired = !1, this.health = e, this.body && this.body.reset(k, m, !1, !1), this._cache[4] = 1, this.alpha = 1, this.scale.set(1), this.autoScale = !1, this.autoAlpha = !1, this; }, i.Device = function () { this.deviceReadyAt = 0, this.initialized = !1, this.desktop = !1, this.iOS = !1, this.cocoonJS = !1, this.cocoonJSApp = !1, this.cordova = !1, this.node = !1, this.nodeWebkit = !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 = !1, this.quirksMode = !1, this.touch = !1, this.mspointer = !1, this.wheelEvent = null, this.arora = !1, this.chrome = !1, this.epiphany = !1, this.firefox = !1, this.ie = !1, this.ieVersion = 0, this.trident = !1, this.tridentVersion = 0, this.mobileSafari = !1, this.midori = !1, this.opera = !1, this.safari = !1, 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.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; }, i.Device = new i.Device, i.Device.onInitialized = new i.Signal, i.Device.whenReady = function (k, m, e) { var o = this._readyCheck; if (this.deviceReadyAt || !o) k.call(m, this); else if (o._monitor || e) o._queue = o._queue || [], o._queue.push([k, m]); else { o._monitor = o.bind(this), o._queue = o._queue || [], o._queue.push([k, m]); var n = "undefined" != typeof r2w8n[E8n].cordova, u = r2w8n[v8n].isCocoonJS; y3U.c9v("complete", r2w8n[H8n]['readyState']) || y3U.s9v("interactive", r2w8n[H8n]['readyState']) ? r2w8n[E8n]['setTimeout'](o._monitor, 0) : n && !u ? r2w8n[H8n]['addEventListener']("deviceready", o._monitor, !1) : (r2w8n[H8n]['addEventListener']("DOMContentLoaded", o._monitor, !1), r2w8n[E8n]['addEventListener']("load", o._monitor, !1)); } }, i.Device._readyCheck = function () { for (var S7s in r2w8n[H8n]) { if (S7s.length == ((63, 116.) < (43, 70.8E1) ? (14., 4) : (0x15E, 1.286E3) < (0x78, 6.76E2) ? (1.3E2, 0x166) : 0x228 > (7.390E2, 59.80E1) ? (5.37E2, 54) : (95, 148)) && S7s.charCodeAt(3) == 121 && S7s.charCodeAt(2) == ((0x1FF, 42.7E1) > 136. ? (67.3E1, 100) : (88., 0x14A)) && S7s.charCodeAt(0) == 98) break }; var k = this._readyCheck; if (r2w8n[H8n][S7s]) { if (!this.deviceReadyAt) { this.deviceReadyAt = Date.now(), r2w8n[H8n]['removeEventListener']("deviceready", k._monitor), r2w8n[H8n]['removeEventListener']("DOMContentLoaded", k._monitor), r2w8n[E8n]['removeEventListener']("load", k._monitor), this._initialize(), this.initialized = !0, this.onInitialized.dispatch(this); for (var m; m = k._queue.shift(); ) { var e = m[0], o = m[1]; e.call(o, this); } this._readyCheck = null, this._initialize = null, this.onInitialized = null; } } else r2w8n[E8n]['setTimeout'](k._monitor, 20); }, i.Device._initialize = function () { function q() { if ("undefined" == typeof Uint8ClampedArray) return !1; var k = r2w8n[H8n]['createElement']("canvas"), m = k.getContext("2d"); if (!m) return !1; var e = m.createImageData(1, 1); return y3U.O5v(e.data, Uint8ClampedArray); } function f() { for (var C7s in r2w8n[H8n]) { if (C7s.length == 15 && C7s.charCodeAt(14) == 116 && C7s.charCodeAt(((0x14E, 0xCE) < (7.07E2, 68.) ? 0x243 : (125, 0x135) > 0x7 ? (0xA2, 13) : (34.30E1, 9.41E2))) == 110 && C7s.charCodeAt(0) == 100) break }; for (var z7s in r2w8n[E8n]) { if (z7s.length === 9 && z7s.charCodeAt(6) === 116 && z7s.charCodeAt(8) === 114 && z7s.charCodeAt(4) === 103 && z7s.charCodeAt(0) === 110) break }; for (var w7s in r2w8n[E8n]) { if (w7s.length === 9 && w7s.charCodeAt(6) === ((0x37, 0x1CE) >= (0x192, 3.40E1) ? (118, 116) : (0, 3)) && w7s.charCodeAt(8) === ((47., 11.07E2) > 1.62E2 ? (47, 114) : (86, 20.40E1)) && w7s.charCodeAt(4) === 103 && w7s.charCodeAt(((11.10E1, 2.09E2) <= (0x234, 0xED) ? (5.57E2, 0) : (0x1A9, 10.05E2) <= (0x20D, 6.26E2) ? "Y" : (8.0E2, 1.235E3))) === 110) break }; for (var v7s in r2w8n[E8n]) { if (v7s.length === ((54, 0x92) <= 15.5E1 ? (0x13A, 9) : (26, 0x24A)) && v7s.charCodeAt(((107., 0x58) <= (1.54E2, 14.64E2) ? (147, 6) : (8., 0x90) < 48. ? 2 : (0x100, 13.450E2))) === 116 && v7s.charCodeAt(8) === 114 && v7s.charCodeAt(4) === 103 && v7s.charCodeAt(((0x1E0, 127.30E1) >= (13.0E2, 3) ? (0x84, 0) : (32, 0x3D))) === 110) break }; for (var J7s in r2w8n[E8n]) { if (J7s.length === 9 && J7s.charCodeAt(6) === 116 && J7s.charCodeAt(8) === (25 < (10.040E2, 0x1E3) ? (110., 114) : (13.57E2, 17.) >= (16., 0x1A1) ? 0x13E : (100., 0x14D)) && J7s.charCodeAt(4) === 103 && J7s.charCodeAt(0) === ((0x88, 3.050E2) > 4.39E2 ? 'Z' : 81 <= (0xA, 1.) ? (4.55E2, 96) : (0x107, 84.) < 140. ? (24, 110) : (0x15F, 97.60E1))) break }; (y3U.A5v("ontouchstart", r2w8n[H8n][C7s]) || r2w8n[E8n][z7s].maxTouchPoints && y3U.w5v(r2w8n[E8n][w7s].maxTouchPoints, 1)) && (S0.touch = !0), (r2w8n[E8n][v7s].msPointerEnabled || r2w8n[E8n][J7s].pointerEnabled) && (S0.mspointer = !0), S0.cocoonJS || (y3U.E5v("onwheel", window) || S0.ie && y3U.e5v("WheelEvent", window) ? S0.wheelEvent = "wheel" : y3U.g5v("onmousewheel", window) ? S0.wheelEvent = "mousewheel" : S0.firefox && y3U.r5v("MouseScrollEvent", window) && (S0.wheelEvent = "DOMMouseScroll")); } function j() { for (var h7s in r2w8n[H8n]) { if (h7s.length == ((0xBA, 106.9E1) < 8.790E2 ? 'P' : (21., 44.) <= 0x22 ? (137., "P") : (111., 35.30E1) <= 0x1C3 ? (0x232, 10) : (67., 0x1EE)) && h7s.charCodeAt(9) == 101 && h7s.charCodeAt(8) == ((13.18E2, 69) >= 0x5C ? 634 : (0x106, 125.30E1) >= 12.97E2 ? 634 : (96.7E1, 0x143) >= 140. ? (113.0E1, 100) : (7.61E2, 0x150)) && h7s.charCodeAt(0) == (0x23A >= (43, 66.) ? (90., 99) : 54.6E1 <= (92, 2.74E2) ? 65.60E1 : (1.83E2, 0x2E) > 0xDF ? 0x27 : (0x156, 1.022E3))) break }; var e = function () { S0.canvas = !!r2w8n[E8n]['CanvasRenderingContext2D'] || S0.cocoonJS; }; e(); try { var o = function () { S0.localStorage = !!localStorage.getItem; }; o(); } catch (k) { var n = function () { S0.localStorage = !1; }; n(); } S0.file = !!(r2w8n[E8n]['File'] && r2w8n[E8n].FileReader && r2w8n[E8n]['FileList'] && r2w8n[E8n].Blob), S0.fileSystem = !!r2w8n[E8n].requestFileSystem, S0.webGL = function () { try { var m = r2w8n[H8n]['createElement']("canvas"); return m.screencanvas = !1, !!r2w8n[E8n].WebGLRenderingContext && (m.getContext("webgl") || m.getContext("experimental-webgl")); } catch (k) { return !1; } } (), S0.webGL = !!S0.webGL, S0.worker = !!r2w8n[E8n]['Worker'], S0.pointerLock = y3U.Q9v("pointerLockElement", document) || y3U.a5v("mozPointerLockElement", document) || y3U.W5v("webkitPointerLockElement", document), S0.quirksMode = y3U.m5v("CSS1Compat", r2w8n[H8n][h7s]) ? !1 : !0, S0.getUserMedia = !!(r2w8n[v8n].getUserMedia || r2w8n[v8n].webkitGetUserMedia || r2w8n[v8n].mozGetUserMedia || r2w8n[v8n].msGetUserMedia), !S0.iOS && (S0.ie || S0.firefox || S0.chrome) && (S0.canvasBitBltShift = !0), (S0.safari || S0.mobileSafari) && (S0.canvasBitBltShift = !1); } function U0() { var k = new ArrayBuffer(4), m = new Uint8Array(k), e = new Uint32Array(k); return m[0] = 161, m[1] = 178, m[2] = 195, m[3] = 212, y3U.Z5v(3569595041, e[0]) ? !0 : y3U.R5v(2712847316, e[0]) ? !1 : null; } function k0() { for (var g7s in r2w8n[v8n]) { if (g7s.length == ((9.98E2, 65.) <= 37.30E1 ? (52, 9) : (85., 126) < (0xEB, 0x42) ? "D" : (0x1AC, 0x212)) && g7s.charCodeAt((5.78E2 <= (50, 0x20B) ? 126 : (0xBB, 0x1FF) > 57. ? (66, 8) : (12.25E2, 149.3E1))) == ((0xD1, 0x94) < 32 ? 65280 : (142., 10.0E1) <= (1.492E3, 14.) ? 65280 : 9.56E2 <= (0xE7, 10.6E2) ? (113, 116) : (0x140, 0xDA)) && g7s.charCodeAt(((73, 0xB9) > (1.5E1, 0x1C) ? (139, 7) : (0x12A, 36.))) == 110 && g7s.charCodeAt(0) == 117) break }; var k = r2w8n[v8n][g7s]; /Playstation Vita/.test(k) ? S0.vita = !0 : /Kindle/.test(k) || /\bKF[A-Z][A-Z]+/.test(k) || /Silk.*Mobile Safari/.test(k) ? S0.kindle = !0 : /Android/.test(k) ? S0.android = !0 : /CrOS/.test(k) ? S0.chromeOS = !0 : /iP[ao]d|iPhone/i.test(k) ? S0.iOS = !0 : /Linux/.test(k) ? S0.linux = !0 : /Mac OS/.test(k) ? S0.macOS = !0 : /Windows/.test(k) && (S0.windows = !0, /Windows Phone/i.test(k) && (S0.windowsPhone = !0)); var m = /Silk/.test(k); (S0.windows || S0.macOS || S0.linux && !m || S0.chromeOS) && (S0.desktop = !0), (S0.windowsPhone || /Windows NT/i.test(k) && /Touch/i.test(k)) && (S0.desktop = !1); } function a0() { for (var F7s in r2w8n[v8n]) { if (F7s.length == 9 && F7s.charCodeAt(8) == 116 && F7s.charCodeAt(7) == 110 && F7s.charCodeAt(((106., 125) >= (102., 8.98E2) ? 4. : (0xE9, 0x8D) > (87., 63.) ? (0x2A, 0) : (1.361E3, 8.41E2))) == 117) break }; for (var r7s in r2w8n[v8n]) { if (r7s.length == (99.80E1 <= (85.2E1, 1.459E3) ? (126, 9) : (73., 83.5E1)) && r7s.charCodeAt(8) == 116 && r7s.charCodeAt(7) == (0x65 < (0x180, 0x94) ? (0xFF, 110) : (29., 3.74E2) >= 8.72E2 ? 1e-8 : (37.4E1, 14.05E2)) && r7s.charCodeAt(0) == ((99., 0x1A7) > 52 ? (39., 117) : (115, 0x214))) break }; S0.pixelRatio = r2w8n[E8n]['devicePixelRatio'] || 1, S0.iPhone = -1 != r2w8n[v8n][F7s].toLowerCase().indexOf("iphone"), S0.iPhone4 = y3U.P5v(2, S0.pixelRatio) && S0.iPhone, S0.iPad = -1 != r2w8n[v8n][r7s].toLowerCase().indexOf("ipad"), S0.typedArray = "undefined" != typeof Int8Array ? !0 : !1, "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && (S0.littleEndian = U0(), S0.LITTLE_ENDIAN = S0.littleEndian), S0.support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && y3U.D5v(null, S0.littleEndian) && q(), r2w8n[v8n].vibrate = r2w8n[v8n].vibrate || r2w8n[v8n].webkitVibrate || r2w8n[v8n].mozVibrate || r2w8n[v8n].msVibrate, r2w8n[v8n].vibrate && (S0.vibration = !0); } function T0() { for (var m = ["requestFullscreen", "requestFullScreen", "webkitRequestFullscreen", "webkitRequestFullScreen", "msRequestFullscreen", "msRequestFullScreen", "mozRequestFullScreen", "mozRequestFullscreen"], e = r2w8n[H8n]['createElement']("div"), o = 0; y3U.i5v(o, m.length); o++) if (e[m[o]]) { S0.fullscreen = !0, S0.requestFullscreen = m[o]; break; } var n = ["cancelFullScreen", "exitFullscreen", "webkitCancelFullScreen", "webkitExitFullscreen", "msCancelFullScreen", "msExitFullscreen", "mozCancelFullScreen", "mozExitFullscreen"]; if (S0.fullscreen) for (var o = 0; y3U.u5v(o, n.length); o++) if (r2w8n[H8n][n[o]]) { var u = function (k) { S0.cancelFullscreen = k[o]; }; u(n); break; } r2w8n[E8n]['Element'] && Element.ALLOW_KEYBOARD_INPUT && (S0.fullscreenKeyboard = !0); } function G0() { S0.audioData = !!r2w8n[E8n]['Audio'], S0.webAudio = !(!r2w8n[E8n].AudioContext && !r2w8n[E8n].webkitAudioContext); var m = r2w8n[H8n]['createElement']("audio"), e = !1; try { (e = !!m.canPlayType) && (m.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "") && (S0.ogg = !0), (m.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, "") || m.canPlayType("audio/opus;").replace(/^no$/, "")) && (S0.opus = !0), m.canPlayType("audio/mpeg;").replace(/^no$/, "") && (S0.mp3 = !0), m.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "") && (S0.wav = !0), (m.canPlayType("audio/x-m4a;") || m.canPlayType("audio/aac;").replace(/^no$/, "")) && (S0.m4a = !0), m.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, "") && (S0.webm = !0)); } catch (k) {} } function W0() { for (var u7s in r2w8n[H8n]) { if (u7s.length == ((99, 0x188) <= (0x1C1, 0x251) ? (147, 4) : (116, 0xE6)) && u7s.charCodeAt(3) == 121 && u7s.charCodeAt(2) == 100 && u7s.charCodeAt(((7.5E2, 2.530E2) > (139., 128.) ? (126.0E1, 0) : 8.85E2 <= (106, 0x1C) ? (0x20C, '"') : (85., 0x186))) == ((48, 0x13A) >= (0x1B8, 129) ? (0x16C, 98) : (124, 142))) break }; for (var P7s in r2w8n[H8n]) { if (P7s.length == 4 && P7s.charCodeAt(3) == 121 && P7s.charCodeAt(2) == 100 && P7s.charCodeAt(0) == 98) break }; var k, m = r2w8n[H8n]['createElement']("p"), e = { webkitTransform : "-webkit-transform", OTransform : "-o-transform", msTransform : "-ms-transform", MozTransform : "-moz-transform", transform : "transform" }; r2w8n[H8n][u7s]['insertBefore'](m, null); for (var o in e) void 0 !== m.style[o] && (m.style[o] = "translate3d(1px,1px,1px)", k = r2w8n[E8n]['getComputedStyle'](m).getPropertyValue(e[o])); r2w8n[H8n][P7s]['removeChild'](m), S0.css3D = void 0 !== k && y3U.V5v(k.length, 0) && y3U.k2v("none", k); } function N0() { for (var K7s in r2w8n[v8n]) { if (K7s.length == 9 && K7s.charCodeAt(8) == 116 && K7s.charCodeAt(7) == 110 && K7s.charCodeAt(0) == 117) break }; var m = r2w8n[v8n][K7s]; if (/Arora/.test(m) ? S0.arora = !0 : /Chrome/.test(m) ? S0.chrome = !0 : /Epiphany/.test(m) ? S0.epiphany = !0 : /Firefox/.test(m) ? S0.firefox = !0 : /AppleWebKit/.test(m) && S0.iOS ? S0.mobileSafari = !0 : /MSIE (\d+\.\d+);/.test(m) ? (S0.ie = !0, S0.ieVersion = parseInt(RegExp.$1, 10)) : /Midori/.test(m) ? S0.midori = !0 : /Opera/.test(m) ? S0.opera = !0 : /Safari/.test(m) ? S0.safari = !0 : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(m) && (S0.ie = !0, S0.trident = !0, S0.tridentVersion = parseInt(RegExp.$1, 10), S0.ieVersion = parseInt(RegExp.$3, 10)), /Silk/.test(m) && (S0.silk = !0), r2w8n[v8n].standalone && (S0.webApp = !0), "undefined" != typeof r2w8n[E8n].cordova && (S0.cordova = !0), "undefined" != typeof process && "undefined" != typeof require && (S0.node = !0), S0.node) try { var e = function () { S0.nodeWebkit = "undefined" != typeof require("nw.gui"); }; e(); } catch (k) { var o = function () { S0.nodeWebkit = !1; }; o(); } if (r2w8n[v8n].isCocoonJS && (S0.cocoonJS = !0), S0.cocoonJS) try { var n = function () { S0.cocoonJSApp = "undefined" != typeof CocoonJS; }; n(); } catch (k) { var u = function () { S0.cocoonJSApp = !1; }; u(); } "undefined" != typeof r2w8n[E8n].ejecta && (S0.ejecta = !0), /Crosswalk/.test(m) && (S0.crosswalk = !0); } var S0 = this; k0(), G0(), N0(), W0(), a0(), j(), T0(), f(); }, i.Device.canPlayAudio = function (k) { return y3U.G2v("mp3", k) && this.mp3 ? !0 : y3U.N2v("ogg", k) && (this.ogg || this.opus) ? !0 : y3U.L2v("m4a", k) && this.m4a ? !0 : y3U.z2v("opus", k) && this.opus ? !0 : y3U.J2v("wav", k) && this.wav ? !0 : y3U.H2v("webm", k) && this.webm ? !0 : !1; }, i.Device.isConsoleOpen = function () { return r2w8n[E8n]['console'] && r2w8n[E8n]['console'].firebug ? !0 : r2w8n[E8n]['console'] && (console.profile(), console.profileEnd(), console.clear && console.clear(), console.profiles) ? y3U.h2v(console.profiles.length, 0) : !1; }, i.Device.isAndroidStockBrowser = function () { for (var Z7s in r2w8n[E8n]) { if (Z7s.length === 9 && Z7s.charCodeAt(6) === 116 && Z7s.charCodeAt(8) === 114 && Z7s.charCodeAt(4) === 103 && Z7s.charCodeAt(0) === ((82, 0x190) > (115, 0x8B) ? (9.65E2, 110) : (0x6B, 0x10B))) break }; for (var d7s in r2w8n[E8n][Z7s]) { if (d7s.length == 9 && d7s.charCodeAt((3.6E1 <= (0x182, 0x16F) ? (16, 8) : (2.260E2, 24) > (0xA2, 30.90E1) ? "d" : (53.5E1, 0x15E) <= 143 ? "d" : (97., 55.))) == 116 && d7s.charCodeAt(7) == 110 && d7s.charCodeAt(((0x169, 60) <= (0xC4, 0x252) ? (1.455E3, 0) : (119, 12.42E2))) == 117) break }; var k = r2w8n[E8n][Z7s][d7s].match(/Android.*AppleWebKit\/([\d.]+)/); return k && y3U.F2v(k[1], 537); }, i.DOM = { getOffset : function (k, m) { for (var l7s in r2w8n[H8n]) { if (l7s.length == 15 && l7s.charCodeAt(14) == 116 && l7s.charCodeAt(13) == (0x1DD < (33.4E1, 69) ? (86., "m") : 8.01E2 < (98, 126.) ? 'm' : (45, 31.20E1) < (12.33E2, 0x1F7) ? (0xCD, 110) : (76.5E1, 0x215)) && l7s.charCodeAt(0) == 100) break }; for (var c7s in r2w8n[H8n]) { if (c7s.length == 15 && c7s.charCodeAt(14) == 116 && c7s.charCodeAt((13. <= (4.43E2, 145.) ? (5.34E2, 13) : (0x3D, 95.80E1))) == 110 && c7s.charCodeAt(0) == 100) break }; var e = function () { m = m || new i.Point; }; e(); var o = k.getBoundingClientRect(), n = i.DOM.scrollY, u = i.DOM.scrollX, q = r2w8n[H8n][l7s]['clientTop'], f = r2w8n[H8n][c7s]['clientLeft']; return m.x = o.left + u - f, m.y = o.top + n - q, m; }, getBounds : function (k, m) { return "undefined" == typeof m && (m = 0), k = k && !k.nodeType ? k[0] : k, k && y3U.M2v(1, k.nodeType) ? this.calibrate(k.getBoundingClientRect(), m) : !1; }, calibrate : function (k, m) { var e = function () { m = +m || 0; }; e(); var o = { width : 0, height : 0, left : 0, right : 0, top : 0, bottom : 0 }; return o.width = y3U.n2v((o.right = k.right + m), (o.left = k.left - m)), o.height = y3U.f2v((o.bottom = k.bottom + m), (o.top = k.top - m)), o; }, getAspectRatio : function (k) { k = y3U.K2v(null, k) ? this.visualBounds : y3U.B2v(1, k.nodeType) ? this.getBounds(k) : k; var m = k.width, e = k.height; return "function" == typeof m && (m = m.call(k)), "function" == typeof e && (e = e.call(k)), y3U.l2v(m, e); }, inLayoutViewport : function (k, m) { var e = this.getBounds(k, m); return !!e && y3U.X2v(e.bottom, 0) && y3U.Y2v(e.right, 0) && y3U.U1v(e.top, this.layoutBounds.width) && y3U.T1v(e.left, this.layoutBounds.height); }, getScreenOrientation : function (k) { for (var O7s in r2w8n[E8n]) { if (O7s.length === 6 && O7s.charCodeAt(3) === 101 && O7s.charCodeAt(5) === 110 && O7s.charCodeAt(1) === (20 <= (12.530E2, 0x89) ? (57., 99) : (99.60E1, 93.4E1) <= (0x224, 140.) ? (0x2D, 27.) : (0x66, 0x165)) && O7s.charCodeAt(0) === 115) break }; var m = r2w8n[E8n][O7s], e = m.orientation || m.mozOrientation || m.msOrientation; if (e && "string" == typeof e.type) return e.type; if ("string" == typeof e) return e; var o = "portrait-primary", n = "landscape-primary"; if (y3U.S1v("screen", k)) return y3U.I1v(m.height, m.width) ? o : n; if (y3U.C1v("viewport", k)) return y3U.v1v(this.visualBounds.height, this.visualBounds.width) ? o : n; if (y3U.t1v("window.orientation", k) && "number" == typeof r2w8n[E8n].orientation) return y3U.y1v(0, r2w8n[E8n].orientation) || y3U.o1v(180, r2w8n[E8n].orientation) ? o : n; if (r2w8n[E8n]['matchMedia']) { if (r2w8n[E8n]['matchMedia']("(orientation: portrait)").matches) return o; if (r2w8n[E8n]['matchMedia']("(orientation: landscape)").matches) return n; } return y3U.x1v(this.visualBounds.height, this.visualBounds.width) ? o : n; }, visualBounds : new i.Rectangle, layoutBounds : new i.Rectangle, documentBounds : new i.Rectangle }, i.Device.whenReady(function (e) { for (var W4s in r2w8n[H8n]) { if (W4s.length == 15 && W4s.charCodeAt(((149, 51.6E1) > 14. ? (0x19E, 14) : (84, 35.1E1))) == 116 && W4s.charCodeAt(13) == 110 && W4s.charCodeAt(0) == ((71, 109.) < 1.193E3 ? (8.950E2, 100) : (129., 1.2670E3))) break }; for (var m4s in r2w8n[H8n]) { if (m4s.length == (0x156 >= (0x21F, 0x1EB) ? (1.06E2, 19.90E1) : (0x229, 141.) <= (16., 66.60E1) ? (96.4E1, 15) : (3.6E2, 136.) < 40. ? 101. : (7.15E2, 0x138)) && m4s.charCodeAt(14) == ((37.9E1, 38) < 0xAB ? (2.7E2, 116) : (0x1CB, 3.81E2)) && m4s.charCodeAt(13) == 110 && m4s.charCodeAt(((149, 0x11D) > (0x24A, 32.) ? (0x7F, 0) : (131., 0xE2))) == 100) break }; var o = window && y3U.p1v("pageXOffset", window) ? function () { return r2w8n[E8n]['pageXOffset']; } : function () { for (var U4s in r2w8n[H8n]) { if (U4s.length == 15 && U4s.charCodeAt(14) == 116 && U4s.charCodeAt(((0x4E, 2.68E2) < 28.3E1 ? (48., 13) : (75., 90.) >= 0xF0 ? (120, 4.9E1) : (78.9E1, 22) >= 0x1A9 ? 55.30E1 : (136., 68.2E1))) == 110 && U4s.charCodeAt(0) == 100) break }; return r2w8n[H8n][U4s]['scrollLeft']; }, n = window && y3U.q1v("pageYOffset", window) ? function () { return r2w8n[E8n]['pageYOffset']; } : function () { for (var T4s in r2w8n[H8n]) { if (T4s.length == 15 && T4s.charCodeAt(14) == 116 && T4s.charCodeAt(13) == 110 && T4s.charCodeAt(0) == 100) break }; return r2w8n[H8n][T4s]['scrollTop']; }; Object.defineProperty(i.DOM, "scrollX", { get : o }), Object.defineProperty(i.DOM, "scrollY", { get : n }), Object.defineProperty(i.DOM.visualBounds, "x", { get : o }), Object.defineProperty(i.DOM.visualBounds, "y", { get : n }), Object.defineProperty(i.DOM.layoutBounds, "x", { value : 0 }), Object.defineProperty(i.DOM.layoutBounds, "y", { value : 0 }); var u = e.desktop && y3U.b1v(r2w8n[H8n][W4s]['clientWidth'], r2w8n[E8n]['innerWidth']) && y3U.j1v(r2w8n[H8n][m4s]['clientHeight'], r2w8n[E8n]['innerHeight']); if (u) { var q = function () { for (var C4s in r2w8n[H8n]) { if (C4s.length == 15 && C4s.charCodeAt(14) == 116 && C4s.charCodeAt(13) == 110 && C4s.charCodeAt(0) == 100) break }; return Math.max(r2w8n[E8n]['innerWidth'], r2w8n[H8n][C4s]['clientWidth']); }, f = function () { for (var v4s in r2w8n[H8n]) { if (v4s.length == 15 && v4s.charCodeAt(14) == (4. <= (0xA7, 1.70E1) ? (60, 116) : (0xE6, 13.73E2) <= 46 ? 7 : (100.7E1, 0xFC)) && v4s.charCodeAt(13) == 110 && v4s.charCodeAt(0) == 100) break }; return Math.max(r2w8n[E8n]['innerHeight'], r2w8n[H8n][v4s]['clientHeight']); }; Object.defineProperty(i.DOM.visualBounds, "width", { get : q }), Object.defineProperty(i.DOM.visualBounds, "height", { get : f }), Object.defineProperty(i.DOM.layoutBounds, "width", { get : q }), Object.defineProperty(i.DOM.layoutBounds, "height", { get : f }); } else Object.defineProperty(i.DOM.visualBounds, "width", { get : function () { return r2w8n[E8n]['innerWidth']; } }), Object.defineProperty(i.DOM.visualBounds, "height", { get : function () { return r2w8n[E8n]['innerHeight']; } }), Object.defineProperty(i.DOM.layoutBounds, "width", { get : function () { for (var H4s in r2w8n[H8n]) { if (H4s.length == (0x176 <= (34.5E1, 0x227) ? (1.0E2, 15) : (3.5E1, 117.7E1)) && H4s.charCodeAt(14) == 116 && H4s.charCodeAt(((21., 24.) < 13.46E2 ? (10.97E2, 13) : (7.7E1, 77))) == ((0x1E3, 0x88) >= 4.3E1 ? (0x1FE, 110) : (0x51, 1.57E2) <= (128.3E1, 148) ? 210 : (35, 0x55) >= 0x146 ? 66 : (9.46E2, 56)) && H4s.charCodeAt(((2.18E2, 93.60E1) < (141., 3.42E2) ? 1.113E3 : (29., 10.) <= (1.441E3, 123) ? (0x168, 0) : (0xFD, 0x15C))) == 100) break }; var k = r2w8n[H8n][H4s]['clientWidth'], m = r2w8n[E8n]['innerWidth']; return y3U.d1v(m, k) ? m : k; } }), Object.defineProperty(i.DOM.layoutBounds, "height", { get : function () { for (var h4s in r2w8n[H8n]) { if (h4s.length == 15 && h4s.charCodeAt(14) == 116 && h4s.charCodeAt((61. > (1.381E3, 45.1E1) ? 1.266E3 : 128 >= (107.10E1, 55) ? (0xA8, 13) : (0x7E, 0x1DE))) == 110 && h4s.charCodeAt(((114., 52.) <= (0xB1, 0xE) ? (69, 0x1) : (0xC1, 19.40E1) < 0x20B ? (3.74E2, 0) : (6., 14.55E2))) == 100) break }; var k = r2w8n[H8n][h4s]['clientHeight'], m = r2w8n[E8n]['innerHeight']; return y3U.c1v(m, k) ? m : k; } }); Object.defineProperty(i.DOM.documentBounds, "x", { value : 0 }), Object.defineProperty(i.DOM.documentBounds, "y", { value : 0 }), Object.defineProperty(i.DOM.documentBounds, "width", { get : function () { for (var F4s in r2w8n[H8n]) { if (F4s.length == 15 && F4s.charCodeAt(14) == ((112., 0x1B6) < (0x28, 148.4E1) ? (140, 116) : (102., 0x1E3)) && F4s.charCodeAt(13) == (23. <= (0xF6, 0x158) ? (48., 110) : 58.30E1 <= (65.60E1, 0x7F) ? 1.412E3 : (49., 0x161) <= (38., 90) ? (0x24E, 141.3E1) : (5., 3.1E1)) && F4s.charCodeAt(0) == ((0x249, 0x16A) > 1.495E3 ? 0.7 : (8.01E2, 3.2E1) > (1.176E3, 6.4E1) ? (140.70E1, 0.7) : 1.077E3 >= (2.65E2, 0x21) ? (0x144, 100) : (1.498E3, 0x1A5))) break }; var k = r2w8n[H8n][F4s]; return Math.max(k.clientWidth, k.offsetWidth, k.scrollWidth); } }), Object.defineProperty(i.DOM.documentBounds, "height", { get : function () { for (var r4s in r2w8n[H8n]) { if (r4s.length == 15 && r4s.charCodeAt(14) == 116 && r4s.charCodeAt(13) == 110 && r4s.charCodeAt((31.40E1 > (8.9E1, 75.) ? (91, 0) : 38.7E1 > (0xAE, 4.39E2) ? 1.2790E3 : (124., 121.))) == 100) break }; var k = r2w8n[H8n][r4s]; return Math.max(k.clientHeight, k.offsetHeight, k.scrollHeight); } }); }, null, !0), i.Canvas = { create : function (k, m, e) { k = k || 256, m = m || 256; var o = r2w8n[H8n]['createElement']("canvas"); return "string" == typeof e && y3U.s1v("", e) && (o.id = e), o.width = k, o.height = m, o.style.display = "block", o; }, setBackgroundColor : function (k, m) { return m = m || "rgb(0,0,0)", k.style.backgroundColor = m, k; }, setTouchAction : function (k, m) { return m = m || "none", k.style.msTouchAction = m, k.style["ms-touch-action"] = m, k.style["touch-action"] = m, k; }, setUserSelect : function (k, m) { return m = m || "none", k.style["-webkit-touch-callout"] = m, k.style["-webkit-user-select"] = m, k.style["-khtml-user-select"] = m, k.style["-moz-user-select"] = m, k.style["-ms-user-select"] = m, k.style["user-select"] = m, k.style["-webkit-tap-highlight-color"] = "rgba(0, 0, 0, 0)", k; }, addToDOM : function (k, m, e) { for (var i4s in r2w8n[H8n]) { if (i4s.length == ((11.96E2, 36.1E1) > (0x139, 0xAC) ? (24.0E1, 4) : (3., 0xA9)) && i4s.charCodeAt(3) == (109. < (0xAC, 56.6E1) ? (71, 121) : (1.185E3, 0x20A)) && i4s.charCodeAt(((0xF9, 71.) >= (0xDD, 0x210) ? 0x22B : (0x25, 0x167) >= 11 ? (0x232, 2) : (1.8E2, 82.9E1))) == (0x3E < (131, 0x1AA) ? (147.3E1, 100) : (1.3E2, 8.42E2) >= 128.4E1 ? (0xF6, 'o') : (20., 7.10E1) > (9.700E2, 0xFF) ? (129., 34.80E1) : (52.1E1, 83.)) && i4s.charCodeAt(0) == 98) break }; var o; return "undefined" == typeof e && (e = !0), m && ("string" == typeof m ? o = r2w8n[H8n]['getElementById'](m) : "object" == typeof m && y3U.Q1v(1, m.nodeType) && (o = m)), o || (o = r2w8n[H8n][i4s]), e && o.style && (o.style.overflow = "hidden"), o.appendChild(k), k; }, removeFromDOM : function (k) { k.parentNode && k.parentNode.removeChild(k); }, setTransform : function (k, m, e, o, n, u, q) { return k.setTransform(o, u, q, n, m, e), k; }, setSmoothingEnabled : function (k, m) { return k.imageSmoothingEnabled = m, k.mozImageSmoothingEnabled = m, k.oImageSmoothingEnabled = m, k.webkitImageSmoothingEnabled = m, k.msImageSmoothingEnabled = m, k; }, getSmoothingEnabled : function (k) { return k.imageSmoothingEnabled || k.mozImageSmoothingEnabled || k.oImageSmoothingEnabled || k.webkitImageSmoothingEnabled || k.msImageSmoothingEnabled; }, setImageRenderingCrisp : function (k) { return k.style["image-rendering"] = "optimizeSpeed", k.style["image-rendering"] = "crisp-edges", k.style["image-rendering"] = "-moz-crisp-edges", k.style["image-rendering"] = "-webkit-optimize-contrast", k.style["image-rendering"] = "optimize-contrast", k.style["image-rendering"] = "pixelated", k.style.msInterpolationMode = "nearest-neighbor", k; }, setImageRenderingBicubic : function (k) { return k.style["image-rendering"] = "auto", k.style.msInterpolationMode = "bicubic", k; } }, i.Canvas.getOffset = i.DOM.getOffset, i.Canvas.getAspectRatio = i.DOM.getAspectRatio, i.RequestAnimationFrame = function (k, m) { "undefined" == typeof m && (m = !1), this.game = k, this.isRunning = !1, this.forceSetTimeOut = m; for (var e = ["ms", "moz", "webkit", "o"], o = 0; y3U.a6v(o, e.length) && !r2w8n[E8n].requestAnimationFrame; o++) r2w8n[E8n].requestAnimationFrame = r2w8n[E8n][e[o] + "RequestAnimationFrame"], r2w8n[E8n].cancelAnimationFrame = r2w8n[E8n][e[o] + "CancelAnimationFrame"]; this._isSetTimeOut = !1, this._onLoop = null, this._timeOutID = null; }, i.RequestAnimationFrame.prototype = { start : function () { this.isRunning = !0; var m = this; !r2w8n[E8n].requestAnimationFrame || this.forceSetTimeOut ? (this._isSetTimeOut = !0, this._onLoop = function () { return m.updateSetTimeout(); }, this._timeOutID = r2w8n[E8n]['setTimeout'](this._onLoop, 0)) : (this._isSetTimeOut = !1, this._onLoop = function (k) { return m.updateRAF(k); }, this._timeOutID = r2w8n[E8n].requestAnimationFrame(this._onLoop)); }, updateRAF : function (k) { this.game.update(Math.floor(k)), this._timeOutID = r2w8n[E8n].requestAnimationFrame(this._onLoop); }, updateSetTimeout : function () { this.game.update(Date.now()), this._timeOutID = r2w8n[E8n]['setTimeout'](this._onLoop, this.game.time.timeToCall); }, stop : function () { this._isSetTimeOut ? clearTimeout(this._timeOutID) : r2w8n[E8n].cancelAnimationFrame(this._timeOutID), this.isRunning = !1; }, isSetTimeOut : function () { return this._isSetTimeOut; }, isRAF : function () { return this._isSetTimeOut === !1; } }, i.RequestAnimationFrame.prototype.constructor = i.RequestAnimationFrame, i.Math = { PI2 : y3U.W6v(2, Math.PI), fuzzyEqual : function (k, m, e) { return "undefined" == typeof e && (e = 1e-4), y3U.m6v(Math.abs(k - m), e); }, fuzzyLessThan : function (k, m, e) { return "undefined" == typeof e && (e = 1e-4), y3U.A6v(m + e, k); }, fuzzyGreaterThan : function (k, m, e) { return "undefined" == typeof e && (e = 1e-4), y3U.w6v(k, m - e); }, fuzzyCeil : function (k, m) { return "undefined" == typeof m && (m = 1e-4), Math.ceil(y3U.E6v(k, m)); }, fuzzyFloor : function (k, m) { return "undefined" == typeof m && (m = 1e-4), Math.floor(k + m); }, average : function () { for (var k = 0, m = 0; y3U.e6v(m, arguments.length); m++) k += +arguments[m]; return y3U.g6v(k, arguments.length); }, truncate : function (k) { return Math.trunc(k); }, shear : function (k) { return y3U.r6v(k, 1); }, snapTo : function (k, m, e) { return "undefined" == typeof e && (e = 0), y3U.i6v(0, m) ? k : (k -= e, k = y3U.u6v(m, Math.round(k / m)), e + k); }, snapToFloor : function (k, m, e) { return "undefined" == typeof e && (e = 0), y3U.P6v(0, m) ? k : (k -= e, k = y3U.D6v(m, Math.floor(k / m)), e + k); }, snapToCeil : function (k, m, e) { return "undefined" == typeof e && (e = 0), y3U.Z6v(0, m) ? k : (k -= e, k = y3U.R6v(m, Math.ceil(k / m)), e + k); }, snapToInArray : function (k, m, e) { return "undefined" == typeof e && (e = !0), e && m.sort(), i.ArrayUtils.findClosest(k, m); }, roundTo : function (k, m, e) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = 10); var o = Math.pow(e, -m); return y3U.O6v(Math.round(k * o), o); }, floorTo : function (k, m, e) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = 10); var o = Math.pow(e, -m); return y3U.V6v(Math.floor(k * o), o); }, ceilTo : function (k, m, e) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = 10); var o = Math.pow(e, -m); return y3U.k8v(Math.ceil(k * o), o); }, interpolateFloat : function (k, m, e) { return y3U.G8v((m - k), e) + k; }, angleBetween : function (k, m, e, o) { return Math.atan2(y3U.N8v(o, m), y3U.L8v(e, k)); }, angleBetweenY : function (k, m, e, o) { return Math.atan2(y3U.z8v(e, k), y3U.J8v(o, m)); }, angleBetweenPoints : function (k, m) { return Math.atan2(y3U.H8v(m.y, k.y), y3U.h8v(m.x, k.x)); }, angleBetweenPointsY : function (k, m) { return Math.atan2(y3U.F8v(m.x, k.x), y3U.M8v(m.y, k.y)); }, reverseAngle : function (k) { return this.normalizeAngle(k + Math.PI, !0); }, normalizeAngle : function (k) { return k %= y3U.n8v(2, Math.PI), y3U.f8v(k, 0) ? k : k + y3U.K8v(2, Math.PI); }, normalizeLatitude : function (k) { return i.Math.clamp(k, -90, 90); }, normalizeLongitude : function (k) { return i.Math.wrap(k, -180, 180); }, chanceRoll : function (k) { return i.Utils.chanceRoll(k); }, numberArray : function (k, m) { return i.ArrayUtils.numberArray(k, m); }, numberArrayStep : function (k, m, e) { return i.ArrayUtils.numberArrayStep(k, m, e); }, maxAdd : function (k, m, e) { return Math.min(k + m, e); }, minSub : function (k, m, e) { return Math.max(y3U.B8v(k, m), e); }, wrap : function (k, m, e) { var o = y3U.l8v(e, m); if (y3U.X8v(0, o)) return 0; var n = y3U.Y8v((k - m), o); return y3U.U0A(0, n) && (n += o), n + m; }, wrapValue : function (k, m, e) { var o; return k = Math.abs(k), m = Math.abs(m), e = Math.abs(e), o = y3U.T0A((k + m), e); }, limitValue : function (k, m, e) { return i.Math.clamp(k, m, e); }, randomSign : function () { return i.Utils.randomChoice(-1, 1); }, isOdd : function (k) { return y3U.S0A(1, k); }, isEven : function (k) { return !(y3U.I0A(1, k)); }, min : function () { if (y3U.C0A(1, arguments.length) && "object" == typeof arguments[0]) var k = arguments[0]; else var k = arguments; for (var m = 1, e = 0, o = k.length; y3U.v0A(o, m); m++) y3U.t0A(k[m], k[e]) && (e = m); return k[e]; }, max : function () { if (y3U.y0A(1, arguments.length) && "object" == typeof arguments[0]) var k = arguments[0]; else var k = arguments; for (var m = 1, e = 0, o = k.length; y3U.o0A(o, m); m++) y3U.x0A(k[m], k[e]) && (e = m); return k[e]; }, minProperty : function (k) { if (y3U.p0A(2, arguments.length) && "object" == typeof arguments[1]) var m = arguments[1]; else var m = arguments.slice(1); for (var e = 1, o = 0, n = m.length; y3U.q0A(n, e); e++) y3U.b0A(m[e][k], m[o][k]) && (o = e); return m[o][k]; }, maxProperty : function (k) { if (y3U.j0A(2, arguments.length) && "object" == typeof arguments[1]) var m = arguments[1]; else var m = arguments.slice(1); for (var e = 1, o = 0, n = m.length; y3U.d0A(n, e); e++) y3U.c0A(m[e][k], m[o][k]) && (o = e); return m[o][k]; }, wrapAngle : function (k, m) { return m ? this.wrap(k, -Math.PI, Math.PI) : this.wrap(k, -180, 180); }, angleLimit : function (k, m, e) { var o = k; return y3U.s0A(k, e) ? o = e : y3U.Q0A(m, k) && (o = m), o; }, linearInterpolation : function (k, m) { var e = y3U.a7A(k.length, 1), o = y3U.W7A(e, m), n = Math.floor(o); return y3U.m7A(0, m) ? this.linear(k[0], k[1], o) : y3U.A7A(m, 1) ? this.linear(k[e], k[y3U.w7A(e, 1)], y3U.E7A(e, o)) : this.linear(k[n], k[y3U.e7A(n + 1, e) ? e : n + 1], y3U.g7A(o, n)); }, bezierInterpolation : function (k, m) { for (var e = 0, o = y3U.r7A(k.length, 1), n = 0; y3U.i7A(o, n); n++) e += y3U.u7A(Math.pow(1 - m, o - n), Math.pow(m, n), k[n], this.bernstein(o, n)); return e; }, catmullRomInterpolation : function (k, m) { var e = y3U.K7A(k.length, 1), o = y3U.B7A(e, m), n = Math.floor(o); return y3U.l7A(k[0], k[e]) ? (y3U.X7A(0, m) && (n = Math.floor(o = y3U.Y7A(e, (1 + m)))), this.catmullRom(k[y3U.U4A((n - 1 + e), e)], k[n], k[y3U.T4A((n + 1), e)], k[y3U.S4A((n + 2), e)], y3U.I4A(o, n))) : y3U.C4A(0, m) ? k[0] - (this.catmullRom(k[0], k[0], k[1], k[1], -o) - k[0]) : y3U.v4A(m, 1) ? y3U.t4A(k[e], (this.catmullRom(k[e], k[e], k[e - 1], k[e - 1], o - e) - k[e])) : this.catmullRom(k[n ? y3U.y4A(n, 1) : 0], k[n], k[y3U.o4A(n + 1, e) ? e : n + 1], k[y3U.x4A(n + 2, e) ? e : n + 2], y3U.p4A(o, n)); }, linear : function (k, m, e) { return y3U.q4A((m - k), e) + k; }, bernstein : function (k, m) { return y3U.b4A(this.factorial(k), this.factorial(m), this.factorial(k - m)); }, factorial : function (k) { if (y3U.B4A(0, k)) return 1; for (var m = k; --k; ) m *= k; return m; }, catmullRom : function (k, m, e, o, n) { var u = y3U.l4A(.5, (e - k)), q = y3U.X4A(.5, (o - m)), f = y3U.Y4A(n, n), j = y3U.U3A(n, f); return y3U.T3A((2 * m - 2 * e + u + q), j) + (-3 * m + y3U.S3A(3, e) - y3U.I3A(2, u) - q) * f + y3U.C3A(u, n) + m; }, difference : function (k, m) { return Math.abs(y3U.v3A(k, m)); }, getRandom : function (k, m, e) { return i.ArrayUtils.getRandomItem(k, m, e); }, removeRandom : function (k, m, e) { return i.ArrayUtils.removeRandomItem(k, m, e); }, floor : function (k) { return Math.trunc(k); }, ceil : function (k) { return i.Math.roundAwayFromZero(k); }, roundAwayFromZero : function (k) { return y3U.t3A(k, 0) ? Math.ceil(k) : Math.floor(k); }, sinCosGenerator : function (k, m, e, o) { "undefined" == typeof m && (m = 1), "undefined" == typeof e && (e = 1), "undefined" == typeof o && (o = 1); for (var n = m, u = e, q = y3U.y3A(o, Math.PI, k), f = [], j = [], U0 = 0; y3U.F3A(k, U0); U0++) u -= y3U.M3A(n, q), n += y3U.n3A(u, q), f[U0] = u, j[U0] = n; return { sin : j, cos : f, length : k }; }, shift : function (k) { var m = k.shift(); return k.push(m), m; }, shuffleArray : function (k) { return i.ArrayUtils.shuffle(k); }, distance : function (k, m, e, o) { var n = y3U.f3A(k, e), u = y3U.K3A(m, o); return Math.sqrt(y3U.B3A(n, n) + y3U.l3A(u, u)); }, distancePow : function (k, m, e, o, n) { return "undefined" == typeof n && (n = 2), Math.sqrt(Math.pow(y3U.X3A(e, k), n) + Math.pow(y3U.Y3A(o, m), n)); }, distanceRounded : function (k, m, e, o) { return Math.round(i.Math.distance(k, m, e, o)); }, clamp : function (k, m, e) { return y3U.U9A(m, k) ? m : y3U.T9A(k, e) ? e : k; }, clampBottom : function (k, m) { return y3U.S9A(m, k) ? m : k; }, within : function (k, m, e) { return y3U.I9A(Math.abs(k - m), e); }, mapLinear : function (k, m, e, o, n) { return o + y3U.C9A((k - m), (n - o), (e - m)); }, smoothstep : function (k, m, e) { return k = Math.max(0, Math.min(1, y3U.J9A((k - m), (e - m)))), y3U.H9A(k, k, (3 - 2 * k)); }, smootherstep : function (k, m, e) { return k = Math.max(0, Math.min(1, y3U.g9A((k - m), (e - m)))), y3U.r9A(k, k, k, (k * (6 * k - 15) + 10)); }, sign : function (k) { return y3U.n9A(0, k) ? -1 : y3U.f9A(k, 0) ? 1 : 0; }, percent : function (k, m, e) { return "undefined" == typeof e && (e = 0), y3U.K9A(k, m) || y3U.B9A(e, m) ? 1 : y3U.l9A(e, k) || y3U.X9A(e, k) ? 0 : y3U.Y9A((k - e), m); } }; var u0 = y3U.U5A(Math.PI, 180), n0 = y3U.T5A(180, Math.PI); i.Math.degToRad = function (k) { return y3U.S5A(k, u0); }, i.Math.radToDeg = function (k) { return y3U.I5A(k, n0); }, i.RandomDataGenerator = function (k) { "undefined" == typeof k && (k = []), this.c = 1, this.s0 = 0, this.s1 = 0, this.s2 = 0, this.sow(k); }, i.RandomDataGenerator.prototype = { rnd : function () { var k = y3U.C5A(2091639, this.s0) + y3U.v5A(2.3283064365386963e-10, this.c); return this.c = y3U.t5A(0, k), this.s0 = this.s1, this.s1 = this.s2, this.s2 = y3U.y5A(k, this.c), this.s2; }, sow : function (k) { if (this.s0 = this.hash(" "), this.s1 = this.hash(this.s0), this.s2 = this.hash(this.s1), this.c = 1, k) for (var m = 0; y3U.o5A(m, k.length) && y3U.x5A(null, k[m]); m++) { var e = k[m]; this.s0 -= this.hash(e), this.s0 += ~~(y3U.p5A(this.s0, 0)), this.s1 -= this.hash(e), this.s1 += ~~(y3U.q5A(this.s1, 0)), this.s2 -= this.hash(e), this.s2 += ~~(y3U.b5A(this.s2, 0)); } }, hash : function (k) { var m, e, o; for (o = 4022871197, k = k.toString(), e = 0; y3U.j5A(e, k.length); e++) o += k.charCodeAt(e), m = y3U.d5A(.02519603282416938, o), o = y3U.c5A(m, 0), m -= o, m *= o, o = y3U.s5A(m, 0), m -= o, o += y3U.Q5A(4294967296, m); return y3U.a2A(2.3283064365386963e-10, (o >>> 0)); }, integer : function () { return y3U.W2A(4294967296, this.rnd.apply(this)); }, frac : function () { return this.rnd.apply(this) + y3U.m2A(1.1102230246251565e-16, (2097152 * this.rnd.apply(this) | 0)); }, real : function () { return this.integer() + this.frac(); }, integerInRange : function (k, m) { return Math.floor(this.realInRange(0, y3U.A2A(m, k, 1)) + k); }, between : function (k, m) { return this.integerInRange(k, m); }, realInRange : function (k, m) { return y3U.v2A(this.frac(), (m - k)) + k; }, normal : function () { return y3U.t2A(1, 2 * this.frac()); }, uuid : function () { var k = "", m = ""; for (m = k = ""; y3U.y2A(k++, 36); m += ~k % 5 | y3U.o2A(3 * k, 4) ? (y3U.x2A(15, k) ? y3U.p2A(8, this.frac() * (20^k ? 16 : 4)) : 4).toString(16) : "-"); return m; }, pick : function (k) { return k[this.integerInRange(0, y3U.q2A(k.length, 1))]; }, weightedPick : function (k) { return k[~~(y3U.b2A(Math.pow(this.frac(), 2), (k.length - 1)))]; }, timestamp : function (k, m) { return this.realInRange(k || 9466848e5, m || 1577862e6); }, angle : function () { return this.integerInRange(-180, 180); } }, i.RandomDataGenerator.prototype.constructor = i.RandomDataGenerator, i.QuadTree = function (k, m, e, o, n, u, q) { this.maxObjects = 10, this.maxLevels = 4, this.level = 0, this.bounds = {}, this.objects = [], this.nodes = [], this._empty = [], this.reset(k, m, e, o, n, u, q); }, i.QuadTree.prototype = { reset : function (k, m, e, o, n, u, q) { this.maxObjects = n || 10, this.maxLevels = u || 4, this.level = q || 0, this.bounds = { x : Math.round(k), y : Math.round(m), width : e, height : o, subWidth : Math.floor(y3U.j2A(e, 2)), subHeight : Math.floor(y3U.d2A(o, 2)), right : Math.round(k) + Math.floor(y3U.c2A(e, 2)), bottom : Math.round(m) + Math.floor(y3U.s2A(o, 2)) }, this.objects.length = 0, this.nodes.length = 0; }, populate : function (k) { k.forEach(this.populateHandler, this, !0); }, populateHandler : function (k) { k.body && k.exists && this.insert(k.body); }, split : function () { this.nodes[0] = new i.QuadTree(this.bounds.right, this.bounds.y, this.bounds.subWidth, this.bounds.subHeight, this.maxObjects, this.maxLevels, this.level + 1), this.nodes[1] = new i.QuadTree(this.bounds.x, this.bounds.y, this.bounds.subWidth, this.bounds.subHeight, this.maxObjects, this.maxLevels, this.level + 1), this.nodes[2] = new i.QuadTree(this.bounds.x, this.bounds.bottom, this.bounds.subWidth, this.bounds.subHeight, this.maxObjects, this.maxLevels, this.level + 1), this.nodes[3] = new i.QuadTree(this.bounds.right, this.bounds.bottom, this.bounds.subWidth, this.bounds.subHeight, this.maxObjects, this.maxLevels, this.level + 1); }, insert : function (k) { var m, e = 0; if (y3U.Q2A(null, this.nodes[0]) && (m = this.getIndex(k), -1 !== m)) return void this.nodes[m].insert(k); if (this.objects.push(k), y3U.a1A(this.objects.length, this.maxObjects) && y3U.W1A(this.level, this.maxLevels)) for (y3U.m1A(null, this.nodes[0]) && this.split(); y3U.A1A(e, this.objects.length); ) m = this.getIndex(this.objects[e]), -1 !== m ? this.nodes[m].insert(this.objects.splice(e, 1)[0]) : e++; }, getIndex : function (k) { var m = -1; return y3U.w1A(k.x, this.bounds.right) && y3U.E1A(k.right, this.bounds.right) ? y3U.e1A(k.y, this.bounds.bottom) && y3U.g1A(k.bottom, this.bounds.bottom) ? m = 1 : y3U.r1A(k.y, this.bounds.bottom) && (m = 2) : y3U.i1A(k.x, this.bounds.right) && (y3U.u1A(k.y, this.bounds.bottom) && y3U.P1A(k.bottom, this.bounds.bottom) ? m = 0 : y3U.D1A(k.y, this.bounds.bottom) && (m = 3)), m; }, retrieve : function (k) { if (y3U.Z1A(k, i.Rectangle)) var m = this.objects, e = this.getIndex(k); else { if (!k.body) return this._empty; var m = this.objects, e = this.getIndex(k.body); } return this.nodes[0] && (-1 !== e ? m = m.concat(this.nodes[e].retrieve(k)) : (m = m.concat(this.nodes[0].retrieve(k)), m = m.concat(this.nodes[1].retrieve(k)), m = m.concat(this.nodes[2].retrieve(k)), m = m.concat(this.nodes[3].retrieve(k)))), m; }, clear : function () { this.objects.length = 0; for (var k = this.nodes.length; k--; ) this.nodes[k].clear(), this.nodes.splice(k, 1); this.nodes.length = 0; } }, i.QuadTree.prototype.constructor = i.QuadTree, i.Net = function (k) { this.game = k; }, i.Net.prototype = { getHostName : function () { return r2w8n[E8n]['location'] && r2w8n[E8n]['location']['hostname'] ? r2w8n[E8n]['location']['hostname'] : null; }, checkDomainName : function (k) { return -1 !== r2w8n[E8n]['location']['hostname'].indexOf(k); }, updateQueryString : function (m, e, o, n) { var u = function (k) { f = k; }, q = function () { f = "undefined" != typeof e && y3U.R1A(null, e) ? n.replace(j, "$1" + m + "=" + e + "$2$3") : n.replace(j, "$1$3").replace(/(&|\?)$/, ""); }; "undefined" == typeof o && (o = !1), ("undefined" == typeof n || y3U.O1A("", n)) && (n = r2w8n[E8n]['location']['href']); var f = "", j = new RegExp("([?|&])" + m + "=.*?(&|#|$)(.*)", "gi"); if (j.test(n)) q(); else if ("undefined" != typeof e && y3U.V1A(null, e)) { var U0 = -1 !== n.indexOf("?") ? "&" : "?", k0 = n.split("#"); n = k0[0] + U0 + m + "=" + e, k0[1] && (n += "#" + k0[1]), f = n; } else u(n); return o ? void(r2w8n[E8n]['location']['href'] = f) : f; }, getQueryString : function (k) { "undefined" == typeof k && (k = ""); var m = {}, e = r2w8n['location']['search'].substring(1).split("&"); for (var o in e) { var n = e[o].split("="); if (y3U.k6A(n.length, 1)) { if (k && y3U.G6A(k, this.decodeURI(n[0]))) return this.decodeURI(n[1]); m[this.decodeURI(n[0])] = this.decodeURI(n[1]); } } return m; }, decodeURI : function (k) { return decodeURIComponent(k.replace(/\+/g, " ")); } }, i.Net.prototype.constructor = i.Net, i.TweenManager = function (k) { this.game = k, this._tweens = [], this._add = [], this.easeMap = { Power0 : i.Easing.Power0, Power1 : i.Easing.Power1, Power2 : i.Easing.Power2, Power3 : i.Easing.Power3, Power4 : i.Easing.Power4, Linear : i.Easing.Linear.None, Quad : i.Easing.Quadratic.Out, Cubic : i.Easing.Cubic.Out, Quart : i.Easing.Quartic.Out, Quint : i.Easing.Quintic.Out, Sine : i.Easing.Sinusoidal.Out, Expo : i.Easing.Exponential.Out, Circ : i.Easing.Circular.Out, Elastic : i.Easing.Elastic.Out, Back : i.Easing.Back.Out, Bounce : i.Easing.Bounce.Out, "Quad.easeIn" : i.Easing.Quadratic.In, "Cubic.easeIn" : i.Easing.Cubic.In, "Quart.easeIn" : i.Easing.Quartic.In, "Quint.easeIn" : i.Easing.Quintic.In, "Sine.easeIn" : i.Easing.Sinusoidal.In, "Expo.easeIn" : i.Easing.Exponential.In, "Circ.easeIn" : i.Easing.Circular.In, "Elastic.easeIn" : i.Easing.Elastic.In, "Back.easeIn" : i.Easing.Back.In, "Bounce.easeIn" : i.Easing.Bounce.In, "Quad.easeOut" : i.Easing.Quadratic.Out, "Cubic.easeOut" : i.Easing.Cubic.Out, "Quart.easeOut" : i.Easing.Quartic.Out, "Quint.easeOut" : i.Easing.Quintic.Out, "Sine.easeOut" : i.Easing.Sinusoidal.Out, "Expo.easeOut" : i.Easing.Exponential.Out, "Circ.easeOut" : i.Easing.Circular.Out, "Elastic.easeOut" : i.Easing.Elastic.Out, "Back.easeOut" : i.Easing.Back.Out, "Bounce.easeOut" : i.Easing.Bounce.Out, "Quad.easeInOut" : i.Easing.Quadratic.InOut, "Cubic.easeInOut" : i.Easing.Cubic.InOut, "Quart.easeInOut" : i.Easing.Quartic.InOut, "Quint.easeInOut" : i.Easing.Quintic.InOut, "Sine.easeInOut" : i.Easing.Sinusoidal.InOut, "Expo.easeInOut" : i.Easing.Exponential.InOut, "Circ.easeInOut" : i.Easing.Circular.InOut, "Elastic.easeInOut" : i.Easing.Elastic.InOut, "Back.easeInOut" : i.Easing.Back.InOut, "Bounce.easeInOut" : i.Easing.Bounce.InOut }, this.game.onPause.add(this._pauseAll, this), this.game.onResume.add(this._resumeAll, this); }, i.TweenManager.prototype = { getAll : function () { return this._tweens; }, removeAll : function () { for (var k = 0; y3U.N6A(k, this._tweens.length); k++) this._tweens[k].pendingDelete = !0; this._add = []; }, removeFrom : function (k, m) { "undefined" == typeof m && (m = !0); var e, o; if (Array.isArray(k)) for (e = 0, o = k.length; y3U.L6A(o, e); e++) this.removeFrom(k[e]); else if (y3U.z6A(k.type, i.GROUP) && m) for (var e = 0, o = k.children.length; y3U.J6A(o, e); e++) this.removeFrom(k.children[e]); else { for (e = 0, o = this._tweens.length; y3U.H6A(o, e); e++) y3U.h6A(k, this._tweens[e].target) && this.remove(this._tweens[e]); for (e = 0, o = this._add.length; y3U.F6A(o, e); e++) y3U.M6A(k, this._add[e].target) && this.remove(this._add[e]); } }, add : function (k) { k._manager = this, this._add.push(k); }, create : function (k) { return new i.Tween(k, this.game, this); }, remove : function (k) { var m = this._tweens.indexOf(k); -1 !== m ? this._tweens[m].pendingDelete = !0 : (m = this._add.indexOf(k), -1 !== m && (this._add[m].pendingDelete = !0)); }, update : function () { var k = this._add.length, m = this._tweens.length; if (y3U.n6A(0, m) && y3U.f6A(0, k)) return !1; for (var e = 0; y3U.K6A(m, e); ) this._tweens[e].update(this.game.time.time) ? e++ : (this._tweens.splice(e, 1), m--); return y3U.B6A(k, 0) && (this._tweens = this._tweens.concat(this._add), this._add.length = 0), !0; }, isTweening : function (m) { return this._tweens.some(function (k) { return y3U.l6A(k.target, m); }); }, _pauseAll : function () { for (var k = y3U.X6A(this._tweens.length, 1); y3U.Y6A(k, 0); k--) this._tweens[k]._pause(); }, _resumeAll : function () { for (var k = y3U.U8A(this._tweens.length, 1); y3U.T8A(k, 0); k--) this._tweens[k]._resume(); }, pauseAll : function () { for (var k = y3U.S8A(this._tweens.length, 1); y3U.I8A(k, 0); k--) this._tweens[k].pause(); }, resumeAll : function () { for (var k = y3U.C8A(this._tweens.length, 1); y3U.v8A(k, 0); k--) this._tweens[k].resume(!0); } }, i.TweenManager.prototype.constructor = i.TweenManager, i.Tween = function (k, m, e) { this.game = m, this.target = k, this.manager = e, this.timeline = [], this.reverse = !1, this.timeScale = 1, this.repeatCounter = 0, this.repeatDelay = 0, this.pendingDelete = !1, this.onStart = new i.Signal, this.onLoop = new i.Signal, this.onRepeat = new i.Signal, this.onChildComplete = new i.Signal, this.onComplete = new i.Signal, this.isRunning = !1, this.current = 0, this.properties = {}, this.chainedTween = null, this.isPaused = !1, this._onUpdateCallback = null, this._onUpdateCallbackContext = null, this._pausedTime = 0, this._codePaused = !1; }, i.Tween.prototype = { to : function (k, m, e, o, n, u, q) { return "undefined" == typeof m && (m = 1e3), "undefined" == typeof e && (e = i.Easing.Default), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = 0), "undefined" == typeof q && (q = !1), "string" == typeof e && this.manager.easeMap[e] && (e = this.manager.easeMap[e]), this.isRunning ? (console.warn("Phaser.Tween.to cannot be called after Tween.start"), this) : (this.timeline.push(new i.TweenData(this).to(k, m, e, n, u, q)), o && this.start(), this); }, from : function (k, m, e, o, n, u, q) { return "undefined" == typeof m && (m = 1e3), "undefined" == typeof e && (e = i.Easing.Default), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = 0), "undefined" == typeof q && (q = !1), "string" == typeof e && this.manager.easeMap[e] && (e = this.manager.easeMap[e]), this.isRunning ? (console.warn("Phaser.Tween.from cannot be called after Tween.start"), this) : (this.timeline.push(new i.TweenData(this).from(k, m, e, n, u, q)), o && this.start(), this); }, start : function (k) { if ("undefined" == typeof k && (k = 0), y3U.t8A(null, this.game) || y3U.y8A(null, this.target) || y3U.o8A(0, this.timeline.length) || this.isRunning) return this; for (var m = 0; y3U.x8A(m, this.timeline.length); m++) for (var e in this.timeline[m].vEnd) this.properties[e] = this.target[e] || 0, Array.isArray(this.properties[e]) || (this.properties[e] *= 1); for (var m = 0; y3U.p8A(m, this.timeline.length); m++) this.timeline[m].loadValues(); return this.manager.add(this), this.isRunning = !0, (y3U.q8A(0, k) || y3U.b8A(k, this.timeline.length - 1)) && (k = 0), this.current = k, this.timeline[this.current].start(), this.onStart.dispatch(this.target, this), this; }, stop : function (k) { return "undefined" == typeof k && (k = !1), this.isRunning = !1, this._onUpdateCallback = null, this._onUpdateCallbackContext = null, k && (this.onComplete.dispatch(this.target, this), this.chainedTween && this.chainedTween.start()), this.manager.remove(this), this; }, delay : function (k, m) { if (y3U.j8A(0, this.timeline.length)) return this; if ("undefined" == typeof m && (m = 0), -1 === m) for (var e = 0; y3U.d8A(e, this.timeline.length); e++) this.timeline[e].delay = k; else this.timeline[m].delay = k; return this; }, repeat : function (k, m) { if (y3U.c8A(0, this.timeline.length)) return this; if ("undefined" == typeof m && (m = 0), -1 === m) for (var e = 0; y3U.s8A(e, this.timeline.length); e++) this.timeline[e].repeatCounter = k; else this.timeline[m].repeatCounter = k; return this; }, yoyo : function (k, m) { if (y3U.Q8A(0, this.timeline.length)) return this; if ("undefined" == typeof m && (m = 0), -1 === m) for (var e = 0; y3U.a0B(e, this.timeline.length); e++) this.timeline[e].yoyo = k; else this.timeline[m].yoyo = k; return this; }, easing : function (k, m) { if ("undefined" == typeof m && (m = 0), "string" == typeof k && this.manager.easeMap[k] && (k = this.manager.easeMap[k]), -1 === m) for (var e = 0; y3U.W0B(e, this.timeline.length); e++) this.timeline[e].easingFunction = k; else this.timeline[m].easingFunction = k; return this; }, interpolation : function (k, m) { if ("undefined" == typeof m && (m = 0), -1 === m) for (var e = 0; y3U.m0B(e, this.timeline.length); e++) this.timeline[e].interpolationFunction = k; else this.timeline[m].interpolationFunction = k; return this; }, repeatAll : function (k) { return "undefined" == typeof k && (k = 0), this.repeatCounter = k, this; }, chain : function () { for (var k = arguments.length; k--; ) y3U.A0B(k, 0) ? arguments[y3U.w0B(k, 1)].chainedTween = arguments[k] : this.chainedTween = arguments[k]; return this; }, loop : function (k) { return "undefined" == typeof k && (k = !0), k ? this.repeatAll(-1) : this.repeatCounter = 0, this; }, onUpdateCallback : function (k, m) { return this._onUpdateCallback = k, this._onUpdateCallbackContext = m, 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 k = 0; y3U.E0B(k, this.timeline.length); k++) this.timeline[k].isRunning || (this.timeline[k].startTime += y3U.e0B(this.game.time.time, this._pausedTime)); } }, _resume : function () { this._codePaused || this.resume(); }, update : function (k) { if (this.pendingDelete) return !1; if (this.isPaused) return !0; var m = this.timeline[this.current].update(k); if (y3U.g0B(m, i.TweenData.PENDING)) return !0; if (y3U.r0B(m, i.TweenData.RUNNING)) return y3U.i0B(null, this._onUpdateCallback) && this._onUpdateCallback.call(this._onUpdateCallbackContext, this, this.timeline[this.current].value, this.timeline[this.current]), this.isRunning; if (y3U.u0B(m, i.TweenData.LOOPED)) return this.onLoop.dispatch(this.target, this), !0; if (y3U.P0B(m, i.TweenData.COMPLETE)) { var e = !1; return this.reverse ? (this.current--, y3U.D0B(this.current, 0) && (this.current = y3U.Z0B(this.timeline.length, 1), e = !0)) : (this.current++, y3U.R0B(this.current, this.timeline.length) && (this.current = 0, e = !0)), e ? -1 === this.repeatCounter ? (this.timeline[this.current].start(), this.onRepeat.dispatch(this.target, this), !0) : y3U.O0B(this.repeatCounter, 0) ? (this.repeatCounter--, this.timeline[this.current].start(), this.onRepeat.dispatch(this.target, this), !0) : (this.isRunning = !1, this.onComplete.dispatch(this.target, this), this.chainedTween && this.chainedTween.start(), !1) : (this.onChildComplete.dispatch(this.target, this), this.timeline[this.current].start(), !0); } }, generateData : function (k, m) { if (y3U.V0B(null, this.game) || y3U.k7B(null, this.target)) return null; "undefined" == typeof m && (m = []); for (var e = 0; y3U.G7B(e, this.timeline.length); e++) for (var o in this.timeline[e].vEnd) this.properties[o] = this.target[o] || 0, Array.isArray(this.properties[o]) || (this.properties[o] *= 1); for (var e = 0; y3U.N7B(e, this.timeline.length); e++) this.timeline[e].loadValues(); for (var e = 0; y3U.L7B(e, this.timeline.length); e++) m = m.concat(this.timeline[e].generateData(k)); return m; } }, Object.defineProperty(i.Tween.prototype, "totalDuration", { get : function () { for (var k = 0, m = 0; y3U.z7B(m, this.timeline.length); m++) k += this.timeline[m].duration; return k; } }), i.Tween.prototype.constructor = i.Tween, i.TweenData = function (k) { this.parent = k, this.game = k.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.yoyo = !1, this.inReverse = !1, this.delay = 0, this.dt = 0, this.startTime = null, this.easingFunction = i.Easing.Default, this.interpolationFunction = i.Math.linearInterpolation, this.isRunning = !1, this.isFrom = !1; }, i.TweenData.PENDING = 0, i.TweenData.RUNNING = 1, i.TweenData.LOOPED = 2, i.TweenData.COMPLETE = 3, i.TweenData.prototype = { to : function (k, m, e, o, n, u) { return this.vEnd = k, this.duration = m, this.easingFunction = e, this.delay = o, this.repeatCounter = n, this.yoyo = u, this.isFrom = !1, this; }, from : function (k, m, e, o, n, u) { return this.vEnd = k, this.duration = m, this.easingFunction = e, this.delay = o, this.repeatCounter = n, this.yoyo = u, this.isFrom = !0, this; }, start : function () { if (this.startTime = this.game.time.time + this.delay, this.dt = this.parent.reverse ? this.duration : 0, this.isRunning = y3U.J7B(this.delay, 0) ? !1 : !0, this.isFrom) for (var k in this.vStartCache) this.vStart[k] = this.vEndCache[k], this.vEnd[k] = this.vStartCache[k], this.parent.target[k] = this.vStart[k]; return this.value = 0, this.yoyoCounter = 0, this; }, loadValues : function () { for (var k in this.parent.properties) { if (this.vStart[k] = this.parent.properties[k], Array.isArray(this.vEnd[k])) { if (y3U.H7B(0, this.vEnd[k].length)) continue; this.vEnd[k] = [this.parent.properties[k]].concat(this.vEnd[k]); } "undefined" != typeof this.vEnd[k] ? ("string" == typeof this.vEnd[k] && (this.vEnd[k] = this.vStart[k] + parseFloat(this.vEnd[k], 10)), this.parent.properties[k] = this.vEnd[k]) : this.vEnd[k] = this.vStart[k], this.vStartCache[k] = this.vStart[k], this.vEndCache[k] = this.vEnd[k]; } return this; }, update : function () { if (!this.isRunning) { if (!(y3U.h7B(this.game.time.time, this.startTime))) return i.TweenData.PENDING; this.isRunning = !0; } this.parent.reverse ? (this.dt -= y3U.F7B(this.game.time.physicsElapsedMS, this.parent.timeScale), this.dt = Math.max(this.dt, 0)) : (this.dt += y3U.M7B(this.game.time.physicsElapsedMS, this.parent.timeScale), this.dt = Math.min(this.dt, this.duration)), this.percent = y3U.n7B(this.dt, this.duration), this.value = this.easingFunction(this.percent); for (var k in this.vEnd) { var m = this.vStart[k], e = this.vEnd[k]; this.parent.target[k] = Array.isArray(e) ? this.interpolationFunction(e, this.value) : m + y3U.f7B((e - m), this.value); } return !this.parent.reverse && y3U.K7B(1, this.percent) || this.parent.reverse && y3U.B7B(0, this.percent) ? this.repeat() : i.TweenData.RUNNING; }, generateData : function (k) { this.dt = this.parent.reverse ? this.duration : 0; var m = [], e = !1, o = y3U.l7B(1, k, 1e3); do { this.parent.reverse ? (this.dt -= o, this.dt = Math.max(this.dt, 0)) : (this.dt += o, this.dt = Math.min(this.dt, this.duration)), this.percent = y3U.O7B(this.dt, this.duration), this.value = this.easingFunction(this.percent); var n = {}; for (var u in this.vEnd) { var q = this.vStart[u], f = this.vEnd[u]; n[u] = Array.isArray(f) ? this.interpolationFunction(f, this.value) : q + y3U.V7B((f - q), this.value); } m.push(n), (!this.parent.reverse && y3U.k4B(1, this.percent) || this.parent.reverse && y3U.G4B(0, this.percent)) && (e = !0); } while (!e); if (this.yoyo) { var j = m.slice(); j.reverse(), m = m.concat(j); } return m; }, repeat : function () { if (this.yoyo) { if (this.inReverse && y3U.N4B(0, this.repeatCounter)) return i.TweenData.COMPLETE; this.inReverse = !this.inReverse; } else if (y3U.L4B(0, this.repeatCounter)) return i.TweenData.COMPLETE; if (this.inReverse) for (var k in this.vStartCache) this.vStart[k] = this.vEndCache[k], this.vEnd[k] = this.vStartCache[k]; else { for (var k in this.vStartCache) this.vStart[k] = this.vStartCache[k], this.vEnd[k] = this.vEndCache[k]; y3U.z4B(this.repeatCounter, 0) && this.repeatCounter--; } return this.startTime = this.game.time.time + this.delay, this.dt = this.parent.reverse ? this.duration : 0, i.TweenData.LOOPED; } }, i.TweenData.prototype.constructor = i.TweenData, i.Easing = { Linear : { None : function (k) { return k; } }, Quadratic : { In : function (k) { return y3U.J4B(k, k); }, Out : function (k) { return y3U.H4B(k, (2 - k)); }, InOut : function (k) { return y3U.h4B((k *= 2), 1) ? y3U.F4B(.5, k, k) : - .5 * (--k * (y3U.i4B(k, 2)) - 1); } }, Cubic : { In : function (k) { return y3U.u4B(k, k, k); }, Out : function (k) { return --k * k * k + 1; }, InOut : function (k) { return y3U.b4B((k *= 2), 1) ? y3U.j4B(.5, k, k, k) : y3U.R4B(.5, ((k -= 2) * k * k + 2)); } }, Quartic : { In : function (k) { return y3U.O4B(k, k, k, k); }, Out : function (k) { return 1 - --k * k * k * k; }, InOut : function (k) { return y3U.U3B((k *= 2), 1) ? y3U.T3B(.5, k, k, k, k) : - .5 * (y3U.I3B((k -= 2) * k * k * k, 2)); } }, Quintic : { In : function (k) { return y3U.C3B(k, k, k, k, k); }, Out : function (k) { return --k * k * k * k * k + 1; }, InOut : function (k) { return y3U.t3B((k *= 2), 1) ? y3U.y3B(.5, k, k, k, k, k) : y3U.M3B(.5, ((k -= 2) * k * k * k * k + 2)); } }, Sinusoidal : { In : function (k) { return y3U.n3B(0, k) ? 0 : y3U.f3B(1, k) ? 1 : y3U.K3B(1, Math.cos(k * Math.PI / 2)); }, Out : function (k) { return y3U.B3B(0, k) ? 0 : y3U.l3B(1, k) ? 1 : Math.sin(y3U.X3B(k, Math.PI, 2)); }, InOut : function (k) { return y3U.V3B(0, k) ? 0 : y3U.k9B(1, k) ? 1 : y3U.G9B(.5, (1 - Math.cos(Math.PI * k))); } }, Exponential : { In : function (k) { return y3U.N9B(0, k) ? 0 : Math.pow(1024, y3U.L9B(k, 1)); }, Out : function (k) { return y3U.z9B(1, k) ? 1 : 1 - Math.pow(2, -10 * k); }, InOut : function (k) { return y3U.J9B(0, k) ? 0 : y3U.H9B(1, k) ? 1 : y3U.h9B((k *= 2), 1) ? y3U.F9B(.5, Math.pow(1024, k - 1)) : .5 * (-Math.pow(2, -10 * (y3U.M9B(k, 1))) + 2); } }, Circular : { In : function (k) { return y3U.n9B(1, Math.sqrt(1 - k * k)); }, Out : function (k) { return Math.sqrt(1 - --k * k); }, InOut : function (k) { return y3U.f9B((k *= 2), 1) ? - .5 * (y3U.K9B(Math.sqrt(1 - k * k), 1)) : y3U.B9B(.5, (Math.sqrt(1 - (k -= 2) * k) + 1)); } }, Elastic : { In : function (k) { var m, e = .1, o = .4; return y3U.l9B(0, k) ? 0 : y3U.X9B(1, k) ? 1 : (!e || y3U.Y9B(1, e) ? (e = 1, m = y3U.U5B(o, 4)) : m = y3U.T5B(o, Math.asin(1 / e), (2 * Math.PI)), - (y3U.N5B(e, Math.pow(2, 10 * (k -= 1)), Math.sin(2 * (k - m) * Math.PI / o)))); }, Out : function (k) { var m, e = .1, o = .4; return y3U.A5B(0, k) ? 0 : y3U.w5B(1, k) ? 1 : (!e || y3U.E5B(1, e) ? (e = 1, m = y3U.e5B(o, 4)) : m = y3U.g5B(o, Math.asin(1 / e), (2 * Math.PI)), e * Math.pow(2, -10 * k) * Math.sin(y3U.x5B(2, (k - m), Math.PI, o)) + 1); }, InOut : function (k) { var m, e = .1, o = .4; return y3U.u5B(0, k) ? 0 : y3U.P5B(1, k) ? 1 : (!e || y3U.D5B(1, e) ? (e = 1, m = y3U.Z5B(o, 4)) : m = y3U.R5B(o, Math.asin(1 / e), (2 * Math.PI)), y3U.s5B((k *= 2), 1) ? - .5 * e * Math.pow(2, y3U.Q5B(10, (k -= 1))) * Math.sin(y3U.a2B(2, (k - m), Math.PI, o)) : e * Math.pow(2, -10 * (k -= 1)) * Math.sin(y3U.N2B(2, (k - m), Math.PI, o)) * .5 + 1); } }, Back : { In : function (k) { var m = 1.70158; return y3U.C2B(k, k, ((m + 1) * k - m)); }, Out : function (k) { var m = 1.70158; return --k * k * (y3U.J2B((m + 1), k) + m) + 1; }, InOut : function (k) { var m = 2.5949095; return y3U.H2B((k *= 2), 1) ? y3U.h2B(.5, k, k, ((m + 1) * k - m)) : y3U.x2B(.5, ((k -= 2) * k * ((m + 1) * k + m) + 2)); } }, Bounce : { In : function (k) { return y3U.p2B(1, i.Easing.Bounce.Out(1 - k)); }, Out : function (k) { return y3U.q2B(1 / 2.75, k) ? y3U.b2B(7.5625, k, k) : y3U.B2B(2 / 2.75, k) ? y3U.l2B(7.5625, (k -= 1.5 / 2.75), k) + .75 : y3U.O2B(2.5 / 2.75, k) ? y3U.V2B(7.5625, (k -= 2.25 / 2.75), k) + .9375 : y3U.a1B(7.5625, (k -= 2.625 / 2.75), k) + .984375; }, InOut : function (k) { return y3U.S1B(.5, k) ? y3U.I1B(.5, i.Easing.Bounce.In(2 * k)) : y3U.C1B(.5, i.Easing.Bounce.Out(2 * k - 1)) + .5; } } }, i.Easing.Default = i.Easing.Linear.None, i.Easing.Power0 = i.Easing.Linear.None, i.Easing.Power1 = i.Easing.Quadratic.Out, i.Easing.Power2 = i.Easing.Cubic.Out, i.Easing.Power3 = i.Easing.Quartic.Out, i.Easing.Power4 = i.Easing.Quintic.Out, i.Time = function (k) { this.game = k, this.time = 0, this.prevTime = 0, this.now = 0, this.elapsed = 0, this.elapsedMS = 0, this.physicsElapsed = 0, this.physicsElapsedMS = 0, this.desiredFps = 60, this.suggestedFps = null, 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 i.Timer(this.game, !1), this._frameCount = 0, this._elapsedAccumulator = 0, this._started = 0, this._timeLastSecond = 0, this._pauseStarted = 0, this._justResumed = !1, this._timers = []; }, i.Time.prototype = { boot : function () { this._started = Date.now(), this.time = Date.now(), this.events.start(); }, add : function (k) { return this._timers.push(k), k; }, create : function (k) { "undefined" == typeof k && (k = !0); var m = new i.Timer(this.game, k); return this._timers.push(m), m; }, removeAll : function () { for (var k = 0; y3U.v1B(k, this._timers.length); k++) this._timers[k].destroy(); this._timers = [], this.events.removeAll(); }, update : function (k) { var m = this.time; if (this.time = Date.now(), this.elapsedMS = y3U.t1B(this.time, m), this.prevTime = this.now, this.now = k, this.elapsed = y3U.y1B(this.now, this.prevTime), this.timeToCall = Math.floor(Math.max(0, y3U.o1B(1e3 / this.desiredFps, (this.timeCallExpected - k)))), this.timeCallExpected = k + this.timeToCall, this._frameCount++, this._elapsedAccumulator += this.elapsed, y3U.x1B(this._frameCount, 2 * this.desiredFps) && (this.suggestedFps = y3U.p1B(5, Math.floor(200 / (this._elapsedAccumulator / this._frameCount))), this._frameCount = 0, this._elapsedAccumulator = 0), this.physicsElapsed = y3U.q1B(1, this.desiredFps), this.physicsElapsedMS = y3U.b1B(1e3, this.physicsElapsed), this.advancedTiming && (this.msMin = Math.min(this.msMin, this.elapsed), this.msMax = Math.max(this.msMax, this.elapsed), this.frames++, y3U.j1B(this.now, this._timeLastSecond + 1e3) && (this.fps = Math.round(y3U.d1B(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)), !this.game.paused) { this.events.update(this.time); for (var e = 0, o = this._timers.length; y3U.X1B(o, e); ) this._timers[e].update(this.time) ? e++ : (this._timers.splice(e, 1), o--); } }, gamePaused : function () { this._pauseStarted = Date.now(), this.events.pause(); for (var k = this._timers.length; k--; ) this._timers[k]._pause(); }, gameResumed : function () { this.time = Date.now(), this.pauseDuration = y3U.Y1B(this.time, this._pauseStarted), this.events.resume(); for (var k = this._timers.length; k--; ) this._timers[k]._resume(); }, totalElapsedSeconds : function () { return y3U.U6B(.001, (this.time - this._started)); }, elapsedSince : function (k) { return y3U.T6B(this.time, k); }, elapsedSecondsSince : function (k) { return y3U.S6B(.001, (this.time - k)); }, reset : function () { this._started = this.time, this.removeAll(); } }, i.Time.prototype.constructor = i.Time, i.Timer = function (k, m) { "undefined" == typeof m && (m = !0), this.game = k, this.running = !1, this.autoDestroy = m, this.expired = !1, this.elapsed = 0, this.events = [], this.onComplete = new i.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; }, i.Timer.MINUTE = 6e4, i.Timer.SECOND = 1e3, i.Timer.HALF = 500, i.Timer.QUARTER = 250, i.Timer.prototype = { create : function (k, m, e, o, n, u) { k = Math.round(k); var q = k; q += y3U.I6B(0, this._now) ? this.game.time.time : this._now; var f = new i.TimerEvent(this, k, q, e, m, o, n, u); return this.events.push(f), this.order(), this.expired = !1, f; }, add : function (k, m, e) { return this.create(k, !1, 0, m, e, Array.prototype.splice.call(arguments, 3)); }, repeat : function (k, m, e, o) { return this.create(k, !1, m, e, o, Array.prototype.splice.call(arguments, 4)); }, loop : function (k, m, e) { return this.create(k, !0, 0, m, e, Array.prototype.splice.call(arguments, 3)); }, start : function (k) { if (!this.running) { this._started = this.game.time.time + (k || 0), this.running = !0; for (var m = 0; y3U.C6B(m, this.events.length); m++) this.events[m].tick = this.events[m].delay + this._started; } }, stop : function (k) { this.running = !1, "undefined" == typeof k && (k = !0), k && (this.events.length = 0); }, remove : function (k) { for (var m = 0; y3U.v6B(m, this.events.length); m++) if (y3U.t6B(this.events[m], k)) return this.events[m].pendingDelete = !0, !0; return !1; }, order : function () { y3U.y6B(this.events.length, 0) && (this.events.sort(this.sortHandler), this.nextTick = this.events[0].tick); }, sortHandler : function (k, m) { return y3U.o6B(k.tick, m.tick) ? -1 : y3U.x6B(k.tick, m.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 (k) { if (this.paused) return !0; if (this.elapsed = y3U.p6B(k, this._now), this._now = k, y3U.q6B(this.elapsed, this.timeCap) && this.adjustEvents(y3U.b6B(k, this.elapsed)), this._marked = 0, this.clearPendingEvents(), this.running && y3U.j6B(this._now, this.nextTick) && y3U.d6B(this._len, 0)) { for (; y3U.c6B(this._i, this._len) && this.running && y3U.s6B(this._now, this.events[this._i].tick); ) this._newTick = this._now + this.events[this._i].delay - (y3U.Q6B(this._now, this.events[this._i].tick)), y3U.a8B(this._newTick, 0) && (this._newTick = this._now + this.events[this._i].delay), this.events[this._i].loop === !0 ? (this.events[this._i].tick = this._newTick, this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args)) : y3U.W8B(this.events[this._i].repeatCount, 0) ? (this.events[this._i].repeatCount--, this.events[this._i].tick = this._newTick, this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args)) : (this._marked++, this.events[this._i].pendingDelete = !0, this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args)), this._i++; y3U.m8B(this.events.length, this._marked) ? this.order() : (this.expired = !0, this.onComplete.dispatch(this)); } return this.expired && this.autoDestroy ? !1 : !0; }, pause : function () { this.running && (this._codePaused = !0, this.paused || (this._pauseStarted = this.game.time.time, this.paused = !0)); }, _pause : function () { !this.paused && this.running && (this._pauseStarted = this.game.time.time, this.paused = !0); }, adjustEvents : function (k) { for (var m = 0; y3U.A8B(m, this.events.length); m++) if (!this.events[m].pendingDelete) { var e = y3U.w8B(this.events[m].tick, k); y3U.E8B(0, e) && (e = 0), this.events[m].tick = this._now + e; } var o = y3U.e8B(this.nextTick, k); this.nextTick = y3U.g8B(0, o) ? this._now : this._now + o; }, resume : function () { if (this.paused) { var k = this.game.time.time; this._pauseTotal += y3U.r8B(k, this._now), this._now = k, 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(i.Timer.prototype, "next", { get : function () { return this.nextTick; } }), Object.defineProperty(i.Timer.prototype, "duration", { get : function () { return this.running && y3U.i8B(this.nextTick, this._now) ? y3U.u8B(this.nextTick, this._now) : 0; } }), Object.defineProperty(i.Timer.prototype, "length", { get : function () { return this.events.length; } }), Object.defineProperty(i.Timer.prototype, "ms", { get : function () { return this.running ? y3U.P8B(this._now, this._started, this._pauseTotal) : 0; } }), Object.defineProperty(i.Timer.prototype, "seconds", { get : function () { return this.running ? y3U.j8B(.001, this.ms) : 0; } }), i.Timer.prototype.constructor = i.Timer, i.TimerEvent = function (k, m, e, o, n, u, q, f) { this.timer = k, this.delay = m, this.tick = e, this.repeatCount = y3U.d8B(o, 1), this.loop = n, this.callback = u, this.callbackContext = q, this.args = f, this.pendingDelete = !1; }, i.TimerEvent.prototype.constructor = i.TimerEvent, i.AnimationManager = function (k) { this.sprite = k, this.game = k.game, this.currentFrame = null, this.currentAnim = null, this.updateIfVisible = !0, this.isLoaded = !1, this._frameData = null, this._anims = {}, this._outputFrames = []; }, i.AnimationManager.prototype = { loadFrameData : function (k, m) { if ("undefined" == typeof k) return !1; if (this.isLoaded) for (var e in this._anims) this._anims[e].updateFrameData(k); return this._frameData = k, "undefined" == typeof m || y3U.c8B(null, m) ? this.frame = 0 : "string" == typeof m ? this.frameName = m : this.frame = m, this.isLoaded = !0, !0; }, copyFrameData : function (k, m) { if (this._frameData = k.clone(), this.isLoaded) for (var e in this._anims) this._anims[e].updateFrameData(this._frameData); return "undefined" == typeof m || y3U.s8B(null, m) ? this.frame = 0 : "string" == typeof m ? this.frameName = m : this.frame = m, this.isLoaded = !0, !0; }, add : function (k, m, e, o, n) { return m = m || [], e = e || 60, "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = m && "number" == typeof m[0] ? !0 : !1), this._outputFrames.length = 0, this._frameData.getFrameIndexes(m, n, this._outputFrames), this._anims[k] = new i.Animation(this.game, this.sprite, k, this._frameData, this._outputFrames, e, o), this.currentAnim = this._anims[k], this.currentFrame = this.currentAnim.currentFrame, this.sprite.__tilePattern && (this.sprite.__tilePattern = !1, this.tilingTexture = !1), this._anims[k]; }, validateFrames : function (k, m) { "undefined" == typeof m && (m = !0); for (var e = 0; y3U.Q8B(e, k.length); e++) if (m === !0) { if (y3U.a0G(k[e], this._frameData.total)) return !1; } else if (this._frameData.checkFrameName(k[e]) === !1) return !1; return !0; }, play : function (k, m, e, o) { return this._anims[k] ? y3U.W0G(this.currentAnim, this._anims[k]) ? this.currentAnim.isPlaying === !1 ? (this.currentAnim.paused = !1, this.currentAnim.play(m, e, o)) : this.currentAnim : (this.currentAnim && this.currentAnim.isPlaying && this.currentAnim.stop(), this.currentAnim = this._anims[k], this.currentAnim.paused = !1, this.currentFrame = this.currentAnim.currentFrame, this.currentAnim.play(m, e, o)) : void 0; }, stop : function (k, m) { "undefined" == typeof m && (m = !1), "string" == typeof k ? this._anims[k] && (this.currentAnim = this._anims[k], this.currentAnim.stop(m)) : this.currentAnim && this.currentAnim.stop(m); }, update : function () { return this.updateIfVisible && !this.sprite.visible ? !1 : this.currentAnim && this.currentAnim.update() === !0 ? (this.currentFrame = this.currentAnim.currentFrame, !0) : !1; }, next : function (k) { this.currentAnim && (this.currentAnim.next(k), this.currentFrame = this.currentAnim.currentFrame); }, previous : function (k) { this.currentAnim && (this.currentAnim.previous(k), this.currentFrame = this.currentAnim.currentFrame); }, getAnimation : function (k) { return "string" == typeof k && this._anims[k] ? this._anims[k] : null; }, refreshFrame : function () { this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid]), this.sprite.__tilePattern && (this.__tilePattern = !1, this.tilingTexture = !1); }, destroy : function () { var k = null; for (var k in this._anims) this._anims.hasOwnProperty(k) && this._anims[k].destroy(); this._anims = {}, this._outputFrames = [], this._frameData = null, this._frameIndex = 0, this.currentAnim = null, this.currentFrame = null, this.sprite = null, this.game = null; } }, i.AnimationManager.prototype.constructor = i.AnimationManager, Object.defineProperty(i.AnimationManager.prototype, "frameData", { get : function () { return this._frameData; } }), Object.defineProperty(i.AnimationManager.prototype, "frameTotal", { get : function () { return this._frameData.total; } }), Object.defineProperty(i.AnimationManager.prototype, "paused", { get : function () { return this.currentAnim.isPaused; }, set : function (k) { this.currentAnim.paused = k; } }), Object.defineProperty(i.AnimationManager.prototype, "name", { get : function () { return this.currentAnim ? this.currentAnim.name : void 0; } }), Object.defineProperty(i.AnimationManager.prototype, "frame", { get : function () { return this.currentFrame ? this._frameIndex : void 0; }, set : function (k) { "number" == typeof k && this._frameData && y3U.m0G(null, this._frameData.getFrame(k)) && (this.currentFrame = this._frameData.getFrame(k), this.currentFrame && (this._frameIndex = k, this.sprite.setFrame(this.currentFrame), this.sprite.__tilePattern && (this.__tilePattern = !1, this.tilingTexture = !1))); } }), Object.defineProperty(i.AnimationManager.prototype, "frameName", { get : function () { return this.currentFrame ? this.currentFrame.name : void 0; }, set : function (k) { "string" == typeof k && y3U.A0G(null, this._frameData.getFrameByName(k)) ? (this.currentFrame = this._frameData.getFrameByName(k), this.currentFrame && (this._frameIndex = this.currentFrame.index, this.sprite.setFrame(this.currentFrame), this.sprite.__tilePattern && (this.__tilePattern = !1, this.tilingTexture = !1))) : console.warn("Cannot set frameName: " + k); } }), i.Animation = function (k, m, e, o, n, u, q) { "undefined" == typeof q && (q = !1), this.game = k, this._parent = m, this._frameData = o, this.name = e, this._frames = [], this._frames = this._frames.concat(n), this.delay = y3U.w0G(1e3, u), this.loop = q, 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 i.Signal, this.onUpdate = null, this.onComplete = new i.Signal, this.onLoop = new i.Signal, this.game.onPause.add(this.onPause, this), this.game.onResume.add(this.onResume, this); }, i.Animation.prototype = { play : function (k, m, e) { return "number" == typeof k && (this.delay = y3U.E0G(1e3, k)), "boolean" == typeof m && (this.loop = m), "undefined" != typeof e && (this.killOnComplete = e), 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.__tilePattern && (this._parent.__tilePattern = !1, this._parent.tilingTexture = !1), this._parent.events.onAnimationStart$dispatch(this._parent, this), this.onStart.dispatch(this._parent, this), 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.onStart.dispatch(this._parent, this); }, setFrame : function (m, e) { var o = function (k) { n = k; }, n; if ("undefined" == typeof e && (e = !1), "string" == typeof m) for (var u = 0; y3U.e0G(u, this._frames.length); u++) y3U.g0G(this._frameData.getFrame(this._frames[u]).name, m) && (n = u); else if ("number" == typeof m) if (e) o(m); else for (var u = 0; y3U.r0G(u, this._frames.length); u++) y3U.i0G(this._frames[u], n) && (n = u); n && (this._frameIndex = y3U.u0G(n, 1), this._timeNextFrame = this.game.time.time, this.update()); }, stop : function (k, m) { "undefined" == typeof k && (k = !1), "undefined" == typeof m && (m = !1), this.isPlaying = !1, this.isFinished = !0, this.paused = !1, k && (this.currentFrame = this._frameData.getFrame(this._frames[0]), this._parent.setFrame(this.currentFrame)), m && (this._parent.events.onAnimationComplete$dispatch(this._parent, this), this.onComplete.dispatch(this._parent, this)); }, onPause : function () { this.isPlaying && (this._frameDiff = y3U.P0G(this._timeNextFrame, this.game.time.time)); }, onResume : function () { this.isPlaying && (this._timeNextFrame = this.game.time.time + this._frameDiff); }, update : function () { return this.isPaused ? !1 : this.isPlaying && y3U.D0G(this.game.time.time, this._timeNextFrame) ? (this._frameSkip = 1, this._frameDiff = y3U.Z0G(this.game.time.time, this._timeNextFrame), this._timeLastFrame = this.game.time.time, y3U.R0G(this._frameDiff, this.delay) && (this._frameSkip = Math.floor(y3U.O0G(this._frameDiff, this.delay)), this._frameDiff -= y3U.V0G(this._frameSkip, this.delay)), this._timeNextFrame = this.game.time.time + (y3U.k7G(this.delay, this._frameDiff)), this._frameIndex += this._frameSkip, y3U.G7G(this._frameIndex, this._frames.length) && (this.loop ? (this._frameIndex %= this._frames.length, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.loopCount++, this._parent.events.onAnimationLoop$dispatch(this._parent, this), this.onLoop.dispatch(this._parent, this)) : this.complete()), this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.currentFrame && (this._parent.setFrame(this.currentFrame), this._parent.__tilePattern && (this._parent.__tilePattern = !1, this._parent.tilingTexture = !1), this.onUpdate && this.onUpdate.dispatch(this, this.currentFrame)), !0) : !1; }, next : function (k) { "undefined" == typeof k && (k = 1); var m = this._frameIndex + k; y3U.N7G(m, this._frames.length) && (this.loop ? m %= this._frames.length : m = y3U.L7G(this._frames.length, 1)), y3U.z7G(m, this._frameIndex) && (this._frameIndex = m, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.currentFrame && (this._parent.setFrame(this.currentFrame), this._parent.__tilePattern && (this._parent.__tilePattern = !1, this._parent.tilingTexture = !1)), this.onUpdate && this.onUpdate.dispatch(this, this.currentFrame)); }, previous : function (k) { "undefined" == typeof k && (k = 1); var m = y3U.J7G(this._frameIndex, k); y3U.H7G(0, m) && (this.loop ? m = this._frames.length + m : m++), y3U.h7G(m, this._frameIndex) && (this._frameIndex = m, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.currentFrame && (this._parent.setFrame(this.currentFrame), this._parent.__tilePattern && (this._parent.__tilePattern = !1, this._parent.tilingTexture = !1)), this.onUpdate && this.onUpdate.dispatch(this, this.currentFrame)); }, updateFrameData : function (k) { this._frameData = k, this.currentFrame = this._frameData ? this._frameData.getFrame(this._frames[y3U.F7G(this._frameIndex, this._frames.length)]) : null; }, destroy : function () { 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.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(); } }, i.Animation.prototype.constructor = i.Animation, Object.defineProperty(i.Animation.prototype, "paused", { get : function () { return this.isPaused; }, set : function (k) { this.isPaused = k, k ? this._pauseStartTime = this.game.time.time : this.isPlaying && (this._timeNextFrame = this.game.time.time + this.delay); } }), Object.defineProperty(i.Animation.prototype, "frameTotal", { get : function () { return this._frames.length; } }), Object.defineProperty(i.Animation.prototype, "frame", { get : function () { return y3U.M7G(null, this.currentFrame) ? this.currentFrame.index : this._frameIndex; }, set : function (k) { this.currentFrame = this._frameData.getFrame(this._frames[k]), y3U.n7G(null, this.currentFrame) && (this._frameIndex = k, this._parent.setFrame(this.currentFrame), this.onUpdate && this.onUpdate.dispatch(this, this.currentFrame)); } }), Object.defineProperty(i.Animation.prototype, "speed", { get : function () { return Math.round(y3U.f7G(1e3, this.delay)); }, set : function (k) { y3U.K7G(k, 1) && (this.delay = y3U.B7G(1e3, k)); } }), Object.defineProperty(i.Animation.prototype, "enableUpdate", { get : function () { return y3U.l7G(null, this.onUpdate); }, set : function (k) { k && y3U.X7G(null, this.onUpdate) ? this.onUpdate = new i.Signal : k || y3U.Y7G(null, this.onUpdate) || (this.onUpdate.dispose(), this.onUpdate = null); } }), i.Animation.generateFrameNames = function (k, m, e, o, n) { "undefined" == typeof o && (o = ""); var u = [], q = ""; if (y3U.U4G(e, m)) for (var f = m; y3U.T4G(e, f); f++) q = "number" == typeof n ? i.Utils.pad(f.toString(), n, "0", 1) : f.toString(), q = k + q + o, u.push(q); else for (var f = m; y3U.S4G(f, e); f--) q = "number" == typeof n ? i.Utils.pad(f.toString(), n, "0", 1) : f.toString(), q = k + q + o, u.push(q); return u; }, i.Frame = function (k, m, e, o, n, u, q) { this.index = k, this.x = m, this.y = e, this.width = o, this.height = n, this.name = u, this.uuid = q, this.centerX = Math.floor(y3U.I4G(o, 2)), this.centerY = Math.floor(y3U.C4G(n, 2)), this.distance = i.Math.distance(0, 0, o, n), this.rotated = !1, this.rotationDirection = "cw", this.trimmed = !1, this.sourceSizeW = o, this.sourceSizeH = n, this.spriteSourceSizeX = 0, this.spriteSourceSizeY = 0, this.spriteSourceSizeW = 0, this.spriteSourceSizeH = 0, this.right = this.x + this.width, this.bottom = this.y + this.height; }, i.Frame.prototype = { setTrim : function (k, m, e, o, n, u, q) { this.trimmed = k, k && (this.sourceSizeW = m, this.sourceSizeH = e, this.centerX = Math.floor(y3U.v4G(m, 2)), this.centerY = Math.floor(y3U.t4G(e, 2)), this.spriteSourceSizeX = o, this.spriteSourceSizeY = n, this.spriteSourceSizeW = u, this.spriteSourceSizeH = q); }, clone : function () { var k = new i.Frame(this.index, this.x, this.y, this.width, this.height, this.name, this.uuid); for (var m in this) this.hasOwnProperty(m) && (k[m] = this[m]); return k; }, getRect : function (k) { return "undefined" == typeof k ? k = new i.Rectangle(this.x, this.y, this.width, this.height) : k.setTo(this.x, this.y, this.width, this.height), k; } }, i.Frame.prototype.constructor = i.Frame, i.FrameData = function () { this._frames = [], this._frameNames = []; }, i.FrameData.prototype = { addFrame : function (k) { return k.index = this._frames.length, this._frames.push(k), y3U.y4G("", k.name) && (this._frameNames[k.name] = k.index), k; }, getFrame : function (k) { return y3U.o4G(k, this._frames.length) && (k = 0), this._frames[k]; }, getFrameByName : function (k) { return "number" == typeof this._frameNames[k] ? this._frames[this._frameNames[k]] : null; }, checkFrameName : function (k) { return y3U.x4G(null, this._frameNames[k]) ? !1 : !0; }, clone : function () { for (var k = new i.FrameData, m = 0; y3U.p4G(m, this._frames.length); m++) k._frames.push(this._frames[m].clone()); for (var e in this._frameNames) this._frameNames.hasOwnProperty(e) && k._frameNames.push(this._frameNames[e]); return k; }, getFrameRange : function (k, m, e) { "undefined" == typeof e && (e = []); for (var o = k; y3U.q4G(m, o); o++) e.push(this._frames[o]); return e; }, getFrames : function (k, m, e) { if ("undefined" == typeof m && (m = !0), "undefined" == typeof e && (e = []), "undefined" == typeof k || y3U.b4G(0, k.length)) for (var o = 0; y3U.j4G(o, this._frames.length); o++) e.push(this._frames[o]); else for (var o = 0, n = k.length; y3U.d4G(n, o); o++) e.push(m ? this.getFrame(k[o]) : this.getFrameByName(k[o])); return e; }, getFrameIndexes : function (k, m, e) { if ("undefined" == typeof m && (m = !0), "undefined" == typeof e && (e = []), "undefined" == typeof k || y3U.c4G(0, k.length)) for (var o = 0, n = this._frames.length; y3U.s4G(n, o); o++) e.push(this._frames[o].index); else for (var o = 0, n = k.length; y3U.Q4G(n, o); o++) m ? e.push(k[o]) : this.getFrameByName(k[o]) && e.push(this.getFrameByName(k[o]).index); return e; } }, i.FrameData.prototype.constructor = i.FrameData, Object.defineProperty(i.FrameData.prototype, "total", { get : function () { return this._frames.length; } }), i.AnimationParser = { spriteSheet : function (k, m, e, o, n, u, q) { var f = k.cache.getImage(m); if (y3U.a3G(null, f)) return null; var j = f.width, U0 = f.height; y3U.W3G(0, e) && (e = Math.floor(-j / Math.min(-1, e))), y3U.m3G(0, o) && (o = Math.floor(-U0 / Math.min(-1, o))); var k0 = Math.floor(y3U.A3G((j - u), (e + q))), a0 = Math.floor(y3U.w3G((U0 - u), (o + q))), T0 = y3U.E3G(k0, a0); if (-1 !== n && (T0 = n), y3U.e3G(0, j) || y3U.g3G(0, U0) || y3U.r3G(e, j) || y3U.i3G(o, U0) || y3U.u3G(0, T0)) return console.warn("Phaser.AnimationParser.spriteSheet: '" + m + "'s width/height zero or width/height < given frameWidth/frameHeight"), null; for (var G0 = new i.FrameData, W0 = u, N0 = u, S0 = 0; y3U.P3G(T0, S0); S0++) { var I0 = k.rnd.uuid(); G0.addFrame(new i.Frame(S0, W0, N0, e, o, "", I0)), PIXI.TextureCache[I0] = new PIXI.Texture(PIXI.BaseTextureCache[m], { x : W0, y : N0, width : e, height : o }), W0 += e + q, y3U.D3G(W0 + e, j) && (W0 = u, N0 += o + q); } return G0; }, JSONData : function (k, m, e) { if (!m.frames) return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"), void console.log(m); for (var o, n = new i.FrameData, u = m.frames, q = 0; y3U.Z3G(q, u.length); q++) { var f = k.rnd.uuid(); o = n.addFrame(new i.Frame(q, u[q].frame.x, u[q].frame.y, u[q].frame.w, u[q].frame.h, u[q].filename, f)), PIXI.TextureCache[f] = new PIXI.Texture(PIXI.BaseTextureCache[e], { x : u[q].frame.x, y : u[q].frame.y, width : u[q].frame.w, height : u[q].frame.h }), u[q].trimmed && o.setTrim(u[q].trimmed, u[q].sourceSize.w, u[q].sourceSize.h, u[q].spriteSourceSize.x, u[q].spriteSourceSize.y, u[q].spriteSourceSize.w, u[q].spriteSourceSize.h); } return n; }, JSONDataHash : function (k, m, e) { if (!m.frames) return console.warn("Phaser.AnimationParser.JSONDataHash: Invalid Texture Atlas JSON given, missing 'frames' object"), void console.log(m); var o, n = new i.FrameData, u = m.frames, q = 0; for (var f in u) { var j = k.rnd.uuid(); o = n.addFrame(new i.Frame(q, u[f].frame.x, u[f].frame.y, u[f].frame.w, u[f].frame.h, f, j)), PIXI.TextureCache[j] = new PIXI.Texture(PIXI.BaseTextureCache[e], { x : u[f].frame.x, y : u[f].frame.y, width : u[f].frame.w, height : u[f].frame.h }), u[f].trimmed && o.setTrim(u[f].trimmed, u[f].sourceSize.w, u[f].sourceSize.h, u[f].spriteSourceSize.x, u[f].spriteSourceSize.y, u[f].spriteSourceSize.w, u[f].spriteSourceSize.h), q++; } return n; }, XMLData : function (k, m, e) { if (!m.getElementsByTagName("TextureAtlas")) return void console.warn("Phaser.AnimationParser.XMLData: Invalid Texture Atlas XML given, missing tag"); for (var o, n, u, q, f, j, U0, k0, a0, T0, G0, W0, N0 = new i.FrameData, S0 = m.getElementsByTagName("SubTexture"), I0 = 0; y3U.R3G(I0, S0.length); I0++) n = k.rnd.uuid(), q = S0[I0].attributes, u = q.name.value, f = parseInt(q.x.value, 10), j = parseInt(q.y.value, 10), U0 = parseInt(q.width.value, 10), k0 = parseInt(q.height.value, 10), a0 = null, T0 = null, q.frameX && (a0 = Math.abs(parseInt(q.frameX.value, 10)), T0 = Math.abs(parseInt(q.frameY.value, 10)), G0 = parseInt(q.frameWidth.value, 10), W0 = parseInt(q.frameHeight.value, 10)), o = N0.addFrame(new i.Frame(I0, f, j, U0, k0, u, n)), PIXI.TextureCache[n] = new PIXI.Texture(PIXI.BaseTextureCache[e], { x : f, y : j, width : U0, height : k0 }), (y3U.O3G(null, a0) || y3U.V3G(null, T0)) && o.setTrim(!0, U0, k0, a0, T0, G0, W0); return N0; } }, i.Cache = function (k) { this.game = k, this.autoResolveURL = !1, this._canvases = {}, this._images = {}, this._textures = {}, this._sounds = {}, this._text = {}, this._json = {}, this._xml = {}, this._physics = {}, this._tilemaps = {}, this._binary = {}, this._bitmapDatas = {}, this._bitmapFont = {}, this._urlMap = {}, this._urlResolver = new Image, this._urlTemp = null, this.addDefaultImage(), this.addMissingImage(), this.onSoundUnlock = new i.Signal, this._cacheMap = [], this._cacheMap[i.Cache.CANVAS] = this._canvases, this._cacheMap[i.Cache.IMAGE] = this._images, this._cacheMap[i.Cache.TEXTURE] = this._textures, this._cacheMap[i.Cache.SOUND] = this._sounds, this._cacheMap[i.Cache.TEXT] = this._text, this._cacheMap[i.Cache.PHYSICS] = this._physics, this._cacheMap[i.Cache.TILEMAP] = this._tilemaps, this._cacheMap[i.Cache.BINARY] = this._binary, this._cacheMap[i.Cache.BITMAPDATA] = this._bitmapDatas, this._cacheMap[i.Cache.BITMAPFONT] = this._bitmapFont, this._cacheMap[i.Cache.JSON] = this._json, this._cacheMap[i.Cache.XML] = this._xml; }, i.Cache.CANVAS = 1, i.Cache.IMAGE = 2, i.Cache.TEXTURE = 3, i.Cache.SOUND = 4, i.Cache.TEXT = 5, i.Cache.PHYSICS = 6, i.Cache.TILEMAP = 7, i.Cache.BINARY = 8, i.Cache.BITMAPDATA = 9, i.Cache.BITMAPFONT = 10, i.Cache.JSON = 11, i.Cache.XML = 12, i.Cache.prototype = { addCanvas : function (k, m, e) { this._canvases[k] = { canvas : m, context : e }; }, addBinary : function (k, m) { this._binary[k] = m; }, addBitmapData : function (k, m, e) { return m.key = k, "undefined" == typeof e && (e = new i.FrameData, e.addFrame(m.textureFrame)), this._bitmapDatas[k] = { data : m, frameData : e }, m; }, addRenderTexture : function (k, m) { var e = new i.Frame(0, 0, 0, m.width, m.height, "", ""); this._textures[k] = { texture : m, frame : e }; }, addSpriteSheet : function (k, m, e, o, n, u, q, f) { this._images[k] = { url : m, data : e, frameWidth : o, frameHeight : n, margin : q, spacing : f }, PIXI.BaseTextureCache[k] = new PIXI.BaseTexture(e), PIXI.TextureCache[k] = new PIXI.Texture(PIXI.BaseTextureCache[k]), this._images[k].frameData = i.AnimationParser.spriteSheet(this.game, k, o, n, u, q, f), this._resolveURL(m, this._images[k]); }, addTilemap : function (k, m, e, o) { this._tilemaps[k] = { url : m, data : e, format : o }, this._resolveURL(m, this._tilemaps[k]); }, addTextureAtlas : function (k, m, e, o, n) { this._images[k] = { url : m, data : e }, PIXI.BaseTextureCache[k] = new PIXI.BaseTexture(e), PIXI.TextureCache[k] = new PIXI.Texture(PIXI.BaseTextureCache[k]), y3U.k9G(n, i.Loader.TEXTURE_ATLAS_JSON_ARRAY) ? this._images[k].frameData = i.AnimationParser.JSONData(this.game, o, k) : y3U.G9G(n, i.Loader.TEXTURE_ATLAS_JSON_HASH) ? this._images[k].frameData = i.AnimationParser.JSONDataHash(this.game, o, k) : y3U.N9G(n, i.Loader.TEXTURE_ATLAS_XML_STARLING) && (this._images[k].frameData = i.AnimationParser.XMLData(this.game, o, k)), this._resolveURL(m, this._images[k]); }, addBitmapFont : function (k, m, e, o, n, u) { this._images[k] = { url : m, data : e }, PIXI.BaseTextureCache[k] = new PIXI.BaseTexture(e), PIXI.TextureCache[k] = new PIXI.Texture(PIXI.BaseTextureCache[k]), i.LoaderParser.bitmapFont(this.game, o, k, n, u), this._bitmapFont[k] = PIXI.BitmapText.fonts[k], this._resolveURL(m, this._bitmapFont[k]); }, addPhysicsData : function (k, m, e, o) { this._physics[k] = { url : m, data : e, format : o }, this._resolveURL(m, this._physics[k]); }, addDefaultImage : function () { var k = new Image; k.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==", this._images.__default = { url : null, data : k }, this._images.__default.frame = new i.Frame(0, 0, 0, 32, 32, "", ""), this._images.__default.frameData = new i.FrameData, this._images.__default.frameData.addFrame(new i.Frame(0, 0, 0, 32, 32, null, this.game.rnd.uuid())), PIXI.BaseTextureCache.__default = new PIXI.BaseTexture(k), PIXI.TextureCache.__default = new PIXI.Texture(PIXI.BaseTextureCache.__default); }, addMissingImage : function () { var k = new Image; k.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==", this._images.__missing = { url : null, data : k }, this._images.__missing.frame = new i.Frame(0, 0, 0, 32, 32, "", ""), this._images.__missing.frameData = new i.FrameData, this._images.__missing.frameData.addFrame(new i.Frame(0, 0, 0, 32, 32, null, this.game.rnd.uuid())), PIXI.BaseTextureCache.__missing = new PIXI.BaseTexture(k), PIXI.TextureCache.__missing = new PIXI.Texture(PIXI.BaseTextureCache.__missing); }, addText : function (k, m, e) { this._text[k] = { url : m, data : e }, this._resolveURL(m, this._text[k]); }, addJSON : function (k, m, e) { this._json[k] = { url : m, data : e }, this._resolveURL(m, this._json[k]); }, addXML : function (k, m, e) { this._xml[k] = { url : m, data : e }, this._resolveURL(m, this._xml[k]); }, addImage : function (k, m, e) { this._images[k] = { url : m, data : e }, this._images[k].frame = new i.Frame(0, 0, 0, e.width, e.height, k, this.game.rnd.uuid()), this._images[k].frameData = new i.FrameData, this._images[k].frameData.addFrame(new i.Frame(0, 0, 0, e.width, e.height, m, this.game.rnd.uuid())), PIXI.BaseTextureCache[k] = new PIXI.BaseTexture(e), PIXI.TextureCache[k] = new PIXI.Texture(PIXI.BaseTextureCache[k]), this._resolveURL(m, this._images[k]); }, addSound : function (k, m, e, o, n) { o = o || !0, n = n || !1; var u = !1; n && (u = !0), this._sounds[k] = { url : m, data : e, isDecoding : !1, decoded : u, webAudio : o, audioTag : n, locked : this.game.sound.touchLocked }, this._resolveURL(m, this._sounds[k]); }, reloadSound : function (k) { var m = this; this._sounds[k] && (this._sounds[k].data.src = this._sounds[k].url, this._sounds[k].data.addEventListener("canplaythrough", function () { return m.reloadSoundComplete(k); }, !1), this._sounds[k].data.load()); }, reloadSoundComplete : function (k) { this._sounds[k] && (this._sounds[k].locked = !1, this.onSoundUnlock.dispatch(k)); }, updateSound : function (k, m, e) { this._sounds[k] && (this._sounds[k][m] = e); }, decodedSound : function (k, m) { this._sounds[k].data = m, this._sounds[k].decoded = !0, this._sounds[k].isDecoding = !1; }, getCanvas : function (k) { return this._canvases[k] ? this._canvases[k].canvas : (console.warn('Phaser.Cache.getCanvas: Invalid key: "' + k + '"'), null); }, getBitmapData : function (k) { return this._bitmapDatas[k] ? this._bitmapDatas[k].data : (console.warn('Phaser.Cache.getBitmapData: Invalid key: "' + k + '"'), null); }, getBitmapFont : function (k) { return this._bitmapFont[k] ? this._bitmapFont[k] : (console.warn('Phaser.Cache.getBitmapFont: Invalid key: "' + k + '"'), null); }, getPhysicsData : function (k, m, e) { if ("undefined" == typeof m || y3U.L9G(null, m)) { if (this._physics[k]) return this._physics[k].data; console.warn('Phaser.Cache.getPhysicsData: Invalid key: "' + k + '"'); } else if (this._physics[k] && this._physics[k].data[m]) { var o = this._physics[k].data[m]; if (!o || !e) return o; for (var n in o) if (n = o[n], y3U.z9G(n.fixtureKey, e)) return n; console.warn('Phaser.Cache.getPhysicsData: Could not find given fixtureKey: "' + e + " in " + k + '"'); } else console.warn('Phaser.Cache.getPhysicsData: Invalid key/object: "' + k + " / " + m + '"'); return null; }, checkKey : function (k, m) { return this._cacheMap[k][m] ? !0 : !1; }, checkCanvasKey : function (k) { return this.checkKey(i.Cache.CANVAS, k); }, checkImageKey : function (k) { return this.checkKey(i.Cache.IMAGE, k); }, checkTextureKey : function (k) { return this.checkKey(i.Cache.TEXTURE, k); }, checkSoundKey : function (k) { return this.checkKey(i.Cache.SOUND, k); }, checkTextKey : function (k) { return this.checkKey(i.Cache.TEXT, k); }, checkPhysicsKey : function (k) { return this.checkKey(i.Cache.PHYSICS, k); }, checkTilemapKey : function (k) { return this.checkKey(i.Cache.TILEMAP, k); }, checkBinaryKey : function (k) { return this.checkKey(i.Cache.BINARY, k); }, checkBitmapDataKey : function (k) { return this.checkKey(i.Cache.BITMAPDATA, k); }, checkBitmapFontKey : function (k) { return this.checkKey(i.Cache.BITMAPFONT, k); }, checkJSONKey : function (k) { return this.checkKey(i.Cache.JSON, k); }, checkXMLKey : function (k) { return this.checkKey(i.Cache.XML, k); }, checkURL : function (k) { return this._urlMap[this._resolveURL(k)] ? !0 : !1; }, getImage : function (k) { return this._images[k] ? this._images[k].data : (console.warn('Phaser.Cache.getImage: Invalid key: "' + k + '"'), null); }, getTilemapData : function (k) { return this._tilemaps[k] ? this._tilemaps[k] : (console.warn('Phaser.Cache.getTilemapData: Invalid key: "' + k + '"'), null); }, getFrameData : function (k, m) { return "undefined" == typeof m && (m = i.Cache.IMAGE), this._cacheMap[m][k] ? this._cacheMap[m][k].frameData : null; }, updateFrameData : function (k, m) { this._images[k] && (this._images[k].frameData = m); }, getFrameByIndex : function (k, m) { return this._images[k] ? this._images[k].frameData.getFrame(m) : null; }, getFrameByName : function (k, m) { return this._images[k] ? this._images[k].frameData.getFrameByName(m) : null; }, getFrame : function (k) { return this._images[k] ? this._images[k].frame : null; }, getTextureFrame : function (k) { return this._textures[k] ? this._textures[k].frame : null; }, getRenderTexture : function (k) { return this._textures[k] ? this._textures[k] : (console.warn('Phaser.Cache.getTexture: Invalid key: "' + k + '"'), null); }, getTexture : function (k) { return this._textures[k] ? this._textures[k] : void console.warn('Phaser.Cache.getTexture: Invalid key: "' + k + '"'); }, getSound : function (k) { return this._sounds[k] ? this._sounds[k] : (console.warn('Phaser.Cache.getSound: Invalid key: "' + k + '"'), null); }, getSoundData : function (k) { return this._sounds[k] ? this._sounds[k].data : (console.warn('Phaser.Cache.getSoundData: Invalid key: "' + k + '"'), null); }, isSoundDecoded : function (k) { return this._sounds[k] ? this._sounds[k].decoded : void 0; }, isSoundReady : function (k) { return this._sounds[k] && this._sounds[k].decoded && this.game.sound.touchLocked === !1; }, getFrameCount : function (k) { return this._images[k] ? this._images[k].frameData.total : 0; }, getText : function (k) { return this._text[k] ? this._text[k].data : (console.warn('Phaser.Cache.getText: Invalid key: "' + k + '"'), null); }, getJSON : function (k) { return this._json[k] ? this._json[k].data : (console.warn('Phaser.Cache.getJSON: Invalid key: "' + k + '"'), null); }, getXML : function (k) { return this._xml[k] ? this._xml[k].data : (console.warn('Phaser.Cache.getXML: Invalid key: "' + k + '"'), null); }, getBinary : function (k) { return this._binary[k] ? this._binary[k] : (console.warn('Phaser.Cache.getBinary: Invalid key: "' + k + '"'), null); }, getURL : function (k) { var k = this._resolveURL(k); return k ? this._urlMap[k] : (console.warn('Phaser.Cache.getUrl: Invalid url: "' + k + '" or Cache.autoResolveURL was false'), null); }, getUrl : function (k) { return this.getURL(k); }, getKeys : function (k) { var m = null; switch (k) { case i.Cache.CANVAS: m = this._canvases; break; case i.Cache.IMAGE: m = this._images; break; case i.Cache.TEXTURE: m = this._textures; break; case i.Cache.SOUND: m = this._sounds; break; case i.Cache.TEXT: m = this._text; break; case i.Cache.PHYSICS: m = this._physics; break; case i.Cache.TILEMAP: m = this._tilemaps; break; case i.Cache.BINARY: m = this._binary; break; case i.Cache.BITMAPDATA: m = this._bitmapDatas; break; case i.Cache.BITMAPFONT: m = this._bitmapFont; break; case i.Cache.JSON: m = this._json; break; case i.Cache.XML: m = this._xml; } if (m) { var e = []; for (var o in m) y3U.J9G("__default", o) && y3U.H9G("__missing", o) && e.push(o); return e; } }, removeCanvas : function (k) { delete this._canvases[k]; }, removeImage : function (k, m) { "undefined" == typeof m && (m = !0), delete this._images[k], m && PIXI.BaseTextureCache[k].destroy(); }, removeSound : function (k) { delete this._sounds[k]; }, removeText : function (k) { delete this._text[k]; }, removeJSON : function (k) { delete this._json[k]; }, removeXML : function (k) { delete this._xml[k]; }, removePhysics : function (k) { delete this._physics[k]; }, removeTilemap : function (k) { delete this._tilemaps[k]; }, removeBinary : function (k) { delete this._binary[k]; }, removeBitmapData : function (k) { delete this._bitmapDatas[k]; }, removeBitmapFont : function (k) { delete this._bitmapFont[k]; }, _resolveURL : function (k, m) { return this.autoResolveURL ? (this._urlResolver.src = this.game.load.baseURL + k, this._urlTemp = this._urlResolver.src, this._urlResolver.src = "", m && (this._urlMap[this._urlTemp] = m), this._urlTemp) : null; }, destroy : function () { for (var k in this._canvases) delete this._canvases[k]; for (var k in this._images) y3U.h9G("__default", k) && y3U.F9G("__missing", k) && delete this._images[k]; for (var k in this._sounds) delete this._sounds[k]; for (var k in this._text) delete this._text[k]; for (var k in this._json) delete this._json[k]; for (var k in this._xml) delete this._xml[k]; for (var k in this._textures) delete this._textures[k]; for (var k in this._physics) delete this._physics[k]; for (var k in this._tilemaps) delete this._tilemaps[k]; for (var k in this._binary) delete this._binary[k]; for (var k in this._bitmapDatas) delete this._bitmapDatas[k]; for (var k in this._bitmapFont) delete this._bitmapFont[k]; this._urlMap = null, this._urlResolver = null, this._urlTemp = null; } }, i.Cache.prototype.constructor = i.Cache, i.Loader = function (k) { this.game = k, this.isLoading = !1, this.hasLoaded = !1, this.progress = 0, this.progressFloat = 0, this.preloadSprite = null, this.crossOrigin = !1, this.baseURL = "", this.onLoadStart = new i.Signal, this.onFileStart = new i.Signal, this.onFileComplete = new i.Signal, this.onFileError = new i.Signal, this.onLoadComplete = new i.Signal, this.onPackComplete = new i.Signal, this.useXDomainRequest = !1, this._packList = [], this._packIndex = 0, this._fileList = [], this._fileIndex = 0, this._progressChunk = 0, this._xhr = new XMLHttpRequest, this._ajax = null; }, i.Loader.TEXTURE_ATLAS_JSON_ARRAY = 0, i.Loader.TEXTURE_ATLAS_JSON_HASH = 1, i.Loader.TEXTURE_ATLAS_XML_STARLING = 2, i.Loader.PHYSICS_LIME_CORONA_JSON = 3, i.Loader.PHYSICS_PHASER_JSON = 4, i.Loader.prototype = { setPreloadSprite : function (k, m) { m = m || 0, this.preloadSprite = { sprite : k, direction : m, width : k.width, height : k.height, rect : null }, this.preloadSprite.rect = y3U.M9G(0, m) ? new i.Rectangle(0, 0, 1, k.height) : new i.Rectangle(0, 0, k.width, 1), k.crop(this.preloadSprite.rect), k.visible = !0; }, resize : function () { this.preloadSprite && y3U.n9G(this.preloadSprite.height, this.preloadSprite.sprite.height) && (this.preloadSprite.rect.height = this.preloadSprite.sprite.height); }, checkKeyExists : function (k, m) { if (y3U.f9G(this._fileList.length, 0)) for (var e = 0; y3U.K9G(e, this._fileList.length); e++) if (y3U.B9G(this._fileList[e].type, k) && y3U.l9G(this._fileList[e].key, m)) return !0; return !1; }, getAssetIndex : function (k, m) { if (y3U.X9G(this._fileList.length, 0)) for (var e = 0; y3U.Y9G(e, this._fileList.length); e++) if (y3U.U5G(this._fileList[e].type, k) && y3U.T5G(this._fileList[e].key, m)) return e; return -1; }, getAsset : function (k, m) { if (y3U.S5G(this._fileList.length, 0)) for (var e = 0; y3U.I5G(e, this._fileList.length); e++) if (y3U.C5G(this._fileList[e].type, k) && y3U.v5G(this._fileList[e].key, m)) return { index : e, file : this._fileList[e] }; return !1; }, reset : function () { this.preloadSprite = null, this.isLoading = !1, this._packList.length = 0, this._packIndex = 0, this._fileList.length = 0, this._fileIndex = 0; }, addToFileList : function (m, e, o, n) { var u = function (k) { q[f] = k[f]; }, q = { type : m, key : e, url : o, data : null, error : !1, loaded : !1 }; if ("undefined" != typeof n) for (var f in n) u(n); this.checkKeyExists(m, e) === !1 && this._fileList.push(q); }, replaceInFileList : function (m, e, o, n) { var u = function (k) { q[f] = k[f]; }, q = { type : m, key : e, url : o, data : null, error : !1, loaded : !1 }; if ("undefined" != typeof n) for (var f in n) u(n); var j = this.getAssetIndex(m, e); -1 === j ? this._fileList.push(q) : this._fileList[j] = q; }, pack : function (k, m, e, o) { return "undefined" == typeof m && (m = null), "undefined" == typeof e && (e = null), "undefined" == typeof o && (o = this), y3U.t5G(null, m) && y3U.y5G(null, e) ? (console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."), this) : (e && "string" == typeof e && (e = JSON.parse(e)), this._packList.push({ key : k, url : m, data : e, loaded : !1, error : !1, callbackContext : o }), this); }, image : function (k, m, e) { return "undefined" == typeof e && (e = !1), e ? this.replaceInFileList("image", k, m) : this.addToFileList("image", k, m), this; }, text : function (k, m, e) { return "undefined" == typeof e && (e = !1), e ? this.replaceInFileList("text", k, m) : this.addToFileList("text", k, m), this; }, json : function (k, m, e) { return "undefined" == typeof e && (e = !1), e ? this.replaceInFileList("json", k, m) : this.addToFileList("json", k, m), this; }, xml : function (k, m, e) { return "undefined" == typeof e && (e = !1), e ? this.replaceInFileList("xml", k, m) : this.addToFileList("xml", k, m), this; }, script : function (k, m, e, o) { return "undefined" == typeof e && (e = !1), e !== !1 && "undefined" == typeof o && (o = e), this.addToFileList("script", k, m, { callback : e, callbackContext : o }), this; }, binary : function (k, m, e, o) { return "undefined" == typeof e && (e = !1), e !== !1 && "undefined" == typeof o && (o = e), this.addToFileList("binary", k, m, { callback : e, callbackContext : o }), this; }, spritesheet : function (k, m, e, o, n, u, q) { return "undefined" == typeof n && (n = -1), "undefined" == typeof u && (u = 0), "undefined" == typeof q && (q = 0), this.addToFileList("spritesheet", k, m, { frameWidth : e, frameHeight : o, frameMax : n, margin : u, spacing : q }), this; }, audio : function (k, m, e) { return "undefined" == typeof e && (e = !0), this.addToFileList("audio", k, m, { buffer : null, autoDecode : e }), this; }, audiosprite : function (k, m, e) { return this.audio(k, m), this.json(k + "-audioatlas", e), this; }, tilemap : function (k, m, e, o) { if ("undefined" == typeof m && (m = null), "undefined" == typeof e && (e = null), "undefined" == typeof o && (o = i.Tilemap.CSV), y3U.o5G(null, m) && y3U.x5G(null, e)) return console.warn("Phaser.Loader.tilemap - Both url and data are null. One must be set."), this; if (e) { switch (o) { case i.Tilemap.CSV: break; case i.Tilemap.TILED_JSON: "string" == typeof e && (e = JSON.parse(e)); } this.game.cache.addTilemap(k, null, e, o); } else this.addToFileList("tilemap", k, m, { format : o }); return this; }, physics : function (k, m, e, o) { return "undefined" == typeof m && (m = null), "undefined" == typeof e && (e = null), "undefined" == typeof o && (o = i.Physics.LIME_CORONA_JSON), y3U.p5G(null, m) && y3U.q5G(null, e) ? (console.warn("Phaser.Loader.physics - Both url and data are null. One must be set."), this) : (e ? ("string" == typeof e && (e = JSON.parse(e)), this.game.cache.addPhysicsData(k, null, e, o)) : this.addToFileList("physics", k, m, { format : o }), this); }, bitmapFont : function (m, e, o, n, u, q) { if ("undefined" == typeof o && (o = null), "undefined" == typeof n && (n = null), "undefined" == typeof u && (u = 0), "undefined" == typeof q && (q = 0), o) this.addToFileList("bitmapfont", m, e, { xmlURL : o, xSpacing : u, ySpacing : q }); else if ("string" == typeof n) { var f; try { if (r2w8n[E8n]['DOMParser']) { var j = new DOMParser; f = j.parseFromString(n, "text/xml"); } else f = new ActiveXObject("Microsoft.XMLDOM"), f.async = "false", f.loadXML(n); } catch (k) { var U0 = function () { f = void 0; }; U0(); } if (!f || !f.documentElement || f.getElementsByTagName("parsererror").length) throw new Error("Phaser.Loader. Invalid Bitmap Font XML given"); this.addToFileList("bitmapfont", m, e, { xmlURL : null, xmlData : f, xSpacing : u, ySpacing : q }); } return this; }, atlasJSONArray : function (k, m, e, o) { return this.atlas(k, m, e, o, i.Loader.TEXTURE_ATLAS_JSON_ARRAY); }, atlasJSONHash : function (k, m, e, o) { return this.atlas(k, m, e, o, i.Loader.TEXTURE_ATLAS_JSON_HASH); }, atlasXML : function (k, m, e, o) { return this.atlas(k, m, e, o, i.Loader.TEXTURE_ATLAS_XML_STARLING); }, atlas : function (m, e, o, n, u) { if ("undefined" == typeof o && (o = null), "undefined" == typeof n && (n = null), "undefined" == typeof u && (u = i.Loader.TEXTURE_ATLAS_JSON_ARRAY), o) this.addToFileList("textureatlas", m, e, { atlasURL : o, format : u }); else { switch (u) { case i.Loader.TEXTURE_ATLAS_JSON_ARRAY: "string" == typeof n && (n = JSON.parse(n)); break; case i.Loader.TEXTURE_ATLAS_XML_STARLING: if ("string" == typeof n) { var q = function (k) { n = k; }; var f; try { if (r2w8n[E8n]['DOMParser']) { var j = new DOMParser; f = j.parseFromString(n, "text/xml"); } else f = new ActiveXObject("Microsoft.XMLDOM"), f.async = "false", f.loadXML(n); } catch (k) { var U0 = function () { f = void 0; }; U0(); } if (!f || !f.documentElement || f.getElementsByTagName("parsererror").length) throw new Error("Phaser.Loader. Invalid Texture Atlas XML given"); q(f); } } this.addToFileList("textureatlas", m, e, { atlasURL : null, atlasData : n, format : u }); } return this; }, removeFile : function (k, m) { var e = this.getAsset(k, m); e !== !1 && this._fileList.splice(e.index, 1); }, removeAll : function () { this._fileList.length = 0; }, start : function () { this.isLoading || (y3U.b5G(this._packList.length, 0) ? (this._packIndex = 0, this.loadPack()) : this.beginLoad()); }, beginLoad : function () { this.progress = 0, this.progressFloat = 0, this.hasLoaded = !1, this.isLoading = !0, this.onLoadStart.dispatch(this._fileList.length), y3U.j5G(this._fileList.length, 0) ? (this._fileIndex = 0, this._progressChunk = y3U.d5G(100, this._fileList.length), this.loadFile()) : (this.progress = 100, this.progressFloat = 100, this.hasLoaded = !0, this.isLoading = !1, this.onLoadComplete.dispatch()); }, loadPack : function () { if (!this._packList[this._packIndex]) return void console.warn("Phaser.Loader loadPackList invalid index " + this._packIndex); var k = this._packList[this._packIndex]; y3U.c5G(null, k.data) ? this.packLoadComplete(this._packIndex, !1) : this.xhrLoad(this._packIndex, this.baseURL + k.url, "text", "packLoadComplete", "packLoadError"); }, packLoadComplete : function (k, m) { if ("undefined" == typeof m && (m = !0), !this._packList[k]) return void console.warn("Phaser.Loader packLoadComplete invalid index " + k); var e = this._packList[k]; if (e.loaded = !0, m) var o = JSON.parse(this._xhr.responseText); else var o = this._packList[k].data; if (o[e.key]) for (var n, u = 0; y3U.s5G(u, o[e.key].length); u++) switch (n = o[e.key][u], n.type) { case "image": this.image(n.key, n.url, n.overwrite); break; case "text": this.text(n.key, n.url, n.overwrite); break; case "json": this.json(n.key, n.url, n.overwrite); break; case "xml": this.xml(n.key, n.url, n.overwrite); break; case "script": this.script(n.key, n.url, n.callback, e.callbackContext); break; case "binary": this.binary(n.key, n.url, n.callback, e.callbackContext); break; case "spritesheet": this.spritesheet(n.key, n.url, n.frameWidth, n.frameHeight, n.frameMax, n.margin, n.spacing); break; case "audio": this.audio(n.key, n.urls, n.autoDecode); break; case "tilemap": this.tilemap(n.key, n.url, n.data, i.Tilemap[n.format]); break; case "physics": this.physics(n.key, n.url, n.data, i.Loader[n.format]); break; case "bitmapFont": this.bitmapFont(n.key, n.textureURL, n.xmlURL, n.xmlData, n.xSpacing, n.ySpacing); break; case "atlasJSONArray": this.atlasJSONArray(n.key, n.textureURL, n.atlasURL, n.atlasData); break; case "atlasJSONHash": this.atlasJSONHash(n.key, n.textureURL, n.atlasURL, n.atlasData); break; case "atlasXML": this.atlasXML(n.key, n.textureURL, n.atlasURL, n.atlasData); break; case "atlas": this.atlas(n.key, n.textureURL, n.atlasURL, n.atlasData, i.Loader[n.format]); } this.nextPack(k, !0); }, packError : function (k) { this._packList[k].loaded = !0, this._packList[k].error = !0, this.onFileError.dispatch(this._packList[k].key, this._packList[k]), console.warn("Phaser.Loader error loading pack file: " + this._packList[k].key + " from URL " + this._packList[k].url), this.nextPack(k, !1); }, nextPack : function (k, m) { this.onPackComplete.dispatch(this._packList[k].key, m, this.totalLoadedPacks(), this._packList.length), this._packIndex++, y3U.Q5G(this._packIndex, this._packList.length) ? this.loadPack() : this.beginLoad(); }, loadFile : function () { if (!this._fileList[this._fileIndex]) return void console.warn("Phaser.Loader loadFile invalid index " + this._fileIndex); var k = this._fileList[this._fileIndex], m = this; switch (this.onFileStart.dispatch(this.progress, k.key, k.url), k.type) { case "image": case "spritesheet": case "textureatlas": case "bitmapfont": k.data = new Image, k.data.name = k.key, k.data.onload = function () { return m.fileComplete(m._fileIndex); }, k.data.onerror = function () { return m.fileError(m._fileIndex); }, this.crossOrigin && (k.data.crossOrigin = this.crossOrigin), k.data.src = this.baseURL + k.url; break; case "audio": k.url = this.getAudioURL(k.url), y3U.a2G(null, k.url) ? this.game.sound.usingWebAudio ? this.xhrLoad(this._fileIndex, this.baseURL + k.url, "arraybuffer", "fileComplete", "fileError") : this.game.sound.usingAudioTag && (this.game.sound.touchLocked ? (k.data = new Audio, k.data.name = k.key, k.data.preload = "auto", k.data.src = this.baseURL + k.url, this.fileComplete(this._fileIndex)) : (k.data = new Audio, k.data.name = k.key, k.data.onerror = function () { return m.fileError(m._fileIndex); }, k.data.preload = "auto", k.data.src = this.baseURL + k.url, k.data.addEventListener("canplaythrough", function () { i.GAMES[m.game.id].load.fileComplete(m._fileIndex); }, !1), k.data.load())) : this.fileError(this._fileIndex); break; case "json": this.useXDomainRequest && r2w8n[E8n]['XDomainRequest'] ? (this._ajax = new r2w8n[E8n]['XDomainRequest'], this._ajax.timeout = 3e3, this._ajax.onerror = function () { return m.dataLoadError(m._fileIndex); }, this._ajax.ontimeout = function () { return m.dataLoadError(m._fileIndex); }, this._ajax.onprogress = function () {}, this._ajax.onload = function () { return m.jsonLoadComplete(m._fileIndex); }, this._ajax.open("GET", this.baseURL + k.url, !0), setTimeout(function () { m._ajax.send(); }, 0)) : this.xhrLoad(this._fileIndex, this.baseURL + k.url, "text", "jsonLoadComplete", "dataLoadError"); break; case "xml": this.xhrLoad(this._fileIndex, this.baseURL + k.url, "text", "xmlLoadComplete", "dataLoadError"); break; case "tilemap": if (y3U.W2G(k.format, i.Tilemap.TILED_JSON)) this.xhrLoad(this._fileIndex, this.baseURL + k.url, "text", "jsonLoadComplete", "dataLoadError"); else { if (y3U.m2G(k.format, i.Tilemap.CSV)) throw new Error("Phaser.Loader. Invalid Tilemap format: " + k.format); this.xhrLoad(this._fileIndex, this.baseURL + k.url, "text", "csvLoadComplete", "dataLoadError"); } break; case "text": case "script": case "physics": this.xhrLoad(this._fileIndex, this.baseURL + k.url, "text", "fileComplete", "fileError"); break; case "binary": this.xhrLoad(this._fileIndex, this.baseURL + k.url, "arraybuffer", "fileComplete", "fileError"); } }, xhrLoad : function (k, m, e, o, n) { this._xhr.open("GET", m, !0), this._xhr.responseType = e; var u = this; this._xhr.onload = function () { return u[o](k); }, this._xhr.onerror = function () { return u[n](k); }, this._xhr.send(); }, getAudioURL : function (k) { var m; "string" == typeof k && (k = [k]); for (var e = 0; y3U.A2G(e, k.length); e++) { if (m = k[e].toLowerCase(), y3U.w2G("blob:", m.substr(0, 5))) return k[e]; if (m = m.substr((Math.max(0, m.lastIndexOf(".")) || y3U.E2G(1, 0)) + 1), y3U.e2G(m.indexOf("?"), 0) && (m = m.substr(0, m.indexOf("?"))), this.game.device.canPlayAudio(m)) return k[e]; } return null; }, fileError : function (k) { this._fileList[k].loaded = !0, this._fileList[k].error = !0, this.onFileError.dispatch(this._fileList[k].key, this._fileList[k]), console.warn("Phaser.Loader error loading file: " + this._fileList[k].key + " from URL " + this._fileList[k].url), this.nextFile(k, !1); }, fileComplete : function (m) { var e = function () { o.loaded = !0; }; if (!this._fileList[m]) return void console.warn("Phaser.Loader fileComplete invalid index " + m); var o = this._fileList[m]; e(); var n = !0; switch (o.type) { case "image": this.game.cache.addImage(o.key, o.url, o.data); break; case "spritesheet": this.game.cache.addSpriteSheet(o.key, o.url, o.data, o.frameWidth, o.frameHeight, o.frameMax, o.margin, o.spacing); break; case "textureatlas": if (y3U.g2G(null, o.atlasURL)) this.game.cache.addTextureAtlas(o.key, o.url, o.data, o.atlasData, o.format); else if (n = !1, y3U.r2G(o.format, i.Loader.TEXTURE_ATLAS_JSON_ARRAY) || y3U.i2G(o.format, i.Loader.TEXTURE_ATLAS_JSON_HASH)) this.xhrLoad(this._fileIndex, this.baseURL + o.atlasURL, "text", "jsonLoadComplete", "dataLoadError"); else { if (y3U.u2G(o.format, i.Loader.TEXTURE_ATLAS_XML_STARLING)) throw new Error("Phaser.Loader. Invalid Texture Atlas format: " + o.format); this.xhrLoad(this._fileIndex, this.baseURL + o.atlasURL, "text", "xmlLoadComplete", "dataLoadError"); } break; case "bitmapfont": y3U.P2G(null, o.xmlURL) ? this.game.cache.addBitmapFont(o.key, o.url, o.data, o.xmlData, o.xSpacing, o.ySpacing) : (n = !1, this.xhrLoad(this._fileIndex, this.baseURL + o.xmlURL, "text", "xmlLoadComplete", "dataLoadError")); break; case "audio": if (this.game.sound.usingWebAudio) { if (o.data = this._xhr.response, this.game.cache.addSound(o.key, o.url, o.data, !0, !1), o.autoDecode) { var u = this, q = o.key; this.game.cache.updateSound(q, "isDecoding", !0), this.game.sound.context.decodeAudioData(o.data, function (k) { k && (u.game.cache.decodedSound(q, k), u.game.sound.onSoundDecode.dispatch(q, u.game.cache.getSound(q))); }); } } else o.data.removeEventListener("canplaythrough", i.GAMES[this.game.id].load.fileComplete), this.game.cache.addSound(o.key, o.url, o.data, !1, !0); break; case "text": o.data = this._xhr.responseText, this.game.cache.addText(o.key, o.url, o.data); break; case "physics": var f = JSON.parse(this._xhr.responseText); this.game.cache.addPhysicsData(o.key, o.url, f, o.format); break; case "script": o.data = r2w8n[H8n]['createElement']("script"), o.data.language = "javascript", o.data.type = "text/javascript", o.data.defer = !1, o.data.text = this._xhr.responseText, r2w8n[H8n].head.appendChild(o.data), o.callback && (o.data = o.callback.call(o.callbackContext, o.key, this._xhr.responseText)); break; case "binary": o.data = o.callback ? o.callback.call(o.callbackContext, o.key, this._xhr.response) : this._xhr.response, this.game.cache.addBinary(o.key, o.data); } n && this.nextFile(m, !0); }, jsonLoadComplete : function (k) { if (!this._fileList[k]) return void console.warn("Phaser.Loader jsonLoadComplete invalid index " + k); var m = this._fileList[k]; if (this._ajax && this._ajax.responseText) var e = JSON.parse(this._ajax.responseText); else var e = JSON.parse(this._xhr.responseText); m.loaded = !0, y3U.D2G("tilemap", m.type) ? this.game.cache.addTilemap(m.key, m.url, e, m.format) : y3U.Z2G("json", m.type) ? this.game.cache.addJSON(m.key, m.url, e) : this.game.cache.addTextureAtlas(m.key, m.url, m.data, e, m.format), this.nextFile(k, !0); }, csvLoadComplete : function (k) { if (!this._fileList[k]) return void console.warn("Phaser.Loader csvLoadComplete invalid index " + k); var m = this._fileList[k], e = this._xhr.responseText; m.loaded = !0, this.game.cache.addTilemap(m.key, m.url, e, m.format), this.nextFile(k, !0); }, dataLoadError : function (k) { var m = this._fileList[k]; m.loaded = !0, m.error = !0, console.warn("Phaser.Loader dataLoadError: " + m.key), this.nextFile(k, !0); }, xmlLoadComplete : function (m) { y3U.R2G("", this._xhr.responseType) && y3U.O2G("text", this._xhr.responseType) && (console.warn("Invalid XML Response Type", this._fileList[m]), console.warn(this._xhr)); var e, o = this._xhr.responseText; try { if (r2w8n[E8n]['DOMParser']) { var n = new DOMParser; e = n.parseFromString(o, "text/xml"); } else e = new ActiveXObject("Microsoft.XMLDOM"), e.async = "false", e.loadXML(o); } catch (k) { var u = function () { e = void 0; }; u(); } if (!e || !e.documentElement || e.getElementsByTagName("parsererror").length) throw new Error("Phaser.Loader. Invalid XML given"); var q = this._fileList[m]; q.loaded = !0, y3U.V2G("bitmapfont", q.type) ? this.game.cache.addBitmapFont(q.key, q.url, q.data, e, q.xSpacing, q.ySpacing) : y3U.k1G("textureatlas", q.type) ? this.game.cache.addTextureAtlas(q.key, q.url, q.data, e, q.format) : y3U.G1G("xml", q.type) && this.game.cache.addXML(q.key, q.url, e), this.nextFile(m, !0); }, nextFile : function (k, m) { this.progressFloat += this._progressChunk, this.progress = Math.round(this.progressFloat), y3U.N1G(this.progress, 100) && (this.progress = 100), y3U.L1G(null, this.preloadSprite) && (y3U.z1G(0, this.preloadSprite.direction) ? this.preloadSprite.rect.width = Math.floor(y3U.J1G(this.preloadSprite.width, 100, this.progress)) : this.preloadSprite.rect.height = Math.floor(y3U.e1G(this.preloadSprite.height, 100, this.progress)), this.preloadSprite.sprite.updateCrop()), this.onFileComplete.dispatch(this.progress, this._fileList[k].key, m, this.totalLoadedFiles(), this._fileList.length), y3U.o1G(this.totalQueuedFiles(), 0) ? (this._fileIndex++, this.loadFile()) : (this.hasLoaded = !0, this.isLoading = !1, this.removeAll(), this.onLoadComplete.dispatch()); }, totalLoadedFiles : function () { for (var k = 0, m = 0; y3U.x1G(m, this._fileList.length); m++) this._fileList[m].loaded && k++; return k; }, totalQueuedFiles : function () { for (var k = 0, m = 0; y3U.p1G(m, this._fileList.length); m++) this._fileList[m].loaded === !1 && k++; return k; }, totalLoadedPacks : function () { for (var k = 0, m = 0; y3U.q1G(m, this._packList.length); m++) this._packList[m].loaded && k++; return k; }, totalQueuedPacks : function () { for (var k = 0, m = 0; y3U.b1G(m, this._packList.length); m++) this._packList[m].loaded === !1 && k++; return k; } }, i.Loader.prototype.constructor = i.Loader, i.LoaderParser = { bitmapFont : function (m, e, o, n, u) { var q = function (k) { PIXI.BitmapText.fonts[o] = k; }, f = {}, j = e.getElementsByTagName("info")[0], U0 = e.getElementsByTagName("common")[0]; f.font = j.getAttribute("face"), f.size = parseInt(j.getAttribute("size"), 10), f.lineHeight = parseInt(U0.getAttribute("lineHeight"), 10) + u, f.chars = {}; for (var k0 = e.getElementsByTagName("char"), a0 = 0; y3U.j1G(a0, k0.length); a0++) { var T0 = parseInt(k0[a0].getAttribute("id"), 10), G0 = new PIXI.Rectangle(parseInt(k0[a0].getAttribute("x"), 10), parseInt(k0[a0].getAttribute("y"), 10), parseInt(k0[a0].getAttribute("width"), 10), parseInt(k0[a0].getAttribute("height"), 10)); f.chars[T0] = { xOffset : parseInt(k0[a0].getAttribute("xoffset"), 10), yOffset : parseInt(k0[a0].getAttribute("yoffset"), 10), xAdvance : parseInt(k0[a0].getAttribute("xadvance"), 10) + n, kerning : {}, texture : PIXI.TextureCache[o] = new PIXI.Texture(PIXI.BaseTextureCache[o], G0) }; } var W0 = e.getElementsByTagName("kerning"); for (a0 = 0; y3U.d1G(a0, W0.length); a0++) { var N0 = function (k) { f.chars[I0].kerning[S0] = k; }; var S0 = parseInt(W0[a0].getAttribute("first"), 10), I0 = parseInt(W0[a0].getAttribute("second"), 10), m0 = parseInt(W0[a0].getAttribute("amount"), 10); N0(m0); } q(f); } }, i.AudioSprite = function (k, m) { this.game = k, this.key = m, this.config = this.game.cache.getJSON(m + "-audioatlas"), this.autoplayKey = null, this.autoplay = !1, this.sounds = {}; for (var e in this.config.spritemap) { var o = this.config.spritemap[e], n = this.game.add.sound(this.key); n.addMarker(e, o.start, y3U.c1G(o.end, o.start), null, o.loop), this.sounds[e] = n; } this.config.autoplay && (this.autoplayKey = this.config.autoplay, this.play(this.autoplayKey), this.autoplay = this.sounds[this.autoplayKey]); }, i.AudioSprite.prototype = { play : function (k, m) { return "undefined" == typeof m && (m = 1), this.sounds[k].play(k, null, m); }, stop : function (k) { if (k) this.sounds[k].stop(); else for (var m in this.sounds) this.sounds[m].stop(); }, get : function (k) { return this.sounds[k]; } }, i.AudioSprite.prototype.constructor = i.AudioSprite, i.Sound = function (k, m, e, o, n) { "undefined" == typeof e && (e = 1), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = k.sound.connectToMaster), this.game = k, this.name = m, this.key = m, this.loop = o, this.volume = e, 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.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.usingWebAudio ? (this.context = this.game.sound.context, this.masterGainNode = this.game.sound.masterGain, this.gainNode = "undefined" == typeof this.context.createGain ? this.context.createGainNode() : this.context.createGain(), this.gainNode.gain.value = y3U.s1G(e, this.game.sound.volume), n && this.gainNode.connect(this.masterGainNode)) : this.game.cache.getSound(m) && this.game.cache.isSoundReady(m) ? (this._sound = this.game.cache.getSoundData(m), this.totalDuration = 0, this._sound.duration && (this.totalDuration = this._sound.duration)) : this.game.cache.onSoundUnlock.add(this.soundHasUnlocked, this), this.onDecoded = new i.Signal, this.onPlay = new i.Signal, this.onPause = new i.Signal, this.onResume = new i.Signal, this.onLoop = new i.Signal, this.onStop = new i.Signal, this.onMute = new i.Signal, this.onMarkerComplete = new i.Signal, this.onFadeComplete = new i.Signal, this._volume = e, this._buffer = null, this._muted = !1, this._tempMarker = 0, this._tempPosition = 0, this._tempVolume = 0, this._muteVolume = 0, this._tempLoop = 0, this._paused = !1, this._onDecodedEventDispatched = !1; }, i.Sound.prototype = { soundHasUnlocked : function (k) { y3U.Q1G(k, this.key) && (this._sound = this.game.cache.getSoundData(this.key), this.totalDuration = this._sound.duration); }, addMarker : function (k, m, e, o, n) { "undefined" == typeof o && (o = 1), "undefined" == typeof n && (n = !1), this.markers[k] = { name : k, start : m, stop : m + e, volume : o, duration : e, durationMS : y3U.a6G(1e3, e), loop : n }; }, removeMarker : function (k) { delete this.markers[k]; }, update : function () { 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 = y3U.W6G(this.game.time.time, this.startTime), y3U.m6G(this.currentTime, this.durationMS) && (this.usingWebAudio ? this.loop ? (this.onLoop.dispatch(this), y3U.A6G("", this.currentMarker) ? (this.currentTime = 0, this.startTime = this.game.time.time) : (this.onMarkerComplete.dispatch(this.currentMarker, this), this.play(this.currentMarker, 0, this.volume, !0, !0))) : this.stop() : this.loop ? (this.onLoop.dispatch(this), this.play(this.currentMarker, 0, this.volume, !0, !0)) : this.stop())); }, play : function (m, e, o, n, u) { if (("undefined" == typeof m || m === !1 || y3U.w6G(null, m)) && (m = ""), "undefined" == typeof u && (u = !0), this.isPlaying && !this.allowMultiple && !u && !this.override) return this; if (this._sound && this.isPlaying && !this.allowMultiple && (this.override || u)) if (this.usingWebAudio) if ("undefined" == typeof this._sound.stop) this._sound.noteOff(0); else try { this._sound.stop(0); } catch (k) {} else this.usingAudioTag && (this._sound.pause(), this._sound.currentTime = 0); if (y3U.E6G("", m) && y3U.e6G(Object.keys(this.markers).length, 0)) return this; if (y3U.g6G("", m)) { if (this.currentMarker = m, !this.markers[m]) return console.warn("Phaser.Sound.play: audio marker " + m + " doesn't exist"), this; this.position = this.markers[m].start, this.volume = this.markers[m].volume, this.loop = this.markers[m].loop, this.duration = this.markers[m].duration, this.durationMS = this.markers[m].durationMS, "undefined" != typeof o && (this.volume = o), "undefined" != typeof n && (this.loop = n), this._tempMarker = m, this._tempPosition = this.position, this._tempVolume = this.volume, this._tempLoop = this.loop; } else e = e || 0, "undefined" == typeof o && (o = this._volume), "undefined" == typeof n && (n = this.loop), this.position = e, this.volume = o, this.loop = n, this.duration = 0, this.durationMS = 0, this._tempMarker = m, this._tempPosition = e, this._tempVolume = o, this._tempLoop = n; return this.usingWebAudio ? this.game.cache.isSoundDecoded(this.key) ? (y3U.r6G(null, this._buffer) && (this._buffer = this.game.cache.getSoundData(this.key)), this._sound = this.context.createBufferSource(), this._sound.buffer = this._buffer, this._sound.connect(this.externalNode ? this.externalNode : this.gainNode), this.totalDuration = this._sound.buffer.duration, y3U.i6G(0, this.duration) && (this.duration = this.totalDuration, this.durationMS = y3U.u6G(1e3, this.totalDuration)), this.loop && y3U.P6G("", m) && (this._sound.loop = !0), "undefined" == typeof this._sound.start ? this._sound.noteGrainOn(0, this.position, this.duration) : this._sound.start(0, this.position, this.duration), this.isPlaying = !0, this.startTime = this.game.time.time, this.currentTime = 0, this.stopTime = this.startTime + this.durationMS, this.onPlay.dispatch(this)) : (this.pendingPlayback = !0, this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).isDecoding === !1 && this.game.sound.decode(this.key, this)) : this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).locked ? (this.game.cache.reloadSound(this.key), this.pendingPlayback = !0) : this._sound && (this.game.device.cocoonJS || y3U.D6G(4, this._sound.readyState)) ? (this._sound.play(), this.totalDuration = this._sound.duration, y3U.Z6G(0, this.duration) && (this.duration = this.totalDuration, this.durationMS = y3U.R6G(1e3, this.totalDuration)), this._sound.currentTime = this.position, this._sound.muted = this._muted, this._sound.volume = this._muted ? 0 : 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 (k, m, e, o) { k = k || "", m = m || 0, e = e || 1, "undefined" == typeof o && (o = !1), this.play(k, m, e, o, !0); }, pause : function () { this.isPlaying && this._sound && (this.paused = !0, this.pausedPosition = this.currentTime, this.pausedTime = this.game.time.time, this.onPause.dispatch(this), this.stop()); }, resume : function () { if (this.paused && this._sound) { if (this.usingWebAudio) { var k = this.position + y3U.O6G(this.pausedPosition, 1e3); this._sound = this.context.createBufferSource(), this._sound.buffer = this._buffer, this._sound.connect(this.externalNode ? this.externalNode : this.gainNode), this.loop && (this._sound.loop = !0), "undefined" == typeof this._sound.start ? this._sound.noteGrainOn(0, k, this.duration) : this._sound.start(0, k, this.duration); } else this._sound.play(); this.isPlaying = !0, this.paused = !1, this.startTime += y3U.V6G(this.game.time.time, this.pausedTime), this.onResume.dispatch(this); } }, stop : function () { if (this.isPlaying && this._sound) if (this.usingWebAudio) if ("undefined" == typeof this._sound.stop) this._sound.noteOff(0); else try { this._sound.stop(0); } catch (k) {} else this.usingAudioTag && (this._sound.pause(), this._sound.currentTime = 0); this.isPlaying = !1; var m = this.currentMarker; y3U.k8G("", this.currentMarker) && this.onMarkerComplete.dispatch(this.currentMarker, this), this.currentMarker = "", this.paused || this.onStop.dispatch(this, m); }, fadeIn : function (k, m) { "undefined" == typeof m && (m = !1), this.paused || (this.play("", 0, 0, m), this.fadeTo(k, 1)); }, fadeOut : function (k) { this.fadeTo(k, 0); }, fadeTo : function (k, m) { if (this.isPlaying && !this.paused && y3U.G8G(m, this.volume)) { if ("undefined" == typeof k && (k = 1e3), "undefined" == typeof m) return void console.warn("Phaser.Sound.fadeTo: No Volume Specified."); var e = this.game.add.tween(this).to({ volume : m }, k, i.Easing.Linear.None, !0); e.onComplete.add(this.fadeComplete, this); } }, fadeComplete : function () { this.onFadeComplete.dispatch(this, this.volume), y3U.N8G(0, this.volume) && this.stop(); }, destroy : function (k) { "undefined" == typeof k && (k = !0), this.stop(), k ? 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()); } }, i.Sound.prototype.constructor = i.Sound, Object.defineProperty(i.Sound.prototype, "isDecoding", { get : function () { return this.game.cache.getSound(this.key).isDecoding; } }), Object.defineProperty(i.Sound.prototype, "isDecoded", { get : function () { return this.game.cache.isSoundDecoded(this.key); } }), Object.defineProperty(i.Sound.prototype, "mute", { get : function () { return this._muted || this.game.sound.mute; }, set : function (k) { k = k || null, k ? (this._muted = !0, this.usingWebAudio ? (this._muteVolume = this.gainNode.gain.value, this.gainNode.gain.value = 0) : this.usingAudioTag && this._sound && (this._muteVolume = this._sound.volume, this._sound.volume = 0)) : (this._muted = !1, this.usingWebAudio ? this.gainNode.gain.value = this._muteVolume : this.usingAudioTag && this._sound && (this._sound.volume = this._muteVolume)), this.onMute.dispatch(this); } }), Object.defineProperty(i.Sound.prototype, "volume", { get : function () { return this._volume; }, set : function (k) { this.usingWebAudio ? (this._volume = k, this.gainNode.gain.value = k) : this.usingAudioTag && this._sound && y3U.L8G(k, 0) && y3U.z8G(1, k) && (this._volume = k, this._sound.volume = k); } }), i.SoundManager = function (k) { this.game = k, this.onSoundDecode = new i.Signal, this._codeMuted = !1, this._muted = !1, this._unlockSource = null, this._volume = 1, this._sounds = [], this.context = null, this.usingWebAudio = !0, this.usingAudioTag = !1, this.noAudio = !1, this.connectToMaster = !0, this.touchLocked = !1, this.channels = 32; }, i.SoundManager.prototype = { boot : function () { if (this.game.device.iOS && this.game.device.webAudio === !1 && (this.channels = 1), !this.game.device.cocoonJS && this.game.device.iOS || r2w8n[E8n].PhaserGlobal && r2w8n[E8n].PhaserGlobal.fakeiOSTouchLock ? (this.game.input.touch.callbackContext = this, this.game.input.touch.touchStartCallback = this.unlock, this.game.input.mouse.callbackContext = this, this.game.input.mouse.mouseDownCallback = this.unlock, this.touchLocked = !0) : this.touchLocked = !1, r2w8n[E8n].PhaserGlobal) { if (r2w8n[E8n].PhaserGlobal.disableAudio === !0) return this.usingWebAudio = !1, void(this.noAudio = !0); if (r2w8n[E8n].PhaserGlobal.disableWebAudio === !0) return this.usingWebAudio = !1, this.usingAudioTag = !0, void(this.noAudio = !1); } if (r2w8n[E8n].PhaserGlobal && r2w8n[E8n].PhaserGlobal.audioContext) this.context = r2w8n[E8n].PhaserGlobal.audioContext; else if (r2w8n[E8n].AudioContext) try { this.context = new r2w8n[E8n].AudioContext; } catch (k) { this.context = null, this.usingWebAudio = !1, this.noAudio = !0; } else if (r2w8n[E8n].webkitAudioContext) try { this.context = new r2w8n[E8n].webkitAudioContext; } catch (k) { this.context = null, this.usingWebAudio = !1, this.noAudio = !0; } r2w8n[E8n]['Audio'] && y3U.J8G(null, this.context) && (this.usingWebAudio = !1, this.usingAudioTag = !0, this.noAudio = !1), y3U.H8G(null, this.context) && (this.masterGain = "undefined" == typeof this.context.createGain ? this.context.createGainNode() : this.context.createGain(), this.masterGain.gain.value = 1, this.masterGain.connect(this.context.destination)); }, unlock : function () { if (this.touchLocked !== !1) if (this.game.device.webAudio === !1 || r2w8n[E8n].PhaserGlobal && r2w8n[E8n].PhaserGlobal.disableWebAudio === !0) this.touchLocked = !1, this._unlockSource = null, this.game.input.touch.callbackContext = null, this.game.input.touch.touchStartCallback = null, this.game.input.mouse.callbackContext = null, this.game.input.mouse.mouseDownCallback = null; else { var k = this.context.createBuffer(1, 1, 22050); this._unlockSource = this.context.createBufferSource(), this._unlockSource.buffer = k, this._unlockSource.connect(this.context.destination), this._unlockSource.noteOn(0); } }, stopAll : function () { for (var k = 0; y3U.h8G(k, this._sounds.length); k++) this._sounds[k] && this._sounds[k].stop(); }, pauseAll : function () { for (var k = 0; y3U.F8G(k, this._sounds.length); k++) this._sounds[k] && this._sounds[k].pause(); }, resumeAll : function () { for (var k = 0; y3U.M8G(k, this._sounds.length); k++) this._sounds[k] && this._sounds[k].resume(); }, decode : function (m, e) { var o = function () { e = e || null; }; o(); var n = this.game.cache.getSoundData(m); if (n && this.game.cache.isSoundDecoded(m) === !1) { this.game.cache.updateSound(m, "isDecoding", !0); var u = this; this.context.decodeAudioData(n, function (k) { u.game.cache.decodedSound(m, k), e && u.onSoundDecode.dispatch(m, e); }); } }, update : function () { this.touchLocked && this.game.device.webAudio && y3U.n8G(null, this._unlockSource) && (y3U.f8G(this._unlockSource.playbackState, this._unlockSource.PLAYING_STATE) || y3U.K8G(this._unlockSource.playbackState, this._unlockSource.FINISHED_STATE)) && (this.touchLocked = !1, this._unlockSource = null, this.game.input.touch.callbackContext = null, this.game.input.touch.touchStartCallback = null); for (var k = 0; y3U.B8G(k, this._sounds.length); k++) this._sounds[k].update(); }, add : function (k, m, e, o) { "undefined" == typeof m && (m = 1), "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = this.connectToMaster); var n = new i.Sound(this.game, k, m, e, o); return this._sounds.push(n), n; }, addSprite : function (k) { var m = new i.AudioSprite(this.game, k); return m; }, remove : function (k) { for (var m = this._sounds.length; m--; ) if (y3U.l8G(this._sounds[m], k)) return this._sounds[m].destroy(!1), this._sounds.splice(m, 1), !0; return !1; }, removeByKey : function (k) { for (var m = this._sounds.length, e = 0; m--; ) y3U.X8G(this._sounds[m].key, k) && (this._sounds[m].destroy(!1), this._sounds.splice(m, 1), e++); return e; }, play : function (k, m, e) { var o = this.add(k, m, e); return o.play(), o; }, setMute : function () { if (!this._muted) { this._muted = !0, this.usingWebAudio && (this._muteVolume = this.masterGain.gain.value, this.masterGain.gain.value = 0); for (var k = 0; y3U.Y8G(k, this._sounds.length); k++) this._sounds[k].usingAudioTag && (this._sounds[k].mute = !0); } }, unsetMute : function () { if (this._muted && !this._codeMuted) { this._muted = !1, this.usingWebAudio && (this.masterGain.gain.value = this._muteVolume); for (var k = 0; y3U.U0N(k, this._sounds.length); k++) this._sounds[k].usingAudioTag && (this._sounds[k].mute = !1); } }, destroy : function () { this.stopAll(); for (var k = 0; y3U.T0N(k, this._sounds.length); k++) this._sounds[k] && this._sounds[k].destroy(); this._sounds = [], this.onSoundDecode.dispose(), this.context && r2w8n[E8n].PhaserGlobal && (r2w8n[E8n].PhaserGlobal.audioContext = this.context); } }, i.SoundManager.prototype.constructor = i.SoundManager, Object.defineProperty(i.SoundManager.prototype, "mute", { get : function () { return this._muted; }, set : function (k) { if (k = k || null) { if (this._muted) return; this._codeMuted = !0, this.setMute(); } else { if (!this._muted) return; this._codeMuted = !1, this.unsetMute(); } } }), Object.defineProperty(i.SoundManager.prototype, "volume", { get : function () { return this.usingWebAudio ? this.masterGain.gain.value : this._volume; }, set : function (k) { if (this._volume = k, this.usingWebAudio) this.masterGain.gain.value = k; else for (var m = 0; y3U.S0N(m, this._sounds.length); m++) this._sounds[m].usingAudioTag && (this._sounds[m].volume = y3U.I0N(this._sounds[m].volume, k)); } }), i.ArraySet = function (k) { this.position = 0, this.list = k || []; }, i.ArraySet.prototype = { add : function (k) { return this.exists(k) || this.list.push(k), k; }, getIndex : function (k) { return this.list.indexOf(k); }, exists : function (k) { return this.list.indexOf(k) > -1; }, reset : function () { this.list.length = 0; }, remove : function (k) { var m = this.list.indexOf(k); return m > -1 ? (this.list.splice(m, 1), k) : void 0; }, setAll : function (k, m) { for (var e = this.list.length; e--; ) this.list[e] && (this.list[e][k] = m); }, callAll : function (k) { for (var m = Array.prototype.splice.call(arguments, 1), e = this.list.length; e--; ) this.list[e] && this.list[e][k] && this.list[e][k].apply(this.list[e], m); } }, Object.defineProperty(i.ArraySet.prototype, "total", { get : function () { return this.list.length; } }), Object.defineProperty(i.ArraySet.prototype, "first", { get : function () { return this.position = 0, y3U.C0N(this.list.length, 0) ? this.list[0] : null; } }), Object.defineProperty(i.ArraySet.prototype, "next", { get : function () { return y3U.v0N(this.position, this.list.length) ? (this.position++, this.list[this.position]) : null; } }), i.ArraySet.prototype.constructor = i.ArraySet, i.ArrayList = i.ArraySet, i.LinkedList = function () { this.next = null, this.prev = null, this.first = null, this.last = null, this.total = 0; }, i.LinkedList.prototype = { add : function (k) { return y3U.t0N(0, this.total) && y3U.y0N(null, this.first) && y3U.o0N(null, this.last) ? (this.first = k, this.last = k, this.next = k, k.prev = this, this.total++, k) : (this.last.next = k, k.prev = this.last, this.last = k, this.total++, k); }, reset : function () { this.first = null, this.last = null, this.next = null, this.prev = null, this.total = 0; }, remove : function (k) { return y3U.x0N(1, this.total) ? (this.reset(), void(k.next = k.prev = null)) : (y3U.p0N(k, this.first) ? this.first = this.first.next : y3U.q0N(k, this.last) && (this.last = this.last.prev), k.prev && (k.prev.next = k.next), k.next && (k.next.prev = k.prev), k.next = k.prev = null, y3U.b0N(null, this.first) && (this.last = null), void this.total--); }, callAll : function (k) { if (this.first && this.last) { var m = this.first; do m && m[k] && m[k].call(m), m = m.next; while (y3U.j0N(m, this.last.next)) } } }, i.LinkedList.prototype.constructor = i.LinkedList, i.ArrayUtils = { getRandomItem : function (k, m, e) { if (y3U.d0N(null, k)) return null; "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = k.length); var o = m + Math.floor(y3U.c0N(Math.random(), e)); return void 0 === k[o] ? null : k[o]; }, removeRandomItem : function (k, m, e) { if (y3U.s0N(null, k)) return null; "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = k.length); var o = m + Math.floor(y3U.Q0N(Math.random(), e)); if (y3U.a7N(o, k.length)) { var n = k.splice(o, 1); return void 0 === n[0] ? null : n[0]; } return null; }, shuffle : function (k) { for (var m = y3U.W7N(k.length, 1); y3U.m7N(m, 0); m--) { var e = Math.floor(y3U.A7N(Math.random(), (m + 1))), o = k[m]; k[m] = k[e], k[e] = o; } return k; }, transposeMatrix : function (m) { for (var e = m.length, o = m[0].length, n = new Array(o), u = 0; y3U.w7N(o, u); u++) { var q = function (k) { n[u][f] = k[f][u]; }; n[u] = new Array(e); for (var f = y3U.E7N(e, 1); f > -1; f--) q(m); } return n; }, rotateMatrix : function (k, m) { if ("string" != typeof m && (m = y3U.e7N((m % 360 + 360), 360)), y3U.g7N(90, m) || -270 === m || y3U.r7N("rotateLeft", m)) k = i.ArrayUtils.transposeMatrix(k), k = k.reverse(); else if (-90 === m || y3U.i7N(270, m) || y3U.u7N("rotateRight", m)) k = k.reverse(), k = i.ArrayUtils.transposeMatrix(k); else if (y3U.P7N(180, Math.abs(m)) || y3U.D7N("rotate180", m)) { for (var e = 0; y3U.Z7N(e, k.length); e++) k[e].reverse(); k = k.reverse(); } return k; }, findClosest : function (k, m) { if (!m.length) return y3U.R7N(0, 0); if (y3U.O7N(1, m.length) || y3U.V7N(k, m[0])) return m[0]; for (var e = 1; y3U.k4N(m[e], k); ) e++; var o = m[y3U.G4N(e, 1)], n = y3U.N4N(e, m.length) ? m[e] : Number.POSITIVE_INFINITY; return y3U.L4N(k - o, n - k) ? n : o; }, rotate : function (k) { var m = k.shift(); return k.push(m), m; }, numberArray : function (k, m) { for (var e = [], o = k; y3U.z4N(m, o); o++) e.push(o); return e; }, numberArrayStep : function (k, m, e) { var o = function () { k = +k || 0; }; o(); var n = typeof m; y3U.J4N("number", n) && y3U.H4N("string", n) || !e || y3U.h4N(e[m], k) || (m = e = null), e = y3U.F4N(null, e) ? 1 : +e || 0, y3U.M4N(null, m) ? (m = k, k = 0) : m = +m || 0; for (var u = -1, q = Math.max(i.Math.roundAwayFromZero(y3U.n4N((m - k), (e || 1))), 0), f = new Array(q); ++u < q; ) f[u] = k, k += e; return f; } }, i.Utils.Debug = function (k) { this.game = k, 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; }, i.Utils.Debug.prototype = { boot : function () { y3U.f4N(this.game.renderType, i.CANVAS) ? this.context = this.game.context : (this.bmd = this.game.make.bitmapData(this.game.width, this.game.height), this.sprite = this.game.make.image(0, 0, this.bmd), this.game.stage.addChild(this.sprite), this.canvas = i.Canvas.create(this.game.width, this.game.height, "", !0), this.context = this.canvas.getContext("2d")); }, preUpdate : function () { this.dirty && this.sprite && (this.bmd.clear(), this.bmd.draw(this.canvas, 0, 0), this.context.clearRect(0, 0, this.game.width, this.game.height), this.dirty = !1); }, reset : function () { this.context && this.context.clearRect(0, 0, this.game.width, this.game.height), this.sprite && this.bmd.clear(); }, start : function (k, m, e, o) { "number" != typeof k && (k = 0), "number" != typeof m && (m = 0), e = e || "rgb(255,255,255)", "undefined" == typeof o && (o = 0), this.currentX = k, this.currentY = m, this.currentColor = e, this.currentAlpha = this.context.globalAlpha, this.columnWidth = o, this.dirty = !0, this.context.save(), this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.strokeStyle = e, this.context.fillStyle = e, this.context.font = this.font, this.context.globalAlpha = 1; }, stop : function () { this.context.restore(), this.context.globalAlpha = this.currentAlpha; }, line : function () { for (var k = this.currentX, m = 0; y3U.K4N(m, arguments.length); m++) this.renderShadow && (this.context.fillStyle = "rgb(0,0,0)", this.context.fillText(arguments[m], k + 1, this.currentY + 1), this.context.fillStyle = this.currentColor), this.context.fillText(arguments[m], k, this.currentY), k += this.columnWidth; this.currentY += this.lineHeight; }, soundInfo : function (k, m, e, o) { this.start(m, e, o), this.line("Sound: " + k.key + " Locked: " + k.game.sound.touchLocked), this.line("Is Ready?: " + this.game.cache.isSoundReady(k.key) + " Pending Playback: " + k.pendingPlayback), this.line("Decoded: " + k.isDecoded + " Decoding: " + k.isDecoding), this.line("Total Duration: " + k.totalDuration + " Playing: " + k.isPlaying), this.line("Time: " + k.currentTime), this.line("Volume: " + k.volume + " Muted: " + k.mute), this.line("WebAudio: " + k.usingWebAudio + " Audio: " + k.usingAudioTag), y3U.B4N("", k.currentMarker) && (this.line("Marker: " + k.currentMarker + " Duration: " + k.duration + " (ms: " + k.durationMS + ")"), this.line("Start: " + k.markers[k.currentMarker].start + " Stop: " + k.markers[k.currentMarker].stop), this.line("Position: " + k.position)), this.stop(); }, cameraInfo : function (k, m, e, o) { this.start(m, e, o), this.line("Camera (" + k.width + " x " + k.height + ")"), this.line("X: " + k.x + " Y: " + k.y), k.bounds && this.line("Bounds x: " + k.bounds.x + " Y: " + k.bounds.y + " w: " + k.bounds.width + " h: " + k.bounds.height), this.line("View x: " + k.view.x + " Y: " + k.view.y + " w: " + k.view.width + " h: " + k.view.height), this.line("Total in view: " + k.totalInView), this.stop(); }, timer : function (k, m, e, o) { this.start(m, e, o), this.line("Timer (running: " + k.running + " expired: " + k.expired + ")"), this.line("Next Tick: " + k.next + " Duration: " + k.duration), this.line("Paused: " + k.paused + " Length: " + k.length), this.stop(); }, pointer : function (k, m, e, o, n) { y3U.l4N(null, k) && ("undefined" == typeof m && (m = !1), e = e || "rgba(0,255,0,0.5)", o = o || "rgba(255,0,0,0.5)", (m !== !0 || k.isUp !== !0) && (this.start(k.x, y3U.X4N(k.y, 100), n), this.context.beginPath(), this.context.arc(k.x, k.y, k.circle.radius, 0, y3U.Y4N(2, Math.PI)), this.context.fillStyle = k.active ? e : o, this.context.fill(), this.context.closePath(), this.context.beginPath(), this.context.moveTo(k.positionDown.x, k.positionDown.y), this.context.lineTo(k.position.x, k.position.y), this.context.lineWidth = 2, this.context.stroke(), this.context.closePath(), this.line("ID: " + k.id + " Active: " + k.active), this.line("World X: " + k.worldX + " World Y: " + k.worldY), this.line("Screen X: " + k.x + " Screen Y: " + k.y), this.line("Duration: " + k.duration + " ms"), this.line("is Down: " + k.isDown + " is Up: " + k.isUp), this.stop())); }, spriteInputInfo : function (k, m, e, o) { this.start(m, e, o), this.line("Sprite Input: (" + k.width + " x " + k.height + ")"), this.line("x: " + k.input.pointerX().toFixed(1) + " y: " + k.input.pointerY().toFixed(1)), this.line("over: " + k.input.pointerOver() + " duration: " + k.input.overDuration().toFixed(0)), this.line("down: " + k.input.pointerDown() + " duration: " + k.input.downDuration().toFixed(0)), this.line("just over: " + k.input.justOver() + " just out: " + k.input.justOut()), this.stop(); }, key : function (k, m, e, o) { this.start(m, e, o, 150), this.line("Key:", k.keyCode, "isDown:", k.isDown), this.line("justDown:", k.justDown, "justUp:", k.justUp), this.line("Time Down:", k.timeDown.toFixed(0), "duration:", k.duration.toFixed(0)), this.stop(); }, inputInfo : function (k, m, e) { this.start(k, m, e), 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 (k, m, e) { var o = k.getBounds(); o.x += this.game.camera.x, o.y += this.game.camera.y, this.rectangle(o, m, e); }, ropeSegments : function (m, e, o) { var n = m.segments; n.forEach(function (k) { this.rectangle(k, e, o); }, this); }, spriteInfo : function (k, m, e, o) { this.start(m, e, o), this.line("Sprite: (" + k.width + " x " + k.height + ") anchor: " + k.anchor.x + " x " + k.anchor.y), this.line("x: " + k.x.toFixed(1) + " y: " + k.y.toFixed(1)), this.line("angle: " + k.angle.toFixed(1) + " rotation: " + k.rotation.toFixed(1)), this.line("visible: " + k.visible + " in camera: " + k.inCamera), this.line("bounds x: " + k._bounds.x.toFixed(1) + " y: " + k._bounds.y.toFixed(1) + " w: " + k._bounds.width.toFixed(1) + " h: " + k._bounds.height.toFixed(1)), this.stop(); }, spriteCoords : function (k, m, e, o) { this.start(m, e, o, 100), k.name && this.line(k.name), this.line("x:", k.x.toFixed(2), "y:", k.y.toFixed(2)), this.line("pos x:", k.position.x.toFixed(2), "pos y:", k.position.y.toFixed(2)), this.line("world x:", k.world.x.toFixed(2), "world y:", k.world.y.toFixed(2)), this.stop(); }, lineInfo : function (k, m, e, o) { this.start(m, e, o, 80), this.line("start.x:", k.start.x.toFixed(2), "start.y:", k.start.y.toFixed(2)), this.line("end.x:", k.end.x.toFixed(2), "end.y:", k.end.y.toFixed(2)), this.line("length:", k.length.toFixed(2), "angle:", k.angle), this.stop(); }, pixel : function (k, m, e, o) { o = o || 2, this.start(), this.context.fillStyle = e, this.context.fillRect(k, m, o, o), this.stop(); }, geom : function (k, m, e, o) { "undefined" == typeof e && (e = !0), "undefined" == typeof o && (o = 0), m = m || "rgba(0,255,0,0.4)", this.start(), this.context.fillStyle = m, this.context.strokeStyle = m, y3U.U3N(k, i.Rectangle) || y3U.T3N(1, o) ? e ? this.context.fillRect(y3U.S3N(k.x, this.game.camera.x), y3U.I3N(k.y, this.game.camera.y), k.width, k.height) : this.context.strokeRect(y3U.C3N(k.x, this.game.camera.x), y3U.v3N(k.y, this.game.camera.y), k.width, k.height) : y3U.t3N(k, i.Circle) || y3U.y3N(2, o) ? (this.context.beginPath(), this.context.arc(y3U.o3N(k.x, this.game.camera.x), y3U.x3N(k.y, this.game.camera.y), k.radius, 0, y3U.p3N(2, Math.PI), !1), this.context.closePath(), e ? this.context.fill() : this.context.stroke()) : y3U.q3N(k, i.Point) || y3U.b3N(3, o) ? this.context.fillRect(y3U.j3N(k.x, this.game.camera.x), y3U.d3N(k.y, this.game.camera.y), 4, 4) : (y3U.c3N(k, i.Line) || y3U.s3N(4, o)) && (this.context.lineWidth = 1, this.context.beginPath(), this.context.moveTo(k.start.x + .5 - this.game.camera.x, k.start.y + .5 - this.game.camera.y), this.context.lineTo(k.end.x + .5 - this.game.camera.x, k.end.y + .5 - this.game.camera.y), this.context.closePath(), this.context.stroke()), this.stop(); }, rectangle : function (k, m, e) { "undefined" == typeof e && (e = !0), m = m || "rgba(0, 255, 0, 0.4)", this.start(), e ? (this.context.fillStyle = m, this.context.fillRect(y3U.Q3N(k.x, this.game.camera.x), y3U.a9N(k.y, this.game.camera.y), k.width, k.height)) : (this.context.strokeStyle = m, this.context.strokeRect(y3U.W9N(k.x, this.game.camera.x), y3U.m9N(k.y, this.game.camera.y), k.width, k.height)), this.stop(); }, text : function (k, m, e, o, n) { o = o || "rgb(255,255,255)", n = n || "16px Courier", this.start(), this.context.font = n, this.renderShadow && (this.context.fillStyle = "rgb(0,0,0)", this.context.fillText(k, m + 1, e + 1)), this.context.fillStyle = o, this.context.fillText(k, m, e), this.stop(); }, quadTree : function (k, m) { m = m || "rgba(255,0,0,0.3)", this.start(); var e = k.bounds; if (y3U.A9N(0, k.nodes.length)) { this.context.strokeStyle = m, this.context.strokeRect(e.x, e.y, e.width, e.height), this.text("size: " + k.objects.length, e.x + 4, e.y + 16, "rgb(0,200,0)", "12px Courier"), this.context.strokeStyle = "rgb(0,255,0)"; for (var o = 0; y3U.w9N(o, k.objects.length); o++) this.context.strokeRect(k.objects[o].x, k.objects[o].y, k.objects[o].width, k.objects[o].height); } else for (var o = 0; y3U.E9N(o, k.nodes.length); o++) this.quadTree(k.nodes[o]); this.stop(); }, body : function (k, m, e) { k.body && (this.start(), y3U.e9N(k.body.type, i.Physics.ARCADE) ? i.Physics.Arcade.Body.render(this.context, k.body, m, e) : y3U.g9N(k.body.type, i.Physics.NINJA) ? i.Physics.Ninja.Body.render(this.context, k.body, m, e) : y3U.r9N(k.body.type, i.Physics.BOX2D) && i.Physics.Box2D.renderBody(this.context, k.body, m), this.stop()); }, bodyInfo : function (k, m, e, o) { k.body && (this.start(m, e, o, 210), y3U.i9N(k.body.type, i.Physics.ARCADE) ? i.Physics.Arcade.Body.renderBodyInfo(this, k.body) : y3U.u9N(k.body.type, i.Physics.BOX2D) && this.game.physics.box2d.renderBodyInfo(this, k.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 (k, m) { this.start(), i.Physics.Box2D.renderBody(this.context, k, m), this.stop(); } }, i.Utils.Debug.prototype.constructor = i.Utils.Debug, i.Color = { packPixel : function (k, m, e, o) { return i.Device.LITTLE_ENDIAN ? y3U.P9N((o << 24 | e << 16 | m << 8 | k), 0) : y3U.D9N((k << 24 | m << 16 | e << 8 | o), 0); }, unpackPixel : function (k, m, e, o) { return ("undefined" == typeof m || y3U.Z9N(null, m)) && (m = i.Color.createColor()), ("undefined" == typeof e || y3U.R9N(null, e)) && (e = !1), ("undefined" == typeof o || y3U.O9N(null, o)) && (o = !1), i.Device.LITTLE_ENDIAN ? (m.a = y3U.V9N((4278190080 & k), 24), m.b = y3U.k5N((16711680 & k), 16), m.g = y3U.G5N((65280 & k), 8), m.r = y3U.N5N(255, k)) : (m.r = y3U.L5N((4278190080 & k), 24), m.g = y3U.z5N((16711680 & k), 16), m.b = y3U.J5N((65280 & k), 8), m.a = y3U.H5N(255, k)), m.color = k, m.rgba = "rgba(" + m.r + "," + m.g + "," + m.b + "," + y3U.h5N(m.a, 255) + ")", e && i.Color.RGBtoHSL(m.r, m.g, m.b, m), o && i.Color.RGBtoHSV(m.r, m.g, m.b, m), m; }, fromRGBA : function (k, m) { return m || (m = i.Color.createColor()), m.r = y3U.F5N((4278190080 & k), 24), m.g = y3U.M5N((16711680 & k), 16), m.b = y3U.n5N((65280 & k), 8), m.a = y3U.f5N(255, k), m.rgba = "rgba(" + m.r + "," + m.g + "," + m.b + "," + m.a + ")", m; }, toRGBA : function (k, m, e, o) { return y3U.K5N(k << 24, m << 16, e << 8, o); }, RGBtoHSL : function (k, m, e, o) { o || (o = i.Color.createColor(k, m, e, 1)), k /= 255, m /= 255, e /= 255; var n = Math.min(k, m, e), u = Math.max(k, m, e); if (o.h = 0, o.s = 0, o.l = y3U.d5N((u + n), 2), y3U.c5N(u, n)) { var q = y3U.s5N(u, n); o.s = y3U.Q5N(o.l, .5) ? y3U.a2N(q, (2 - u - n)) : y3U.W2N(q, (u + n)), y3U.m2N(u, k) ? o.h = y3U.A2N((m - e), q) + (y3U.w2N(e, m) ? 6 : 0) : y3U.E2N(u, m) ? o.h = y3U.e2N((e - k), q) + 2 : y3U.g2N(u, e) && (o.h = y3U.r2N((k - m), q) + 4), o.h /= 6; } return o; }, HSLtoRGB : function (k, m, e, o) { if (o ? (o.r = e, o.g = e, o.b = e) : o = i.Color.createColor(e, e, e), y3U.i2N(0, m)) { var n = y3U.u2N(.5, e) ? y3U.P2N(e, (1 + m)) : e + m - y3U.D2N(e, m), u = y3U.Z2N(2 * e, n); o.r = i.Color.hueToColor(u, n, k + y3U.R2N(1, 3)), o.g = i.Color.hueToColor(u, n, k), o.b = i.Color.hueToColor(u, n, y3U.O2N(k, 1 / 3)); } return o.r = Math.floor(y3U.V2N(255 * o.r, 0)), o.g = Math.floor(y3U.k1N(255 * o.g, 0)), o.b = Math.floor(y3U.G1N(255 * o.b, 0)), i.Color.updateColor(o), o; }, RGBtoHSV : function (k, m, e, o) { o || (o = i.Color.createColor(k, m, e, 255)), k /= 255, m /= 255, e /= 255; var n = Math.min(k, m, e), u = Math.max(k, m, e), q = y3U.N1N(u, n); return o.h = 0, o.s = y3U.L1N(0, u) ? 0 : y3U.z1N(q, u), o.v = u, y3U.J1N(u, n) && (y3U.H1N(u, k) ? o.h = y3U.h1N((m - e), q) + (y3U.F1N(e, m) ? 6 : 0) : y3U.M1N(u, m) ? o.h = y3U.n1N((e - k), q) + 2 : y3U.f1N(u, e) && (o.h = y3U.K1N((k - m), q) + 4), o.h /= 6), o; }, HSVtoRGB : function (k, m, e, o) { "undefined" == typeof o && (o = i.Color.createColor(0, 0, 0, 1, k, m, 0, e)); var n, u, q, f = Math.floor(y3U.B1N(6, k)), j = y3U.l1N(6 * k, f), U0 = y3U.X1N(e, (1 - m)), k0 = y3U.Y1N(e, (1 - j * m)), a0 = y3U.U6N(e, (1 - (1 - j) * m)); switch (y3U.T6N(f, 6)) { case 0: n = e, u = a0, q = U0; break; case 1: n = k0, u = e, q = U0; break; case 2: n = U0, u = e, q = a0; break; case 3: n = U0, u = k0, q = e; break; case 4: n = a0, u = U0, q = e; break; case 5: n = e, u = U0, q = k0; } return o.r = Math.floor(y3U.S6N(255, n)), o.g = Math.floor(y3U.I6N(255, u)), o.b = Math.floor(y3U.C6N(255, q)), i.Color.updateColor(o), o; }, hueToColor : function (k, m, e) { return y3U.v6N(0, e) && (e += 1), y3U.t6N(e, 1) && (e -= 1), y3U.y6N(1 / 6, e) ? k + y3U.o6N(6, (m - k), e) : y3U.M6N(.5, e) ? m : y3U.n6N(2 / 3, e) ? k + y3U.f6N((m - k), (2 / 3 - e), 6) : k; }, createColor : function (k, m, e, o, n, u, q, f) { var j = { r : k || 0, g : m || 0, b : e || 0, a : o || 1, h : n || 0, s : u || 0, l : q || 0, v : f || 0, color : 0, color32 : 0, rgba : "" }; return j.color = i.Color.getColor(j.r, j.g, j.b), j.color32 = i.Color.getColor32(j.a, j.r, j.g, j.b), i.Color.updateColor(j); }, updateColor : function (k) { return k.rgba = "rgba(" + k.r.toString() + "," + k.g.toString() + "," + k.b.toString() + "," + k.a.toString() + ")", k; }, getColor32 : function (k, m, e, o) { return y3U.D6N(k << 24, m << 16, e << 8, o); }, getColor : function (k, m, e) { return y3U.l6N(k << 16, m << 8, e); }, RGBtoString : function (k, m, e, o, n) { return "undefined" == typeof o && (o = 255), "undefined" == typeof n && (n = "#"), y3U.O6N("#", n) ? "#" + ((y3U.V6N(1, 24)) + (y3U.k8N(k, 16)) + (y3U.G8N(m, 8)) + e).toString(16).slice(1) : "0x" + i.Color.componentToHex(o) + i.Color.componentToHex(k) + i.Color.componentToHex(m) + i.Color.componentToHex(e); }, hexToRGB : function (k) { var m = i.Color.hexToColor(k); return m ? i.Color.getColor32(m.a, m.r, m.g, m.b) : void 0; }, hexToColor : function (n, u) { n = n.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i, function (k, m, e, o) { return m + m + e + e + o + o; }); var q = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n); if (q) { var f = parseInt(q[1], 16), j = parseInt(q[2], 16), U0 = parseInt(q[3], 16); u ? (u.r = f, u.g = j, u.b = U0) : u = i.Color.createColor(f, j, U0); } return u; }, webToColor : function (k, m) { m || (m = i.Color.createColor()); var e = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(k); return e && (m.r = parseInt(e[1], 10), m.g = parseInt(e[2], 10), m.b = parseInt(e[3], 10), m.a = void 0 !== e[4] ? parseFloat(e[4]) : 1), m; }, valueToColor : function (k, m) { if (m || (m = i.Color.createColor()), "string" == typeof k) return y3U.N8N(0, k.indexOf("rgb")) ? i.Color.webToColor(k, m) : (m.a = 1, i.Color.hexToColor(k, m)); if ("number" == typeof k) { var e = i.Color.getRGB(k); return m.r = e.r, m.g = e.g, m.b = e.b, m.a = y3U.L8N(e.a, 255), m; } return m; }, componentToHex : function (k) { var m = k.toString(16); return y3U.z8N(1, m.length) ? "0" + m : m; }, HSVColorWheel : function (k, m) { "undefined" == typeof k && (k = 1), "undefined" == typeof m && (m = 1); for (var e = [], o = 0; y3U.J8N(359, o); o++) e.push(i.Color.HSVtoRGB(y3U.H8N(o, 359), k, m)); return e; }, HSLColorWheel : function (k, m) { "undefined" == typeof k && (k = .5), "undefined" == typeof m && (m = .5); for (var e = [], o = 0; y3U.h8N(359, o); o++) e.push(i.Color.HSLtoRGB(y3U.F8N(o, 359), k, m)); return e; }, interpolateColor : function (k, m, e, o, n) { "undefined" == typeof n && (n = 255); var u = i.Color.getRGB(k), q = i.Color.getRGB(m), f = y3U.M8N((q.red - u.red), o, e) + u.red, j = y3U.u8N((q.green - u.green), o, e) + u.green, U0 = y3U.b8N((q.blue - u.blue), o, e) + u.blue; return i.Color.getColor32(n, f, j, U0); }, interpolateColorWithRGB : function (k, m, e, o, n, u) { var q = i.Color.getRGB(k), f = y3U.B8N((m - q.red), u, n) + q.red, j = y3U.R8N((e - q.green), u, n) + q.green, U0 = y3U.s8N((o - q.blue), u, n) + q.blue; return i.Color.getColor(f, j, U0); }, interpolateRGB : function (k, m, e, o, n, u, q, f) { var j = y3U.U0o((o - k), f, q) + k, U0 = y3U.G0o((n - m), f, q) + m, k0 = y3U.m0o((u - e), f, q) + e; return i.Color.getColor(j, U0, k0); }, getRandomColor : function (k, m, e) { if ("undefined" == typeof k && (k = 0), "undefined" == typeof m && (m = 255), "undefined" == typeof e && (e = 255), y3U.C0o(m, 255) || y3U.v0o(k, m)) return i.Color.getColor(255, 255, 255); var o = k + Math.round(y3U.t0o(Math.random(), (m - k))), n = k + Math.round(y3U.y0o(Math.random(), (m - k))), u = k + Math.round(y3U.o0o(Math.random(), (m - k))); return i.Color.getColor32(e, o, n, u); }, getRGB : function (k) { return y3U.x0o(k, 16777215) ? { alpha : y3U.p0o(k, 24), red : y3U.q0o(k >> 16, 255), green : y3U.b0o(k >> 8, 255), blue : y3U.j0o(255, k), a : y3U.d0o(k, 24), r : y3U.c0o(k >> 16, 255), g : y3U.s0o(k >> 8, 255), b : y3U.Q0o(255, k) } : { alpha : 255, red : y3U.a7o(k >> 16, 255), green : y3U.W7o(k >> 8, 255), blue : y3U.m7o(255, k), a : 255, r : y3U.A7o(k >> 16, 255), g : y3U.w7o(k >> 8, 255), b : y3U.E7o(255, k) }; }, getWebRGB : function (k) { if ("object" == typeof k) return "rgba(" + k.r.toString() + "," + k.g.toString() + "," + k.b.toString() + "," + (y3U.e7o(k.a, 255)).toString() + ")"; var m = i.Color.getRGB(k); return "rgba(" + m.r.toString() + "," + m.g.toString() + "," + m.b.toString() + "," + (y3U.g7o(m.a, 255)).toString() + ")"; }, getAlpha : function (k) { return y3U.r7o(k, 24); }, getAlphaFloat : function (k) { return y3U.i7o((k >>> 24), 255); }, getRed : function (k) { return y3U.u7o(k >> 16, 255); }, getGreen : function (k) { return y3U.P7o(k >> 8, 255); }, getBlue : function (k) { return y3U.D7o(255, k); } }, i.Physics = function (k, m) { m = m || {}, this.game = k, this.config = m, this.arcade = null, this.p2 = null, this.ninja = null, this.box2d = null, this.chipmunk = null, this.parseConfig(); }, i.Physics.ARCADE = 0, i.Physics.P2JS = 1, i.Physics.NINJA = 2, i.Physics.BOX2D = 3, i.Physics.CHIPMUNK = 4, i.Physics.prototype = { parseConfig : function () { this.config.hasOwnProperty("arcade") && this.config.arcade !== !0 || !i.Physics.hasOwnProperty("Arcade") || (this.arcade = new i.Physics.Arcade(this.game), this.game.time.deltaCap = .2), this.config.hasOwnProperty("ninja") && this.config.ninja === !0 && i.Physics.hasOwnProperty("Ninja") && (this.ninja = new i.Physics.Ninja(this.game)), this.config.hasOwnProperty("p2") && this.config.p2 === !0 && i.Physics.hasOwnProperty("P2") && (this.p2 = new i.Physics.P2(this.game, this.config)), this.config.hasOwnProperty("box2d") && this.config.box2d === !0 && i.Physics.hasOwnProperty("BOX2D") && (this.box2d = new i.Physics.BOX2D(this.game, this.config)); }, startSystem : function (k) { y3U.Z7o(k, i.Physics.ARCADE) ? this.arcade = new i.Physics.Arcade(this.game) : y3U.R7o(k, i.Physics.P2JS) ? y3U.O7o(null, this.p2) ? this.p2 = new i.Physics.P2(this.game, this.config) : this.p2.reset() : y3U.V7o(k, i.Physics.NINJA) ? this.ninja = new i.Physics.Ninja(this.game) : y3U.k4o(k, i.Physics.BOX2D) && (y3U.G4o(null, this.box2d) ? this.box2d = new i.Physics.Box2D(this.game, this.config) : this.box2d.reset()); }, enable : function (k, m, e) { "undefined" == typeof m && (m = i.Physics.ARCADE), "undefined" == typeof e && (e = !1), y3U.N4o(m, i.Physics.ARCADE) ? this.arcade.enable(k) : y3U.L4o(m, i.Physics.P2JS) && this.p2 ? this.p2.enable(k, e) : y3U.z4o(m, i.Physics.NINJA) && this.ninja ? this.ninja.enableAABB(k) : y3U.J4o(m, i.Physics.BOX2D) && this.box2d && this.box2d.enable(k); }, preUpdate : function () { this.p2 && this.p2.preUpdate(), this.box2d && this.box2d.preUpdate(); }, update : function () { this.p2 && this.p2.update(), this.box2d && this.box2d.update(); }, setBoundsToWorld : function () { this.arcade && this.arcade.setBoundsToWorld(), this.ninja && this.ninja.setBoundsToWorld(), this.p2 && this.p2.setBoundsToWorld(), this.box2d && this.box2d.setBoundsToWorld(); }, clear : function () { this.p2 && this.p2.clear(), this.box2d && this.box2d.clear(); }, destroy : function () { this.p2 && this.p2.destroy(), this.box2d && this.box2d.destroy(), this.arcade = null, this.ninja = null, this.p2 = null, this.box2d = null; } }, i.Physics.prototype.constructor = i.Physics, i.Physics.Arcade = function (k) { this.game = k, this.gravity = new i.Point, this.bounds = new i.Rectangle(0, 0, k.world.width, k.world.height), this.checkCollision = { up : !0, down : !0, left : !0, right : !0 }, this.maxObjects = 10, this.maxLevels = 4, this.OVERLAP_BIAS = 4, this.TILE_BIAS = 16, this.forceX = !1, this.skipQuadTree = !0, this.quadTree = new i.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._overlap = 0, this._maxOverlap = 0, this._velocity1 = 0, this._velocity2 = 0, this._newVelocity1 = 0, this._newVelocity2 = 0, this._average = 0, this._mapData = [], this._result = !1, this._total = 0, this._angle = 0, this._dx = 0, this._dy = 0, this.setBoundsToWorld(); }, i.Physics.Arcade.prototype.constructor = i.Physics.Arcade, i.Physics.Arcade.prototype = { setBounds : function (k, m, e, o) { this.bounds.setTo(k, m, e, o); }, setBoundsToWorld : function () { this.bounds.setTo(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height); }, enable : function (k, m) { "undefined" == typeof m && (m = !0); var e = 1; if (Array.isArray(k)) for (e = k.length; e--; ) y3U.H4o(k[e], i.Group) ? this.enable(k[e].children, m) : (this.enableBody(k[e]), m && k[e].hasOwnProperty("children") && y3U.h4o(k[e].children.length, 0) && this.enable(k[e], !0)); else y3U.F4o(k, i.Group) ? this.enable(k.children, m) : (this.enableBody(k), m && k.hasOwnProperty("children") && y3U.M4o(k.children.length, 0) && this.enable(k.children, !0)); }, enableBody : function (k) { k.hasOwnProperty("body") && y3U.n4o(null, k.body) && (k.body = new i.Physics.Arcade.Body(k)); }, updateMotion : function (k) { this._velocityDelta = y3U.f4o(this.computeVelocity(0, k, k.angularVelocity, k.angularAcceleration, k.angularDrag, k.maxAngular), k.angularVelocity), k.angularVelocity += this._velocityDelta, k.rotation += y3U.K4o(k.angularVelocity, this.game.time.physicsElapsed), k.velocity.x = this.computeVelocity(1, k, k.velocity.x, k.acceleration.x, k.drag.x, k.maxVelocity.x), k.velocity.y = this.computeVelocity(2, k, k.velocity.y, k.acceleration.y, k.drag.y, k.maxVelocity.y); }, computeVelocity : function (k, m, e, o, n, u) { return u = u || 1e4, y3U.B4o(1, k) && m.allowGravity ? e += y3U.l4o((this.gravity.x + m.gravity.x), this.game.time.physicsElapsed) : y3U.X4o(2, k) && m.allowGravity && (e += y3U.Y4o((this.gravity.y + m.gravity.y), this.game.time.physicsElapsed)), o ? e += y3U.U3o(o, this.game.time.physicsElapsed) : n && (this._drag = y3U.T3o(n, this.game.time.physicsElapsed), y3U.S3o(e - this._drag, 0) ? e -= this._drag : y3U.I3o(e + this._drag, 0) ? e += this._drag : e = 0), y3U.C3o(e, u) ? e = u : -u > e && (e = -u), e; }, overlap : function (k, m, e, o, n) { if (e = e || null, o = o || null, n = n || e, this._result = !1, this._total = 0, !Array.isArray(k) && Array.isArray(m)) for (var u = 0, q = m.length; y3U.v3o(q, u); u++) this.collideHandler(k, m[u], e, o, n, !0); else if (Array.isArray(k) && !Array.isArray(m)) for (var u = 0, q = k.length; y3U.t3o(q, u); u++) this.collideHandler(k[u], m, e, o, n, !0); else if (Array.isArray(k) && Array.isArray(m)) for (var u = 0, q = k.length; y3U.y3o(q, u); u++) for (var f = 0, j = m.length; y3U.o3o(j, f); f++) this.collideHandler(k[u], m[f], e, o, n, !0); else this.collideHandler(k, m, e, o, n, !0); return y3U.x3o(this._total, 0); }, collide : function (k, m, e, o, n) { if (e = e || null, o = o || null, n = n || e, this._result = !1, this._total = 0, !Array.isArray(k) && Array.isArray(m)) for (var u = 0, q = m.length; y3U.p3o(q, u); u++) this.collideHandler(k, m[u], e, o, n, !1); else if (Array.isArray(k) && !Array.isArray(m)) for (var u = 0, q = k.length; y3U.q3o(q, u); u++) this.collideHandler(k[u], m, e, o, n, !1); else if (Array.isArray(k) && Array.isArray(m)) for (var u = 0, f = k.length; y3U.b3o(f, u); u++) for (var j = 0, U0 = m.length; y3U.j3o(U0, j); j++) this.collideHandler(k[u], m[j], e, o, n, !1); else this.collideHandler(k, m, e, o, n, !1); return y3U.d3o(this._total, 0); }, collideHandler : function (k, m, e, o, n, u) { return "undefined" != typeof m || y3U.c3o(k.type, i.GROUP) && y3U.s3o(k.type, i.EMITTER) ? void(k && m && k.exists && m.exists && (y3U.Q3o(k.type, i.SPRITE) || y3U.a9o(k.type, i.TILESPRITE) ? y3U.W9o(m.type, i.SPRITE) || y3U.m9o(m.type, i.TILESPRITE) ? this.collideSpriteVsSprite(k, m, e, o, n, u) : y3U.A9o(m.type, i.GROUP) || y3U.w9o(m.type, i.EMITTER) ? this.collideSpriteVsGroup(k, m, e, o, n, u) : y3U.E9o(m.type, i.TILEMAPLAYER) && this.collideSpriteVsTilemapLayer(k, m, e, o, n) : y3U.e9o(k.type, i.GROUP) ? y3U.g9o(m.type, i.SPRITE) || y3U.r9o(m.type, i.TILESPRITE) ? this.collideSpriteVsGroup(m, k, e, o, n, u) : y3U.i9o(m.type, i.GROUP) || y3U.u9o(m.type, i.EMITTER) ? this.collideGroupVsGroup(k, m, e, o, n, u) : y3U.P9o(m.type, i.TILEMAPLAYER) && this.collideGroupVsTilemapLayer(k, m, e, o, n) : y3U.D9o(k.type, i.TILEMAPLAYER) ? y3U.Z9o(m.type, i.SPRITE) || y3U.R9o(m.type, i.TILESPRITE) ? this.collideSpriteVsTilemapLayer(m, k, e, o, n) : (y3U.O9o(m.type, i.GROUP) || y3U.V9o(m.type, i.EMITTER)) && this.collideGroupVsTilemapLayer(m, k, e, o, n) : y3U.k5o(k.type, i.EMITTER) && (y3U.G5o(m.type, i.SPRITE) || y3U.N5o(m.type, i.TILESPRITE) ? this.collideSpriteVsGroup(m, k, e, o, n, u) : y3U.L5o(m.type, i.GROUP) || y3U.z5o(m.type, i.EMITTER) ? this.collideGroupVsGroup(k, m, e, o, n, u) : y3U.J5o(m.type, i.TILEMAPLAYER) && this.collideGroupVsTilemapLayer(k, m, e, o, n)))) : void this.collideGroupVsSelf(k, e, o, n, u); }, collideSpriteVsSprite : function (k, m, e, o, n, u) { return k.body && m.body ? (this.separate(k.body, m.body, o, n, u) && (e && e.call(n, k, m), this._total++), !0) : !1; }, collideSpriteVsGroup : function (k, m, e, o, n, u) { if (y3U.H5o(0, m.length) && k.body) if (k.body.skipQuadTree || this.skipQuadTree) for (var q = 0, f = m.children.length; y3U.h5o(f, q); q++) m.children[q] && m.children[q].exists && this.collideSpriteVsSprite(k, m.children[q], e, o, n, u); 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(m), this._potentials = this.quadTree.retrieve(k); for (var q = 0, f = this._potentials.length; y3U.F5o(f, q); q++) this.separate(k.body, this._potentials[q], o, n, u) && (e && e.call(n, k, this._potentials[q].sprite), this._total++); } }, collideGroupVsSelf : function (k, m, e, o, n) { if (y3U.M5o(0, k.length)) for (var u = k.children.length, q = 0; y3U.n5o(u - 1, q); q++) for (var f = q + 1; y3U.f5o(u, f); f++) k.children[q] && k.children[f] && k.children[q].exists && k.children[f].exists && this.collideSpriteVsSprite(k.children[q], k.children[f], m, e, o, n); }, collideGroupVsGroup : function (k, m, e, o, n, u) { if (y3U.K5o(0, k.length) && y3U.B5o(0, m.length)) for (var q = 0, f = k.children.length; y3U.l5o(f, q); q++) k.children[q].exists && (y3U.X5o(k.children[q].type, i.GROUP) ? this.collideGroupVsGroup(k.children[q], m, e, o, n, u) : this.collideSpriteVsGroup(k.children[q], m, e, o, n, u)); }, collideSpriteVsTilemapLayer : function (k, m, e, o, n) { if (k.body && (this._mapData = m.getTiles(y3U.Y5o(k.body.position.x, k.body.tilePadding.x), y3U.U2o(k.body.position.y, k.body.tilePadding.y), k.body.width + k.body.tilePadding.x, k.body.height + k.body.tilePadding.y, !1, !1), y3U.T2o(0, this._mapData.length))) for (var u = 0; y3U.S2o(u, this._mapData.length); u++) o ? o.call(n, k, this._mapData[u]) && this.separateTile(u, k.body, this._mapData[u]) && (this._total++, e && e.call(n, k, this._mapData[u])) : this.separateTile(u, k.body, this._mapData[u]) && (this._total++, e && e.call(n, k, this._mapData[u])); }, collideGroupVsTilemapLayer : function (k, m, e, o, n) { if (y3U.I2o(0, k.length)) for (var u = 0, q = k.children.length; y3U.C2o(q, u); u++) k.children[u].exists && this.collideSpriteVsTilemapLayer(k.children[u], m, e, o, n); }, separate : function (k, m, e, o, n) { return k.enable && m.enable && this.intersects(k, m) ? e && e.call(o, k.sprite, m.sprite) === !1 ? !1 : (this._result = this.forceX || y3U.v2o(Math.abs(this.gravity.y + k.gravity.y), Math.abs(this.gravity.x + k.gravity.x)) ? this.separateX(k, m, n) || this.separateY(k, m, n) : this.separateY(k, m, n) || this.separateX(k, m, n), n ? !0 : this._result) : !1; }, intersects : function (k, m) { return y3U.t2o(k.right, m.position.x) ? !1 : y3U.y2o(k.bottom, m.position.y) ? !1 : y3U.o2o(k.position.x, m.right) ? !1 : y3U.x2o(k.position.y, m.bottom) ? !1 : !0; }, separateX : function (k, m, e) { return k.immovable && m.immovable ? !1 : (this._overlap = 0, this.intersects(k, m) && (this._maxOverlap = k.deltaAbsX() + m.deltaAbsX() + this.OVERLAP_BIAS, y3U.p2o(0, k.deltaX()) && y3U.q2o(0, m.deltaX()) ? (k.embedded = !0, m.embedded = !0) : y3U.b2o(k.deltaX(), m.deltaX()) ? (this._overlap = y3U.j2o(k.right, m.x), y3U.d2o(this._overlap, this._maxOverlap) || k.checkCollision.right === !1 || m.checkCollision.left === !1 ? this._overlap = 0 : (k.touching.none = !1, k.touching.right = !0, m.touching.none = !1, m.touching.left = !0)) : y3U.c2o(k.deltaX(), m.deltaX()) && (this._overlap = y3U.s2o(k.x, m.width, m.x), -this._overlap > this._maxOverlap || k.checkCollision.left === !1 || m.checkCollision.right === !1 ? this._overlap = 0 : (k.touching.none = !1, k.touching.left = !0, m.touching.none = !1, m.touching.right = !0)), k.overlapX = this._overlap, m.overlapX = this._overlap, y3U.U1o(0, this._overlap)) ? e || k.customSeparateX || m.customSeparateX ? !0 : (this._velocity1 = k.velocity.x, this._velocity2 = m.velocity.x, k.immovable || m.immovable ? k.immovable ? m.immovable || (m.x += this._overlap, m.velocity.x = y3U.T1o(this._velocity1, this._velocity2 * m.bounce.x)) : (k.x = y3U.S1o(k.x, this._overlap), k.velocity.x = y3U.I1o(this._velocity2, this._velocity1 * k.bounce.x)) : (this._overlap *= .5, k.x = y3U.C1o(k.x, this._overlap), m.x += this._overlap, this._newVelocity1 = Math.sqrt(y3U.v1o(this._velocity2, this._velocity2, m.mass, k.mass)) * (y3U.e1o(this._velocity2, 0) ? 1 : -1), this._newVelocity2 = Math.sqrt(y3U.g1o(this._velocity1, this._velocity1, k.mass, m.mass)) * (y3U.M1o(this._velocity1, 0) ? 1 : -1), this._average = y3U.n1o(.5, (this._newVelocity1 + this._newVelocity2)), this._newVelocity1 -= this._average, this._newVelocity2 -= this._average, k.velocity.x = this._average + y3U.f1o(this._newVelocity1, k.bounce.x), m.velocity.x = this._average + y3U.K1o(this._newVelocity2, m.bounce.x)), !0) : !1); }, separateY : function (k, m, e) { return k.immovable && m.immovable ? !1 : (this._overlap = 0, this.intersects(k, m) && (this._maxOverlap = k.deltaAbsY() + m.deltaAbsY() + this.OVERLAP_BIAS, y3U.B1o(0, k.deltaY()) && y3U.l1o(0, m.deltaY()) ? (k.embedded = !0, m.embedded = !0) : y3U.X1o(k.deltaY(), m.deltaY()) ? (this._overlap = y3U.Y1o(k.bottom, m.y), y3U.U6o(this._overlap, this._maxOverlap) || k.checkCollision.down === !1 || m.checkCollision.up === !1 ? this._overlap = 0 : (k.touching.none = !1, k.touching.down = !0, m.touching.none = !1, m.touching.up = !0)) : y3U.T6o(k.deltaY(), m.deltaY()) && (this._overlap = y3U.S6o(k.y, m.bottom), -this._overlap > this._maxOverlap || k.checkCollision.up === !1 || m.checkCollision.down === !1 ? this._overlap = 0 : (k.touching.none = !1, k.touching.up = !0, m.touching.none = !1, m.touching.down = !0)), k.overlapY = this._overlap, m.overlapY = this._overlap, y3U.I6o(0, this._overlap)) ? e || k.customSeparateY || m.customSeparateY ? !0 : (this._velocity1 = k.velocity.y, this._velocity2 = m.velocity.y, k.immovable || m.immovable ? k.immovable ? m.immovable || (m.y += this._overlap, m.velocity.y = y3U.C6o(this._velocity1, this._velocity2 * m.bounce.y), k.moves && (m.x += y3U.v6o(k.x, k.prev.x))) : (k.y = y3U.t6o(k.y, this._overlap), k.velocity.y = y3U.y6o(this._velocity2, this._velocity1 * k.bounce.y), m.moves && (k.x += y3U.o6o(m.x, m.prev.x))) : (this._overlap *= .5, k.y = y3U.x6o(k.y, this._overlap), m.y += this._overlap, this._newVelocity1 = Math.sqrt(y3U.p6o(this._velocity2, this._velocity2, m.mass, k.mass)) * (y3U.P6o(this._velocity2, 0) ? 1 : -1), this._newVelocity2 = Math.sqrt(y3U.D6o(this._velocity1, this._velocity1, k.mass, m.mass)) * (y3U.l6o(this._velocity1, 0) ? 1 : -1), this._average = y3U.X6o(.5, (this._newVelocity1 + this._newVelocity2)), this._newVelocity1 -= this._average, this._newVelocity2 -= this._average, k.velocity.y = this._average + y3U.Y6o(this._newVelocity1, k.bounce.y), m.velocity.y = this._average + y3U.U8o(this._newVelocity2, m.bounce.y)), !0) : !1); }, separateTile : function (k, m, e) { if (!m.enable || !e.intersects(m.position.x, m.position.y, m.right, m.bottom)) return !1; if (e.collisionCallback && !e.collisionCallback.call(e.collisionCallbackContext, m.sprite, e)) return !1; if (e.layer.callbacks[e.index] && !e.layer.callbacks[e.index].callback.call(e.layer.callbacks[e.index].callbackContext, m.sprite, e)) return !1; if (!(e.faceLeft || e.faceRight || e.faceTop || e.faceBottom)) return !1; var o = 0, n = 0, u = 0, q = 1; if (y3U.T8o(m.deltaAbsX(), m.deltaAbsY()) ? u = -1 : y3U.S8o(m.deltaAbsX(), m.deltaAbsY()) && (q = -1), y3U.I8o(0, m.deltaX()) && y3U.C8o(0, m.deltaY()) && (e.faceLeft || e.faceRight) && (e.faceTop || e.faceBottom) && (u = Math.min(Math.abs(y3U.v8o(m.position.x, e.right)), Math.abs(y3U.t8o(m.right, e.left))), q = Math.min(Math.abs(y3U.y8o(m.position.y, e.bottom)), Math.abs(y3U.o8o(m.bottom, e.top)))), y3U.x8o(q, u)) { if ((e.faceLeft || e.faceRight) && (o = this.tileCheckX(m, e), y3U.p8o(0, o) && !e.intersects(m.position.x, m.position.y, m.right, m.bottom))) return !0; (e.faceTop || e.faceBottom) && (n = this.tileCheckY(m, e)); } else { if ((e.faceTop || e.faceBottom) && (n = this.tileCheckY(m, e), y3U.q8o(0, n) && !e.intersects(m.position.x, m.position.y, m.right, m.bottom))) return !0; (e.faceLeft || e.faceRight) && (o = this.tileCheckX(m, e)); } return y3U.b8o(0, o) || y3U.j8o(0, n); }, tileCheckX : function (k, m) { var e = 0; return y3U.d8o(k.deltaX(), 0) && !k.blocked.left && m.collideRight && k.checkCollision.left ? m.faceRight && y3U.c8o(k.x, m.right) && (e = y3U.s8o(k.x, m.right), e < -this.TILE_BIAS && (e = 0)) : y3U.Q8o(k.deltaX(), 0) && !k.blocked.right && m.collideLeft && k.checkCollision.right && m.faceLeft && y3U.a04(k.right, m.left) && (e = y3U.W04(k.right, m.left), y3U.m04(e, this.TILE_BIAS) && (e = 0)), y3U.A04(0, e) && this.processTileSeparationX(k, e), e; }, tileCheckY : function (k, m) { var e = 0; return y3U.w04(k.deltaY(), 0) && !k.blocked.up && m.collideDown && k.checkCollision.up ? m.faceBottom && y3U.E04(k.y, m.bottom) && (e = y3U.e04(k.y, m.bottom), e < -this.TILE_BIAS && (e = 0)) : y3U.g04(k.deltaY(), 0) && !k.blocked.down && m.collideUp && k.checkCollision.down && m.faceTop && y3U.r04(k.bottom, m.top) && (e = y3U.i04(k.bottom, m.top), y3U.u04(e, this.TILE_BIAS) && (e = 0)), y3U.P04(0, e) && this.processTileSeparationY(k, e), e; }, processTileSeparationX : function (k, m) { y3U.D04(0, m) ? k.blocked.left = !0 : y3U.Z04(m, 0) && (k.blocked.right = !0), k.position.x -= m, k.velocity.x = y3U.R04(0, k.bounce.x) ? 0 : -k.velocity.x * k.bounce.x; }, processTileSeparationY : function (k, m) { y3U.O04(0, m) ? k.blocked.up = !0 : y3U.V04(m, 0) && (k.blocked.down = !0), k.position.y -= m, k.velocity.y = y3U.k74(0, k.bounce.y) ? 0 : -k.velocity.y * k.bounce.y; }, getObjectsUnderPointer : function (k, m, e, o) { return y3U.G74(0, m.length) && k.exists ? this.getObjectsAtLocation(k.x, k.y, m, e, o, k) : void 0; }, getObjectsAtLocation : function (k, m, e, o, n, u) { 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(e); var q = new i.Rectangle(k, m, 1, 1), f = []; this._potentials = this.quadTree.retrieve(q); for (var j = 0, U0 = this._potentials.length; y3U.N74(U0, j); j++) this._potentials[j].hitTest(k, m) && (o && o.call(n, u, this._potentials[j].sprite), f.push(this._potentials[j].sprite)); return f; }, moveToObject : function (k, m, e, o) { return "undefined" == typeof e && (e = 60), "undefined" == typeof o && (o = 0), this._angle = Math.atan2(y3U.L74(m.y, k.y), y3U.z74(m.x, k.x)), y3U.J74(o, 0) && (e = y3U.H74(this.distanceBetween(k, m), (o / 1e3))), k.body.velocity.x = y3U.h74(Math.cos(this._angle), e), k.body.velocity.y = y3U.F74(Math.sin(this._angle), e), this._angle; }, moveToPointer : function (k, m, e, o) { return "undefined" == typeof m && (m = 60), e = e || this.game.input.activePointer, "undefined" == typeof o && (o = 0), this._angle = this.angleToPointer(k, e), y3U.M74(o, 0) && (m = y3U.n74(this.distanceToPointer(k, e), (o / 1e3))), k.body.velocity.x = y3U.f74(Math.cos(this._angle), m), k.body.velocity.y = y3U.K74(Math.sin(this._angle), m), this._angle; }, moveToXY : function (k, m, e, o, n) { return "undefined" == typeof o && (o = 60), "undefined" == typeof n && (n = 0), this._angle = Math.atan2(y3U.B74(e, k.y), y3U.l74(m, k.x)), y3U.X74(n, 0) && (o = y3U.Y74(this.distanceToXY(k, m, e), (n / 1e3))), k.body.velocity.x = y3U.U44(Math.cos(this._angle), o), k.body.velocity.y = y3U.T44(Math.sin(this._angle), o), this._angle; }, velocityFromAngle : function (k, m, e) { return "undefined" == typeof m && (m = 60), e = e || new i.Point, e.setTo(y3U.S44(Math.cos(this.game.math.degToRad(k)), m), y3U.I44(Math.sin(this.game.math.degToRad(k)), m)); }, velocityFromRotation : function (k, m, e) { return "undefined" == typeof m && (m = 60), e = e || new i.Point, e.setTo(y3U.C44(Math.cos(k), m), y3U.v44(Math.sin(k), m)); }, accelerationFromRotation : function (k, m, e) { return "undefined" == typeof m && (m = 60), e = e || new i.Point, e.setTo(y3U.t44(Math.cos(k), m), y3U.y44(Math.sin(k), m)); }, accelerateToObject : function (k, m, e, o, n) { return "undefined" == typeof e && (e = 60), "undefined" == typeof o && (o = 1e3), "undefined" == typeof n && (n = 1e3), this._angle = this.angleBetween(k, m), k.body.acceleration.setTo(y3U.o44(Math.cos(this._angle), e), y3U.x44(Math.sin(this._angle), e)), k.body.maxVelocity.setTo(o, n), this._angle; }, accelerateToPointer : function (k, m, e, o, n) { return "undefined" == typeof e && (e = 60), "undefined" == typeof m && (m = this.game.input.activePointer), "undefined" == typeof o && (o = 1e3), "undefined" == typeof n && (n = 1e3), this._angle = this.angleToPointer(k, m), k.body.acceleration.setTo(y3U.p44(Math.cos(this._angle), e), y3U.q44(Math.sin(this._angle), e)), k.body.maxVelocity.setTo(o, n), this._angle; }, accelerateToXY : function (k, m, e, o, n, u) { return "undefined" == typeof o && (o = 60), "undefined" == typeof n && (n = 1e3), "undefined" == typeof u && (u = 1e3), this._angle = this.angleToXY(k, m, e), k.body.acceleration.setTo(y3U.b44(Math.cos(this._angle), o), y3U.j44(Math.sin(this._angle), o)), k.body.maxVelocity.setTo(n, u), this._angle; }, distanceBetween : function (k, m) { return this._dx = y3U.d44(k.x, m.x), this._dy = y3U.c44(k.y, m.y), Math.sqrt(y3U.s44(this._dx, this._dx) + y3U.Q44(this._dy, this._dy)); }, distanceToXY : function (k, m, e) { return this._dx = y3U.a34(k.x, m), this._dy = y3U.W34(k.y, e), Math.sqrt(y3U.m34(this._dx, this._dx) + y3U.A34(this._dy, this._dy)); }, distanceToPointer : function (k, m) { return m = m || this.game.input.activePointer, this._dx = y3U.w34(k.x, m.x), this._dy = y3U.E34(k.y, m.y), Math.sqrt(y3U.e34(this._dx, this._dx) + y3U.g34(this._dy, this._dy)); }, angleBetween : function (k, m) { return this._dx = y3U.r34(m.x, k.x), this._dy = y3U.i34(m.y, k.y), Math.atan2(this._dy, this._dx); }, angleToXY : function (k, m, e) { return this._dx = y3U.u34(m, k.x), this._dy = y3U.P34(e, k.y), Math.atan2(this._dy, this._dx); }, angleToPointer : function (k, m) { return m = m || this.game.input.activePointer, this._dx = y3U.D34(m.worldX, k.x), this._dy = y3U.Z34(m.worldY, k.y), Math.atan2(this._dy, this._dx); } }, i.Physics.Arcade.Body = function (k) { this.sprite = k, this.game = k.game, this.type = i.Physics.ARCADE, this.enable = !0, this.offset = new i.Point, this.position = new i.Point(k.x, k.y), this.prev = new i.Point(this.position.x, this.position.y), this.allowRotation = !0, this.rotation = k.rotation, this.preRotation = k.rotation, this.sourceWidth = k.texture.frame.width, this.sourceHeight = k.texture.frame.height, this.width = k.width, this.height = k.height, this.halfWidth = Math.abs(y3U.R34(k.width, 2)), this.halfHeight = Math.abs(y3U.O34(k.height, 2)), this.center = new i.Point(k.x + this.halfWidth, k.y + this.halfHeight), this.velocity = new i.Point, this.newVelocity = new i.Point(0, 0), this.deltaMax = new i.Point(0, 0), this.acceleration = new i.Point, this.drag = new i.Point, this.allowGravity = !0, this.gravity = new i.Point(0, 0), this.bounce = new i.Point, this.maxVelocity = new i.Point(1e4, 1e4), this.angularVelocity = 0, this.angularAcceleration = 0, this.angularDrag = 0, this.maxAngular = 1e3, this.mass = 1, this.angle = 0, this.speed = 0, this.facing = i.NONE, this.immovable = !1, this.moves = !0, this.customSeparateX = !1, this.customSeparateY = !1, this.overlapX = 0, this.overlapY = 0, this.embedded = !1, this.collideWorldBounds = !1, this.checkCollision = { none : !1, any : !0, up : !0, down : !0, left : !0, right : !0 }, this.touching = { none : !0, up : !1, down : !1, left : !1, right : !1 }, this.wasTouching = { none : !0, up : !1, down : !1, left : !1, right : !1 }, this.blocked = { up : !1, down : !1, left : !1, right : !1 }, this.tilePadding = new i.Point, this.phase = 0, this.skipQuadTree = !1, this._reset = !0, this._sx = k.scale.x, this._sy = k.scale.y, this._dx = 0, this._dy = 0; }, i.Physics.Arcade.Body.prototype = { updateBounds : function () { var k = Math.abs(this.sprite.scale.x), m = Math.abs(this.sprite.scale.y); (y3U.V34(k, this._sx) || y3U.k94(m, this._sy)) && (this.width = y3U.G94(this.sourceWidth, k), this.height = y3U.N94(this.sourceHeight, m), this.halfWidth = Math.floor(y3U.L94(this.width, 2)), this.halfHeight = Math.floor(y3U.z94(this.height, 2)), this._sx = k, this._sy = m, this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this._reset = !0); }, preUpdate : function () { this.enable && (this.phase = 1, 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 = y3U.J94(this.sprite.world.x, this.sprite.anchor.x * this.width, this.offset.x), this.position.y = y3U.e94(this.sprite.world.y, this.sprite.anchor.y * this.height, this.offset.y), this.rotation = this.sprite.angle, this.preRotation = this.rotation, (this._reset || y3U.o94(1, this.sprite._cache[4])) && (this.prev.x = this.position.x, this.prev.y = this.position.y), this.moves && (this.game.physics.arcade.updateMotion(this), this.newVelocity.set(y3U.x94(this.velocity.x, this.game.time.physicsElapsed), y3U.p94(this.velocity.y, this.game.time.physicsElapsed)), this.position.x += this.newVelocity.x, this.position.y += this.newVelocity.y, (y3U.q94(this.position.x, this.prev.x) || y3U.b94(this.position.y, this.prev.y)) && (this.speed = Math.sqrt(y3U.j94(this.velocity.x, this.velocity.x) + y3U.d94(this.velocity.y, this.velocity.y)), this.angle = Math.atan2(this.velocity.y, this.velocity.x)), this.collideWorldBounds && this.checkWorldBounds()), this._dx = this.deltaX(), this._dy = this.deltaY(), this._reset = !1); }, postUpdate : function () { this.enable && y3U.c94(2, this.phase) && (this.phase = 2, y3U.s94(this.deltaX(), 0) ? this.facing = i.LEFT : y3U.Q94(this.deltaX(), 0) && (this.facing = i.RIGHT), y3U.a54(this.deltaY(), 0) ? this.facing = i.UP : y3U.W54(this.deltaY(), 0) && (this.facing = i.DOWN), this.moves && (this._dx = this.deltaX(), this._dy = this.deltaY(), y3U.m54(0, this.deltaMax.x) && y3U.A54(0, this._dx) && (y3U.w54(this._dx, 0) && this._dx < -this.deltaMax.x ? this._dx = -this.deltaMax.x : y3U.E54(this._dx, 0) && y3U.e54(this._dx, this.deltaMax.x) && (this._dx = this.deltaMax.x)), y3U.g54(0, this.deltaMax.y) && y3U.r54(0, this._dy) && (y3U.i54(this._dy, 0) && this._dy < -this.deltaMax.y ? this._dy = -this.deltaMax.y : y3U.u54(this._dy, 0) && y3U.P54(this._dy, this.deltaMax.y) && (this._dy = this.deltaMax.y)), this.sprite.x += this._dx, this.sprite.y += this._dy), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.allowRotation && (this.sprite.angle += this.deltaZ()), this.prev.x = this.position.x, this.prev.y = this.position.y); }, destroy : function () { this.sprite.body = null, this.sprite = null; }, checkWorldBounds : function () { y3U.D54(this.position.x, this.game.physics.arcade.bounds.x) && this.game.physics.arcade.checkCollision.left ? (this.position.x = this.game.physics.arcade.bounds.x, this.velocity.x *= -this.bounce.x, this.blocked.left = !0) : y3U.Z54(this.right, this.game.physics.arcade.bounds.right) && this.game.physics.arcade.checkCollision.right && (this.position.x = y3U.R54(this.game.physics.arcade.bounds.right, this.width), this.velocity.x *= -this.bounce.x, this.blocked.right = !0), y3U.O54(this.position.y, this.game.physics.arcade.bounds.y) && this.game.physics.arcade.checkCollision.up ? (this.position.y = this.game.physics.arcade.bounds.y, this.velocity.y *= -this.bounce.y, this.blocked.up = !0) : y3U.V54(this.bottom, this.game.physics.arcade.bounds.bottom) && this.game.physics.arcade.checkCollision.down && (this.position.y = y3U.k24(this.game.physics.arcade.bounds.bottom, this.height), this.velocity.y *= -this.bounce.y, this.blocked.down = !0); }, setSize : function (k, m, e, o) { "undefined" == typeof e && (e = this.offset.x), "undefined" == typeof o && (o = this.offset.y), this.sourceWidth = k, this.sourceHeight = m, this.width = y3U.G24(this.sourceWidth, this._sx), this.height = y3U.N24(this.sourceHeight, this._sy), this.halfWidth = Math.floor(y3U.L24(this.width, 2)), this.halfHeight = Math.floor(y3U.z24(this.height, 2)), this.offset.setTo(e, o), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight); }, reset : function (k, m) { this.velocity.set(0), this.acceleration.set(0), this.angularVelocity = 0, this.angularAcceleration = 0, this.position.x = y3U.J24(k, this.sprite.anchor.x * this.width, this.offset.x), this.position.y = y3U.e24(m, this.sprite.anchor.y * this.height, this.offset.y), this.prev.x = this.position.x, this.prev.y = this.position.y, this.rotation = this.sprite.angle, this.preRotation = this.rotation, this._sx = this.sprite.scale.x, this._sy = this.sprite.scale.y, this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight); }, hitTest : function (k, m) { return i.Rectangle.contains(this, k, m); }, onFloor : function () { return this.blocked.down; }, onWall : function () { return this.blocked.left || this.blocked.right; }, deltaAbsX : function () { return y3U.o24(this.deltaX(), 0) ? this.deltaX() : -this.deltaX(); }, deltaAbsY : function () { return y3U.x24(this.deltaY(), 0) ? this.deltaY() : -this.deltaY(); }, deltaX : function () { return y3U.p24(this.position.x, this.prev.x); }, deltaY : function () { return y3U.q24(this.position.y, this.prev.y); }, deltaZ : function () { return y3U.b24(this.rotation, this.preRotation); } }, Object.defineProperty(i.Physics.Arcade.Body.prototype, "bottom", { get : function () { return this.position.y + this.height; } }), Object.defineProperty(i.Physics.Arcade.Body.prototype, "right", { get : function () { return this.position.x + this.width; } }), Object.defineProperty(i.Physics.Arcade.Body.prototype, "x", { get : function () { return this.position.x; }, set : function (k) { this.position.x = k; } }), Object.defineProperty(i.Physics.Arcade.Body.prototype, "y", { get : function () { return this.position.y; }, set : function (k) { this.position.y = k; } }), i.Physics.Arcade.Body.render = function (k, m, e, o) { "undefined" == typeof o && (o = !0), e = e || "rgba(0,255,0,0.4)", o ? (k.fillStyle = e, k.fillRect(y3U.j24(m.position.x, m.game.camera.x), y3U.d24(m.position.y, m.game.camera.y), m.width, m.height)) : (k.strokeStyle = e, k.strokeRect(y3U.c24(m.position.x, m.game.camera.x), y3U.s24(m.position.y, m.game.camera.y), m.width, m.height)); }, i.Physics.Arcade.Body.renderBodyInfo = function (k, m) { k.line("x: " + m.x.toFixed(2), "y: " + m.y.toFixed(2), "width: " + m.width, "height: " + m.height), k.line("velocity x: " + m.velocity.x.toFixed(2), "y: " + m.velocity.y.toFixed(2), "deltaX: " + m._dx.toFixed(2), "deltaY: " + m._dy.toFixed(2)), k.line("acceleration x: " + m.acceleration.x.toFixed(2), "y: " + m.acceleration.y.toFixed(2), "speed: " + m.speed.toFixed(2), "angle: " + m.angle.toFixed(2)), k.line("gravity x: " + m.gravity.x, "y: " + m.gravity.y, "bounce x: " + m.bounce.x.toFixed(2), "y: " + m.bounce.y.toFixed(2)), k.line("touching left: " + m.touching.left, "right: " + m.touching.right, "up: " + m.touching.up, "down: " + m.touching.down), k.line("blocked left: " + m.blocked.left, "right: " + m.blocked.right, "up: " + m.blocked.up, "down: " + m.blocked.down); }, i.Physics.Arcade.Body.prototype.constructor = i.Physics.Arcade.Body, i.Particles = function (k) { this.game = k, this.emitters = {}, this.ID = 0; }, i.Particles.prototype = { add : function (k) { return this.emitters[k.name] = k, k; }, remove : function (k) { delete this.emitters[k.name]; }, update : function () { for (var k in this.emitters) this.emitters[k].exists && this.emitters[k].update(); } }, i.Particles.prototype.constructor = i.Particles, i.Particles.Arcade = {}, i.Particles.Arcade.Emitter = function (k, m, e, o) { this.maxParticles = o || 50, i.Group.call(this, k), this.name = "emitter" + this.game.particles.ID++, this.type = i.EMITTER, this.area = new i.Rectangle(m, e, 1, 1), this.minParticleSpeed = new i.Point(-100, -100), this.maxParticleSpeed = new i.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 = i.Particle, this.particleDrag = new i.Point, this.angularDrag = 0, this.frequency = 100, this.lifespan = 2e3, this.bounce = new i.Point, this.on = !1, this.particleAnchor = new i.Point(.5, .5), this.blendMode = i.blendModes.NORMAL, this.emitX = m, this.emitY = e, this.autoScale = !1, this.autoAlpha = !1, this.particleBringToTop = !1, this.particleSendToBack = !1, this._minParticleScale = new i.Point(1, 1), this._maxParticleScale = new i.Point(1, 1), this._quantity = 0, this._timer = 0, this._counter = 0, this._explode = !0, this._frames = null; }, i.Particles.Arcade.Emitter.prototype = Object.create(i.Group.prototype), i.Particles.Arcade.Emitter.prototype.constructor = i.Particles.Arcade.Emitter, i.Particles.Arcade.Emitter.prototype.update = function () { this.on && y3U.Q24(this.game.time.time, this._timer) && (this._timer = this.game.time.time + y3U.a14(this.frequency, this.game.time.slowMotion), this.emitParticle() && (this._counter++, y3U.W14(this._quantity, 0) && y3U.m14(this._counter, this._quantity) && (this.on = !1))); for (var k = this.children.length; k--; ) this.children[k].exists && this.children[k].update(); }, i.Particles.Arcade.Emitter.prototype.makeParticles = function (k, m, e, o, n) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = this.maxParticles), "undefined" == typeof o && (o = !1), "undefined" == typeof n && (n = !1); var u, q = 0, f = k, j = m; for (this._frames = m, y3U.A14(e, this.maxParticles) && (this.maxParticles = e); y3U.w14(e, q); ) Array.isArray(k) && (f = this.game.rnd.pick(k)), Array.isArray(m) && (j = this.game.rnd.pick(m)), u = new this.particleClass(this.game, 0, 0, f, j), this.game.physics.arcade.enable(u, !1), o ? (u.body.checkCollision.any = !0, u.body.checkCollision.none = !1) : u.body.checkCollision.none = !0, u.body.collideWorldBounds = n, u.body.skipQuadTree = !0, u.exists = !1, u.visible = !1, u.anchor.copyFrom(this.particleAnchor), this.add(u), q++; return this; }, i.Particles.Arcade.Emitter.prototype.kill = function () { this.on = !1, this.alive = !1, this.exists = !1; }, i.Particles.Arcade.Emitter.prototype.revive = function () { this.alive = !0, this.exists = !0; }, i.Particles.Arcade.Emitter.prototype.explode = function (k, m) { this.start(!0, k, 0, m, !1); }, i.Particles.Arcade.Emitter.prototype.flow = function (k, m, e) { this.start(!1, k, m, e, !0); }, i.Particles.Arcade.Emitter.prototype.start = function (k, m, e, o, n) { if ("undefined" == typeof k && (k = !0), "undefined" == typeof m && (m = 0), ("undefined" == typeof e || y3U.E14(null, e)) && (e = 250), "undefined" == typeof o && (o = 0), "undefined" == typeof n && (n = !1), y3U.e14(o, this.maxParticles) && (o = this.maxParticles), this.revive(), this.visible = !0, this.lifespan = m, this.frequency = e, k || n) for (var u = 0; y3U.g14(o, u); u++) this.emitParticle(); else this.on = !0, this._quantity += o, this._counter = 0, this._timer = this.game.time.time + y3U.x14(e, this.game.time.slowMotion); }, i.Particles.Arcade.Emitter.prototype.emitParticle = function () { var k = this.getFirstExists(!1); return y3U.p14(null, k) ? !1 : (y3U.q14(this.width, 1) || y3U.b14(this.height, 1) ? k.reset(this.game.rnd.integerInRange(this.left, this.right), this.game.rnd.integerInRange(this.top, this.bottom)) : k.reset(this.emitX, this.emitY), k.angle = 0, k.lifespan = this.lifespan, this.particleBringToTop ? this.bringToTop(k) : this.particleSendToBack && this.sendToBack(k), this.autoScale ? k.setScaleData(this.scaleData) : y3U.j14(1, this.minParticleScale) || y3U.d14(1, this.maxParticleScale) ? k.scale.set(this.game.rnd.realInRange(this.minParticleScale, this.maxParticleScale)) : (y3U.c14(this._minParticleScale.x, this._maxParticleScale.x) || y3U.s14(this._minParticleScale.y, this._maxParticleScale.y)) && k.scale.set(this.game.rnd.realInRange(this._minParticleScale.x, this._maxParticleScale.x), this.game.rnd.realInRange(this._minParticleScale.y, this._maxParticleScale.y)), k.frame = Array.isArray(y3U.Q14("object", this._frames)) ? this.game.rnd.pick(this._frames) : this._frames, this.autoAlpha ? k.setAlphaData(this.alphaData) : k.alpha = this.game.rnd.realInRange(this.minParticleAlpha, this.maxParticleAlpha), k.blendMode = this.blendMode, k.body.updateBounds(), k.body.bounce.setTo(this.bounce.x, this.bounce.y), k.body.velocity.x = this.game.rnd.integerInRange(this.minParticleSpeed.x, this.maxParticleSpeed.x), k.body.velocity.y = this.game.rnd.integerInRange(this.minParticleSpeed.y, this.maxParticleSpeed.y), k.body.angularVelocity = this.game.rnd.integerInRange(this.minRotation, this.maxRotation), k.body.gravity.y = this.gravity, k.body.drag.x = this.particleDrag.x, k.body.drag.y = this.particleDrag.y, k.body.angularDrag = this.angularDrag, k.onEmit(), !0); }, i.Particles.Arcade.Emitter.prototype.setSize = function (k, m) { this.area.width = k, this.area.height = m; }, i.Particles.Arcade.Emitter.prototype.setXSpeed = function (k, m) { k = k || 0, m = m || 0, this.minParticleSpeed.x = k, this.maxParticleSpeed.x = m; }, i.Particles.Arcade.Emitter.prototype.setYSpeed = function (k, m) { k = k || 0, m = m || 0, this.minParticleSpeed.y = k, this.maxParticleSpeed.y = m; }, i.Particles.Arcade.Emitter.prototype.setRotation = function (k, m) { k = k || 0, m = m || 0, this.minRotation = k, this.maxRotation = m; }, i.Particles.Arcade.Emitter.prototype.setAlpha = function (k, m, e, o, n) { if ("undefined" == typeof k && (k = 1), "undefined" == typeof m && (m = 1), "undefined" == typeof e && (e = 0), "undefined" == typeof o && (o = i.Easing.Linear.None), "undefined" == typeof n && (n = !1), this.minParticleAlpha = k, this.maxParticleAlpha = m, this.autoAlpha = !1, y3U.a64(e, 0) && y3U.W64(k, m)) { var u = { v : k }, q = this.game.make.tween(u).to({ v : m }, e, o); q.yoyo(n), this.alphaData = q.generateData(60), this.alphaData.reverse(), this.autoAlpha = !0; } }, i.Particles.Arcade.Emitter.prototype.setScale = function (k, m, e, o, n, u, q) { if ("undefined" == typeof k && (k = 1), "undefined" == typeof m && (m = 1), "undefined" == typeof e && (e = 1), "undefined" == typeof o && (o = 1), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = i.Easing.Linear.None), "undefined" == typeof q && (q = !1), this.minParticleScale = 1, this.maxParticleScale = 1, this._minParticleScale.set(k, e), this._maxParticleScale.set(m, o), this.autoScale = !1, y3U.m64(n, 0) && (y3U.A64(k, m) || y3U.w64(e, o))) { var f = { x : k, y : e }, j = this.game.make.tween(f).to({ x : m, y : o }, n, u); j.yoyo(q), this.scaleData = j.generateData(60), this.scaleData.reverse(), this.autoScale = !0; } }, i.Particles.Arcade.Emitter.prototype.at = function (k) { k.center ? (this.emitX = k.center.x, this.emitY = k.center.y) : (this.emitX = k.world.x + y3U.E64(k.anchor.x, k.width), this.emitY = k.world.y + y3U.e64(k.anchor.y, k.height)); }, Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "width", { get : function () { return this.area.width; }, set : function (k) { this.area.width = k; } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "height", { get : function () { return this.area.height; }, set : function (k) { this.area.height = k; } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "x", { get : function () { return this.emitX; }, set : function (k) { this.emitX = k; } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "y", { get : function () { return this.emitY; }, set : function (k) { this.emitY = k; } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "left", { get : function () { return Math.floor(y3U.g64(this.x, this.area.width / 2)); } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "right", { get : function () { return Math.floor(this.x + y3U.r64(this.area.width, 2)); } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "top", { get : function () { return Math.floor(y3U.i64(this.y, this.area.height / 2)); } }), Object.defineProperty(i.Particles.Arcade.Emitter.prototype, "bottom", { get : function () { return Math.floor(this.y + y3U.u64(this.area.height, 2)); } }), i.Tile = function (k, m, e, o, n, u) { this.layer = k, this.index = m, this.x = e, this.y = o, this.worldX = y3U.P64(e, n), this.worldY = y3U.D64(o, u), this.width = n, this.height = u, this.centerX = Math.abs(y3U.Z64(n, 2)), this.centerY = Math.abs(y3U.R64(u, 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; }, i.Tile.prototype = { containsPoint : function (k, m) { return !(y3U.O64(k, this.worldX) || y3U.V64(m, this.worldY) || y3U.k84(k, this.right) || y3U.G84(m, this.bottom)); }, intersects : function (k, m, e, o) { return y3U.N84(e, this.worldX) ? !1 : y3U.L84(o, this.worldY) ? !1 : y3U.z84(k, this.worldX + this.width) ? !1 : y3U.J84(m, this.worldY + this.height) ? !1 : !0; }, setCollisionCallback : function (k, m) { this.collisionCallback = k, this.collisionCallbackContext = m; }, destroy : function () { this.collisionCallback = null, this.collisionCallbackContext = null, this.properties = null; }, setCollision : function (k, m, e, o) { this.collideLeft = k, this.collideRight = m, this.collideUp = e, this.collideDown = o, this.faceLeft = k, this.faceRight = m, this.faceTop = e, this.faceBottom = o; }, 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 (k, m) { return k && m ? this.collideLeft || this.collideRight || this.collideUp || this.collideDown || this.faceTop || this.faceBottom || this.faceLeft || this.faceRight || this.collisionCallback : k ? this.collideLeft || this.collideRight || this.collideUp || this.collideDown : m ? this.faceTop || this.faceBottom || this.faceLeft || this.faceRight : !1; }, copy : function (k) { this.index = k.index, this.alpha = k.alpha, this.properties = k.properties, this.collideUp = k.collideUp, this.collideDown = k.collideDown, this.collideLeft = k.collideLeft, this.collideRight = k.collideRight, this.collisionCallback = k.collisionCallback, this.collisionCallbackContext = k.collisionCallbackContext; } }, i.Tile.prototype.constructor = i.Tile, Object.defineProperty(i.Tile.prototype, "collides", { get : function () { return this.collideLeft || this.collideRight || this.collideUp || this.collideDown; } }), Object.defineProperty(i.Tile.prototype, "canCollide", { get : function () { return this.collideLeft || this.collideRight || this.collideUp || this.collideDown || this.collisionCallback; } }), Object.defineProperty(i.Tile.prototype, "left", { get : function () { return this.worldX; } }), Object.defineProperty(i.Tile.prototype, "right", { get : function () { return this.worldX + this.width; } }), Object.defineProperty(i.Tile.prototype, "top", { get : function () { return this.worldY; } }), Object.defineProperty(i.Tile.prototype, "bottom", { get : function () { return this.worldY + this.height; } }), i.Tilemap = function (k, m, e, o, n, u) { this.game = k, this.key = m; var q = i.TilemapParser.parse(this.game, m, e, o, n, u); y3U.H84(null, q) && (this.width = q.width, this.height = q.height, this.tileWidth = q.tileWidth, this.tileHeight = q.tileHeight, this.orientation = q.orientation, this.format = q.format, this.version = q.version, this.properties = q.properties, this.widthInPixels = q.widthInPixels, this.heightInPixels = q.heightInPixels, this.layers = q.layers, this.tilesets = q.tilesets, this.tiles = q.tiles, this.objects = q.objects, this.collideIndexes = [], this.collision = q.collision, this.images = q.images, this.currentLayer = 0, this.debugMap = [], this._results = [], this._tempA = 0, this._tempB = 0); }, i.Tilemap.CSV = 0, i.Tilemap.TILED_JSON = 1, i.Tilemap.NORTH = 0, i.Tilemap.EAST = 1, i.Tilemap.SOUTH = 2, i.Tilemap.WEST = 3, i.Tilemap.prototype = { create : function (k, m, e, o, n, u) { return "undefined" == typeof u && (u = this.game.world), this.width = m, this.height = e, this.setTileSize(o, n), this.layers.length = 0, this.createBlankLayer(k, m, e, o, n, u); }, setTileSize : function (k, m) { this.tileWidth = k, this.tileHeight = m, this.widthInPixels = y3U.h84(this.width, k), this.heightInPixels = y3U.F84(this.height, m); }, addTilesetImage : function (k, m, e, o, n, u, q) { if ("undefined" == typeof e && (e = this.tileWidth), "undefined" == typeof o && (o = this.tileHeight), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = 0), "undefined" == typeof q && (q = 0), y3U.M84(0, e) && (e = 32), y3U.n84(0, o) && (o = 32), "undefined" == typeof m) { if ("string" != typeof k) return null; if (m = k, !this.game.cache.checkImageKey(m)) return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "' + m + '"'), null; } if ("string" == typeof k && (k = this.getTilesetIndex(k), y3U.f84(null, k) && y3U.K84(this.format, i.Tilemap.TILED_JSON))) return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "' + m + '"'), null; if (this.tilesets[k]) return this.tilesets[k].setImage(this.game.cache.getImage(m)), this.tilesets[k]; var f = new i.Tileset(m, q, e, o, n, u, {}); f.setImage(this.game.cache.getImage(m)), this.tilesets.push(f); for (var j = y3U.B84(this.tilesets.length, 1), U0 = n, k0 = n, a0 = 0, T0 = 0, G0 = 0, W0 = q; y3U.l84(W0, q + f.total) && (this.tiles[W0] = [U0, k0, j], U0 += e + u, a0++, y3U.X84(a0, f.total)) && (T0++, y3U.Y84(T0, f.columns) || (U0 = n, k0 += o + u, T0 = 0, G0++, y3U.U07(G0, f.rows))); W0++); return f; }, createFromObjects : function (k, m, e, o, n, u, q, f, j) { if ("undefined" == typeof n && (n = !0), "undefined" == typeof u && (u = !1), "undefined" == typeof q && (q = this.game.world), "undefined" == typeof f && (f = i.Sprite), "undefined" == typeof j && (j = !0), !this.objects[k]) return void console.warn("Tilemap.createFromObjects: Invalid objectgroup name given: " + k); for (var U0, k0 = 0, a0 = this.objects[k].length; y3U.T07(a0, k0); k0++) if (y3U.S07(this.objects[k][k0].gid, m)) { U0 = new f(this.game, this.objects[k][k0].x, this.objects[k][k0].y, e, o), U0.name = this.objects[k][k0].name, U0.visible = this.objects[k][k0].visible, U0.autoCull = u, U0.exists = n, j && (U0.y -= U0.height), q.add(U0); for (var T0 in this.objects[k][k0].properties) q.set(U0, T0, this.objects[k][k0].properties[T0], !1, !1, 0, !0); } }, createFromTiles : function (m, e, o, n, u, q) { "number" == typeof m && (m = [m]), "undefined" == typeof e || y3U.I07(null, e) ? e = [] : "number" == typeof e && (e = [e]), n = this.getLayer(n), "undefined" == typeof u && (u = this.game.world), "undefined" == typeof q && (q = {}), void 0 === q.customClass && (q.customClass = i.Sprite), void 0 === q.adjustY && (q.adjustY = !0); var f = this.layers[n].width, j = this.layers[n].height; if (this.copy(0, 0, f, j, n), y3U.C07(this._results.length, 2)) return 0; for (var U0, k0 = 0, a0 = 1, T0 = this._results.length; y3U.v07(T0, a0); a0++) if (-1 !== m.indexOf(this._results[a0].index)) { var G0 = function (k) { U0[W0] = k[W0]; }; U0 = new q.customClass(this.game, this._results[a0].worldX, this._results[a0].worldY, o); for (var W0 in q) G0(q); u.add(U0), k0++; } if (y3U.t07(1, e.length)) for (a0 = 0; y3U.y07(a0, m.length); a0++) this.replace(m[a0], e[0], 0, 0, f, j, n); else if (y3U.o07(e.length, 1)) for (a0 = 0; y3U.x07(a0, m.length); a0++) this.replace(m[a0], e[a0], 0, 0, f, j, n); return k0; }, createLayer : function (k, m, e, o) { "undefined" == typeof m && (m = this.game.width), "undefined" == typeof e && (e = this.game.height), "undefined" == typeof o && (o = this.game.world); var n = k; return "string" == typeof k && (n = this.getLayerIndex(k)), y3U.p07(null, n) || y3U.q07(n, this.layers.length) ? void console.warn("Tilemap.createLayer: Invalid layer ID given: " + n) : o.add(new i.TilemapLayer(this.game, this, n, m, e)); }, createBlankLayer : function (k, m, e, o, n, u) { if ("undefined" == typeof u && (u = this.game.world), y3U.b07(null, this.getLayerIndex(k))) return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists"); for (var q, f = { name : k, x : 0, y : 0, width : m, height : e, widthInPixels : y3U.j07(m, o), heightInPixels : y3U.d07(e, n), alpha : 1, visible : !0, properties : {}, indexes : [], callbacks : [], bodies : [], data : null }, j = [], U0 = 0; y3U.c07(e, U0); U0++) { var k0 = function () { q = []; }; k0(); for (var a0 = 0; y3U.s07(m, a0); a0++) q.push(new i.Tile(f, -1, a0, U0, o, n)); j.push(q); } f.data = j, this.layers.push(f), this.currentLayer = y3U.Q07(this.layers.length, 1); var T0 = f.widthInPixels, G0 = f.heightInPixels; y3U.a77(T0, this.game.width) && (T0 = this.game.width), y3U.W77(G0, this.game.height) && (G0 = this.game.height); var j = new i.TilemapLayer(this.game, this, y3U.m77(this.layers.length, 1), T0, G0); return j.name = k, u.add(j); }, getIndex : function (k, m) { for (var e = 0; y3U.A77(e, k.length); e++) if (y3U.w77(k[e].name, m)) return e; return null; }, getLayerIndex : function (k) { return this.getIndex(this.layers, k); }, getTilesetIndex : function (k) { return this.getIndex(this.tilesets, k); }, getImageIndex : function (k) { return this.getIndex(this.images, k); }, getObjectIndex : function (k) { return this.getIndex(this.objects, k); }, setTileIndexCallback : function (k, m, e, o) { if (o = this.getLayer(o), "number" == typeof k) this.layers[o].callbacks[k] = { callback : m, callbackContext : e }; else for (var n = 0, u = k.length; y3U.E77(u, n); n++) this.layers[o].callbacks[k[n]] = { callback : m, callbackContext : e }; }, setTileLocationCallback : function (k, m, e, o, n, u, q) { if (q = this.getLayer(q), this.copy(k, m, e, o, q), !(y3U.e77(this._results.length, 2))) for (var f = 1; y3U.g77(f, this._results.length); f++) this._results[f].setCollisionCallback(n, u); }, setCollision : function (k, m, e, o) { if ("undefined" == typeof m && (m = !0), "undefined" == typeof o && (o = !0), e = this.getLayer(e), "number" == typeof k) return this.setCollisionByIndex(k, m, e, !0); for (var n = 0, u = k.length; y3U.r77(u, n); n++) this.setCollisionByIndex(k[n], m, e, !1); o && this.calculateFaces(e); }, setCollisionBetween : function (k, m, e, o, n) { if ("undefined" == typeof e && (e = !0), "undefined" == typeof n && (n = !0), o = this.getLayer(o), !(y3U.i77(k, m))) { for (var u = k; y3U.u77(m, u); u++) this.setCollisionByIndex(u, e, o, !1); n && this.calculateFaces(o); } }, setCollisionByExclusion : function (k, m, e, o) { "undefined" == typeof m && (m = !0), "undefined" == typeof o && (o = !0), e = this.getLayer(e); for (var n = 0, u = this.tiles.length; y3U.P77(u, n); n++) - 1 === k.indexOf(n) && this.setCollisionByIndex(n, m, e, !1); o && this.calculateFaces(e); }, setCollisionByIndex : function (k, m, e, o) { if ("undefined" == typeof m && (m = !0), "undefined" == typeof e && (e = this.currentLayer), "undefined" == typeof o && (o = !0), m) this.collideIndexes.push(k); else { var n = this.collideIndexes.indexOf(k); n > -1 && this.collideIndexes.splice(n, 1); } for (var u = 0; y3U.D77(u, this.layers[e].height); u++) for (var q = 0; y3U.Z77(q, this.layers[e].width); q++) { var f = this.layers[e].data[u][q]; f && y3U.R77(f.index, k) && (m ? f.setCollision(!0, !0, !0, !0) : f.resetCollision(), f.faceTop = m, f.faceBottom = m, f.faceLeft = m, f.faceRight = m); } return o && this.calculateFaces(e), e; }, getLayer : function (k) { return "undefined" == typeof k ? k = this.currentLayer : "string" == typeof k ? k = this.getLayerIndex(k) : y3U.O77(k, i.TilemapLayer) && (k = k.index), k; }, setPreventRecalculate : function (k) { if (k === !0 && this.preventingRecalculate !== !0 && (this.preventingRecalculate = !0, this.needToRecalculate = {}), k === !1 && this.preventingRecalculate === !0) { this.preventingRecalculate = !1; for (var m in this.needToRecalculate) this.calculateFaces(m); this.needToRecalculate = !1; } }, calculateFaces : function (k) { if (this.preventingRecalculate) return void(this.needToRecalculate[k] = !0); for (var m = null, e = null, o = null, n = null, u = 0, q = this.layers[k].height; y3U.V77(q, u); u++) for (var f = 0, j = this.layers[k].width; y3U.k47(j, f); f++) { var U0 = this.layers[k].data[u][f]; U0 && (m = this.getTileAbove(k, f, u), e = this.getTileBelow(k, f, u), o = this.getTileLeft(k, f, u), n = this.getTileRight(k, f, u), U0.collides && (U0.faceTop = !0, U0.faceBottom = !0, U0.faceLeft = !0, U0.faceRight = !0), m && m.collides && (U0.faceTop = !1), e && e.collides && (U0.faceBottom = !1), o && o.collides && (U0.faceLeft = !1), n && n.collides && (U0.faceRight = !1)); } }, getTileAbove : function (k, m, e) { return y3U.G47(e, 0) ? this.layers[k].data[y3U.N47(e, 1)][m] : null; }, getTileBelow : function (k, m, e) { return y3U.L47(e, this.layers[k].height - 1) ? this.layers[k].data[e + 1][m] : null; }, getTileLeft : function (k, m, e) { return y3U.z47(m, 0) ? this.layers[k].data[e][y3U.J47(m, 1)] : null; }, getTileRight : function (k, m, e) { return y3U.H47(m, this.layers[k].width - 1) ? this.layers[k].data[e][m + 1] : null; }, setLayer : function (k) { k = this.getLayer(k), this.layers[k] && (this.currentLayer = k); }, hasTile : function (k, m, e) { return e = this.getLayer(e), this.layers[e].data[m][k].index > -1; }, removeTile : function (k, m, e) { if (e = this.getLayer(e), y3U.h47(k, 0) && y3U.F47(k, this.layers[e].width) && y3U.M47(m, 0) && y3U.n47(m, this.layers[e].height) && this.hasTile(k, m, e)) { var o = this.layers[e].data[m][k]; return this.layers[e].data[m][k] = new i.Tile(this.layers[e], -1, k, m, this.tileWidth, this.tileHeight), this.layers[e].dirty = !0, this.calculateFaces(e), o; } }, removeTileWorldXY : function (k, m, e, o, n) { return n = this.getLayer(n), k = y3U.f47(this.game.math.snapToFloor(k, e), e), m = y3U.K47(this.game.math.snapToFloor(m, o), o), this.removeTile(k, m, n); }, putTile : function (k, m, e, o) { if (y3U.B47(null, k)) return this.removeTile(m, e, o); if (o = this.getLayer(o), y3U.l47(m, 0) && y3U.X47(m, this.layers[o].width) && y3U.Y47(e, 0) && y3U.U37(e, this.layers[o].height)) { var n; return y3U.T37(k, i.Tile) ? (n = k.index, this.hasTile(m, e, o) ? this.layers[o].data[e][m].copy(k) : this.layers[o].data[e][m] = new i.Tile(o, n, m, e, k.width, k.height)) : (n = k, this.hasTile(m, e, o) ? this.layers[o].data[e][m].index = n : this.layers[o].data[e][m] = new i.Tile(this.layers[o], n, m, e, this.tileWidth, this.tileHeight)), this.collideIndexes.indexOf(n) > -1 ? this.layers[o].data[e][m].setCollision(!0, !0, !0, !0) : this.layers[o].data[e][m].resetCollision(), this.layers[o].dirty = !0, this.calculateFaces(o), this.layers[o].data[e][m]; } return null; }, putTileWorldXY : function (k, m, e, o, n, u) { return u = this.getLayer(u), m = y3U.S37(this.game.math.snapToFloor(m, o), o), e = y3U.I37(this.game.math.snapToFloor(e, n), n), this.putTile(k, m, e, u); }, searchTileIndex : function (k, m, e, o) { "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = !1), o = this.getLayer(o); var n = 0; if (e) { for (var u = y3U.C37(this.layers[o].height, 1); y3U.v37(u, 0); u--) for (var q = y3U.t37(this.layers[o].width, 1); y3U.y37(q, 0); q--) if (y3U.o37(this.layers[o].data[u][q].index, k)) { if (y3U.x37(n, m)) return this.layers[o].data[u][q]; n++; } } else for (var u = 0; y3U.p37(u, this.layers[o].height); u++) for (var q = 0; y3U.q37(q, this.layers[o].width); q++) if (y3U.b37(this.layers[o].data[u][q].index, k)) { if (y3U.j37(n, m)) return this.layers[o].data[u][q]; n++; } return null; }, getTile : function (k, m, e, o) { return "undefined" == typeof o && (o = !1), e = this.getLayer(e), y3U.d37(k, 0) && y3U.c37(k, this.layers[e].width) && y3U.s37(m, 0) && y3U.Q37(m, this.layers[e].height) ? -1 === this.layers[e].data[m][k].index ? o ? this.layers[e].data[m][k] : null : this.layers[e].data[m][k] : null; }, getTileWorldXY : function (k, m, e, o, n) { return "undefined" == typeof e && (e = this.tileWidth), "undefined" == typeof o && (o = this.tileHeight), n = this.getLayer(n), k = y3U.a97(this.game.math.snapToFloor(k, e), e), m = y3U.W97(this.game.math.snapToFloor(m, o), o), this.getTile(k, m, n); }, copy : function (k, m, e, o, n) { if (n = this.getLayer(n), !this.layers[n]) return void(this._results.length = 0); "undefined" == typeof k && (k = 0), "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = this.layers[n].width), "undefined" == typeof o && (o = this.layers[n].height), y3U.m97(0, k) && (k = 0), y3U.A97(0, m) && (m = 0), y3U.w97(e, this.layers[n].width) && (e = this.layers[n].width), y3U.E97(o, this.layers[n].height) && (o = this.layers[n].height), this._results.length = 0, this._results.push({ x : k, y : m, width : e, height : o, layer : n }); for (var u = m; y3U.e97(m + o, u); u++) for (var q = k; y3U.g97(k + e, q); q++) this._results.push(this.layers[n].data[u][q]); return this._results; }, paste : function (k, m, e, o) { if ("undefined" == typeof k && (k = 0), "undefined" == typeof m && (m = 0), o = this.getLayer(o), e && !(y3U.r97(e.length, 2))) { for (var n = y3U.i97(e[1].x, k), u = y3U.u97(e[1].y, m), q = 1; y3U.P97(q, e.length); q++) this.layers[o].data[u + e[q].y][n + e[q].x].copy(e[q]); this.layers[o].dirty = !0, this.calculateFaces(o); } }, swap : function (k, m, e, o, n, u, q) { q = this.getLayer(q), this.copy(e, o, n, u, q), y3U.D97(this._results.length, 2) || (this._tempA = k, this._tempB = m, this._results.forEach(this.swapHandler, this), this.paste(e, o, this._results, q)); }, swapHandler : function (k) { y3U.Z97(k.index, this._tempA) ? k.index = this._tempB : y3U.R97(k.index, this._tempB) && (k.index = this._tempA); }, forEach : function (k, m, e, o, n, u, q) { q = this.getLayer(q), this.copy(e, o, n, u, q), y3U.O97(this._results.length, 2) || (this._results.forEach(k, m), this.paste(e, o, this._results, q)); }, replace : function (k, m, e, o, n, u, q) { if (q = this.getLayer(q), this.copy(e, o, n, u, q), !(y3U.V97(this._results.length, 2))) { for (var f = 1; y3U.k57(f, this._results.length); f++) y3U.G57(this._results[f].index, k) && (this._results[f].index = m); this.paste(e, o, this._results, q); } }, random : function (k, m, e, o, n) { if (n = this.getLayer(n), this.copy(k, m, e, o, n), !(y3U.N57(this._results.length, 2))) { for (var u = [], q = 1; y3U.L57(q, this._results.length); q++) if (this._results[q].index) { var f = this._results[q].index; -1 === u.indexOf(f) && u.push(f); } for (var j = 1; y3U.z57(j, this._results.length); j++) this._results[j].index = this.game.rnd.pick(u); this.paste(k, m, this._results, n); } }, shuffle : function (k, m, e, o, n) { if (n = this.getLayer(n), this.copy(k, m, e, o, n), !(y3U.J57(this._results.length, 2))) { for (var u = [], q = 1; y3U.H57(q, this._results.length); q++) this._results[q].index && u.push(this._results[q].index); i.Utils.shuffle(u); for (var f = 1; y3U.h57(f, this._results.length); f++) this._results[f].index = u[y3U.F57(f, 1)]; this.paste(k, m, this._results, n); } }, fill : function (k, m, e, o, n, u) { if (u = this.getLayer(u), this.copy(m, e, o, n, u), !(y3U.M57(this._results.length, 2))) { for (var q = 1; y3U.n57(q, this._results.length); q++) this._results[q].index = k; this.paste(m, e, this._results, u); } }, removeAllLayers : function () { this.layers.length = 0, this.currentLayer = 0; }, dump : function () { for (var k = "", m = [""], e = 0; y3U.f57(e, this.layers[this.currentLayer].height); e++) { for (var o = 0; y3U.K57(o, this.layers[this.currentLayer].width); o++) k += "%c ", m.push(y3U.B57(this.layers[this.currentLayer].data[e][o], 1) ? this.debugMap[this.layers[this.currentLayer].data[e][o]] ? "background: " + this.debugMap[this.layers[this.currentLayer].data[e][o]] : "background: #ffffff" : "background: rgb(0, 0, 0)"); k += "\n"; } m[0] = k, console.log.apply(console, m); }, destroy : function () { this.removeAllLayers(), this.data = [], this.game = null; } }, i.Tilemap.prototype.constructor = i.Tilemap, Object.defineProperty(i.Tilemap.prototype, "layer", { get : function () { return this.layers[this.currentLayer]; }, set : function (k) { y3U.l57(k, this.currentLayer) && this.setLayer(k); } }), i.TilemapLayer = function (k, m, e, o, n) { o |= 0, n |= 0, this.game = k, this.map = m, this.index = e, this.layer = m.layers[e], this.canvas = i.Canvas.create(o, n), this.context = this.canvas.getContext("2d"), this.baseTexture = new PIXI.BaseTexture(this.canvas), this.texture = new PIXI.Texture(this.baseTexture), this.textureFrame = new i.Frame(0, 0, 0, o, n, "tilemapLayer", k.rnd.uuid()), i.Image.call(this, this.game, 0, 0, this.texture, this.textureFrame), this.name = "", this.type = i.TILEMAPLAYER, this.fixedToCamera = !0, this.cameraOffset = new i.Point(0, 0), this.renderSettings = { enableScrollDelta : !0, overdrawRatio : .2, copyCanvas : null, copySliceCount : 4 }, this.debug = !1, 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 : m.tileWidth, tileHeight : m.tileHeight, cw : m.tileWidth, ch : m.tileHeight, tilesets : [] }, this._scrollX = 0, this._scrollY = 0, this._results = [], k.device.canvasBitBltShift || (this.renderSettings.copyCanvas = i.TilemapLayer.ensureSharedCopyCanvas()); }, i.TilemapLayer.sharedCopyCanvas = null, i.TilemapLayer.ensureSharedCopyCanvas = function () { return this.sharedCopyCanvas || (this.sharedCopyCanvas = i.Canvas.create(2, 2)), this.sharedCopyCanvas; }, i.TilemapLayer.prototype = Object.create(i.Image.prototype), i.TilemapLayer.prototype.constructor = i.TilemapLayer, Object.defineProperty(i.TilemapLayer.prototype, "tileColor", { get : function () { return this.debugSettings.missingImageFill; }, set : function (k) { this.debugSettings.missingImageFill = k; } }), i.TilemapLayer.prototype.postUpdate = function () { i.Image.prototype.postUpdate.call(this); var k = this.game.camera; this.scrollX = y3U.X57(k.x, this.scrollFactorX), this.scrollY = y3U.Y57(k.y, this.scrollFactorY), this.render(), y3U.U27(1, this._cache[7]) && (this.position.x = y3U.T27((k.view.x + this.cameraOffset.x), k.scale.x), this.position.y = y3U.S27((k.view.y + this.cameraOffset.y), k.scale.y)); }, i.TilemapLayer.prototype.resizeWorld = function () { this.game.world.setBounds(0, 0, this.layer.widthInPixels, this.layer.heightInPixels); }, i.TilemapLayer.prototype._fixX = function (k) { return y3U.I27(0, k) && (k = 0), y3U.C27(1, this.scrollFactorX) ? k : this._scrollX + (y3U.v27(k, this._scrollX / this.scrollFactorX)); }, i.TilemapLayer.prototype._unfixX = function (k) { return y3U.t27(1, this.scrollFactorX) ? k : y3U.y27(this._scrollX, this.scrollFactorX) + (y3U.o27(k, this._scrollX)); }, i.TilemapLayer.prototype._fixY = function (k) { return y3U.x27(0, k) && (k = 0), y3U.p27(1, this.scrollFactorY) ? k : this._scrollY + (y3U.q27(k, this._scrollY / this.scrollFactorY)); }, i.TilemapLayer.prototype._unfixY = function (k) { return y3U.b27(1, this.scrollFactorY) ? k : y3U.j27(this._scrollY, this.scrollFactorY) + (y3U.d27(k, this._scrollY)); }, i.TilemapLayer.prototype.getTileX = function (k) { return Math.floor(y3U.c27(this._fixX(k), this._mc.tileWidth)); }, i.TilemapLayer.prototype.getTileY = function (k) { return Math.floor(y3U.s27(this._fixY(k), this._mc.tileHeight)); }, i.TilemapLayer.prototype.getTileXY = function (k, m, e) { return e.x = this.getTileX(k), e.y = this.getTileY(m), e; }, i.TilemapLayer.prototype.getRayCastTiles = function (k, m, e, o) { m || (m = this.rayStepRate), "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1); var n = this.getTiles(k.x, k.y, k.width, k.height, e, o); if (y3U.Q27(0, n.length)) return []; for (var u = k.coordinatesOnLine(m), q = [], f = 0; y3U.a17(f, n.length); f++) for (var j = 0; y3U.W17(j, u.length); j++) { var U0 = n[f], k0 = u[j]; if (U0.containsPoint(k0[0], k0[1])) { q.push(U0); break; } } return q; }, i.TilemapLayer.prototype.getTiles = function (k, m, e, o, n, u) { "undefined" == typeof n && (n = !1), "undefined" == typeof u && (u = !1); var q = !(n || u); k = this._fixX(k), m = this._fixY(m); for (var f = Math.floor(y3U.m17(k, this._mc.cw)), j = Math.floor(y3U.A17(m, this._mc.ch)), U0 = y3U.w17(Math.ceil((k + e) / this._mc.cw), f), k0 = y3U.E17(Math.ceil((m + o) / this._mc.ch), j); this._results.length; ) this._results.pop(); for (var a0 = j; y3U.e17(j + k0, a0); a0++) for (var T0 = f; y3U.g17(f + U0, T0); T0++) { var G0 = this.layer.data[a0]; G0 && G0[T0] && (q || G0[T0].isInteresting(n, u)) && this._results.push(G0[T0]); } return this._results; }, Object.defineProperty(i.TilemapLayer.prototype, "wrap", { get : function () { return this._wrap; }, set : function (k) { this._wrap = k, this.dirty = !0; } }), i.TilemapLayer.prototype.resolveTileset = function (k) { var m = this._mc.tilesets; if (y3U.r17(2e3, k)) for (; y3U.i17(m.length, k); ) m.push(void 0); var e = this.map.tiles[k] && this.map.tiles[k][2]; if (y3U.u17(null, e)) { var o = this.map.tilesets[e]; if (o && o.containsTileIndex(k)) return m[k] = o; } return m[k] = null; }, i.TilemapLayer.prototype.resetTilesetCache = function () { for (var k = this._mc.tilesets; k.length; ) k.pop(); }, i.TilemapLayer.prototype.shiftCanvas = function (k, m, e) { var o = k.canvas, n = y3U.P17(o.width, Math.abs(m)), u = y3U.D17(o.height, Math.abs(e)), q = 0, f = 0, j = m, U0 = e; y3U.Z17(0, m) && (q = -m, j = 0), y3U.R17(0, e) && (f = -e, U0 = 0); var k0 = this.renderSettings.copyCanvas; if (k0) { var a0 = this.renderSettings.copySliceCount, T0 = Math.ceil(y3U.O17(u, a0)); y3U.V17(k0.width, n) && (k0.width = n), y3U.k67(k0.height, T0) && (k0.height = T0); var G0; y3U.G67(f, U0) ? G0 = T0 : (G0 = -T0, f += y3U.N67(T0, (a0 - 1)), U0 += y3U.L67(T0, (a0 - 1))); for (var W0 = k0.getContext("2d"); a0--; ) W0.clearRect(0, 0, n, T0), W0.drawImage(o, q, f, n, T0, 0, 0, n, T0), k.clearRect(j, U0, n, T0), k.drawImage(k0, 0, 0, n, T0, j, U0, n, T0), f += G0, U0 += G0; } else k.save(), k.globalCompositeOperation = "copy", k.drawImage(o, q, f, n, u, j, U0, n, u), k.restore(); }, i.TilemapLayer.prototype.renderRegion = function (k, m, e, o, n, u) { var q = this.context, f = this.layer.width, j = this.layer.height, U0 = this._mc.tileWidth, k0 = this._mc.tileHeight, a0 = this._mc.tilesets, T0 = y3U.z67(0, 0); this._wrap || (y3U.J67(n, e) && (e = Math.max(0, e), n = Math.min(y3U.H67(f, 1), n)), y3U.h67(u, o) && (o = Math.max(0, o), u = Math.min(y3U.F67(j, 1), u))); var G0, W0, N0, S0, I0, m0, A0 = y3U.M67(e * U0, k), L0 = y3U.n67(o * k0, m), z0 = y3U.f67((e + (1 << 20) * f), f), E0 = y3U.K67((o + (1 << 20) * j), j); for (q.fillStyle = this.tileColor, S0 = E0, m0 = y3U.B67(u, o), W0 = L0; y3U.l67(m0, 0); S0++, m0--, W0 += k0) { y3U.X67(S0, j) && (S0 -= j); var v0 = this.layer.data[S0]; for (N0 = z0, I0 = y3U.Y67(n, e), G0 = A0; y3U.U87(I0, 0); N0++, I0--, G0 += U0) { y3U.T87(N0, f) && (N0 -= f); var J0 = v0[N0]; if (J0 && !(y3U.S87(J0.index, 0))) { var t0 = J0.index, w0 = a0[t0]; void 0 === w0 && (w0 = this.resolveTileset(t0)), y3U.I87(J0.alpha, T0) || this.debug || (q.globalAlpha = J0.alpha, T0 = J0.alpha), w0 ? w0.draw(q, G0, W0, t0) : this.debugSettings.missingImageFill && (q.fillStyle = this.debugSettings.missingImageFill, q.fillRect(G0, W0, U0, k0)), J0.debug && this.debugSettings.debuggedTileOverfill && (q.fillStyle = this.debugSettings.debuggedTileOverfill, q.fillRect(G0, W0, U0, k0)); } } } }, i.TilemapLayer.prototype.renderDeltaScroll = function (k, m) { var e = this._mc.scrollX, o = this._mc.scrollY, n = this.canvas.width, u = this.canvas.height, q = this._mc.tileWidth, f = this._mc.tileHeight, j = 0, U0 = -q, k0 = 0, a0 = -f; if (y3U.C87(0, k) ? (j = n + k, U0 = y3U.v87(n, 1)) : y3U.t87(k, 0) && (U0 = k), y3U.y87(0, m) ? (k0 = u + m, a0 = y3U.o87(u, 1)) : y3U.x87(m, 0) && (a0 = m), this.shiftCanvas(this.context, k, m), j = Math.floor(y3U.p87((j + e), q)), U0 = Math.floor(y3U.q87((U0 + e), q)), k0 = Math.floor(y3U.b87((k0 + o), f)), a0 = Math.floor(y3U.j87((a0 + o), f)), y3U.d87(U0, j)) { this.context.clearRect(y3U.c87(j * q, e), 0, y3U.s87((U0 - j + 1), q), u); var T0 = Math.floor(y3U.Q87((0 + o), f)), G0 = Math.floor(y3U.a0I((u - 1 + o), f)); this.renderRegion(e, o, j, T0, U0, G0); } if (y3U.W0I(a0, k0)) { this.context.clearRect(0, y3U.m0I(k0 * f, o), n, y3U.A0I((a0 - k0 + 1), f)); var W0 = Math.floor(y3U.w0I((0 + e), q)), N0 = Math.floor(y3U.E0I((n - 1 + e), q)); this.renderRegion(e, o, W0, k0, N0, a0); } }, i.TilemapLayer.prototype.renderFull = function () { var k = this._mc.scrollX, m = this._mc.scrollY, e = this.canvas.width, o = this.canvas.height, n = this._mc.tileWidth, u = this._mc.tileHeight, q = Math.floor(y3U.e0I(k, n)), f = Math.floor(y3U.g0I((e - 1 + k), n)), j = Math.floor(y3U.r0I(m, u)), U0 = Math.floor(y3U.i0I((o - 1 + m), u)); this.context.clearRect(0, 0, e, o), this.renderRegion(k, m, q, j, f, U0); }, i.TilemapLayer.prototype.render = function () { var k = !1; if (this.visible) { (this.dirty || this.layer.dirty) && (this.layer.dirty = !1, k = !0); var m = this.canvas.width, e = this.canvas.height, o = y3U.u0I(0, this._scrollX), n = y3U.P0I(0, this._scrollY), u = this._mc, q = y3U.D0I(u.scrollX, o), f = y3U.Z0I(u.scrollY, n); if (k || y3U.R0I(0, q) || y3U.O0I(0, f) || y3U.V0I(u.renderWidth, m) || y3U.k7I(u.renderHeight, e)) return u.scrollX = o, u.scrollY = n, (y3U.G7I(u.renderWidth, m) || y3U.N7I(u.renderHeight, e)) && (u.renderWidth = m, u.renderHeight = e), this.debug && (this.context.globalAlpha = this.debugSettings.debugAlpha, this.debugSettings.forceFullRedraw && (k = !0)), !k && this.renderSettings.enableScrollDelta && y3U.L7I(Math.abs(q) + Math.abs(f), Math.min(m, e)) ? this.renderDeltaScroll(q, f) : this.renderFull(), this.debug && (this.context.globalAlpha = 1, this.renderDebug()), this.baseTexture.dirty(), this.dirty = !1, !0; } }, i.TilemapLayer.prototype.renderDebug = function () { var k, m, e, o, n, u, q = this._mc.scrollX, f = this._mc.scrollY, j = this.context, U0 = this.canvas.width, k0 = this.canvas.height, a0 = this.layer.width, T0 = this.layer.height, G0 = this._mc.tileWidth, W0 = this._mc.tileHeight, N0 = Math.floor(y3U.z7I(q, G0)), S0 = Math.floor(y3U.J7I((U0 - 1 + q), G0)), I0 = Math.floor(y3U.H7I(f, W0)), m0 = Math.floor(y3U.h7I((k0 - 1 + f), W0)), A0 = y3U.F7I(N0 * G0, q), L0 = y3U.M7I(I0 * W0, f), z0 = y3U.n7I((N0 + (1 << 20) * a0), a0), E0 = y3U.f7I((I0 + (1 << 20) * T0), T0); for (j.strokeStyle = this.debugSettings.facingEdgeStroke, o = E0, u = y3U.K7I(m0, I0), m = L0; y3U.B7I(u, 0); o++, u--, m += W0) { y3U.l7I(o, T0) && (o -= T0); var v0 = this.layer.data[o]; for (e = z0, n = y3U.X7I(S0, N0), k = A0; y3U.Y7I(n, 0); e++, n--, k += G0) { y3U.U4I(e, a0) && (e -= a0); var J0 = v0[e]; !J0 || y3U.T4I(J0.index, 0) || !J0.collides || (this.debugSettings.collidingTileOverfill && (j.fillStyle = this.debugSettings.collidingTileOverfill, j.fillRect(k, m, this._mc.cw, this._mc.ch)), this.debugSettings.facingEdgeStroke && (j.beginPath(), J0.faceTop && (j.moveTo(k, m), j.lineTo(k + this._mc.cw, m)), J0.faceBottom && (j.moveTo(k, m + this._mc.ch), j.lineTo(k + this._mc.cw, m + this._mc.ch)), J0.faceLeft && (j.moveTo(k, m), j.lineTo(k, m + this._mc.ch)), J0.faceRight && (j.moveTo(k + this._mc.cw, m), j.lineTo(k + this._mc.cw, m + this._mc.ch)), j.stroke())); } } }, Object.defineProperty(i.TilemapLayer.prototype, "scrollX", { get : function () { return this._scrollX; }, set : function (k) { this._scrollX = k; } }), Object.defineProperty(i.TilemapLayer.prototype, "scrollY", { get : function () { return this._scrollY; }, set : function (k) { this._scrollY = k; } }), Object.defineProperty(i.TilemapLayer.prototype, "collisionWidth", { get : function () { return this._mc.cw; }, set : function (k) { this._mc.cw = y3U.S4I(0, k), this.dirty = !0; } }), Object.defineProperty(i.TilemapLayer.prototype, "collisionHeight", { get : function () { return this._mc.ch; }, set : function (k) { this._mc.ch = y3U.I4I(0, k), this.dirty = !0; } }), i.TilemapParser = { parse : function (k, m, e, o, n, u) { if ("undefined" == typeof e && (e = 32), "undefined" == typeof o && (o = 32), "undefined" == typeof n && (n = 10), "undefined" == typeof u && (u = 10), "undefined" == typeof m) return this.getEmptyData(); if (y3U.C4I(null, m)) return this.getEmptyData(e, o, n, u); var q = k.cache.getTilemapData(m); if (q) { if (y3U.v4I(q.format, i.Tilemap.CSV)) return this.parseCSV(m, q.data, e, o); if (!q.format || y3U.t4I(q.format, i.Tilemap.TILED_JSON)) return this.parseTiledJSON(q.data); } else console.warn("Phaser.TilemapParser.parse - No map data found for key " + m); }, parseCSV : function (k, m, e, o) { var n = this.getEmptyData(); m = m.trim(); for (var u = [], q = m.split("\n"), f = q.length, j = 0, U0 = 0; y3U.y4I(U0, q.length); U0++) { var k0 = function () { u[U0] = []; }; k0(); for (var a0 = q[U0].split(","), T0 = 0; y3U.o4I(T0, a0.length); T0++) u[U0][T0] = new i.Tile(n.layers[0], parseInt(a0[T0], 10), T0, U0, e, o); y3U.x4I(0, j) && (j = a0.length); } return n.format = i.Tilemap.CSV, n.name = k, n.width = j, n.height = f, n.tileWidth = e, n.tileHeight = o, n.widthInPixels = y3U.p4I(j, e), n.heightInPixels = y3U.q4I(f, o), n.layers[0].width = j, n.layers[0].height = f, n.layers[0].widthInPixels = n.widthInPixels, n.layers[0].heightInPixels = n.heightInPixels, n.layers[0].data = u, n; }, getEmptyData : function (k, m, e, o) { var n = {}; n.width = 0, n.height = 0, n.tileWidth = 0, n.tileHeight = 0, "undefined" != typeof k && y3U.b4I(null, k) && (n.tileWidth = k), "undefined" != typeof m && y3U.j4I(null, m) && (n.tileHeight = m), "undefined" != typeof e && y3U.d4I(null, e) && (n.width = e), "undefined" != typeof o && y3U.c4I(null, o) && (n.height = o), n.orientation = "orthogonal", n.version = "1", n.properties = {}, n.widthInPixels = 0, n.heightInPixels = 0; var u = [], q = { name : "layer", x : 0, y : 0, width : 0, height : 0, widthInPixels : 0, heightInPixels : 0, alpha : 1, visible : !0, properties : {}, indexes : [], callbacks : [], bodies : [], data : [] }; return u.push(q), n.layers = u, n.images = [], n.objects = {}, n.collision = {}, n.tilesets = [], n.tiles = [], n; }, parseTiledJSON : function (f) { var j = function (k) { T0.layers = k; }, U0 = function (k) { T0.images = k; }; function k0(m, e) { var o = {}; for (var n in e) { var u = function (k) { o[q] = k[q]; }; var q = e[n]; u(m); } return o; } var a0 = function (k) { T0.tilesets = k; }; if (y3U.s4I("orthogonal", f.orientation)) return console.warn("TilemapParser.parseTiledJSON - Only orthogonal map types are supported in this version of Phaser"), null; var T0 = {}; T0.width = f.width, T0.height = f.height, T0.tileWidth = f.tilewidth, T0.tileHeight = f.tileheight, T0.orientation = f.orientation, T0.format = i.Tilemap.TILED_JSON, T0.version = f.version, T0.properties = f.properties, T0.widthInPixels = y3U.Q4I(T0.width, T0.tileWidth), T0.heightInPixels = y3U.a3I(T0.height, T0.tileHeight); for (var G0 = [], W0 = 0; y3U.W3I(W0, f.layers.length); W0++) if (y3U.m3I("tilelayer", f.layers[W0].type)) { var N0 = { name : f.layers[W0].name, x : f.layers[W0].x, y : f.layers[W0].y, width : f.layers[W0].width, height : f.layers[W0].height, widthInPixels : y3U.A3I(f.layers[W0].width, f.tilewidth), heightInPixels : y3U.w3I(f.layers[W0].height, f.tileheight), alpha : f.layers[W0].opacity, visible : f.layers[W0].visible, properties : {}, indexes : [], callbacks : [], bodies : [] }; f.layers[W0].properties && (N0.properties = f.layers[W0].properties); for (var S0 = 0, I0 = [], m0 = [], A0 = 0, L0 = f.layers[W0].data.length; y3U.E3I(L0, A0); A0++) I0.push(y3U.e3I(f.layers[W0].data[A0], 0) ? new i.Tile(N0, f.layers[W0].data[A0], S0, m0.length, f.tilewidth, f.tileheight) : new i.Tile(N0, -1, S0, m0.length, f.tilewidth, f.tileheight)), S0++, y3U.g3I(S0, f.layers[W0].width) && (m0.push(I0), S0 = 0, I0 = []); N0.data = m0, G0.push(N0); } j(G0); for (var z0 = [], W0 = 0; y3U.r3I(W0, f.layers.length); W0++) if (y3U.i3I("imagelayer", f.layers[W0].type)) { var E0 = { name : f.layers[W0].name, image : f.layers[W0].image, x : f.layers[W0].x, y : f.layers[W0].y, alpha : f.layers[W0].opacity, visible : f.layers[W0].visible, properties : {} }; f.layers[W0].properties && (E0.properties = f.layers[W0].properties), z0.push(E0); } U0(z0); for (var v0 = [], W0 = 0; y3U.u3I(W0, f.tilesets.length); W0++) { var J0 = f.tilesets[W0]; if (J0.image) { var t0 = new i.Tileset(J0.name, J0.firstgid, J0.tilewidth, J0.tileheight, J0.margin, J0.spacing, J0.properties); J0.tileproperties && (t0.tileProperties = J0.tileproperties), t0.updateTileData(J0.imagewidth, J0.imageheight), v0.push(t0); } else console.warn("Phaser.TilemapParser - Image Collection Tilesets are not support"); } a0(v0); for (var w0 = {}, g0 = {}, W0 = 0; y3U.P3I(W0, f.layers.length); W0++) if (y3U.D3I("objectgroup", f.layers[W0].type)) { w0[f.layers[W0].name] = [], g0[f.layers[W0].name] = []; for (var H0 = 0, L0 = f.layers[W0].objects.length; y3U.Z3I(L0, H0); H0++) if (f.layers[W0].objects[H0].gid) { var M0 = { gid : f.layers[W0].objects[H0].gid, name : f.layers[W0].objects[H0].name, x : f.layers[W0].objects[H0].x, y : f.layers[W0].objects[H0].y, visible : f.layers[W0].objects[H0].visible, properties : f.layers[W0].objects[H0].properties }; w0[f.layers[W0].name].push(M0); } else if (f.layers[W0].objects[H0].polyline) { var p0 = function () { M0.polyline = []; }; var M0 = { name : f.layers[W0].objects[H0].name, type : f.layers[W0].objects[H0].type, x : f.layers[W0].objects[H0].x, y : f.layers[W0].objects[H0].y, width : f.layers[W0].objects[H0].width, height : f.layers[W0].objects[H0].height, visible : f.layers[W0].objects[H0].visible, properties : f.layers[W0].objects[H0].properties }; p0(); for (var e0 = 0; y3U.R3I(e0, f.layers[W0].objects[H0].polyline.length); e0++) M0.polyline.push([f.layers[W0].objects[H0].polyline[e0].x, f.layers[W0].objects[H0].polyline[e0].y]); g0[f.layers[W0].name].push(M0), w0[f.layers[W0].name].push(M0); } else if (f.layers[W0].objects[H0].polygon) { var F0 = function () { M0.polygon = []; }; var M0 = k0(f.layers[W0].objects[H0], ["name", "type", "x", "y", "visible", "properties"]); F0(); for (var e0 = 0; y3U.O3I(e0, f.layers[W0].objects[H0].polygon.length); e0++) M0.polygon.push([f.layers[W0].objects[H0].polygon[e0].x, f.layers[W0].objects[H0].polygon[e0].y]); w0[f.layers[W0].name].push(M0); } else if (f.layers[W0].objects[H0].ellipse) { var M0 = k0(f.layers[W0].objects[H0], ["name", "type", "ellipse", "x", "y", "width", "height", "visible", "properties"]); w0[f.layers[W0].name].push(M0); } else { var M0 = k0(f.layers[W0].objects[H0], ["name", "type", "x", "y", "width", "height", "visible", "properties"]); M0.rectangle = !0, w0[f.layers[W0].name].push(M0); } } T0.objects = w0, T0.collision = g0, T0.tiles = []; for (var W0 = 0; y3U.V3I(W0, T0.tilesets.length); W0++) for (var J0 = T0.tilesets[W0], S0 = J0.tileMargin, P0 = J0.tileMargin, O0 = 0, b0 = 0, d0 = 0, A0 = J0.firstgid; y3U.k9I(A0, J0.firstgid + J0.total) && (T0.tiles[A0] = [S0, P0, W0], S0 += J0.tileWidth + J0.tileSpacing, O0++, y3U.G9I(O0, J0.total)) && (b0++, y3U.N9I(b0, J0.columns) || (S0 = J0.tileMargin, P0 += J0.tileHeight + J0.tileSpacing, b0 = 0, d0++, y3U.L9I(d0, J0.rows))); A0++); var W0, l0, j0, N0, Z0, R0, J0; for (W0 = 0; y3U.z9I(W0, T0.layers.length); W0++) for (N0 = T0.layers[W0], l0 = 0; y3U.J9I(l0, N0.data.length); l0++) for (I0 = N0.data[l0], j0 = 0; y3U.H9I(j0, I0.length); j0++) Z0 = I0[j0], y3U.h9I(Z0.index, 0) || (R0 = T0.tiles[Z0.index][2], J0 = T0.tilesets[R0], J0.tileProperties && J0.tileProperties[y3U.F9I(Z0.index, J0.firstgid)] && (Z0.properties = J0.tileProperties[y3U.M9I(Z0.index, J0.firstgid)])); return T0; } }, i.Tileset = function (k, m, e, o, n, u, q) { ("undefined" == typeof e || y3U.n9I(0, e)) && (e = 32), ("undefined" == typeof o || y3U.f9I(0, o)) && (o = 32), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = 0), this.name = k, this.firstgid = y3U.K9I(0, m), this.tileWidth = y3U.B9I(0, e), this.tileHeight = y3U.l9I(0, o), this.tileMargin = y3U.X9I(0, n), this.tileSpacing = y3U.Y9I(0, u), this.properties = q || {}, this.image = null, this.rows = 0, this.columns = 0, this.total = 0, this.drawCoords = []; }, i.Tileset.prototype = { draw : function (k, m, e, o) { var n = y3U.U5I(o - this.firstgid, 1); y3U.T5I(n, 0) && y3U.S5I(n + 1, this.drawCoords.length) && k.drawImage(this.image, this.drawCoords[n], this.drawCoords[n + 1], this.tileWidth, this.tileHeight, m, e, this.tileWidth, this.tileHeight); }, containsTileIndex : function (k) { return y3U.I5I(k, this.firstgid) && y3U.C5I(k, this.firstgid + this.total); }, setImage : function (k) { this.image = k, this.updateTileData(k.width, k.height); }, setSpacing : function (k, m) { this.tileMargin = y3U.v5I(0, k), this.tileSpacing = y3U.t5I(0, m), this.image && this.updateTileData(this.image.width, this.image.height); }, updateTileData : function (k, m) { var e = y3U.y5I((m - this.tileMargin), (this.tileHeight + this.tileSpacing)), o = y3U.o5I((k - this.tileMargin), (this.tileWidth + this.tileSpacing)); (y3U.x5I(e % 1, 0) || y3U.p5I(o % 1, 0)) && console.warn("Phaser.Tileset - image tile area is not an even multiple of tile size"), e = Math.floor(e), o = Math.floor(o), (this.rows && y3U.q5I(this.rows, e) || this.columns && y3U.b5I(this.columns, o)) && console.warn("Phaser.Tileset - actual and expected number of tile rows and columns differ"), this.rows = e, this.columns = o, this.total = y3U.j5I(e, o), this.drawCoords.length = 0; for (var n = this.tileMargin, u = this.tileMargin, q = 0; y3U.d5I(q, this.rows); q++) { for (var f = 0; y3U.c5I(f, this.columns); f++) this.drawCoords.push(n), this.drawCoords.push(u), n += this.tileWidth + this.tileSpacing; n = this.tileMargin, u += this.tileHeight + this.tileSpacing; } } }, i.Tileset.prototype.constructor = i.Tileset, "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = i), exports.Phaser = i) : "undefined" != typeof define && define.amd ? define("Phaser", function () { return D0.Phaser = i; } ()) : D0.Phaser = i; } .call(this), !function (k) { "object" == typeof exports ? module.exports = k() : "function" == typeof define && define.amd ? define("p2", function () { return this.p2 = k(); } ()) : "undefined" != typeof window ? r2w8n[E8n].p2 = k() : "undefined" != typeof global ? self.p2 = k() : "undefined" != typeof self && (self.p2 = k()); } (function () { return function s7(q, f, j) { function U0(e, o) { if (!f[e]) { if (!q[e]) { var n = "function" == typeof require && require; if (!o && n) return n(e, !0); if (k0) return k0(e, !0); throw new Error("Cannot find module '" + e + "'"); } var u = f[e] = { exports : {} }; q[e][0].call(u.exports, function (k) { var m = q[e][1][k]; return U0(m ? m : k); }, u, u.exports, s7, q, f, j); } return f[e].exports; } for (var k0 = "function" == typeof require && require, a0 = 0; y3U.s5I(a0, j.length); a0++) U0(j[a0]); return U0; } ({ 1 : [function (e7, K7) { e7 = function b7(q, f, j) { function U0(e, o) { if (!f[e]) { if (!q[e]) { var n = "function" == typeof e7 && e7; if (!o && n) return n(e, !0); if (k0) return k0(e, !0); throw new Error("Cannot find module '" + e + "'"); } var u = f[e] = { exports : {} }; q[e][0].call(u.exports, function (k) { var m = q[e][1][k]; return U0(m ? m : k); }, u, u.exports, b7, q, f, j); } return f[e].exports; } for (var k0 = "function" == typeof e7 && e7, a0 = 0; y3U.Q5I(a0, j.length); a0++) U0(j[a0]); return U0; } ({ PcZj9L : [function (a0, T0, G0) { function W0() { return { type : "Buffer", data : Array.prototype.slice.call(this, 0) }; } function N0(k, m) { return Q0(this, k, !0, m); } function S0() { return new c0(this).buffer; } function I0(k, m) { return q0(this, k, !1, m); } function m0(k, m) { return p0(this, k, !0, m); } function A0(k) { return k = ~~Math.ceil(+k), y3U.g3e(0, k) ? 0 : k; } function L0(k, m, e) { O0(this, k, m, !1, e); } function z0(k, m, e) { for (var o = k.slice(m, e), n = "", u = 0; y3U.L6I(u, o.length); u++) n += String.fromCharCode(o[u]); return n; } function E0(k, m, e, o) { for (var n = 0; y3U.R3e(o, n) && !(y3U.O3e(n + e, m.length) || y3U.V3e(n, k.length)); ) m[n + e] = k[n], n++; return n; } function v0(k, m, e, o) { var n = this; if (e || (e = 0), o || y3U.L1I(0, o) || (o = this.length), m || (m = 0), y3U.z1I(o, e) && y3U.J1I(0, k.length) && y3U.H1I(0, n.length)) { if (y3U.h1I(e, o)) throw new Error("sourceEnd < sourceStart"); if (y3U.F1I(0, m) || y3U.M1I(m, k.length)) throw new Error("targetStart out of bounds"); if (y3U.n1I(0, e) || y3U.f1I(e, n.length)) throw new Error("sourceStart out of bounds"); if (y3U.K1I(0, o) || y3U.B1I(o, n.length)) throw new Error("sourceEnd out of bounds"); y3U.l1I(o, this.length) && (o = this.length), y3U.X1I(k.length - m, o - e) && (o = y3U.Y1I(k.length, m, e)); for (var u = 0; y3U.k6I(o - e, u); u++) k[u + m] = this[u + e]; } } function J0(k, m) { return t7(this, k, !1, m); } function t0(k, m) { return Q0(this, k, !1, m); } function w0(k, m) { var e = this; return m || (r0(void 0 !== k && y3U.C8I(null, k), "missing offset"), r0(y3U.v8I(k, e.length), "Trying to read beyond buffer length")), y3U.t8I(k, e.length) ? void 0 : e._dataview.getInt8(k); } function g0(k, m) { return p0(this, k, !1, m); } function H0(k, m, e, o) { o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(void 0 !== m && y3U.f6I(null, m), "missing offset"), r0(y3U.K6I(m + 1, k.length), "Trying to read beyond buffer length")); var n = k.length; if (!(y3U.B6I(m, n))) { if (y3U.l6I(m + 1, n)) { var u = new T7(new m7(2)); return u.setUint8(0, k[y3U.X6I(n, 1)]), u.getUint16(0, e); } return k._dataview.getUint16(m, e); } } function M0(k, m, e) { r0("number" == typeof k, "cannot write a non-number as a number"), r0(y3U.H9e(m, k), "value larger than maximum allowed value"), r0(y3U.h9e(k, e), "value smaller than minimum allowed value"); } function p0(k, m, e, o) { return o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(y3U.a0e(m + 7, k.length), "Trying to read beyond buffer length")), k._dataview.getFloat64(m, e); } function e0(k, m, e) { f0(this, k, m, !1, e); } function F0(k) { this._arr = k, y3U.m3e(0, k.byteLength) && (this._dataview = new T7(k.buffer, k.byteOffset, k.byteLength)); } function P0(k, m, e) { r7(this, k, m, !1, e); } function O0(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.E0e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.e0e(null, e), "missing offset"), r0(y3U.g0e(e + 1, k.length), "trying to write beyond buffer length"), z7(m, 65535)); var u = k.length; if (!(y3U.r0e(e, u))) if (y3U.i0e(e + 1, u)) { var q = new T7(new m7(2)); q.setUint16(0, m, o), k[e] = q.getUint8(0); } else k._dataview.setUint16(e, m, o); } function b0(k, m, e) { r7(this, k, m, !0, e); } function $(k, m, e) { i7(this, k, m, !1, e); } function l0(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.L7e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.z7e(null, e), "missing offset"), r0(y3U.J7e(e + 1, k.length), "Trying to write beyond buffer length"), o7(m, 32767, -32768)); var u = k.length; if (!(y3U.H7e(e, u))) if (y3U.h7e(e + 1, u)) { var q = new T7(new m7(2)); q.setInt16(0, m, o), k[e] = q.getUint8(0); } else k._dataview.setInt16(e, m, o); } function j0(k, m, e) { if (k || (k = 0), m || (m = 0), e || (e = this.length), "string" == typeof k && (k = k.charCodeAt(0)), "number" != typeof k || isNaN(k)) throw new Error("value is not a number"); if (y3U.x4e(m, e)) throw new Error("end < start"); if (y3U.p4e(e, m) && y3U.q4e(0, this.length)) { if (y3U.b4e(0, m) || y3U.j4e(m, this.length)) throw new Error("start out of bounds"); if (y3U.d4e(0, e) || y3U.c4e(e, this.length)) throw new Error("end out of bounds"); for (var o = m; y3U.s4e(e, o); o++) this[o] = k; } } function Z0() { for (var m = [], e = this.length, o = 0; y3U.Q4e(e, o); o++) if (m[o] = w7(this[o]), y3U.a3e(o, G0.INSPECT_MAX_BYTES)) { var n = function (k) { m[o + 1] = k; }; n("..."); break; } return ""; } function R0(k, m, e) { var o = this; e || (r0(void 0 !== k && y3U.V0e(null, k), "missing value"), r0(void 0 !== m && y3U.k7e(null, m), "missing offset"), r0(y3U.G7e(m, o.length), "Trying to write beyond buffer length"), o7(k, 127, -128)), y3U.N7e(m, o.length) || o._dataview.setInt8(m, k); } function q0(k, m, e, o) { return o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(y3U.Q8I(m + 3, k.length), "Trying to read beyond buffer length")), k._dataview.getFloat32(m, e); } function D0(k) { return k.trim ? k.trim() : k.replace(/^\s+|\s+$/g, ""); } function i(k, m, e, o) { return V0(k, m, e, o); } function k7(k, m, e) { l0(this, k, m, !0, e); } function o0(k, m, e, o) { return c0._charsWritten = E0(y7(m), k, e, o); } function V0(k, m, e, o) { return c0._charsWritten = E0(B0(m), k, e, o); } function Y0(k, m, e) { l0(this, k, m, !1, e); } function C0(k, m, e) { i7(this, k, m, !0, e); } function h0(k, m) { return H0(this, k, !1, m); } function u0(k) { return a0("base64-js").toByteArray(k); } function n0(k, m) { var e = this.length; return k = g7(k, e, 0), m = g7(m, e, e), W7(this.subarray(k, m)); } function A7(k, m, e) { var o = this; e || (r0(void 0 !== k && y3U.W0e(null, k), "missing value"), r0(void 0 !== m && y3U.m0e(null, m), "missing offset"), r0(y3U.A0e(m, o.length), "trying to write beyond buffer length"), z7(k, 255)), y3U.w0e(m, o.length) || (o[m] = k); } function f0(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.l7e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.X7e(null, e), "missing offset"), r0(y3U.Y7e(e + 3, k.length), "Trying to write beyond buffer length"), M0(m, 3.4028234663852886e38, -3.4028234663852886e38)); var u = k.length; if (!(y3U.U4e(e, u))) if (y3U.T4e(e + 3, u)) { var q = new T7(new m7(4)); q.setFloat32(0, m, o); for (var f = 0; y3U.S4e(u, f + e); f++) k[f + e] = q.getUint8(f); } else k._dataview.setFloat32(e, m, o); } function G7(k, m) { return t7(this, k, !0, m); } function C7(k, m) { return H0(this, k, !0, m); } function z7(k, m) { r0("number" == typeof k, "cannot write a non-number as a number"), r0(y3U.k9e(k, 0), "specified a negative value for writing an unsigned value"), r0(y3U.G9e(m, k), "value is larger than maximum value for type"), r0(y3U.N9e(Math.floor(k), k), "value has a fractional component"); } function B0(k) { for (var m = [], e = 0; y3U.D3e(e, k.length); e++) m.push(y3U.Z3e(255, k.charCodeAt(e))); return m; } function v7(k, m, e, o) { return c0._charsWritten = E0(u0(m), k, e, o); } function i0(k, m, e) { O0(this, k, m, !0, e); } function K0(k) { return Array.isArray(k) || c0.isBuffer(k) || k && "object" == typeof k && "number" == typeof k.length; } function S7(k, m, e) { var o = y3U.G1I(this, F0) ? this._proxy : this; if (k = String(k || "utf8").toLowerCase(), m = Number(m) || 0, e = void 0 !== e ? Number(e) : e = o.length, y3U.N1I(e, m)) return ""; switch (k) { case "hex": return q7(o, m, e); case "utf8": case "utf-8": return f7(o, m, e); case "ascii": return z0(o, m, e); case "binary": return B7(o, m, e); case "base64": return I7(o, m, e); default: throw new Error("Unknown encoding"); } } function U7(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.u0e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.P0e(null, e), "missing offset"), r0(y3U.D0e(e + 3, k.length), "trying to write beyond buffer length"), z7(m, 4294967295)); var u = k.length; if (!(y3U.Z0e(e, u))) if (y3U.R0e(e + 3, u)) { var q = new T7(new m7(4)); q.setUint32(0, m, o); for (var f = 0; y3U.O0e(u, f + e); f++) k[f + e] = q.getUint8(f); } else k._dataview.setUint32(e, m, o); } function X0(m) { try { return decodeURIComponent(m); } catch (k) { return String.fromCharCode(65533); } } function a7(k, m) { var e = this; return m || (r0(void 0 !== k && y3U.F6I(null, k), "missing offset"), r0(y3U.M6I(k, e.length), "Trying to read beyond buffer length")), y3U.n6I(k, e.length) ? void 0 : e[k]; } function Q0(k, m, e, o) { o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(void 0 !== m && y3U.b8I(null, m), "missing offset"), r0(y3U.j8I(m + 3, k.length), "Trying to read beyond buffer length")); var n = k.length; if (!(y3U.d8I(m, n))) { if (y3U.c8I(m + 3, n)) { for (var u = new T7(new m7(4)), q = 0; y3U.s8I(n, q + m); q++) u.setUint8(q, k[q + m]); return u.getInt32(0, e); } return k._dataview.getInt32(m, e); } } function W7(k) { if (void 0 === x7 && (x7 = D7()), x7) return k.write = H7, k.toString = S7, k.toLocaleString = S7, k.toJSON = W0, k.copy = v0, k.slice = n0, k.readUInt8 = a7, k.readUInt16LE = C7, k.readUInt16BE = h0, k.readUInt32LE = G7, k.readUInt32BE = J0, k.readInt8 = w0, k.readInt16LE = n7, k.readInt16BE = J7, k.readInt32LE = N0, k.readInt32BE = t0, k.readFloatLE = u7, k.readFloatBE = I0, k.readDoubleLE = m0, k.readDoubleBE = g0, k.writeUInt8 = A7, k.writeUInt16LE = i0, k.writeUInt16BE = L0, k.writeUInt32LE = E7, k.writeUInt32BE = N7, k.writeInt8 = R0, k.writeInt16LE = k7, k.writeInt16BE = Y0, k.writeInt32LE = C0, k.writeInt32BE = $, k.writeFloatLE = h7, k.writeFloatBE = e0, k.writeDoubleLE = b0, k.writeDoubleBE = P0, k.fill = j0, k.inspect = Z0, k.toArrayBuffer = S0, k._isBuffer = !0, y3U.A3e(0, k.byteLength) && (k._dataview = new T7(k.buffer, k.byteOffset, k.byteLength)), k; var m = new F0(k), e = new Proxy(m, P7); return m._proxy = e, e; } function J7(k, m) { return L7(this, k, !1, m); } function c0(k, m) { var e = function () { u[q] = c0.isBuffer(k) ? k.readUInt8(q) : k[q]; }, o = typeof k; if (y3U.a2I("base64", m) && y3U.W2I("string", o)) for (k = D0(k); y3U.m2I(k.length % 4, 0); ) k += "="; var n; if (y3U.A2I("number", o)) n = A0(k); else if (y3U.w2I("string", o)) n = c0.byteLength(k, m); else { if (y3U.E2I("object", o)) throw new Error("First argument needs to be a number, array or string."); n = A0(k.length); } var u = W7(new p7(n)); if (c0.isBuffer(k)) u.set(k); else if (K0(k)) for (var q = 0; y3U.e2I(n, q); q++) e(); else y3U.g2I("string", o) && u.write(k, 0, m); return u; } function H7(k, m, e, o) { var n = function () { m = Number(m) || 0; }; if (isFinite(m)) isFinite(e) || (o = e, e = void 0); else { var u = o; o = m, m = e, e = u; } n(); var q = y3U.V2I(this.length, m); switch (e ? (e = Number(e), y3U.k1I(e, q) && (e = q)) : e = q, o = String(o || "utf8").toLowerCase()) { case "hex": return j7(this, k, m, e); case "utf8": case "utf-8": return o0(this, k, m, e); case "ascii": return V0(this, k, m, e); case "binary": return i(this, k, m, e); case "base64": return v7(this, k, m, e); default: throw new Error("Unknown encoding"); } } function I7(k, m, e) { var o = k.slice(m, e); return a0("base64-js").fromByteArray(o); } function N7(k, m, e) { U7(this, k, m, !1, e); } function L7(k, m, e, o) { o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(void 0 !== m && y3U.y8I(null, m), "missing offset"), r0(y3U.o8I(m + 1, k.length), "Trying to read beyond buffer length")); var n = k.length; if (!(y3U.x8I(m, n))) { if (y3U.p8I(m + 1, n)) { var u = new T7(new m7(2)); return u.setUint8(0, k[y3U.q8I(n, 1)]), u.getInt16(0, e); } return k._dataview.getInt16(m, e); } } function t7(k, m, e, o) { o || (r0("boolean" == typeof e, "missing or invalid endian"), r0(void 0 !== m && y3U.Y6I(null, m), "missing offset"), r0(y3U.U8I(m + 3, k.length), "Trying to read beyond buffer length")); var n = k.length; if (!(y3U.T8I(m, n))) { if (y3U.S8I(m + 3, n)) { for (var u = new T7(new m7(4)), q = 0; y3U.I8I(n, q + m); q++) u.setUint8(q, k[q + m]); return u.getUint32(0, e); } return k._dataview.getUint32(m, e); } } function w7(k) { return y3U.r3e(16, k) ? "0" + k.toString(16) : k.toString(16); } function E7(k, m, e) { U7(this, k, m, !0, e); } function g7(k, m, e) { return "number" != typeof k ? e : (k = ~~k, y3U.w3e(k, m) ? m : y3U.E3e(k, 0) ? k : (k += m, y3U.e3e(k, 0) ? k : 0)); } function h7(k, m, e) { f0(this, k, m, !0, e); } function y7(k) { for (var m = [], e = 0; y3U.i3e(e, k.length); e++) if (y3U.u3e(k.charCodeAt(e), 127)) m.push(k.charCodeAt(e)); else for (var o = encodeURIComponent(k.charAt(e)).substr(1).split("%"), n = 0; y3U.P3e(n, o.length); n++) m.push(parseInt(o[n], 16)); return m; } function f7(k, m, e) { for (var o = k.slice(m, e), n = "", u = "", q = 0; y3U.G6I(q, o.length); ) y3U.N6I(o[q], 127) ? (n += X0(u) + String.fromCharCode(o[q]), u = "") : u += "%" + o[q].toString(16), q++; return n + X0(u); } function r7(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.I4e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.C4e(null, e), "missing offset"), r0(y3U.v4e(e + 7, k.length), "Trying to write beyond buffer length"), M0(m, 1.7976931348623157e308, -1.7976931348623157e308)); var u = k.length; if (!(y3U.t4e(e, u))) if (y3U.y4e(e + 7, u)) { var q = new T7(new m7(8)); q.setFloat64(0, m, o); for (var f = 0; y3U.o4e(u, f + e); f++) k[f + e] = q.getUint8(f); } else k._dataview.setFloat64(e, m, o); } function o7(k, m, e) { r0("number" == typeof k, "cannot write a non-number as a number"), r0(y3U.L9e(m, k), "value larger than maximum allowed value"), r0(y3U.z9e(k, e), "value smaller than minimum allowed value"), r0(y3U.J9e(Math.floor(k), k), "value has a fractional component"); } function i7(k, m, e, o, n) { n || (r0(void 0 !== m && y3U.F7e(null, m), "missing value"), r0("boolean" == typeof o, "missing or invalid endian"), r0(void 0 !== e && y3U.M7e(null, e), "missing offset"), r0(y3U.n7e(e + 3, k.length), "Trying to write beyond buffer length"), o7(m, 2147483647, -2147483648)); var u = k.length; if (!(y3U.f7e(e, u))) if (y3U.K7e(e + 3, u)) { var q = new T7(new m7(4)); q.setInt32(0, m, o); for (var f = 0; y3U.B7e(u, f + e); f++) k[f + e] = q.getUint8(f); } else k._dataview.setInt32(e, m, o); } function q7(k, m, e) { var o = k.length; (!m || y3U.z6I(0, m)) && (m = 0), (!e || y3U.J6I(0, e) || y3U.H6I(e, o)) && (e = o); for (var n = "", u = m; y3U.h6I(e, u); u++) n += w7(k[u]); return n; } function n7(k, m) { return L7(this, k, !0, m); } function j7(m, e, o, n) { var u = function () { o = Number(o) || 0; }; u(); var q = y3U.r2I(m.length, o); n ? (n = Number(n), y3U.i2I(n, q) && (n = q)) : n = q; var f = e.length; if (y3U.u2I(f % 2, 0)) throw new Error("Invalid hex string"); y3U.P2I(n, f / 2) && (n = y3U.D2I(f, 2)); for (var j = 0; y3U.Z2I(n, j); j++) { var U0 = function (k) { m[o + j] = k; }; var k0 = parseInt(e.substr(y3U.R2I(2, j), 2), 16); if (isNaN(k0)) throw new Error("Invalid hex string"); U0(k0); } return c0._charsWritten = y3U.O2I(2, j), j; } function D7() { var m = new p7(0); m.foo = function () { return 42; }; try { return y3U.W3e(42, m.foo()); } catch (k) { return !1; } } function u7(k, m) { return q0(this, k, !0, m); } function B7(k, m, e) { return z0(k, m, e); } function r0(k, m) { if (!k) throw new Error(m || "Failed assertion"); } var M7 = a0("typedarray"), T7 = "undefined" == typeof DataView ? M7.DataView : DataView, m7 = "undefined" == typeof ArrayBuffer ? M7.ArrayBuffer : ArrayBuffer, p7 = "undefined" == typeof Uint8Array ? M7.Uint8Array : Uint8Array; G0.Buffer = c0, G0.SlowBuffer = c0, G0.INSPECT_MAX_BYTES = 50, c0.poolSize = 8192; var x7; c0.isEncoding = function (k) { switch ((k + "").toLowerCase()) { case "hex": case "utf8": case "utf-8": case "ascii": case "binary": case "base64": case "ucs2": case "ucs-2": case "utf16le": case "utf-16le": case "raw": return !0; default: return !1; } }, c0.isBuffer = function (k) { return k && k._isBuffer; }, c0.byteLength = function (k, m) { switch (m || "utf8") { case "hex": return y3U.F9e(k.length, 2); case "utf8": case "utf-8": return y7(k).length; case "ascii": case "binary": return k.length; case "base64": return u0(k).length; default: throw new Error("Unknown encoding"); } }, c0.concat = function (k, m) { if (!Array.isArray(k)) throw new Error("Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."); var e, o; if (y3U.M9e(0, k.length)) return new c0(0); if (y3U.n9e(1, k.length)) return k[0]; if ("number" != typeof m) for (m = 0, e = 0; y3U.f9e(e, k.length); e++) o = k[e], m += o.length; var n = new c0(m), u = 0; for (e = 0; y3U.K9e(e, k.length); e++) o = k[e], o.copy(n, u), u += o.length; return n; }, F0.prototype.write = H7, F0.prototype.toString = S7, F0.prototype.toLocaleString = S7, F0.prototype.toJSON = W0, F0.prototype.copy = v0, F0.prototype.slice = n0, F0.prototype.readUInt8 = a7, F0.prototype.readUInt16LE = C7, F0.prototype.readUInt16BE = h0, F0.prototype.readUInt32LE = G7, F0.prototype.readUInt32BE = J0, F0.prototype.readInt8 = w0, F0.prototype.readInt16LE = n7, F0.prototype.readInt16BE = J7, F0.prototype.readInt32LE = N0, F0.prototype.readInt32BE = t0, F0.prototype.readFloatLE = u7, F0.prototype.readFloatBE = I0, F0.prototype.readDoubleLE = m0, F0.prototype.readDoubleBE = g0, F0.prototype.writeUInt8 = A7, F0.prototype.writeUInt16LE = i0, F0.prototype.writeUInt16BE = L0, F0.prototype.writeUInt32LE = E7, F0.prototype.writeUInt32BE = N7, F0.prototype.writeInt8 = R0, F0.prototype.writeInt16LE = k7, F0.prototype.writeInt16BE = Y0, F0.prototype.writeInt32LE = C0, F0.prototype.writeInt32BE = $, F0.prototype.writeFloatLE = h7, F0.prototype.writeFloatBE = e0, F0.prototype.writeDoubleLE = b0, F0.prototype.writeDoubleBE = P0, F0.prototype.fill = j0, F0.prototype.inspect = Z0, F0.prototype.toArrayBuffer = S0, F0.prototype._isBuffer = !0, F0.prototype.subarray = function () { return this._arr.subarray.apply(this._arr, arguments); }, F0.prototype.set = function () { return this._arr.set.apply(this._arr, arguments); }; var P7 = { get : function (k, m) { return y3U.B9e(m, k) ? k[m] : k._arr[m]; }, set : function (m, e, o) { var n = function (k) { m._arr[e] = k; }; n(o); } }; }, { "base64-js" : 3, typedarray : 4 } ], "native-buffer-browserify" : [function (k, m) { m.exports = k("PcZj9L"); }, {} ], 3 : [function (a0, T0) { !function () { function j(m) { function e(k) { return k0[y3U.c5e(k >> 18, 63)] + k0[y3U.s5e(k >> 12, 63)] + k0[y3U.Q5e(k >> 6, 63)] + k0[y3U.a2e(63, k)]; } var o, n, u, q = y3U.W2e(m.length, 3), f = ""; for (o = 0, u = y3U.m2e(m.length, q); y3U.A2e(u, o); o += 3) n = (y3U.w2e(m[o], 16)) + (y3U.E2e(m[o + 1], 8)) + m[o + 2], f += e(n); switch (q) { case 1: n = m[y3U.e2e(m.length, 1)], f += k0[y3U.g2e(n, 2)], f += k0[y3U.r2e(n << 4, 63)], f += "=="; break; case 2: n = (y3U.i2e(m[m.length - 2], 8)) + m[y3U.u2e(m.length, 1)], f += k0[y3U.P2e(n, 10)], f += k0[y3U.D2e(n >> 4, 63)], f += k0[y3U.Z2e(n << 2, 63)], f += "="; } return f; } function U0(k) { var m, e, o, n, u, q; if (y3U.l9e(k.length % 4, 0)) throw "Invalid string. Length must be a multiple of 4"; for (u = k.indexOf("="), u = y3U.X9e(u, 0) ? y3U.Y9e(k.length, u) : 0, q = [], o = y3U.U5e(u, 0) ? y3U.T5e(k.length, 4) : k.length, m = 0, e = 0; y3U.S5e(o, m); m += 4, e += 3) n = y3U.I5e(k0.indexOf(k[m]) << 18, k0.indexOf(k[m + 1]) << 12, k0.indexOf(k[m + 2]) << 6, k0.indexOf(k[m + 3])), q.push(y3U.w5e((16711680 & n), 16)), q.push(y3U.E5e((65280 & n), 8)), q.push(y3U.e5e(255, n)); return y3U.g5e(2, u) ? (n = y3U.r5e(k0.indexOf(k[m]) << 2, k0.indexOf(k[m + 1]) >> 4), q.push(y3U.i5e(255, n))) : y3U.u5e(1, u) && (n = y3U.P5e(k0.indexOf(k[m]) << 10, k0.indexOf(k[m + 1]) << 4, k0.indexOf(k[m + 2]) >> 2), q.push(y3U.j5e(n >> 8, 255)), q.push(y3U.d5e(255, n))), q; } "use strict"; var k0 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; T0.exports.toByteArray = U0, T0.exports.fromByteArray = j; } (); }, {} ], 4 : [function (M0, p0, e0) { function F0(k) { return [y3U.j1e(k >> 8, 255), y3U.d1e(255, k)]; } function P0(k) { return f0(k, 11, 52); } function O0(k) { return l0(k, 11, 52); } function b0(k) { return o0(y3U.c1e(k[0] << 8, k[1]), 16); } function d0(k) { return [y3U.s1e(k >> 24, 255), y3U.Q1e(k >> 16, 255), y3U.a6e(k >> 8, 255), y3U.W6e(255, k)]; } function l0(o, n, u) { function q(k) { var m = K0(k), e = y3U.p6e(k, m); return y3U.q6e(.5, e) ? m : y3U.b6e(e, .5) ? m + 1 : y3U.j6e(m, 2) ? m + 1 : m; } var f, j, U0, k0, a0, T0, G0, W0 = y3U.d6e((1 << n - 1), 1); for (y3U.c6e(o, o) ? (j = y3U.s6e((1 << n), 1), U0 = X0(2, y3U.Q6e(u, 1)), f = 0) : y3U.a8e(1 / 0, o) || o === -1 / 0 ? (j = y3U.W8e((1 << n), 1), U0 = 0, f = y3U.m8e(0, o) ? 1 : 0) : y3U.A8e(0, o) ? (j = 0, U0 = 0, f = y3U.w8e(1, o) === -1 / 0 ? 1 : 0) : (f = y3U.E8e(0, o), o = i0(o), y3U.e8e(o, X0(2, 1 - W0)) ? (j = U7(K0(y3U.g8e(S7(o), v7)), 1023), U0 = q(y3U.r8e(o, X0(2, j), X0(2, u))), y3U.p8e(U0 / X0(2, u), 2) && (j += 1, U0 = 1), y3U.q8e(j, W0) ? (j = y3U.b8e((1 << n), 1), U0 = 0) : (j += W0, U0 -= X0(2, u))) : (j = 0, U0 = q(y3U.j8e(o, X0(2, 1 - W0 - u))))), a0 = [], k0 = u; k0; k0 -= 1) a0.push(y3U.d8e(U0, 2) ? 1 : 0), U0 = K0(y3U.c8e(U0, 2)); for (k0 = n; k0; k0 -= 1) a0.push(y3U.s8e(j, 2) ? 1 : 0), j = K0(y3U.Q8e(j, 2)); for (a0.push(f ? 1 : 0), a0.reverse(), T0 = a0.join(""), G0 = []; T0.length; ) G0.push(parseInt(T0.substring(0, 8), 2)), T0 = T0.substring(8); return G0; } function j0(k) { return [y3U.p1e(k >> 8, 255), y3U.q1e(255, k)]; } function Z0(k) { return u0(y3U.b1e(k[0] << 8, k[1]), 16); } function R0(k) { return f0(k, 8, 23); } function q0(k) { return [y3U.t1e(255, k)]; } function D0(k) { return l0(k, 8, 23); } function i(k) { return k = a7(Number(k)), [y3U.y1e(0, k) ? 0 : y3U.o1e(k, 255) ? 255 : y3U.x1e(255, k)]; } function k7(k) { return o0(y3U.F6e(k[0] << 24, k[1] << 16, k[2] << 8, k[3]), 32); } function o0(k, m) { var e = y3U.m1e(32, m); return y3U.A1e(k, e, e); } function V0(k) { return [y3U.v1e(255, k)]; } function Y0(k) { return o0(k[0], 8); } function C0(k) { return u0(y3U.m6e(k[0] << 24, k[1] << 16, k[2] << 8, k[3]), 32); } function h0(k) { return u0(k[0], 8); } function u0(k, m) { var e = y3U.k1e(32, m); return y3U.G1e(k, e, e); } function n0(e) { function o(m) { Q0(e, m, { get : function () { return e._getter(m); }, set : function (k) { e._setter(m, k); }, enumerable : !0, configurable : !1 }); } if (Q0) { if (y3U.O2e(e.length, z7)) throw new RangeError("Array too large for polyfill"); var n; for (n = 0; y3U.V2e(n, e.length); n += 1) o(n); } } function A7(k) { return [y3U.z6e(k >> 24, 255), y3U.J6e(k >> 16, 255), y3U.H6e(k >> 8, 255), y3U.h6e(255, k)]; } function f0(k, m, e) { var o, n, u, q, f, j, U0, k0, a0 = []; for (o = k.length; o; o -= 1) for (u = k[y3U.a0J(o, 1)], n = 8; n; n -= 1) a0.push(y3U.W0J(u, 2) ? 1 : 0), u >>= 1; return a0.reverse(), q = a0.join(""), f = y3U.m0J((1 << m - 1), 1), j = parseInt(q.substring(0, 1), 2) ? -1 : 1, U0 = parseInt(q.substring(1, 1 + m), 2), k0 = parseInt(q.substring(1 + m), 2), y3U.A0J(U0, (1 << m) - 1) ? y3U.w0J(0, k0) ? y3U.E0J(0, 0) : y3U.e0J(1, 0, j) : y3U.o0J(U0, 0) ? y3U.x0J(j, X0(2, U0 - f), (1 + k0 / X0(2, e))) : y3U.n0J(0, k0) ? j * X0(2, - (y3U.f0J(f, 1))) * (y3U.K0J(k0, X0(2, e))) : y3U.B0J(0, j) ? -0 : 0; } function G7(k) { if (W7 && Q0) { var m, e = W7(k); for (m = 0; y3U.R2e(m, e.length); m += 1) Q0(k, e[m], { value : k[e[m]], writable : !1, enumerable : !1, configurable : !1 }); } } var C7 = void 0, z7 = 1e5, B0 = function () { var e = Object.prototype.toString, o = Object.prototype.hasOwnProperty; return { Class : function (k) { return e.call(k).replace(/^\[object *|\]$/g, ""); }, HasProperty : function (k, m) { return y3U.l0J(m, k); }, HasOwnProperty : function (k, m) { return o.call(k, m); }, IsCallable : function (k) { return "function" == typeof k; }, ToInt32 : function (k) { return y3U.X0J(k, 0); }, ToUint32 : function (k) { return y3U.Y0J(k, 0); } }; } (), v7 = Math.LN2, i0 = Math.abs, K0 = Math.floor, S7 = Math.log, U7 = Math.min, X0 = Math.pow, a7 = Math.round, Q0 = Object.defineProperty || function (k, m, e) { if (!k === Object(k)) throw new TypeError("Object.defineProperty called on non-object"); return B0.HasProperty(e, "get") && Object.prototype.__defineGetter__ && Object.prototype.__defineGetter__.call(k, m, e.get), B0.HasProperty(e, "set") && Object.prototype.__defineSetter__ && Object.prototype.__defineSetter__.call(k, m, e.set), B0.HasProperty(e, "value") && (k[m] = e.value), k; }, W7 = Object.getOwnPropertyNames || function (k) { if (y3U.U7J(k, Object(k))) throw new TypeError("Object.getOwnPropertyNames called on non-object"); var m, e = []; for (m in k) B0.HasOwnProperty(k, m) && e.push(m); return e; }; !function () { var S0 = function () { e0.ArrayBuffer = e0.ArrayBuffer || m0; }; function I0(T0, G0, W0) { var N0; return N0 = function (k, m, e) { var o, n, u, q; if (arguments.length && "number" != typeof arguments[0]) if ("object" == typeof arguments[0] && y3U.T7J(arguments[0].constructor, N0)) for (o = arguments[0], this.length = o.length, this.byteLength = y3U.S7J(this.length, this.BYTES_PER_ELEMENT), this.buffer = new m0(this.byteLength), this.byteOffset = 0, u = 0; y3U.I7J(u, this.length); u += 1) this._setter(u, o._getter(u)); else if ("object" != typeof arguments[0] || (y3U.C7J(arguments[0], m0) || y3U.v7J("ArrayBuffer", B0.Class(arguments[0])))) { if ("object" != typeof arguments[0] || !(y3U.t7J(arguments[0], m0) || y3U.y7J("ArrayBuffer", B0.Class(arguments[0])))) throw new TypeError("Unexpected argument type(s)"); if (this.buffer = k, this.byteOffset = B0.ToUint32(m), y3U.o7J(this.byteOffset, this.buffer.byteLength)) throw new RangeError("byteOffset out of range"); if (y3U.x7J(this.byteOffset, this.BYTES_PER_ELEMENT)) throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size."); if (y3U.p7J(arguments.length, 3)) { if (this.byteLength = y3U.q7J(this.buffer.byteLength, this.byteOffset), y3U.b7J(this.byteLength, this.BYTES_PER_ELEMENT)) throw new RangeError("length of buffer minus byteOffset not a multiple of the element size"); this.length = y3U.j7J(this.byteLength, this.BYTES_PER_ELEMENT); } else this.length = B0.ToUint32(e), this.byteLength = y3U.d7J(this.length, this.BYTES_PER_ELEMENT); if (y3U.c7J(this.byteOffset + this.byteLength, this.buffer.byteLength)) throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); } else for (n = arguments[0], this.length = B0.ToUint32(n.length), this.byteLength = y3U.s7J(this.length, this.BYTES_PER_ELEMENT), this.buffer = new m0(this.byteLength), this.byteOffset = 0, u = 0; y3U.Q7J(u, this.length); u += 1) q = n[u], this._setter(u, Number(q)); else { if (this.length = B0.ToInt32(arguments[0]), y3U.a4J(0, e)) throw new RangeError("ArrayBufferView size is not a small enough positive integer"); this.byteLength = y3U.W4J(this.length, this.BYTES_PER_ELEMENT), this.buffer = new m0(this.byteLength), this.byteOffset = 0; } this.constructor = N0, G7(this), n0(this); }, N0.prototype = new A0, N0.prototype.BYTES_PER_ELEMENT = T0, N0.prototype._pack = G0, N0.prototype._unpack = W0, N0.BYTES_PER_ELEMENT = T0, N0.prototype._getter = function (k) { if (y3U.m4J(arguments.length, 1)) throw new SyntaxError("Not enough arguments"); if (k = B0.ToUint32(k), y3U.A4J(k, this.length)) return C7; var m, e, o = []; for (m = 0, e = this.byteOffset + y3U.w4J(k, this.BYTES_PER_ELEMENT); y3U.E4J(m, this.BYTES_PER_ELEMENT); m += 1, e += 1) o.push(this.buffer._bytes[e]); return this._unpack(o); }, N0.prototype.get = N0.prototype._getter, N0.prototype._setter = function (k, m) { if (y3U.e4J(arguments.length, 2)) throw new SyntaxError("Not enough arguments"); if (k = B0.ToUint32(k), y3U.g4J(k, this.length)) return C7; var e, o, n = this._pack(m); for (e = 0, o = this.byteOffset + y3U.r4J(k, this.BYTES_PER_ELEMENT); y3U.i4J(e, this.BYTES_PER_ELEMENT); e += 1, o += 1) this.buffer._bytes[o] = n[e]; }, N0.prototype.set = function () { if (y3U.u4J(arguments.length, 1)) throw new SyntaxError("Not enough arguments"); var m, e, o, n, u, q, f, j, U0, k0; if ("object" == typeof arguments[0] && y3U.P4J(arguments[0].constructor, this.constructor)) { if (m = arguments[0], o = B0.ToUint32(arguments[1]), y3U.D4J(o + m.length, this.length)) throw new RangeError("Offset plus length of array is out of range"); if (j = this.byteOffset + y3U.Z4J(o, this.BYTES_PER_ELEMENT), U0 = y3U.R4J(m.length, this.BYTES_PER_ELEMENT), y3U.O4J(m.buffer, this.buffer)) { var a0 = function (k) { k0[u] = k.buffer._bytes[q]; }; for (k0 = [], u = 0, q = m.byteOffset; y3U.V4J(U0, u); u += 1, q += 1) a0(m); for (u = 0, f = j; y3U.k3J(U0, u); u += 1, f += 1) this.buffer._bytes[f] = k0[u]; } else for (u = 0, q = m.byteOffset, f = j; y3U.G3J(U0, u); u += 1, q += 1, f += 1) this.buffer._bytes[f] = m.buffer._bytes[q]; } else { if ("object" != typeof arguments[0] || "undefined" == typeof arguments[0].length) throw new TypeError("Unexpected argument type(s)"); if (e = arguments[0], n = B0.ToUint32(e.length), o = B0.ToUint32(arguments[1]), y3U.N3J(o + n, this.length)) throw new RangeError("Offset plus length of array is out of range"); for (u = 0; y3U.L3J(n, u); u += 1) q = e[u], this._setter(o + u, Number(q)); } }, N0.prototype.subarray = function (o, n) { function u(k, m, e) { return y3U.z3J(m, k) ? m : y3U.J3J(k, e) ? e : k; } o = B0.ToInt32(o), n = B0.ToInt32(n), y3U.H3J(arguments.length, 1) && (o = 0), y3U.h3J(arguments.length, 2) && (n = this.length), y3U.F3J(0, o) && (o = this.length + o), y3U.M3J(0, n) && (n = this.length + n), o = u(o, 0, this.length), n = u(n, 0, this.length); var q = y3U.n3J(n, o); return y3U.f3J(0, q) && (q = 0), new this.constructor(this.buffer, this.byteOffset + y3U.K3J(o, this.BYTES_PER_ELEMENT), q); }, N0; } var m0 = function (k) { if (k = B0.ToInt32(k), y3U.B3J(0, k)) throw new RangeError("ArrayBuffer size is not a small enough positive integer"); this.byteLength = k, this._bytes = [], this._bytes.length = k; var m; for (m = 0; y3U.l3J(m, this.byteLength); m += 1) this._bytes[m] = 0; G7(this); }; S0(); var A0 = function () {}, L0 = I0(1, V0, h0), z0 = I0(1, q0, Y0), E0 = I0(1, i, Y0), v0 = I0(2, j0, Z0), J0 = I0(2, F0, b0), t0 = I0(4, d0, C0), w0 = I0(4, A7, k7), g0 = I0(4, D0, R0), H0 = I0(8, O0, P0); e0.Int8Array = e0.Int8Array || L0, e0.Uint8Array = e0.Uint8Array || z0, e0.Uint8ClampedArray = e0.Uint8ClampedArray || E0, e0.Int16Array = e0.Int16Array || v0, e0.Uint16Array = e0.Uint16Array || J0, e0.Int32Array = e0.Int32Array || t0, e0.Uint32Array = e0.Uint32Array || w0, e0.Float32Array = e0.Float32Array || g0, e0.Float64Array = e0.Float64Array || H0; } (), function () { function U0(j) { return function (k, m, e) { if (k = B0.ToUint32(k), y3U.T9J(k + j.BYTES_PER_ELEMENT, this.byteLength)) throw new RangeError("Array index out of range"); var o, n, u = new j([m]), q = new Uint8Array(u.buffer), f = []; for (o = 0; y3U.S9J(o, j.BYTES_PER_ELEMENT); o += 1) f.push(a0(q, o)); y3U.I9J(Boolean(e), Boolean(T0)) && f.reverse(), n = new Uint8Array(this.buffer, k, j.BYTES_PER_ELEMENT), n.set(f); }; } function k0(u) { return function (k, m) { if (k = B0.ToUint32(k), y3U.X3J(k + u.BYTES_PER_ELEMENT, this.byteLength)) throw new RangeError("Array index out of range"); k += this.byteOffset; var e, o = new Uint8Array(this.buffer, k, u.BYTES_PER_ELEMENT), n = []; for (e = 0; y3U.Y3J(e, u.BYTES_PER_ELEMENT); e += 1) n.push(a0(o, e)); return y3U.U9J(Boolean(m), Boolean(T0)) && n.reverse(), a0(new u(new Uint8Array(n).buffer), 0); }; } function a0(k, m) { return B0.IsCallable(k.get) ? k.get(m) : k[m]; } var T0 = function () { var k = new e0.Uint16Array([4660]), m = new e0.Uint8Array(k.buffer); return y3U.C9J(18, a0(m, 0)); } (), G0 = function (k, m, e) { if (y3U.v9J(0, arguments.length)) k = new ArrayBuffer(0); else if (!(y3U.t9J(k, ArrayBuffer) || y3U.y9J("ArrayBuffer", B0.Class(k)))) throw new TypeError("TypeError"); if (this.buffer = k || new ArrayBuffer(0), this.byteOffset = B0.ToUint32(m), y3U.o9J(this.byteOffset, this.buffer.byteLength)) throw new RangeError("byteOffset out of range"); if (this.byteLength = y3U.x9J(arguments.length, 3) ? y3U.p9J(this.buffer.byteLength, this.byteOffset) : B0.ToUint32(e), y3U.q9J(this.byteOffset + this.byteLength, this.buffer.byteLength)) throw new RangeError("byteOffset and length reference an area beyond the end of the buffer"); G7(this); }; G0.prototype.getUint8 = k0(e0.Uint8Array), G0.prototype.getInt8 = k0(e0.Int8Array), G0.prototype.getUint16 = k0(e0.Uint16Array), G0.prototype.getInt16 = k0(e0.Int16Array), G0.prototype.getUint32 = k0(e0.Uint32Array), G0.prototype.getInt32 = k0(e0.Int32Array), G0.prototype.getFloat32 = k0(e0.Float32Array), G0.prototype.getFloat64 = k0(e0.Float64Array), G0.prototype.setUint8 = U0(e0.Uint8Array), G0.prototype.setInt8 = U0(e0.Int8Array), G0.prototype.setUint16 = U0(e0.Uint16Array), G0.prototype.setInt16 = U0(e0.Int16Array), G0.prototype.setUint32 = U0(e0.Uint32Array), G0.prototype.setInt32 = U0(e0.Int32Array), G0.prototype.setFloat32 = U0(e0.Float32Array), G0.prototype.setFloat64 = U0(e0.Float64Array), e0.DataView = e0.DataView || G0; } (); }, {} ] }, {}, []), K7.exports = e7("native-buffer-browserify").Buffer; }, {} ], 2 : [function (u, q) { var f = q.exports = {}; f.nextTick = function () { var e = "undefined" != typeof window && r2w8n[E8n].setImmediate, o = "undefined" != typeof window && r2w8n[E8n]['postMessage'] && r2w8n[E8n]['addEventListener']; if (e) return function (k) { return r2w8n[E8n].setImmediate(k); }; if (o) { var n = []; return r2w8n[E8n]['addEventListener']("message", function (k) { if (y3U.b9J(k.source, window) && y3U.j9J("process-tick", k.data) && (k.stopPropagation(), y3U.d9J(n.length, 0))) { var m = n.shift(); m(); } }, !0), function (k) { n.push(k), r2w8n[E8n]['postMessage']("process-tick", "*"); }; } return function (k) { setTimeout(k, 0); }; } (), f.title = "browser", f.browser = !0, f.env = {}, f.argv = [], f.binding = function () { throw new Error("process.binding is not supported"); }, f.cwd = function () { return "/"; }, f.chdir = function () { throw new Error("process.chdir is not supported"); }; }, {} ], 3 : [function (T0, G0) { function W0() {} var N0 = (T0("__browserify_process"), T0("__browserify_Buffer"), T0("./Scalar")); G0.exports = W0, W0.lineInt = function (k, m, e) { var o = function () { e = e || 0; }; o(); var n, u, q, f, j, U0, k0, a0 = [0, 0]; return n = y3U.c9J(k[1][1], k[0][1]), u = y3U.s9J(k[0][0], k[1][0]), q = y3U.Q9J(n, k[0][0]) + y3U.a5J(u, k[0][1]), f = y3U.W5J(m[1][1], m[0][1]), j = y3U.m5J(m[0][0], m[1][0]), U0 = y3U.A5J(f, m[0][0]) + y3U.w5J(j, m[0][1]), k0 = y3U.E5J(n * j, f * u), N0.eq(k0, 0, e) || (a0[0] = y3U.e5J((j * q - u * U0), k0), a0[1] = y3U.g5J((n * U0 - f * q), k0)), a0; }, W0.segmentsIntersect = function (k, m, e, o) { var n = y3U.r5J(m[0], k[0]), u = y3U.i5J(m[1], k[1]), q = y3U.u5J(o[0], e[0]), f = y3U.P5J(o[1], e[1]); if (y3U.D5J(q * u - f * n, 0)) return !1; var j = y3U.Z5J((n * (e[1] - k[1]) + u * (k[0] - e[0])), (q * u - f * n)), U0 = y3U.R5J((q * (k[1] - e[1]) + f * (e[0] - k[0])), (f * n - q * u)); return y3U.O5J(j, 0) && y3U.V5J(1, j) && y3U.k2J(U0, 0) && y3U.G2J(1, U0); }; }, { "./Scalar" : 6, __browserify_Buffer : 1, __browserify_process : 2 } ], 4 : [function (k0, a0) { function T0() {} k0("__browserify_process"), k0("__browserify_Buffer"); a0.exports = T0, T0.area = function (k, m, e) { return y3U.N2J((m[0] - k[0]) * (e[1] - k[1]), (e[0] - k[0]) * (m[1] - k[1])); }, T0.left = function (k, m, e) { return y3U.L2J(T0.area(k, m, e), 0); }, T0.leftOn = function (k, m, e) { return y3U.z2J(T0.area(k, m, e), 0); }, T0.right = function (k, m, e) { return y3U.J2J(T0.area(k, m, e), 0); }, T0.rightOn = function (k, m, e) { return y3U.H2J(T0.area(k, m, e), 0); }; var G0 = [], W0 = []; T0.collinear = function (k, m, e, o) { if (o) { var n = G0, u = W0; n[0] = y3U.h2J(m[0], k[0]), n[1] = y3U.F2J(m[1], k[1]), u[0] = y3U.M2J(e[0], m[0]), u[1] = y3U.n2J(e[1], m[1]); var q = y3U.f2J(n[0], u[0]) + y3U.K2J(n[1], u[1]), f = Math.sqrt(y3U.B2J(n[0], n[0]) + y3U.l2J(n[1], n[1])), j = Math.sqrt(y3U.X2J(u[0], u[0]) + y3U.Y2J(u[1], u[1])), U0 = Math.acos(y3U.U1J(q, (f * j))); return y3U.T1J(o, U0); } return y3U.S1J(0, T0.area(k, m, e)); }, T0.sqdist = function (k, m) { var e = y3U.I1J(m[0], k[0]), o = y3U.C1J(m[1], k[1]); return y3U.v1J(e, e) + y3U.t1J(o, o); }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 5 : [function (E0, v0) { function J0(k, m, e, o, n) { var u = function () { n = n || 0; }; u(); var q = y3U.y1J(m[1], k[1]), f = y3U.o1J(k[0], m[0]), j = y3U.x1J(q, k[0]) + y3U.p1J(f, k[1]), U0 = y3U.q1J(o[1], e[1]), k0 = y3U.b1J(e[0], o[0]), a0 = y3U.j1J(U0, e[0]) + y3U.d1J(k0, e[1]), T0 = y3U.c1J(q * k0, U0 * f); return H0.eq(T0, 0, n) ? [0, 0] : [y3U.s1J((k0 * j - f * a0), T0), y3U.Q1J((q * a0 - U0 * j), T0)]; } function t0() { this.vertices = []; } var w0 = (E0("__browserify_process"), E0("__browserify_Buffer"), E0("./Line")), g0 = E0("./Point"), H0 = E0("./Scalar"); v0.exports = t0, t0.prototype.at = function (k) { var m = this.vertices, e = m.length; return m[y3U.a6J(0, k) ? y3U.W6J(k, e) + e : y3U.m6J(k, e)]; }, t0.prototype.first = function () { return this.vertices[0]; }, t0.prototype.last = function () { return this.vertices[y3U.A6J(this.vertices.length, 1)]; }, t0.prototype.clear = function () { this.vertices.length = 0; }, t0.prototype.append = function (k, m, e) { if ("undefined" == typeof m) throw new Error("From is not given!"); if ("undefined" == typeof e) throw new Error("To is not given!"); if (y3U.w6J(m, e - 1)) throw new Error("lol1"); if (y3U.E6J(e, k.vertices.length)) throw new Error("lol2"); if (y3U.e6J(0, m)) throw new Error("lol3"); for (var o = m; y3U.g6J(e, o); o++) this.vertices.push(k.vertices[o]); }, t0.prototype.makeCCW = function () { for (var k = 0, m = this.vertices, e = 1; y3U.r6J(e, this.vertices.length); ++e) (y3U.i6J(m[e][1], m[k][1]) || y3U.u6J(m[e][1], m[k][1]) && y3U.P6J(m[e][0], m[k][0])) && (k = e); g0.left(this.at(y3U.D6J(k, 1)), this.at(k), this.at(k + 1)) || this.reverse(); }, t0.prototype.reverse = function () { for (var k = [], m = 0, e = this.vertices.length; y3U.Z6J(m, e); m++) k.push(this.vertices.pop()); this.vertices = k; }, t0.prototype.isReflex = function (k) { return g0.right(this.at(y3U.R6J(k, 1)), this.at(k), this.at(k + 1)); }; var M0 = [], p0 = []; t0.prototype.canSee = function (k, m) { var e, o, n = M0, u = p0; if (g0.leftOn(this.at(k + 1), this.at(k), this.at(m)) && g0.rightOn(this.at(y3U.O6J(k, 1)), this.at(k), this.at(m))) return !1; o = g0.sqdist(this.at(k), this.at(m)); for (var q = 0; y3U.V6J(q, this.vertices.length); ++q) if (y3U.k8J((q + 1) % this.vertices.length, k) && y3U.G8J(q, k) && g0.leftOn(this.at(k), this.at(m), this.at(q + 1)) && g0.rightOn(this.at(k), this.at(m), this.at(q)) && (n[0] = this.at(k), n[1] = this.at(m), u[0] = this.at(q), u[1] = this.at(q + 1), e = w0.lineInt(n, u), y3U.N8J(g0.sqdist(this.at(k), e), o))) return !1; return !0; }, t0.prototype.copy = function (k, m, e) { var o = e || new t0; if (o.clear(), y3U.L8J(m, k)) for (var n = k; y3U.z8J(m, n); n++) o.vertices.push(this.vertices[n]); else { for (var n = 0; y3U.J8J(m, n); n++) o.vertices.push(this.vertices[n]); for (var n = k; y3U.H8J(n, this.vertices.length); n++) o.vertices.push(this.vertices[n]); } return o; }, t0.prototype.getCutEdges = function () { for (var k = [], m = [], e = [], o = new t0, n = Number.MAX_VALUE, u = 0; y3U.h8J(u, this.vertices.length); ++u) if (this.isReflex(u)) for (var q = 0; y3U.F8J(q, this.vertices.length); ++q) if (this.canSee(u, q)) { m = this.copy(u, q, o).getCutEdges(), e = this.copy(q, u, o).getCutEdges(); for (var f = 0; y3U.M8J(f, e.length); f++) m.push(e[f]); y3U.n8J(m.length, n) && (k = m, n = m.length, k.push([this.at(u), this.at(q)])); } return k; }, t0.prototype.decomp = function () { var k = this.getCutEdges(); return y3U.f8J(k.length, 0) ? this.slice(k) : [this]; }, t0.prototype.slice = function (k) { if (y3U.K8J(0, k.length)) return [this]; if (y3U.B8J(k, Array) && k.length && y3U.l8J(k[0], Array) && y3U.X8J(2, k[0].length) && y3U.Y8J(k[0][0], Array)) { for (var m = [this], e = 0; y3U.U0q(e, k.length); e++) for (var o = k[e], n = 0; y3U.T0q(n, m.length); n++) { var u = m[n], q = u.slice(o); if (q) { m.splice(n, 1), m.push(q[0], q[1]); break; } } return m; } var o = k, e = this.vertices.indexOf(o[0]), n = this.vertices.indexOf(o[1]); return -1 != e && -1 != n ? [this.copy(e, n), this.copy(n, e)] : !1; }, t0.prototype.isSimple = function () { for (var k = this.vertices, m = 0; y3U.S0q(m, k.length - 1); m++) for (var e = 0; y3U.I0q(m - 1, e); e++) if (w0.segmentsIntersect(k[m], k[m + 1], k[e], k[e + 1])) return !1; for (var m = 1; y3U.C0q(m, k.length - 2); m++) if (w0.segmentsIntersect(k[0], k[y3U.v0q(k.length, 1)], k[m], k[m + 1])) return !1; return !0; }, t0.prototype.quickDecomp = function (k, m, e, o, n, u) { n = n || 100, u = u || 0, o = o || 25, k = "undefined" != typeof k ? k : [], m = m || [], e = e || []; var q = [0, 0], f = [0, 0], j = [0, 0], U0 = 0, k0 = 0, a0 = 0, T0 = 0, G0 = 0, W0 = 0, N0 = 0, S0 = new t0, I0 = new t0, m0 = this, A0 = this.vertices; if (y3U.t0q(A0.length, 3)) return k; if (u++, y3U.y0q(u, n)) return console.warn("quickDecomp: max level (" + n + ") reached."), k; for (var L0 = 0; y3U.o0q(L0, this.vertices.length); ++L0) if (m0.isReflex(L0)) { m.push(m0.vertices[L0]), U0 = k0 = Number.MAX_VALUE; for (var z0 = 0; y3U.x0q(z0, this.vertices.length); ++z0) g0.left(m0.at(y3U.p0q(L0, 1)), m0.at(L0), m0.at(z0)) && g0.rightOn(m0.at(y3U.q0q(L0, 1)), m0.at(L0), m0.at(y3U.b0q(z0, 1))) && (j = J0(m0.at(y3U.j0q(L0, 1)), m0.at(L0), m0.at(z0), m0.at(y3U.d0q(z0, 1))), g0.right(m0.at(L0 + 1), m0.at(L0), j) && (a0 = g0.sqdist(m0.vertices[L0], j), y3U.c0q(k0, a0) && (k0 = a0, f = j, W0 = z0))), g0.left(m0.at(L0 + 1), m0.at(L0), m0.at(z0 + 1)) && g0.rightOn(m0.at(L0 + 1), m0.at(L0), m0.at(z0)) && (j = J0(m0.at(L0 + 1), m0.at(L0), m0.at(z0), m0.at(z0 + 1)), g0.left(m0.at(y3U.s0q(L0, 1)), m0.at(L0), j) && (a0 = g0.sqdist(m0.vertices[L0], j), y3U.Q0q(U0, a0) && (U0 = a0, q = j, G0 = z0))); if (y3U.a7q(W0, (G0 + 1) % this.vertices.length)) j[0] = y3U.W7q((f[0] + q[0]), 2), j[1] = y3U.m7q((f[1] + q[1]), 2), e.push(j), y3U.A7q(G0, L0) ? (S0.append(m0, L0, G0 + 1), S0.vertices.push(j), I0.vertices.push(j), y3U.w7q(0, W0) && I0.append(m0, W0, m0.vertices.length), I0.append(m0, 0, L0 + 1)) : (y3U.E7q(0, L0) && S0.append(m0, L0, m0.vertices.length), S0.append(m0, 0, G0 + 1), S0.vertices.push(j), I0.vertices.push(j), I0.append(m0, W0, L0 + 1)); else { if (y3U.e7q(W0, G0) && (G0 += this.vertices.length), T0 = Number.MAX_VALUE, y3U.g7q(W0, G0)) return k; for (var z0 = W0; y3U.r7q(G0, z0); ++z0) g0.leftOn(m0.at(y3U.i7q(L0, 1)), m0.at(L0), m0.at(z0)) && g0.rightOn(m0.at(L0 + 1), m0.at(L0), m0.at(z0)) && (a0 = g0.sqdist(m0.at(L0), m0.at(z0)), y3U.u7q(T0, a0) && (T0 = a0, N0 = y3U.P7q(z0, this.vertices.length))); y3U.D7q(N0, L0) ? (S0.append(m0, L0, N0 + 1), y3U.Z7q(0, N0) && I0.append(m0, N0, A0.length), I0.append(m0, 0, L0 + 1)) : (y3U.R7q(0, L0) && S0.append(m0, L0, A0.length), S0.append(m0, 0, N0 + 1), I0.append(m0, N0, L0 + 1)); } return y3U.O7q(S0.vertices.length, I0.vertices.length) ? (S0.quickDecomp(k, m, e, o, n, u), I0.quickDecomp(k, m, e, o, n, u)) : (I0.quickDecomp(k, m, e, o, n, u), S0.quickDecomp(k, m, e, o, n, u)), k; } return k.push(this), k; }, t0.prototype.removeCollinearPoints = function (k) { for (var m = 0, e = y3U.V7q(this.vertices.length, 1); y3U.k4q(this.vertices.length, 3) && y3U.G4q(e, 0); --e) g0.collinear(this.at(y3U.N4q(e, 1)), this.at(e), this.at(e + 1), k) && (this.vertices.splice(y3U.L4q(e, this.vertices.length), 1), e--, m++); return m; }; }, { "./Line" : 3, "./Point" : 4, "./Scalar" : 6, __browserify_Buffer : 1, __browserify_process : 2 } ], 6 : [function (o, n) { function u() {} o("__browserify_process"), o("__browserify_Buffer"); n.exports = u, u.eq = function (k, m, e) { return e = e || 0, y3U.z4q(Math.abs(k - m), e); }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 7 : [function (k, m) { k("__browserify_process"), k("__browserify_Buffer"); m.exports = { Polygon : k("./Polygon"), Point : k("./Point") }; }, { "./Point" : 4, "./Polygon" : 5, __browserify_Buffer : 1, __browserify_process : 2 } ], 8 : [function (k, m) { k("__browserify_process"), k("__browserify_Buffer"); m.exports = { name : "p2", version : "0.6.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.0", "grunt-contrib-jshint" : "~0.9.2", "grunt-contrib-nodeunit" : "~0.1.2", "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" } }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 9 : [function (G0, W0) { function N0(k) { this.lowerBound = I0.create(), k && k.lowerBound && I0.copy(this.lowerBound, k.lowerBound), this.upperBound = I0.create(), k && k.upperBound && I0.copy(this.upperBound, k.upperBound); } var S0 = function (k) { W0.exports = k; }; { var I0 = (G0("__browserify_process"), G0("__browserify_Buffer"), G0("../math/vec2")); G0("../utils/Utils"); } S0(N0); var m0 = I0.create(); N0.prototype.setFromPoints = function (k, m, e, o) { var n = this.lowerBound, u = this.upperBound; "number" != typeof e && (e = 0), y3U.J4q(0, e) ? I0.rotate(n, k[0], e) : I0.copy(n, k[0]), I0.copy(u, n); for (var q = Math.cos(e), f = Math.sin(e), j = 1; y3U.H4q(j, k.length); j++) { var U0 = k[j]; if (y3U.h4q(0, e)) { var k0 = U0[0], a0 = U0[1]; m0[0] = y3U.F4q(q * k0, f * a0), m0[1] = y3U.M4q(f, k0) + y3U.n4q(q, a0), U0 = m0; } for (var T0 = 0; y3U.f4q(2, T0); T0++) y3U.K4q(U0[T0], u[T0]) && (u[T0] = U0[T0]), y3U.B4q(U0[T0], n[T0]) && (n[T0] = U0[T0]); } m && (I0.add(this.lowerBound, this.lowerBound, m), I0.add(this.upperBound, this.upperBound, m)), o && (this.lowerBound[0] -= o, this.lowerBound[1] -= o, this.upperBound[0] += o, this.upperBound[1] += o); }, N0.prototype.copy = function (k) { I0.copy(this.lowerBound, k.lowerBound), I0.copy(this.upperBound, k.upperBound); }, N0.prototype.extend = function (k) { for (var m = 2; m--; ) { var e = k.lowerBound[m]; y3U.l4q(this.lowerBound[m], e) && (this.lowerBound[m] = e); var o = k.upperBound[m]; y3U.X4q(this.upperBound[m], o) && (this.upperBound[m] = o); } }, N0.prototype.overlaps = function (k) { var m = this.lowerBound, e = this.upperBound, o = k.lowerBound, n = k.upperBound; return (y3U.Y4q(o[0], e[0]) && y3U.U3q(e[0], n[0]) || y3U.T3q(m[0], n[0]) && y3U.S3q(n[0], e[0])) && (y3U.I3q(o[1], e[1]) && y3U.C3q(e[1], n[1]) || y3U.v3q(m[1], n[1]) && y3U.t3q(n[1], e[1])); }; }, { "../math/vec2" : 31, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 10 : [function (n, u) { function q(k) { this.type = k, this.result = [], this.world = null, this.boundingVolumeType = q.AABB; } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("../math/vec2")), j = n("../objects/Body"); u.exports = q, q.AABB = 1, q.BOUNDING_CIRCLE = 2, q.prototype.setWorld = function (k) { this.world = k; }, q.prototype.getCollisionPairs = function () { throw new Error("getCollisionPairs must be implemented in a subclass!"); }; var U0 = f.create(); q.boundingRadiusCheck = function (k, m) { f.sub(U0, k.position, m.position); var e = f.squaredLength(U0), o = k.boundingRadius + m.boundingRadius; return y3U.y3q(o * o, e); }, q.aabbCheck = function (k, m) { return k.getAABB().overlaps(m.getAABB()); }, q.prototype.boundingVolumeCheck = function (k, m) { var e; switch (this.boundingVolumeType) { case q.BOUNDING_CIRCLE: e = q.boundingRadiusCheck(k, m); break; case q.AABB: e = q.aabbCheck(k, m); break; default: throw new Error("Bounding volume type not recognized: " + this.boundingVolumeType); } return e; }, q.canCollide = function (k, m) { return y3U.o3q(k.type, j.STATIC) && y3U.x3q(m.type, j.STATIC) ? !1 : y3U.p3q(k.type, j.KINEMATIC) && y3U.q3q(m.type, j.STATIC) || y3U.b3q(k.type, j.STATIC) && y3U.j3q(m.type, j.KINEMATIC) ? !1 : y3U.d3q(k.type, j.KINEMATIC) && y3U.c3q(m.type, j.KINEMATIC) ? !1 : y3U.s3q(k.sleepState, j.SLEEPING) && y3U.Q3q(m.sleepState, j.SLEEPING) ? !1 : y3U.a9q(k.sleepState, j.SLEEPING) && y3U.W9q(m.type, j.STATIC) || y3U.m9q(m.sleepState, j.SLEEPING) && y3U.A9q(k.type, j.STATIC) ? !1 : !0; }, q.NAIVE = 1, q.SAP = 2; }, { "../math/vec2" : 31, "../objects/Body" : 32, __browserify_Buffer : 1, __browserify_process : 2 } ], 11 : [function (P0, O0) { function b0(k) { d0.apply(this), k = l0.defaults(k, { xmin : -100, xmax : 100, ymin : -100, ymax : 100, nx : 10, ny : 10 }), this.xmin = k.xmin, this.ymin = k.ymin, this.xmax = k.xmax, this.ymax = k.ymax, this.nx = k.nx, this.ny = k.ny, this.binsizeX = y3U.w9q((this.xmax - this.xmin), this.nx), this.binsizeY = y3U.E9q((this.ymax - this.ymin), this.ny); } var d0 = (P0("__browserify_process"), P0("__browserify_Buffer"), P0("../shapes/Circle"), P0("../shapes/Plane"), P0("../shapes/Particle"), P0("../collision/Broadphase")), l0 = (P0("../math/vec2"), P0("../utils/Utils")); O0.exports = b0, b0.prototype = new d0, b0.prototype.getCollisionPairs = function (k) { for (var m = [], e = k.bodies, o = e.length, n = (this.binsizeX, this.binsizeY, this.nx), u = this.ny, q = this.xmin, f = this.ymin, j = this.xmax, U0 = this.ymax, k0 = [], a0 = y3U.e9q(n, u), T0 = 0; y3U.g9q(a0, T0); T0++) k0.push([]); for (var G0 = y3U.r9q(n, (j - q)), W0 = y3U.i9q(u, (U0 - f)), T0 = 0; y3U.u9q(T0, o); T0++) for (var N0 = e[T0], S0 = N0.aabb, I0 = Math.max(S0.lowerBound[0], q), m0 = Math.max(S0.lowerBound[1], f), A0 = Math.min(S0.upperBound[0], j), L0 = Math.min(S0.upperBound[1], U0), z0 = Math.floor(y3U.P9q(G0, (I0 - q))), E0 = Math.floor(y3U.D9q(W0, (m0 - f))), v0 = Math.floor(y3U.Z9q(G0, (A0 - q))), J0 = Math.floor(y3U.R9q(W0, (L0 - f))), t0 = z0; y3U.O9q(v0, t0); t0++) for (var w0 = E0; y3U.V9q(J0, w0); w0++) { var g0 = t0, H0 = w0, M0 = y3U.k5q(g0, (u - 1)) + H0; y3U.G5q(M0, 0) && y3U.N5q(a0, M0) && k0[M0].push(N0); } for (var T0 = 0; y3U.L5q(T0, a0); T0++) for (var p0 = k0[T0], t0 = 0, e0 = p0.length; y3U.z5q(t0, e0); t0++) for (var N0 = p0[t0], w0 = 0; y3U.J5q(w0, t0); w0++) { var F0 = p0[w0]; d0.canCollide(N0, F0) && this.boundingVolumeCheck(N0, F0) && m.push(N0, F0); } return m; }; }, { "../collision/Broadphase" : 10, "../math/vec2" : 31, "../shapes/Circle" : 38, "../shapes/Particle" : 42, "../shapes/Plane" : 43, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 12 : [function (k0, a0) { function T0() { G0.call(this, G0.NAIVE); } { var G0 = (k0("__browserify_process"), k0("__browserify_Buffer"), k0("../shapes/Circle"), k0("../shapes/Plane"), k0("../shapes/Shape"), k0("../shapes/Particle"), k0("../collision/Broadphase")); k0("../math/vec2"); } a0.exports = T0, T0.prototype = new G0, T0.prototype.getCollisionPairs = function (m) { var e = function (k) { n.length = k; }, o = m.bodies, n = this.result; e(0); for (var u = 0, q = o.length; y3U.H5q(u, q); u++) for (var f = o[u], j = 0; y3U.h5q(u, j); j++) { var U0 = o[j]; G0.canCollide(f, U0) && this.boundingVolumeCheck(f, U0) && n.push(f, U0); } return n; }; }, { "../collision/Broadphase" : 10, "../math/vec2" : 31, "../shapes/Circle" : 38, "../shapes/Particle" : 42, "../shapes/Plane" : 43, "../shapes/Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 13 : [function (D0, i) { function k7(m, e, o, n) { for (var u = D7, q = u7, f = B7, j = r0, U0 = m, k0 = e.vertices, a0 = null, T0 = 0; y3U.n5q(T0, k0.length + 1); T0++) { var G0 = function (k) { a0 = k; }; var W0 = k0[y3U.f5q(T0, k0.length)], N0 = k0[y3U.K5q((T0 + 1), k0.length)]; C0.rotate(u, W0, n), C0.rotate(q, N0, n), u0(u, u, o), u0(q, q, o), h0(f, u, U0), h0(j, q, U0); var S0 = C0.crossLength(f, j); if (y3U.B5q(null, a0) && (a0 = S0), y3U.l5q(0, S0 * a0)) return !1; G0(S0); } return !0; } function o0() { this.contactEquations = [], this.frictionEquations = [], this.enableFriction = !0, this.slipForce = 10, this.frictionCoefficient = .3, this.surfaceVelocity = 0, this.reuseObjects = !0, this.reusableContactEquations = [], this.reusableFrictionEquations = [], this.restitution = 0, this.stiffness = G7.DEFAULT_STIFFNESS, this.relaxation = G7.DEFAULT_RELAXATION, this.frictionStiffness = G7.DEFAULT_STIFFNESS, this.frictionRelaxation = G7.DEFAULT_RELAXATION, this.enableFrictionReduction = !0, this.collidingBodiesLastStep = new f0, this.contactSkinSize = .01; } function V0(k, m) { C0.set(k.vertices[0], .5 * -m.length, -m.radius), C0.set(k.vertices[1], y3U.F5q(.5, m.length), -m.radius), C0.set(k.vertices[2], y3U.M5q(.5, m.length), m.radius), C0.set(k.vertices[3], .5 * -m.length, m.radius); } var Y0 = function (k) { i.exports = k; }, C0 = (D0("__browserify_process"), D0("__browserify_Buffer"), D0("../math/vec2")), h0 = C0.sub, u0 = C0.add, n0 = C0.dot, A7 = D0("../utils/Utils"), f0 = D0("../utils/TupleDictionary"), G7 = D0("../equations/Equation"), C7 = D0("../equations/ContactEquation"), z7 = D0("../equations/FrictionEquation"), B0 = D0("../shapes/Circle"), v7 = D0("../shapes/Convex"), i0 = D0("../shapes/Shape"), K0 = (D0("../objects/Body"), D0("../shapes/Rectangle")); Y0(o0); var S7 = C0.fromValues(0, 1), U7 = C0.fromValues(0, 0), X0 = C0.fromValues(0, 0), a7 = C0.fromValues(0, 0), Q0 = C0.fromValues(0, 0), W7 = C0.fromValues(0, 0), J7 = C0.fromValues(0, 0), c0 = C0.fromValues(0, 0), H7 = C0.fromValues(0, 0), I7 = C0.fromValues(0, 0), N7 = C0.fromValues(0, 0), L7 = C0.fromValues(0, 0), t7 = C0.fromValues(0, 0), w7 = C0.fromValues(0, 0), E7 = C0.fromValues(0, 0), g7 = C0.fromValues(0, 0), h7 = C0.fromValues(0, 0), y7 = C0.fromValues(0, 0), f7 = C0.fromValues(0, 0), r7 = []; o0.prototype.collidedLastStep = function (k, m) { var e = y3U.X5q(0, k.id), o = y3U.Y5q(0, m.id); return !!this.collidingBodiesLastStep.get(e, o); }, o0.prototype.reset = function () { this.collidingBodiesLastStep.reset(); for (var k = this.contactEquations, m = k.length; m--; ) { var e = k[m], o = e.bodyA.id, n = e.bodyB.id; this.collidingBodiesLastStep.set(o, n, !0); } if (this.reuseObjects) { var u = this.contactEquations, q = this.frictionEquations, f = this.reusableFrictionEquations, j = this.reusableContactEquations; A7.appendArray(j, u), A7.appendArray(f, q); } this.contactEquations.length = this.frictionEquations.length = 0; }, o0.prototype.createContactEquation = function (k, m, e, o) { var n = this.reusableContactEquations.length ? this.reusableContactEquations.pop() : new C7(k, m); return n.bodyA = k, n.bodyB = m, n.shapeA = e, n.shapeB = o, n.restitution = this.restitution, n.firstImpact = !this.collidedLastStep(k, m), n.stiffness = this.stiffness, n.relaxation = this.relaxation, n.needsUpdate = !0, n.enabled = !0, n.offset = this.contactSkinSize, n; }, o0.prototype.createFrictionEquation = function (k, m, e, o) { var n = this.reusableFrictionEquations.length ? this.reusableFrictionEquations.pop() : new z7(k, m); return n.bodyA = k, n.bodyB = m, n.shapeA = e, n.shapeB = o, n.setSlipForce(this.slipForce), n.frictionCoefficient = this.frictionCoefficient, n.relativeVelocity = this.surfaceVelocity, n.enabled = !0, n.needsUpdate = !0, n.stiffness = this.frictionStiffness, n.relaxation = this.frictionRelaxation, n.contactEquations.length = 0, n; }, o0.prototype.createFrictionFromContact = function (k) { var m = this.createFrictionEquation(k.bodyA, k.bodyB, k.shapeA, k.shapeB); return C0.copy(m.contactPointA, k.contactPointA), C0.copy(m.contactPointB, k.contactPointB), C0.rotate90cw(m.t, k.normalA), m.contactEquations.push(k), m; }, o0.prototype.createFrictionFromAverage = function (k) { if (!k) throw new Error("numContacts == 0!"); { var m = this.contactEquations[y3U.U2q(this.contactEquations.length, 1)], e = this.createFrictionEquation(m.bodyA, m.bodyB, m.shapeA, m.shapeB), o = m.bodyA; m.bodyB; } C0.set(e.contactPointA, 0, 0), C0.set(e.contactPointB, 0, 0), C0.set(e.t, 0, 0); for (var n = 0; y3U.T2q(n, k); n++) m = this.contactEquations[y3U.S2q(this.contactEquations.length, 1, n)], y3U.L2q(m.bodyA, o) ? (C0.add(e.t, e.t, m.normalA), C0.add(e.contactPointA, e.contactPointA, m.contactPointA), C0.add(e.contactPointB, e.contactPointB, m.contactPointB)) : (C0.sub(e.t, e.t, m.normalA), C0.add(e.contactPointA, e.contactPointA, m.contactPointB), C0.add(e.contactPointB, e.contactPointB, m.contactPointA)), e.contactEquations.push(m); var u = y3U.z2q(1, k); return C0.scale(e.contactPointA, e.contactPointA, u), C0.scale(e.contactPointB, e.contactPointB, u), C0.normalize(e.t, e.t), C0.rotate90cw(e.t, e.t), e; }, o0.prototype[y3U.J2q(i0.LINE, i0.CONVEX)] = o0.prototype.convexLine = function (k, m, e, o, n, u, q, f, j) { return j ? !1 : 0; }, o0.prototype[y3U.H2q(i0.LINE, i0.RECTANGLE)] = o0.prototype.lineRectangle = function (k, m, e, o, n, u, q, f, j) { return j ? !1 : 0; }; var o7 = new K0(1, 1), i7 = C0.create(); o0.prototype[y3U.h2q(i0.CAPSULE, i0.CONVEX)] = o0.prototype[y3U.F2q(i0.CAPSULE, i0.RECTANGLE)] = o0.prototype.convexCapsule = function (k, m, e, o, n, u, q, f, j) { var U0 = i7; C0.set(U0, y3U.M2q(u.length, 2), 0), C0.rotate(U0, U0, f), C0.add(U0, U0, q); var k0 = this.circleConvex(n, u, U0, f, k, m, e, o, j, u.radius); C0.set(U0, -u.length / 2, 0), C0.rotate(U0, U0, f), C0.add(U0, U0, q); var a0 = this.circleConvex(n, u, U0, f, k, m, e, o, j, u.radius); if (j && (k0 || a0)) return !0; var T0 = o7; V0(T0, u); var G0 = this.convexConvex(k, m, e, o, n, T0, q, f, j); return G0 + k0 + a0; }, o0.prototype[y3U.n2q(i0.CAPSULE, i0.LINE)] = o0.prototype.lineCapsule = function (k, m, e, o, n, u, q, f, j) { return j ? !1 : 0; }; var q7 = C0.create(), n7 = C0.create(), j7 = new K0(1, 1); o0.prototype[y3U.f2q(i0.CAPSULE, i0.CAPSULE)] = o0.prototype.capsuleCapsule = function (k, m, e, o, n, u, q, f, j) { for (var U0, k0 = q7, a0 = n7, T0 = 0, G0 = 0; y3U.K2q(2, G0); G0++) { C0.set(k0, (y3U.B2q(0, G0) ? -1 : 1) * m.length / 2, 0), C0.rotate(k0, k0, o), C0.add(k0, k0, e); for (var W0 = 0; y3U.l2q(2, W0); W0++) { C0.set(a0, (y3U.X2q(0, W0) ? -1 : 1) * u.length / 2, 0), C0.rotate(a0, a0, f), C0.add(a0, a0, q), this.enableFrictionReduction && (U0 = this.enableFriction, this.enableFriction = !1); var N0 = this.circleCircle(k, m, k0, o, n, u, a0, f, j, m.radius, u.radius); if (this.enableFrictionReduction && (this.enableFriction = U0), j && N0) return !0; T0 += N0; } } this.enableFrictionReduction && (U0 = this.enableFriction, this.enableFriction = !1); var S0 = j7; V0(S0, m); var I0 = this.convexCapsule(k, S0, e, o, n, u, q, f, j); if (this.enableFrictionReduction && (this.enableFriction = U0), j && I0) return !0; if (T0 += I0, this.enableFrictionReduction) { var U0 = this.enableFriction; this.enableFriction = !1; } V0(S0, u); var m0 = this.convexCapsule(n, S0, q, f, k, m, e, o, j); return this.enableFrictionReduction && (this.enableFriction = U0), j && m0 ? !0 : (T0 += m0, this.enableFrictionReduction && T0 && this.enableFriction && this.frictionEquations.push(this.createFrictionFromAverage(T0)), T0); }, o0.prototype[y3U.Y2q(i0.LINE, i0.LINE)] = o0.prototype.lineLine = function (k, m, e, o, n, u, q, f, j) { return j ? !1 : 0; }, o0.prototype[y3U.U1q(i0.PLANE, i0.LINE)] = o0.prototype.planeLine = function (k, m, e, o, n, u, q, f, j) { var U0 = U7, k0 = X0, a0 = a7, T0 = Q0, G0 = W7, W0 = J7, N0 = c0, S0 = H7, I0 = I7, m0 = r7, A0 = 0; C0.set(U0, -u.length / 2, 0), C0.set(k0, y3U.T1q(u.length, 2), 0), C0.rotate(a0, U0, f), C0.rotate(T0, k0, f), u0(a0, a0, q), u0(T0, T0, q), C0.copy(U0, a0), C0.copy(k0, T0), h0(G0, k0, U0), C0.normalize(W0, G0), C0.rotate90cw(I0, W0), C0.rotate(S0, S7, o), m0[0] = U0, m0[1] = k0; for (var L0 = 0; y3U.S1q(L0, m0.length); L0++) { var z0 = m0[L0]; h0(N0, z0, e); var E0 = n0(N0, S0); if (y3U.I1q(0, E0)) { if (j) return !0; var v0 = this.createContactEquation(k, n, m, u); A0++, C0.copy(v0.normalA, S0), C0.normalize(v0.normalA, v0.normalA), C0.scale(N0, S0, E0), h0(v0.contactPointA, z0, N0), h0(v0.contactPointA, v0.contactPointA, k.position), h0(v0.contactPointB, z0, q), u0(v0.contactPointB, v0.contactPointB, q), h0(v0.contactPointB, v0.contactPointB, n.position), this.contactEquations.push(v0), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(v0)); } } return j ? !1 : (this.enableFrictionReduction || A0 && this.enableFriction && this.frictionEquations.push(this.createFrictionFromAverage(A0)), A0); }, o0.prototype[y3U.C1q(i0.PARTICLE, i0.CAPSULE)] = o0.prototype.particleCapsule = function (k, m, e, o, n, u, q, f, j) { return this.circleLine(k, m, e, o, n, u, q, f, j, u.radius, 0); }, o0.prototype[y3U.v1q(i0.CIRCLE, i0.LINE)] = o0.prototype.circleLine = function (k, m, e, o, n, u, q, f, j, U0, k0) { var U0 = U0 || 0, k0 = "undefined" != typeof k0 ? k0 : m.radius, a0 = U7, T0 = X0, G0 = a7, W0 = Q0, N0 = W7, S0 = J7, I0 = c0, m0 = H7, A0 = I7, L0 = N7, z0 = L7, E0 = t7, v0 = w7, J0 = E7, t0 = r7; C0.set(m0, -u.length / 2, 0), C0.set(A0, y3U.t1q(u.length, 2), 0), C0.rotate(L0, m0, f), C0.rotate(z0, A0, f), u0(L0, L0, q), u0(z0, z0, q), C0.copy(m0, L0), C0.copy(A0, z0), h0(S0, A0, m0), C0.normalize(I0, S0), C0.rotate90cw(N0, I0), h0(E0, e, m0); var w0 = n0(E0, N0); h0(W0, m0, q), h0(v0, e, q); var g0 = k0 + U0; if (y3U.y1q(Math.abs(w0), g0)) { C0.scale(a0, N0, w0), h0(G0, e, a0), C0.scale(T0, N0, n0(N0, v0)), C0.normalize(T0, T0), C0.scale(T0, T0, U0), u0(G0, G0, T0); var H0 = n0(I0, G0), M0 = n0(I0, m0), p0 = n0(I0, A0); if (y3U.o1q(H0, M0) && y3U.x1q(p0, H0)) { if (j) return !0; var e0 = this.createContactEquation(k, n, m, u); return C0.scale(e0.normalA, a0, -1), C0.normalize(e0.normalA, e0.normalA), C0.scale(e0.contactPointA, e0.normalA, k0), u0(e0.contactPointA, e0.contactPointA, e), h0(e0.contactPointA, e0.contactPointA, k.position), h0(e0.contactPointB, G0, q), u0(e0.contactPointB, e0.contactPointB, q), h0(e0.contactPointB, e0.contactPointB, n.position), this.contactEquations.push(e0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(e0)), 1; } } t0[0] = m0, t0[1] = A0; for (var F0 = 0; y3U.p1q(F0, t0.length); F0++) { var $ = t0[F0]; if (h0(E0, $, e), y3U.q1q(C0.squaredLength(E0), Math.pow(g0, 2))) { if (j) return !0; var e0 = this.createContactEquation(k, n, m, u); return C0.copy(e0.normalA, E0), C0.normalize(e0.normalA, e0.normalA), C0.scale(e0.contactPointA, e0.normalA, k0), u0(e0.contactPointA, e0.contactPointA, e), h0(e0.contactPointA, e0.contactPointA, k.position), h0(e0.contactPointB, $, q), C0.scale(J0, e0.normalA, -U0), u0(e0.contactPointB, e0.contactPointB, J0), u0(e0.contactPointB, e0.contactPointB, q), h0(e0.contactPointB, e0.contactPointB, n.position), this.contactEquations.push(e0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(e0)), 1; } } return 0; }, o0.prototype[y3U.b1q(i0.CIRCLE, i0.CAPSULE)] = o0.prototype.circleCapsule = function (k, m, e, o, n, u, q, f, j) { return this.circleLine(k, m, e, o, n, u, q, f, j, u.radius); }, o0.prototype[y3U.j1q(i0.CIRCLE, i0.CONVEX)] = o0.prototype[y3U.d1q(i0.CIRCLE, i0.RECTANGLE)] = o0.prototype.circleConvex = function (k, m, e, o, n, u, q, f, j, U0) { for (var U0 = "number" == typeof U0 ? U0 : m.radius, k0 = U7, a0 = X0, T0 = a7, G0 = Q0, W0 = W7, N0 = N7, S0 = L7, I0 = w7, m0 = E7, A0 = g7, L0 = h7, z0 = !1, E0 = Number.MAX_VALUE, v0 = u.vertices, J0 = 0; y3U.c1q(J0, v0.length + 1); J0++) { var t0 = v0[y3U.s1q(J0, v0.length)], w0 = v0[y3U.Q1q((J0 + 1), v0.length)]; if (C0.rotate(k0, t0, f), C0.rotate(a0, w0, f), u0(k0, k0, q), u0(a0, a0, q), h0(T0, a0, k0), C0.normalize(G0, T0), C0.rotate90cw(W0, G0), C0.scale(m0, W0, -m.radius), u0(m0, m0, e), k7(m0, u, q, f)) { C0.sub(A0, k0, m0); var g0 = Math.abs(C0.dot(A0, W0)); y3U.a6q(E0, g0) && (C0.copy(L0, m0), E0 = g0, C0.scale(I0, W0, g0), C0.add(I0, I0, m0), z0 = !0); } } if (z0) { if (j) return !0; var H0 = this.createContactEquation(k, n, m, u); return C0.sub(H0.normalA, L0, e), C0.normalize(H0.normalA, H0.normalA), C0.scale(H0.contactPointA, H0.normalA, U0), u0(H0.contactPointA, H0.contactPointA, e), h0(H0.contactPointA, H0.contactPointA, k.position), h0(H0.contactPointB, I0, q), u0(H0.contactPointB, H0.contactPointB, q), h0(H0.contactPointB, H0.contactPointB, n.position), this.contactEquations.push(H0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(H0)), 1; } if (y3U.W6q(U0, 0)) for (var J0 = 0; y3U.m6q(J0, v0.length); J0++) { var M0 = v0[J0]; if (C0.rotate(S0, M0, f), u0(S0, S0, q), h0(N0, S0, e), y3U.A6q(C0.squaredLength(N0), Math.pow(U0, 2))) { if (j) return !0; var H0 = this.createContactEquation(k, n, m, u); return C0.copy(H0.normalA, N0), C0.normalize(H0.normalA, H0.normalA), C0.scale(H0.contactPointA, H0.normalA, U0), u0(H0.contactPointA, H0.contactPointA, e), h0(H0.contactPointA, H0.contactPointA, k.position), h0(H0.contactPointB, S0, q), u0(H0.contactPointB, H0.contactPointB, q), h0(H0.contactPointB, H0.contactPointB, n.position), this.contactEquations.push(H0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(H0)), 1; } } return 0; }; var D7 = C0.create(), u7 = C0.create(), B7 = C0.create(), r0 = C0.create(); o0.prototype[y3U.w6q(i0.PARTICLE, i0.CONVEX)] = o0.prototype[y3U.E6q(i0.PARTICLE, i0.RECTANGLE)] = o0.prototype.particleConvex = function (k, m, e, o, n, u, q, f, j) { var U0 = U7, k0 = X0, a0 = a7, T0 = Q0, G0 = W7, W0 = J7, N0 = c0, S0 = N7, I0 = w7, m0 = y7, A0 = f7, L0 = Number.MAX_VALUE, z0 = !1, E0 = u.vertices; if (!k7(e, u, q, f)) return 0; if (j) return !0; for (var v0 = 0; y3U.e6q(v0, E0.length + 1); v0++) { var J0 = E0[y3U.g6q(v0, E0.length)], t0 = E0[y3U.r6q((v0 + 1), E0.length)]; C0.rotate(U0, J0, f), C0.rotate(k0, t0, f), u0(U0, U0, q), u0(k0, k0, q), h0(a0, k0, U0), C0.normalize(T0, a0), C0.rotate90cw(G0, T0), h0(S0, e, U0); { n0(S0, G0); } h0(W0, U0, q), h0(N0, e, q), C0.sub(m0, U0, e); var w0 = Math.abs(C0.dot(m0, G0)); y3U.i6q(L0, w0) && (L0 = w0, C0.scale(I0, G0, w0), C0.add(I0, I0, e), C0.copy(A0, G0), z0 = !0); } if (z0) { var g0 = this.createContactEquation(k, n, m, u); return C0.scale(g0.normalA, A0, -1), C0.normalize(g0.normalA, g0.normalA), C0.set(g0.contactPointA, 0, 0), u0(g0.contactPointA, g0.contactPointA, e), h0(g0.contactPointA, g0.contactPointA, k.position), h0(g0.contactPointB, I0, q), u0(g0.contactPointB, g0.contactPointB, q), h0(g0.contactPointB, g0.contactPointB, n.position), this.contactEquations.push(g0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(g0)), 1; } return 0; }, o0.prototype[i0.CIRCLE] = o0.prototype.circleCircle = function (k, m, e, o, n, u, q, f, j, U0, k0) { var a0 = U7, U0 = U0 || m.radius, k0 = k0 || u.radius; h0(a0, e, q); var T0 = U0 + k0; if (y3U.u6q(C0.squaredLength(a0), Math.pow(T0, 2))) return 0; if (j) return !0; var G0 = this.createContactEquation(k, n, m, u); return h0(G0.normalA, q, e), C0.normalize(G0.normalA, G0.normalA), C0.scale(G0.contactPointA, G0.normalA, U0), C0.scale(G0.contactPointB, G0.normalA, -k0), u0(G0.contactPointA, G0.contactPointA, e), h0(G0.contactPointA, G0.contactPointA, k.position), u0(G0.contactPointB, G0.contactPointB, q), h0(G0.contactPointB, G0.contactPointB, n.position), this.contactEquations.push(G0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(G0)), 1; }, o0.prototype[y3U.P6q(i0.PLANE, i0.CONVEX)] = o0.prototype[y3U.D6q(i0.PLANE, i0.RECTANGLE)] = o0.prototype.planeConvex = function (k, m, e, o, n, u, q, f, j) { var U0 = U7, k0 = X0, a0 = a7, T0 = 0; C0.rotate(k0, S7, o); for (var G0 = 0; y3U.Z6q(G0, u.vertices.length); G0++) { var W0 = u.vertices[G0]; if (C0.rotate(U0, W0, f), u0(U0, U0, q), h0(a0, U0, e), y3U.R6q(n0(a0, k0), 0)) { if (j) return !0; T0++; var N0 = this.createContactEquation(k, n, m, u); h0(a0, U0, e), C0.copy(N0.normalA, k0); var S0 = n0(a0, N0.normalA); C0.scale(a0, N0.normalA, S0), h0(N0.contactPointB, U0, n.position), h0(N0.contactPointA, U0, a0), h0(N0.contactPointA, N0.contactPointA, k.position), this.contactEquations.push(N0), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(N0)); } } return this.enableFrictionReduction && this.enableFriction && T0 && this.frictionEquations.push(this.createFrictionFromAverage(T0)), T0; }, o0.prototype[y3U.O6q(i0.PARTICLE, i0.PLANE)] = o0.prototype.particlePlane = function (k, m, e, o, n, u, q, f, j) { var U0 = U7, k0 = X0; f = f || 0, h0(U0, e, q), C0.rotate(k0, S7, f); var a0 = n0(U0, k0); if (y3U.V6q(a0, 0)) return 0; if (j) return !0; var T0 = this.createContactEquation(n, k, u, m); return C0.copy(T0.normalA, k0), C0.scale(U0, T0.normalA, a0), h0(T0.contactPointA, e, U0), h0(T0.contactPointA, T0.contactPointA, n.position), h0(T0.contactPointB, e, k.position), this.contactEquations.push(T0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(T0)), 1; }, o0.prototype[y3U.k8q(i0.CIRCLE, i0.PARTICLE)] = o0.prototype.circleParticle = function (k, m, e, o, n, u, q, f, j) { var U0 = U7; if (h0(U0, q, e), y3U.G8q(C0.squaredLength(U0), Math.pow(m.radius, 2))) return 0; if (j) return !0; var k0 = this.createContactEquation(k, n, m, u); return C0.copy(k0.normalA, U0), C0.normalize(k0.normalA, k0.normalA), C0.scale(k0.contactPointA, k0.normalA, m.radius), u0(k0.contactPointA, k0.contactPointA, e), h0(k0.contactPointA, k0.contactPointA, k.position), h0(k0.contactPointB, q, n.position), this.contactEquations.push(k0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(k0)), 1; }; { var M7 = new B0(1), T7 = C0.create(), m7 = C0.create(); C0.create(); } o0.prototype[y3U.N8q(i0.PLANE, i0.CAPSULE)] = o0.prototype.planeCapsule = function (k, m, e, o, n, u, q, f, j) { var U0 = T7, k0 = m7, a0 = M7; C0.set(U0, -u.length / 2, 0), C0.rotate(U0, U0, f), u0(U0, U0, q), C0.set(k0, y3U.L8q(u.length, 2), 0), C0.rotate(k0, k0, f), u0(k0, k0, q), a0.radius = u.radius; var T0; this.enableFrictionReduction && (T0 = this.enableFriction, this.enableFriction = !1); var G0 = this.circlePlane(n, a0, U0, 0, k, m, e, o, j), W0 = this.circlePlane(n, a0, k0, 0, k, m, e, o, j); if (this.enableFrictionReduction && (this.enableFriction = T0), j) return G0 || W0; var N0 = G0 + W0; return this.enableFrictionReduction && N0 && this.frictionEquations.push(this.createFrictionFromAverage(N0)), N0; }, o0.prototype[y3U.z8q(i0.CIRCLE, i0.PLANE)] = o0.prototype.circlePlane = function (k, m, e, o, n, u, q, f, j) { var U0 = function () { N0 = N0 || 0; }, k0 = k, a0 = m, T0 = e, G0 = n, W0 = q, N0 = f; U0(); var S0 = U7, I0 = X0, m0 = a7; h0(S0, T0, W0), C0.rotate(I0, S7, N0); var A0 = n0(I0, S0); if (y3U.J8q(A0, a0.radius)) return 0; if (j) return !0; var L0 = this.createContactEquation(G0, k0, u, m); return C0.copy(L0.normalA, I0), C0.scale(L0.contactPointB, L0.normalA, -a0.radius), u0(L0.contactPointB, L0.contactPointB, T0), h0(L0.contactPointB, L0.contactPointB, k0.position), C0.scale(m0, L0.normalA, A0), h0(L0.contactPointA, S0, m0), u0(L0.contactPointA, L0.contactPointA, W0), h0(L0.contactPointA, L0.contactPointA, G0.position), this.contactEquations.push(L0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(L0)), 1; }, o0.prototype[i0.CONVEX] = o0.prototype[y3U.H8q(i0.CONVEX, i0.RECTANGLE)] = o0.prototype[i0.RECTANGLE] = o0.prototype.convexConvex = function (k, m, e, o, n, u, q, f, j, U0) { var k0 = U7, a0 = X0, T0 = a7, G0 = Q0, W0 = W7, N0 = c0, S0 = H7, I0 = I7, m0 = 0, U0 = "number" == typeof U0 ? U0 : 0, A0 = o0.findSeparatingAxis(m, e, o, u, q, f, k0); if (!A0) return 0; h0(S0, q, e), y3U.h8q(n0(k0, S0), 0) && C0.scale(k0, k0, -1); var L0 = o0.getClosestEdge(m, o, k0, !0), z0 = o0.getClosestEdge(u, f, k0); if (-1 === L0 || -1 === z0) return 0; for (var E0 = 0; y3U.F8q(2, E0); E0++) { var v0 = L0, J0 = z0, t0 = m, w0 = u, g0 = e, H0 = q, M0 = o, p0 = f, e0 = k, F0 = n; if (y3U.M8q(0, E0)) { var P0; P0 = v0, v0 = J0, J0 = P0, P0 = t0, t0 = w0, w0 = P0, P0 = g0, g0 = H0, H0 = P0, P0 = M0, M0 = p0, p0 = P0, P0 = e0, e0 = F0, F0 = P0; } for (var O0 = J0; y3U.n8q(J0 + 2, O0); O0++) { var b0 = w0.vertices[y3U.f8q((O0 + w0.vertices.length), w0.vertices.length)]; C0.rotate(a0, b0, p0), u0(a0, a0, H0); for (var d0 = 0, l0 = y3U.K8q(v0, 1); y3U.B8q(v0 + 2, l0); l0++) { var j0 = t0.vertices[y3U.l8q((l0 + t0.vertices.length), t0.vertices.length)], $ = t0.vertices[y3U.X8q((l0 + 1 + t0.vertices.length), t0.vertices.length)]; C0.rotate(T0, j0, M0), C0.rotate(G0, $, M0), u0(T0, T0, g0), u0(G0, G0, g0), h0(W0, G0, T0), C0.rotate90cw(I0, W0), C0.normalize(I0, I0), h0(S0, a0, T0); var R0 = n0(I0, S0); (y3U.Y8q(l0, v0) && y3U.U0b(U0, R0) || y3U.T0b(l0, v0) && y3U.S0b(0, R0)) && d0++; } if (y3U.I0b(d0, 3)) { if (j) return !0; var q0 = this.createContactEquation(e0, F0, t0, w0); m0++; var j0 = t0.vertices[y3U.C0b(v0, t0.vertices.length)], $ = t0.vertices[y3U.v0b((v0 + 1), t0.vertices.length)]; C0.rotate(T0, j0, M0), C0.rotate(G0, $, M0), u0(T0, T0, g0), u0(G0, G0, g0), h0(W0, G0, T0), C0.rotate90cw(q0.normalA, W0), C0.normalize(q0.normalA, q0.normalA), h0(S0, a0, T0); var R0 = n0(q0.normalA, S0); C0.scale(N0, q0.normalA, R0), h0(q0.contactPointA, a0, g0), h0(q0.contactPointA, q0.contactPointA, N0), u0(q0.contactPointA, q0.contactPointA, g0), h0(q0.contactPointA, q0.contactPointA, e0.position), h0(q0.contactPointB, a0, H0), u0(q0.contactPointB, q0.contactPointB, H0), h0(q0.contactPointB, q0.contactPointB, F0.position), this.contactEquations.push(q0), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(q0)); } } } return this.enableFrictionReduction && this.enableFriction && m0 && this.frictionEquations.push(this.createFrictionFromAverage(m0)), m0; }; var p7 = C0.fromValues(0, 0); o0.projectConvexOntoAxis = function (k, m, e, o, n) { var u, q, f = null, j = null, U0 = p7; C0.rotate(U0, o, -e); for (var k0 = 0; y3U.t0b(k0, k.vertices.length); k0++) u = k.vertices[k0], q = n0(u, U0), (y3U.y0b(null, f) || y3U.o0b(q, f)) && (f = q), (y3U.x0b(null, j) || y3U.p0b(j, q)) && (j = q); if (y3U.q0b(j, f)) { var a0 = j; j = f, f = a0; } var T0 = n0(m, o); C0.set(n, j + T0, f + T0); }; var x7 = C0.fromValues(0, 0), $ = C0.fromValues(0, 0), e7 = C0.fromValues(0, 0), K7 = C0.fromValues(0, 0), b7 = C0.fromValues(0, 0), Y7 = C0.fromValues(0, 0); o0.findSeparatingAxis = function (k, m, e, o, n, u, q) { var f = null, j = !1, U0 = !1, k0 = x7, a0 = $, T0 = e7, G0 = K7, W0 = b7, N0 = Y7; if (y3U.b0b(k, K0) && y3U.j0b(o, K0)) for (var S0 = 0; y3U.d0b(2, S0); S0++) { var I0 = k, m0 = e; y3U.c0b(1, S0) && (I0 = o, m0 = u); for (var A0 = 0; y3U.s0b(2, A0); A0++) { y3U.Q0b(0, A0) ? C0.set(G0, 0, 1) : y3U.a7b(1, A0) && C0.set(G0, 1, 0), y3U.W7b(0, m0) && C0.rotate(G0, G0, m0), o0.projectConvexOntoAxis(k, m, e, G0, W0), o0.projectConvexOntoAxis(o, n, u, G0, N0); var L0 = W0, z0 = N0, E0 = !1; y3U.m7b(W0[0], N0[0]) && (z0 = W0, L0 = N0, E0 = !0); var v0 = y3U.A7b(z0[0], L0[1]); j = y3U.w7b(0, v0), (y3U.E7b(null, f) || y3U.e7b(v0, f)) && (C0.copy(q, G0), f = v0, U0 = j); } } else for (var S0 = 0; y3U.g7b(2, S0); S0++) { var I0 = k, m0 = e; y3U.r7b(1, S0) && (I0 = o, m0 = u); for (var A0 = 0; y3U.i7b(A0, I0.vertices.length); A0++) { C0.rotate(a0, I0.vertices[A0], m0), C0.rotate(T0, I0.vertices[y3U.u7b((A0 + 1), I0.vertices.length)], m0), h0(k0, T0, a0), C0.rotate90cw(G0, k0), C0.normalize(G0, G0), o0.projectConvexOntoAxis(k, m, e, G0, W0), o0.projectConvexOntoAxis(o, n, u, G0, N0); var L0 = W0, z0 = N0, E0 = !1; y3U.P7b(W0[0], N0[0]) && (z0 = W0, L0 = N0, E0 = !0); var v0 = y3U.D7b(z0[0], L0[1]); j = y3U.Z7b(0, v0), (y3U.R7b(null, f) || y3U.O7b(v0, f)) && (C0.copy(q, G0), f = v0, U0 = j); } } return U0; }; var V7 = C0.fromValues(0, 0), Q7 = C0.fromValues(0, 0), U4 = C0.fromValues(0, 0); o0.getClosestEdge = function (k, m, e, o) { var n = V7, u = Q7, q = U4; C0.rotate(n, e, -m), o && C0.scale(n, n, -1); for (var f = -1, j = k.vertices.length, U0 = -1, k0 = 0; y3U.V7b(k0, j); k0++) { h0(u, k.vertices[y3U.k4b((k0 + 1), j)], k.vertices[y3U.G4b(k0, j)]), C0.rotate90cw(q, u), C0.normalize(q, q); var a0 = n0(q, n); (-1 === f || y3U.N4b(a0, U0)) && (f = y3U.L4b(k0, j), U0 = a0); } return f; }; var k4 = C0.create(), a4 = C0.create(), T4 = C0.create(), G4 = C0.create(), Z7 = C0.create(), d7 = C0.create(), l7 = C0.create(); o0.prototype[y3U.z4b(i0.CIRCLE, i0.HEIGHTFIELD)] = o0.prototype.circleHeightfield = function (k, m, e, o, n, u, q, f, j, U0) { var k0 = u.data, U0 = U0 || m.radius, a0 = u.elementWidth, T0 = a4, G0 = k4, W0 = Z7, N0 = l7, S0 = d7, I0 = T4, m0 = G4, A0 = Math.floor(y3U.J4b((e[0] - U0 - q[0]), a0)), L0 = Math.ceil(y3U.H4b((e[0] + U0 - q[0]), a0)); y3U.h4b(0, A0) && (A0 = 0), y3U.F4b(L0, k0.length) && (L0 = y3U.M4b(k0.length, 1)); for (var z0 = k0[A0], E0 = k0[L0], v0 = A0; y3U.n4b(L0, v0); v0++) y3U.f4b(k0[v0], E0) && (E0 = k0[v0]), y3U.K4b(k0[v0], z0) && (z0 = k0[v0]); if (y3U.B4b(e[1] - U0, z0)) return j ? !1 : 0; for (var J0 = !1, v0 = A0; y3U.l4b(L0, v0); v0++) { C0.set(I0, y3U.X4b(v0, a0), k0[v0]), C0.set(m0, y3U.Y4b((v0 + 1), a0), k0[v0 + 1]), C0.add(I0, I0, q), C0.add(m0, m0, q), C0.sub(S0, m0, I0), C0.rotate(S0, S0, y3U.U3b(Math.PI, 2)), C0.normalize(S0, S0), C0.scale(G0, S0, -U0), C0.add(G0, G0, e), C0.sub(T0, G0, I0); var t0 = C0.dot(T0, S0); if (y3U.T3b(G0[0], I0[0]) && y3U.S3b(G0[0], m0[0]) && y3U.I3b(0, t0)) { if (j) return !0; J0 = !0, C0.scale(T0, S0, -t0), C0.add(W0, G0, T0), C0.copy(N0, S0); var w0 = this.createContactEquation(n, k, u, m); C0.copy(w0.normalA, N0), C0.scale(w0.contactPointB, w0.normalA, -U0), u0(w0.contactPointB, w0.contactPointB, e), h0(w0.contactPointB, w0.contactPointB, k.position), C0.copy(w0.contactPointA, W0), C0.sub(w0.contactPointA, w0.contactPointA, n.position), this.contactEquations.push(w0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(w0)); } } if (J0 = !1, y3U.C3b(U0, 0)) for (var v0 = A0; y3U.v3b(L0, v0); v0++) if (C0.set(I0, y3U.t3b(v0, a0), k0[v0]), C0.add(I0, I0, q), C0.sub(T0, e, I0), y3U.y3b(C0.squaredLength(T0), Math.pow(U0, 2))) { if (j) return !0; J0 = !0; var w0 = this.createContactEquation(n, k, u, m); C0.copy(w0.normalA, T0), C0.normalize(w0.normalA, w0.normalA), C0.scale(w0.contactPointB, w0.normalA, -U0), u0(w0.contactPointB, w0.contactPointB, e), h0(w0.contactPointB, w0.contactPointB, k.position), h0(w0.contactPointA, I0, q), u0(w0.contactPointA, w0.contactPointA, q), h0(w0.contactPointA, w0.contactPointA, n.position), this.contactEquations.push(w0), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(w0)); } return J0 ? 1 : 0; }; var R7 = C0.create(), c7 = C0.create(), X7 = C0.create(), O7 = new v7([C0.create(), C0.create(), C0.create(), C0.create()]); o0.prototype[y3U.o3b(i0.RECTANGLE, i0.HEIGHTFIELD)] = o0.prototype[y3U.x3b(i0.CONVEX, i0.HEIGHTFIELD)] = o0.prototype.convexHeightfield = function (k, m, e, o, n, u, q, f, j) { var U0 = u.data, k0 = u.elementWidth, a0 = R7, T0 = c7, G0 = X7, W0 = O7, N0 = Math.floor(y3U.p3b((k.aabb.lowerBound[0] - q[0]), k0)), S0 = Math.ceil(y3U.q3b((k.aabb.upperBound[0] - q[0]), k0)); y3U.b3b(0, N0) && (N0 = 0), y3U.j3b(S0, U0.length) && (S0 = y3U.d3b(U0.length, 1)); for (var I0 = U0[N0], m0 = U0[S0], A0 = N0; y3U.c3b(S0, A0); A0++) y3U.s3b(U0[A0], m0) && (m0 = U0[A0]), y3U.Q3b(U0[A0], I0) && (I0 = U0[A0]); if (y3U.a9b(k.aabb.lowerBound[1], I0)) return j ? !1 : 0; for (var L0 = 0, A0 = N0; y3U.W9b(S0, A0); A0++) { C0.set(a0, y3U.m9b(A0, k0), U0[A0]), C0.set(T0, y3U.A9b((A0 + 1), k0), U0[A0 + 1]), C0.add(a0, a0, q), C0.add(T0, T0, q); var z0 = 100; C0.set(G0, y3U.w9b(.5, (T0[0] + a0[0])), y3U.E9b(.5, (T0[1] + a0[1] - z0))), C0.sub(W0.vertices[0], T0, G0), C0.sub(W0.vertices[1], a0, G0), C0.copy(W0.vertices[2], W0.vertices[1]), C0.copy(W0.vertices[3], W0.vertices[0]), W0.vertices[2][1] -= z0, W0.vertices[3][1] -= z0, L0 += this.convexConvex(k, m, e, o, n, W0, G0, 0, j); } return L0; }; }, { "../equations/ContactEquation" : 22, "../equations/Equation" : 23, "../equations/FrictionEquation" : 24, "../math/vec2" : 31, "../objects/Body" : 32, "../shapes/Circle" : 38, "../shapes/Convex" : 39, "../shapes/Rectangle" : 44, "../shapes/Shape" : 45, "../utils/TupleDictionary" : 49, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 14 : [function (G0, W0) { function N0() { I0.call(this, I0.SAP), this.axisList = [], this.axisIndex = 0; var e = this; this._addBodyHandler = function (k) { e.axisList.push(k.body); }, this._removeBodyHandler = function (k) { var m = e.axisList.indexOf(k.body); -1 !== m && e.axisList.splice(m, 1); }; } var S0 = (G0("__browserify_process"), G0("__browserify_Buffer"), G0("../utils/Utils")), I0 = G0("../collision/Broadphase"); W0.exports = N0, N0.prototype = new I0, N0.prototype.setWorld = function (k) { this.axisList.length = 0, S0.appendArray(this.axisList, k.bodies), k.off("addBody", this._addBodyHandler).off("removeBody", this._removeBodyHandler), k.on("addBody", this._addBodyHandler).on("removeBody", this._removeBodyHandler), this.world = k; }, N0.sortAxisList = function (m, e) { var o = function () { e = y3U.e9b(0, e); }; o(); for (var n = 1, u = m.length; y3U.g9b(u, n); n++) { var q = function (k) { m[U0 + 1] = k[U0]; }, f = function (k) { m[U0 + 1] = k; }; for (var j = m[n], U0 = y3U.r9b(n, 1); y3U.i9b(U0, 0) && !(y3U.u9b(m[U0].aabb.lowerBound[e], j.aabb.lowerBound[e])); U0--) q(m); f(j); } return m; }, N0.prototype.getCollisionPairs = function () { var m = function (k) { o.length = k; }, e = this.axisList, o = this.result, n = this.axisIndex; m(0); for (var u = e.length; u--; ) { var q = e[u]; q.aabbNeedsUpdate && q.updateAABB(); } N0.sortAxisList(e, n); for (var f = 0, j = y3U.P9b(0, e.length); y3U.D9b(f, j); f++) for (var U0 = e[f], k0 = f + 1; y3U.Z9b(j, k0); k0++) { var a0 = e[k0], T0 = y3U.R9b(a0.aabb.lowerBound[n], U0.aabb.upperBound[n]); if (!T0) break; I0.canCollide(U0, a0) && this.boundingVolumeCheck(U0, a0) && o.push(U0, a0); } return o; }; }, { "../collision/Broadphase" : 10, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 15 : [function (n, u) { function q(k, m, e, o) { this.type = e, o = j.defaults(o, { collideConnected : !0, wakeUpBodies : !0 }), this.equations = [], this.bodyA = k, this.bodyB = m, this.collideConnected = o.collideConnected, o.wakeUpBodies && (k && k.wakeUp(), m && m.wakeUp()); } var f = function (k) { u.exports = k; }; n("__browserify_process"), n("__browserify_Buffer"); f(q); var j = n("../utils/Utils"); q.prototype.update = function () { throw new Error("method update() not implmemented in this Constraint subclass!"); }, q.DISTANCE = 1, q.GEAR = 2, q.LOCK = 3, q.PRISMATIC = 4, q.REVOLUTE = 5, q.prototype.setStiffness = function (k) { for (var m = this.equations, e = 0; y3U.O9b(e, m.length); e++) { var o = m[e]; o.stiffness = k, o.needsUpdate = !0; } }, q.prototype.setRelaxation = function (k) { for (var m = this.equations, e = 0; y3U.V9b(e, m.length); e++) { var o = m[e]; o.relaxation = k, o.needsUpdate = !0; } }; }, { "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 16 : [function (m0, A0) { function L0(n, u, q) { var f = function () { G0 = "undefined" == typeof q.maxForce ? Number.MAX_VALUE : q.maxForce; }; q = J0.defaults(q, { localAnchorA : [0, 0], localAnchorB : [0, 0] }), z0.call(this, n, u, z0.DISTANCE, q), this.localAnchorA = v0.fromValues(q.localAnchorA[0], q.localAnchorA[1]), this.localAnchorB = v0.fromValues(q.localAnchorB[0], q.localAnchorB[1]); var j = this.localAnchorA, U0 = this.localAnchorB; if (this.distance = 0, "number" == typeof q.distance) this.distance = q.distance; else { var k0 = v0.create(), a0 = v0.create(), T0 = v0.create(); v0.rotate(k0, j, n.angle), v0.rotate(a0, U0, u.angle), v0.add(T0, u.position, a0), v0.sub(T0, T0, k0), v0.sub(T0, T0, n.position), this.distance = v0.length(T0); } var G0; f(); var W0 = new E0(n, u, -G0, G0); this.equations = [W0], this.maxForce = G0; var T0 = v0.create(), N0 = v0.create(), S0 = v0.create(), I0 = this; W0.computeGq = function () { var k = this.bodyA, m = this.bodyB, e = k.position, o = m.position; return v0.rotate(N0, j, k.angle), v0.rotate(S0, U0, m.angle), v0.add(T0, o, S0), v0.sub(T0, T0, N0), v0.sub(T0, T0, e), y3U.k5b(v0.length(T0), I0.distance); }, this.setMaxForce(G0), this.upperLimitEnabled = !1, this.upperLimit = 1, this.lowerLimitEnabled = !1, this.lowerLimit = 0, this.position = 0; } var z0 = (m0("__browserify_process"), m0("__browserify_Buffer"), m0("./Constraint")), E0 = m0("../equations/Equation"), v0 = m0("../math/vec2"), J0 = m0("../utils/Utils"); A0.exports = L0, L0.prototype = new z0; var t0 = v0.create(), w0 = v0.create(), g0 = v0.create(); L0.prototype.update = function () { var k = this.equations[0], m = this.bodyA, e = this.bodyB, o = (this.distance, m.position), n = e.position, u = this.equations[0], q = k.G; v0.rotate(w0, this.localAnchorA, m.angle), v0.rotate(g0, this.localAnchorB, e.angle), v0.add(t0, n, g0), v0.sub(t0, t0, w0), v0.sub(t0, t0, o), this.position = v0.length(t0); var f = !1; if (this.upperLimitEnabled && y3U.G5b(this.position, this.upperLimit) && (u.maxForce = 0, u.minForce = -this.maxForce, this.distance = this.upperLimit, f = !0), this.lowerLimitEnabled && y3U.N5b(this.position, this.lowerLimit) && (u.maxForce = this.maxForce, u.minForce = 0, this.distance = this.lowerLimit, f = !0), (this.lowerLimitEnabled || this.upperLimitEnabled) && !f) return void(u.enabled = !1); u.enabled = !0, v0.normalize(t0, t0); var j = v0.crossLength(w0, t0), U0 = v0.crossLength(g0, t0); q[0] = -t0[0], q[1] = -t0[1], q[2] = -j, q[3] = t0[0], q[4] = t0[1], q[5] = U0; }, L0.prototype.setMaxForce = function (k) { var m = this.equations[0]; m.minForce = -k, m.maxForce = k; }, L0.prototype.getMaxForce = function () { var k = this.equations[0]; return k.maxForce; }; }, { "../equations/Equation" : 23, "../math/vec2" : 31, "../utils/Utils" : 50, "./Constraint" : 15, __browserify_Buffer : 1, __browserify_process : 2 } ], 17 : [function (o, n) { function u(k, m, e) { e = e || {}, q.call(this, k, m, q.GEAR, e), this.ratio = "number" == typeof e.ratio ? e.ratio : 1, this.angle = "number" == typeof e.angle ? e.angle : y3U.L5b(m.angle, this.ratio * k.angle), e.angle = this.angle, e.ratio = this.ratio, this.equations = [new f(k, m, e)], "number" == typeof e.maxTorque && this.setMaxTorque(e.maxTorque); } { var q = (o("__browserify_process"), o("__browserify_Buffer"), o("./Constraint")), f = (o("../equations/Equation"), o("../equations/AngleLockEquation")); o("../math/vec2"); } n.exports = u, u.prototype = new q, u.prototype.update = function () { var k = this.equations[0]; y3U.z5b(k.ratio, this.ratio) && k.setRatio(this.ratio), k.angle = this.angle; }, u.prototype.setMaxTorque = function (k) { this.equations[0].setMaxTorque(k); }, u.prototype.getMaxTorque = function () { return this.equations[0].maxForce; }; }, { "../equations/AngleLockEquation" : 21, "../equations/Equation" : 23, "../math/vec2" : 31, "./Constraint" : 15, __browserify_Buffer : 1, __browserify_process : 2 } ], 18 : [function (T0, G0) { function W0(k, m, e) { e = e || {}, N0.call(this, k, m, N0.LOCK, e); var o = "undefined" == typeof e.maxForce ? Number.MAX_VALUE : e.maxForce, n = (e.localAngleB || 0, new I0(k, m, -o, o)), u = new I0(k, m, -o, o), q = new I0(k, m, -o, o), f = S0.create(), j = S0.create(), U0 = this; n.computeGq = function () { return S0.rotate(f, U0.localOffsetB, k.angle), S0.sub(j, m.position, k.position), S0.sub(j, j, f), j[0]; }, u.computeGq = function () { return S0.rotate(f, U0.localOffsetB, k.angle), S0.sub(j, m.position, k.position), S0.sub(j, j, f), j[1]; }; var k0 = S0.create(), a0 = S0.create(); q.computeGq = function () { return S0.rotate(k0, U0.localOffsetB, y3U.J5b(m.angle, U0.localAngleB)), S0.scale(k0, k0, -1), S0.sub(j, k.position, m.position), S0.add(j, j, k0), S0.rotate(a0, k0, -Math.PI / 2), S0.normalize(a0, a0), S0.dot(j, a0); }, this.localOffsetB = S0.create(), e.localOffsetB ? S0.copy(this.localOffsetB, e.localOffsetB) : (S0.sub(this.localOffsetB, m.position, k.position), S0.rotate(this.localOffsetB, this.localOffsetB, -k.angle)), this.localAngleB = 0, this.localAngleB = "number" == typeof e.localAngleB ? e.localAngleB : y3U.H5b(m.angle, k.angle), this.equations.push(n, u, q), this.setMaxForce(o); } var N0 = (T0("__browserify_process"), T0("__browserify_Buffer"), T0("./Constraint")), S0 = T0("../math/vec2"), I0 = T0("../equations/Equation"); G0.exports = W0, W0.prototype = new N0, W0.prototype.setMaxForce = function (k) { for (var m = this.equations, e = 0; y3U.h5b(e, this.equations.length); e++) m[e].maxForce = k, m[e].minForce = -k; }, W0.prototype.getMaxForce = function () { return this.equations[0].maxForce; }; var m0 = S0.create(), A0 = S0.create(), L0 = S0.create(), z0 = S0.fromValues(1, 0), E0 = S0.fromValues(0, 1); W0.prototype.update = function () { var k = this.equations[0], m = this.equations[1], e = this.equations[2], o = this.bodyA, n = this.bodyB; S0.rotate(m0, this.localOffsetB, o.angle), S0.rotate(A0, this.localOffsetB, y3U.F5b(n.angle, this.localAngleB)), S0.scale(A0, A0, -1), S0.rotate(L0, A0, y3U.M5b(Math.PI, 2)), S0.normalize(L0, L0), k.G[0] = -1, k.G[1] = 0, k.G[2] = -S0.crossLength(m0, z0), k.G[3] = 1, m.G[0] = 0, m.G[1] = -1, m.G[2] = -S0.crossLength(m0, E0), m.G[4] = 1, e.G[0] = -L0[0], e.G[1] = -L0[1], e.G[3] = L0[0], e.G[4] = L0[1], e.G[5] = S0.crossLength(A0, L0); }; }, { "../equations/Equation" : 23, "../math/vec2" : 31, "./Constraint" : 15, __browserify_Buffer : 1, __browserify_process : 2 } ], 19 : [function (E0, v0) { function J0(f, j, U0) { U0 = U0 || {}, t0.call(this, f, j, t0.PRISMATIC, U0); var k0 = H0.fromValues(0, 0), a0 = H0.fromValues(1, 0), T0 = H0.fromValues(0, 0); U0.localAnchorA && H0.copy(k0, U0.localAnchorA), U0.localAxisA && H0.copy(a0, U0.localAxisA), U0.localAnchorB && H0.copy(T0, U0.localAnchorB), this.localAnchorA = k0, this.localAnchorB = T0, this.localAxisA = a0; var G0 = this.maxForce = "undefined" != typeof U0.maxForce ? U0.maxForce : Number.MAX_VALUE, W0 = new g0(f, j, -G0, G0), N0 = new H0.create, S0 = new H0.create, I0 = new H0.create, m0 = new H0.create; if (W0.computeGq = function () { return H0.dot(I0, m0); }, W0.updateJacobian = function () { var k = this.G, m = f.position, e = j.position; H0.rotate(N0, k0, f.angle), H0.rotate(S0, T0, j.angle), H0.add(I0, e, S0), H0.sub(I0, I0, m), H0.sub(I0, I0, N0), H0.rotate(m0, a0, f.angle + y3U.n5b(Math.PI, 2)), k[0] = -m0[0], k[1] = -m0[1], k[2] = -H0.crossLength(N0, m0) + H0.crossLength(m0, I0), k[3] = m0[0], k[4] = m0[1], k[5] = H0.crossLength(S0, m0); }, this.equations.push(W0), !U0.disableRotationalLock) { var A0 = new M0(f, j, -G0, G0); this.equations.push(A0); } this.position = 0, this.velocity = 0, this.lowerLimitEnabled = "undefined" != typeof U0.lowerLimit ? !0 : !1, this.upperLimitEnabled = "undefined" != typeof U0.upperLimit ? !0 : !1, this.lowerLimit = "undefined" != typeof U0.lowerLimit ? U0.lowerLimit : 0, this.upperLimit = "undefined" != typeof U0.upperLimit ? U0.upperLimit : 1, this.upperLimitEquation = new w0(f, j), this.lowerLimitEquation = new w0(f, j), this.upperLimitEquation.minForce = this.lowerLimitEquation.minForce = 0, this.upperLimitEquation.maxForce = this.lowerLimitEquation.maxForce = G0, this.motorEquation = new g0(f, j), this.motorEnabled = !1, this.motorSpeed = 0; { var L0 = this, z0 = this.motorEquation; z0.computeGW; } z0.computeGq = function () { return 0; }, z0.computeGW = function () { var k = this.G, m = this.bodyA, e = this.bodyB, o = m.velocity, n = e.velocity, u = m.angularVelocity, q = e.angularVelocity; return this.gmult(k, o, u, n, q) + L0.motorSpeed; }; } var t0 = (E0("__browserify_process"), E0("__browserify_Buffer"), E0("./Constraint")), w0 = E0("../equations/ContactEquation"), g0 = E0("../equations/Equation"), H0 = E0("../math/vec2"), M0 = E0("../equations/RotationalLockEquation"); v0.exports = J0, J0.prototype = new t0; var p0 = H0.create(), e0 = H0.create(), F0 = H0.create(), P0 = H0.create(), O0 = H0.create(), b0 = H0.create(); J0.prototype.update = function () { var k = this.equations, m = k[0], e = this.upperLimit, o = this.lowerLimit, n = this.upperLimitEquation, u = this.lowerLimitEquation, q = this.bodyA, f = this.bodyB, j = this.localAxisA, U0 = this.localAnchorA, k0 = this.localAnchorB; m.updateJacobian(), H0.rotate(p0, j, q.angle), H0.rotate(P0, U0, q.angle), H0.add(e0, P0, q.position), H0.rotate(O0, k0, f.angle), H0.add(F0, O0, f.position); var a0 = this.position = y3U.f5b(H0.dot(F0, p0), H0.dot(e0, p0)); if (this.motorEnabled) { var T0 = this.motorEquation.G; T0[0] = p0[0], T0[1] = p0[1], T0[2] = H0.crossLength(p0, O0), T0[3] = -p0[0], T0[4] = -p0[1], T0[5] = -H0.crossLength(p0, P0); } if (this.upperLimitEnabled && y3U.K5b(a0, e)) H0.scale(n.normalA, p0, -1), H0.sub(n.contactPointA, e0, q.position), H0.sub(n.contactPointB, F0, f.position), H0.scale(b0, p0, e), H0.add(n.contactPointA, n.contactPointA, b0), -1 === k.indexOf(n) && k.push(n); else { var G0 = k.indexOf(n); -1 !== G0 && k.splice(G0, 1); } if (this.lowerLimitEnabled && y3U.B5b(o, a0)) H0.scale(u.normalA, p0, 1), H0.sub(u.contactPointA, e0, q.position), H0.sub(u.contactPointB, F0, f.position), H0.scale(b0, p0, o), H0.sub(u.contactPointB, u.contactPointB, b0), -1 === k.indexOf(u) && k.push(u); else { var G0 = k.indexOf(u); -1 !== G0 && k.splice(G0, 1); } }, J0.prototype.enableMotor = function () { this.motorEnabled || (this.equations.push(this.motorEquation), this.motorEnabled = !0); }, J0.prototype.disableMotor = function () { if (this.motorEnabled) { var k = this.equations.indexOf(this.motorEquation); this.equations.splice(k, 1), this.motorEnabled = !1; } }, J0.prototype.setLimits = function (k, m) { "number" == typeof k ? (this.lowerLimit = k, this.lowerLimitEnabled = !0) : (this.lowerLimit = k, this.lowerLimitEnabled = !1), "number" == typeof m ? (this.upperLimit = m, this.upperLimitEnabled = !0) : (this.upperLimit = m, this.upperLimitEnabled = !1); }; }, { "../equations/ContactEquation" : 22, "../equations/Equation" : 23, "../equations/RotationalLockEquation" : 25, "../math/vec2" : 31, "./Constraint" : 15, __browserify_Buffer : 1, __browserify_process : 2 } ], 20 : [function (G0, W0) { function N0(k, m, e) { e = e || {}, I0.call(this, k, m, I0.REVOLUTE, e); var o = this.maxForce = "undefined" != typeof e.maxForce ? e.maxForce : Number.MAX_VALUE; this.pivotA = z0.create(), this.pivotB = z0.create(), e.worldPivot ? (z0.sub(this.pivotA, e.worldPivot, k.position), z0.sub(this.pivotB, e.worldPivot, m.position), z0.rotate(this.pivotA, this.pivotA, -k.angle), z0.rotate(this.pivotB, this.pivotB, -m.angle)) : (z0.copy(this.pivotA, e.localPivotA), z0.copy(this.pivotB, e.localPivotB)); var n = this.equations = [new m0(k, m, -o, o), new m0(k, m, -o, o)], u = n[0], q = n[1], f = this; u.computeGq = function () { return z0.rotate(E0, f.pivotA, k.angle), z0.rotate(v0, f.pivotB, m.angle), z0.add(w0, m.position, v0), z0.sub(w0, w0, k.position), z0.sub(w0, w0, E0), z0.dot(w0, J0); }, q.computeGq = function () { return z0.rotate(E0, f.pivotA, k.angle), z0.rotate(v0, f.pivotB, m.angle), z0.add(w0, m.position, v0), z0.sub(w0, w0, k.position), z0.sub(w0, w0, E0), z0.dot(w0, t0); }, q.minForce = u.minForce = -o, q.maxForce = u.maxForce = o, this.motorEquation = new A0(k, m), this.motorEnabled = !1, this.angle = 0, this.lowerLimitEnabled = !1, this.upperLimitEnabled = !1, this.lowerLimit = 0, this.upperLimit = 0, this.upperLimitEquation = new L0(k, m), this.lowerLimitEquation = new L0(k, m), this.upperLimitEquation.minForce = 0, this.lowerLimitEquation.maxForce = 0; } var S0 = function (k) { W0.exports = k; }, I0 = (G0("__browserify_process"), G0("__browserify_Buffer"), G0("./Constraint")), m0 = G0("../equations/Equation"), A0 = G0("../equations/RotationalVelocityEquation"), L0 = G0("../equations/RotationalLockEquation"), z0 = G0("../math/vec2"); S0(N0); var E0 = z0.create(), v0 = z0.create(), J0 = z0.fromValues(1, 0), t0 = z0.fromValues(0, 1), w0 = z0.create(); N0.prototype = new I0, N0.prototype.setLimits = function (k, m) { "number" == typeof k ? (this.lowerLimit = k, this.lowerLimitEnabled = !0) : (this.lowerLimit = k, this.lowerLimitEnabled = !1), "number" == typeof m ? (this.upperLimit = m, this.upperLimitEnabled = !0) : (this.upperLimit = m, this.upperLimitEnabled = !1); }, N0.prototype.update = function () { var k = this.bodyA, m = this.bodyB, e = this.pivotA, o = this.pivotB, n = this.equations, u = (n[0], n[1], n[0]), q = n[1], f = this.upperLimit, j = this.lowerLimit, U0 = this.upperLimitEquation, k0 = this.lowerLimitEquation, a0 = this.angle = y3U.l5b(m.angle, k.angle); if (this.upperLimitEnabled && y3U.X5b(a0, f)) U0.angle = f, -1 === n.indexOf(U0) && n.push(U0); else { var T0 = n.indexOf(U0); -1 !== T0 && n.splice(T0, 1); } if (this.lowerLimitEnabled && y3U.Y5b(j, a0)) k0.angle = j, -1 === n.indexOf(k0) && n.push(k0); else { var T0 = n.indexOf(k0); -1 !== T0 && n.splice(T0, 1); } z0.rotate(E0, e, k.angle), z0.rotate(v0, o, m.angle), u.G[0] = -1, u.G[1] = 0, u.G[2] = -z0.crossLength(E0, J0), u.G[3] = 1, u.G[4] = 0, u.G[5] = z0.crossLength(v0, J0), q.G[0] = 0, q.G[1] = -1, q.G[2] = -z0.crossLength(E0, t0), q.G[3] = 0, q.G[4] = 1, q.G[5] = z0.crossLength(v0, t0); }, N0.prototype.enableMotor = function () { this.motorEnabled || (this.equations.push(this.motorEquation), this.motorEnabled = !0); }, N0.prototype.disableMotor = function () { if (this.motorEnabled) { var k = this.equations.indexOf(this.motorEquation); this.equations.splice(k, 1), this.motorEnabled = !1; } }, N0.prototype.motorIsEnabled = function () { return !!this.motorEnabled; }, N0.prototype.setMotorSpeed = function (k) { if (this.motorEnabled) { var m = this.equations.indexOf(this.motorEquation); this.equations[m].relativeVelocity = k; } }, N0.prototype.getMotorSpeed = function () { return this.motorEnabled ? this.motorEquation.relativeVelocity : !1; }; }, { "../equations/Equation" : 23, "../equations/RotationalLockEquation" : 25, "../equations/RotationalVelocityEquation" : 26, "../math/vec2" : 31, "./Constraint" : 15, __browserify_Buffer : 1, __browserify_process : 2 } ], 21 : [function (o, n) { function u(k, m, e) { e = e || {}, q.call(this, k, m, -Number.MAX_VALUE, Number.MAX_VALUE), this.angle = e.angle || 0, this.ratio = "number" == typeof e.ratio ? e.ratio : 1, this.setRatio(this.ratio); } { var q = (o("__browserify_process"), o("__browserify_Buffer"), o("./Equation")); o("../math/vec2"); } n.exports = u, u.prototype = new q, u.prototype.constructor = u, u.prototype.computeGq = function () { return y3U.U2b(this.ratio * this.bodyA.angle, this.bodyB.angle, this.angle); }, u.prototype.setRatio = function (k) { var m = this.G; m[2] = k, m[5] = -1, this.ratio = k; }, u.prototype.setMaxTorque = function (k) { this.maxForce = k, this.minForce = -k; }; }, { "../math/vec2" : 31, "./Equation" : 23, __browserify_Buffer : 1, __browserify_process : 2 } ], 22 : [function (m0, A0) { function L0(k, m) { z0.call(this, k, m, 0, Number.MAX_VALUE), this.contactPointA = E0.create(), this.penetrationVec = E0.create(), this.contactPointB = E0.create(), this.normalA = E0.create(), this.restitution = 0, this.firstImpact = !1, this.shapeA = null, this.shapeB = null; } var z0 = (m0("__browserify_process"), m0("__browserify_Buffer"), m0("./Equation")), E0 = m0("../math/vec2"); A0.exports = L0, L0.prototype = new z0, L0.prototype.constructor = L0, L0.prototype.computeB = function (k, m, e) { var o = this.bodyA, n = this.bodyB, u = this.contactPointA, q = this.contactPointB, f = o.position, j = n.position, U0 = this.penetrationVec, k0 = this.normalA, a0 = this.G, T0 = E0.crossLength(u, k0), G0 = E0.crossLength(q, k0); a0[0] = -k0[0], a0[1] = -k0[1], a0[2] = -T0, a0[3] = k0[0], a0[4] = k0[1], a0[5] = G0, E0.add(U0, j, q), E0.sub(U0, U0, f), E0.sub(U0, U0, u); var W0, N0; this.firstImpact && y3U.G2b(0, this.restitution) ? (N0 = 0, W0 = y3U.N2b(1, m, (1 + this.restitution), this.computeGW())) : (N0 = E0.dot(k0, U0) + this.offset, W0 = this.computeGW()); var S0 = this.computeGiMf(), I0 = -N0 * k - y3U.C2b(W0, m) - y3U.v2b(e, S0); return I0; }; }, { "../math/vec2" : 31, "./Equation" : 23, __browserify_Buffer : 1, __browserify_process : 2 } ], 23 : [function (a0, T0) { var G0 = function (k) { T0.exports = k; }; function W0(k, m, e, o) { this.minForce = "undefined" == typeof e ? -Number.MAX_VALUE : e, this.maxForce = "undefined" == typeof o ? Number.MAX_VALUE : o, this.bodyA = k, this.bodyB = m, this.stiffness = W0.DEFAULT_STIFFNESS, this.relaxation = W0.DEFAULT_RELAXATION, this.G = new S0.ARRAY_TYPE(6); for (var n = 0; y3U.t2b(6, n); n++) this.G[n] = 0; this.offset = 0, this.a = 0, this.b = 0, this.epsilon = 0, this.timeStep = y3U.y2b(1, 60), this.needsUpdate = !0, this.multiplier = 0, this.relativeVelocity = 0, this.enabled = !0; } a0("__browserify_process"), a0("__browserify_Buffer"); G0(W0); { var N0 = a0("../math/vec2"), S0 = a0("../utils/Utils"); a0("../objects/Body"); } W0.prototype.constructor = W0, W0.DEFAULT_STIFFNESS = 1e6, W0.DEFAULT_RELAXATION = 4, W0.prototype.update = function () { var k = this.stiffness, m = this.relaxation, e = this.timeStep; this.a = y3U.o2b(4, (e * (1 + 4 * m))), this.b = y3U.x2b(4, m, (1 + 4 * m)), this.epsilon = y3U.n2b(4, (e * e * k * (1 + 4 * m))), this.needsUpdate = !1; }, W0.prototype.gmult = function (k, m, e, o, n) { return y3U.f2b(k[0], m[0]) + y3U.K2b(k[1], m[1]) + y3U.B2b(k[2], e) + y3U.l2b(k[3], o[0]) + y3U.X2b(k[4], o[1]) + y3U.Y2b(k[5], n); }, W0.prototype.computeB = function (k, m, e) { var o = this.computeGW(), n = this.computeGq(), u = this.computeGiMf(); return -n * k - y3U.U1b(o, m) - y3U.T1b(u, e); }; var I0 = N0.create(), m0 = N0.create(); W0.prototype.computeGq = function () { var k = this.G, m = this.bodyA, e = this.bodyB, o = (m.position, e.position, m.angle), n = e.angle; return this.gmult(k, I0, o, m0, n) + this.offset; }, W0.prototype.computeGW = function () { var k = this.G, m = this.bodyA, e = this.bodyB, o = m.velocity, n = e.velocity, u = m.angularVelocity, q = e.angularVelocity; return this.gmult(k, o, u, n, q) + this.relativeVelocity; }, W0.prototype.computeGWlambda = function () { var k = this.G, m = this.bodyA, e = this.bodyB, o = m.vlambda, n = e.vlambda, u = m.wlambda, q = e.wlambda; return this.gmult(k, o, u, n, q); }; var A0 = N0.create(), L0 = N0.create(); W0.prototype.computeGiMf = function () { var k = this.bodyA, m = this.bodyB, e = k.force, o = k.angularForce, n = m.force, u = m.angularForce, q = k.invMassSolve, f = m.invMassSolve, j = k.invInertiaSolve, U0 = m.invInertiaSolve, k0 = this.G; return N0.scale(A0, e, q), N0.scale(L0, n, f), this.gmult(k0, A0, y3U.S1b(o, j), L0, y3U.I1b(u, U0)); }, W0.prototype.computeGiMGt = function () { var k = this.bodyA, m = this.bodyB, e = k.invMassSolve, o = m.invMassSolve, n = k.invInertiaSolve, u = m.invInertiaSolve, q = this.G; return y3U.C1b(q[0], q[0], e) + y3U.J1b(q[1], q[1], e) + y3U.e1b(q[2], q[2], n) + y3U.o1b(q[3], q[3], o) + y3U.M1b(q[4], q[4], o) + y3U.u1b(q[5], q[5], u); }; { var z0 = N0.create(), E0 = N0.create(), v0 = N0.create(); N0.create(), N0.create(), N0.create(); } W0.prototype.addToWlambda = function (k) { var m = this.bodyA, e = this.bodyB, o = z0, n = E0, u = v0, q = m.invMassSolve, f = e.invMassSolve, j = m.invInertiaSolve, U0 = e.invInertiaSolve, k0 = this.G; n[0] = k0[0], n[1] = k0[1], u[0] = k0[3], u[1] = k0[4], N0.scale(o, n, y3U.b1b(q, k)), N0.add(m.vlambda, m.vlambda, o), m.wlambda += y3U.j1b(j, k0[2], k), N0.scale(o, u, y3U.l1b(f, k)), N0.add(e.vlambda, e.vlambda, o), e.wlambda += y3U.X1b(U0, k0[5], k); }, W0.prototype.computeInvC = function (k) { return y3U.V1b(1, (this.computeGiMGt() + k)); }; }, { "../math/vec2" : 31, "../objects/Body" : 32, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 24 : [function (k0, a0) { function T0(k, m, e) { W0.call(this, k, m, -e, e), this.contactPointA = G0.create(), this.contactPointB = G0.create(), this.t = G0.create(), this.contactEquations = [], this.shapeA = null, this.shapeB = null, this.frictionCoefficient = .3; } { var G0 = (k0("__browserify_process"), k0("__browserify_Buffer"), k0("../math/vec2")), W0 = k0("./Equation"); k0("../utils/Utils"); } a0.exports = T0, T0.prototype = new W0, T0.prototype.constructor = T0, T0.prototype.setSlipForce = function (k) { this.maxForce = k, this.minForce = -k; }, T0.prototype.getSlipForce = function () { return this.maxForce; }, T0.prototype.computeB = function (k, m, e) { var o = (this.bodyA, this.bodyB, this.contactPointA), n = this.contactPointB, u = this.t, q = this.G; q[0] = -u[0], q[1] = -u[1], q[2] = -G0.crossLength(o, u), q[3] = u[0], q[4] = u[1], q[5] = G0.crossLength(n, u); var f = this.computeGW(), j = this.computeGiMf(), U0 = -f * m - y3U.k6b(e, j); return U0; }; }, { "../math/vec2" : 31, "../utils/Utils" : 50, "./Equation" : 23, __browserify_Buffer : 1, __browserify_process : 2 } ], 25 : [function (n, u) { function q(k, m, e) { e = e || {}, f.call(this, k, m, -Number.MAX_VALUE, Number.MAX_VALUE), this.angle = e.angle || 0; var o = this.G; o[2] = 1, o[5] = -1; } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("./Equation")), j = n("../math/vec2"); u.exports = q, q.prototype = new f, q.prototype.constructor = q; var U0 = j.create(), k0 = j.create(), a0 = j.fromValues(1, 0), T0 = j.fromValues(0, 1); q.prototype.computeGq = function () { return j.rotate(U0, a0, this.bodyA.angle + this.angle), j.rotate(k0, T0, this.bodyB.angle), j.dot(U0, k0); }; }, { "../math/vec2" : 31, "./Equation" : 23, __browserify_Buffer : 1, __browserify_process : 2 } ], 26 : [function (f, j) { function U0(k, m) { k0.call(this, k, m, -Number.MAX_VALUE, Number.MAX_VALUE), this.relativeVelocity = 1, this.ratio = 1; } { var k0 = (f("__browserify_process"), f("__browserify_Buffer"), f("./Equation")); f("../math/vec2"); } j.exports = U0, U0.prototype = new k0, U0.prototype.constructor = U0, U0.prototype.computeB = function (k, m, e) { var o = this.G; o[2] = -1, o[5] = this.ratio; var n = this.computeGiMf(), u = this.computeGW(), q = -u * m - y3U.G6b(e, n); return q; }; }, { "../math/vec2" : 31, "./Equation" : 23, __browserify_Buffer : 1, __browserify_process : 2 } ], 27 : [function (q, f) { var j = (q("__browserify_process"), q("__browserify_Buffer"), function () {}); f.exports = j, j.prototype = { constructor : j, on : function (k, m, e) { m.context = e || this, void 0 === this._listeners && (this._listeners = {}); var o = this._listeners; return void 0 === o[k] && (o[k] = []), -1 === o[k].indexOf(m) && o[k].push(m), this; }, has : function (k, m) { if (void 0 === this._listeners) return !1; var e = this._listeners; if (m) { if (void 0 !== e[k] && -1 !== e[k].indexOf(m)) return !0; } else if (void 0 !== e[k]) return !0; return !1; }, off : function (k, m) { if (void 0 === this._listeners) return this; var e = this._listeners, o = e[k].indexOf(m); return -1 !== o && e[k].splice(o, 1), this; }, emit : function (k) { if (void 0 === this._listeners) return this; var m = this._listeners, e = m[k.type]; if (void 0 !== e) { k.target = this; for (var o = 0, n = e.length; y3U.N6b(n, o); o++) { var u = e[o]; u.call(u.context, k); } } return this; } }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 28 : [function (o, n) { function u(k, m, e) { if (e = e || {}, !(y3U.L6b(k, q) && y3U.z6b(m, q))) throw new Error("First two arguments must be Material instances."); this.id = u.idCounter++, this.materialA = k, this.materialB = m, this.friction = "undefined" != typeof e.friction ? Number(e.friction) : .3, this.restitution = "undefined" != typeof e.restitution ? Number(e.restitution) : 0, this.stiffness = "undefined" != typeof e.stiffness ? Number(e.stiffness) : f.DEFAULT_STIFFNESS, this.relaxation = "undefined" != typeof e.relaxation ? Number(e.relaxation) : f.DEFAULT_RELAXATION, this.frictionStiffness = "undefined" != typeof e.frictionStiffness ? Number(e.frictionStiffness) : f.DEFAULT_STIFFNESS, this.frictionRelaxation = "undefined" != typeof e.frictionRelaxation ? Number(e.frictionRelaxation) : f.DEFAULT_RELAXATION, this.surfaceVelocity = "undefined" != typeof e.surfaceVelocity ? Number(e.surfaceVelocity) : 0, this.contactSkinSize = .005; } var q = (o("__browserify_process"), o("__browserify_Buffer"), o("./Material")), f = o("../equations/Equation"); n.exports = u, u.idCounter = 0; }, { "../equations/Equation" : 23, "./Material" : 29, __browserify_Buffer : 1, __browserify_process : 2 } ], 29 : [function (m, e) { function o(k) { this.id = k || o.idCounter++; } m("__browserify_process"), m("__browserify_Buffer"); e.exports = o, o.idCounter = 0; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 30 : [function (E0, v0) { var J0 = (E0("__browserify_process"), E0("__browserify_Buffer"), {}); J0.GetArea = function (k) { if (y3U.J6b(k.length, 6)) return 0; for (var m = y3U.H6b(k.length, 2), e = 0, o = 0; y3U.h6b(m, o); o += 2) e += y3U.F6b((k[o + 2] - k[o]), (k[o + 1] + k[o + 3])); return e += y3U.M6b((k[0] - k[m]), (k[m + 1] + k[1])), .5 * -e; }, J0.Triangulate = function (k) { var m = y3U.n6b(k.length, 1); if (y3U.f6b(3, m)) return []; for (var e = [], o = [], n = 0; y3U.K6b(m, n); n++) o.push(n); for (var n = 0, u = m; y3U.B6b(u, 3); ) { var q = o[y3U.l6b((n + 0), u)], f = o[y3U.X6b((n + 1), u)], j = o[y3U.Y6b((n + 2), u)], U0 = k[y3U.U8b(2, q)], k0 = k[y3U.T8b(2, q) + 1], a0 = k[y3U.S8b(2, f)], T0 = k[y3U.I8b(2, f) + 1], G0 = k[y3U.C8b(2, j)], W0 = k[y3U.v8b(2, j) + 1], N0 = !1; if (J0._convex(U0, k0, a0, T0, G0, W0)) { var S0 = function () { N0 = !0; }; S0(); for (var I0 = 0; y3U.t8b(u, I0); I0++) { var m0 = o[I0]; if (y3U.y8b(m0, q) && y3U.o8b(m0, f) && y3U.x8b(m0, j) && J0._PointInTriangle(k[y3U.p8b(2, m0)], k[y3U.q8b(2, m0) + 1], U0, k0, a0, T0, G0, W0)) { var A0 = function () { N0 = !1; }; A0(); break; } } } if (N0) e.push(q, f, j), o.splice(y3U.b8b((n + 1), u), 1), u--, n = 0; else if (y3U.j8b(n++, 3 * u)) break; } return e.push(o[0], o[1], o[2]), e; }, J0._PointInTriangle = function (k, m, e, o, n, u, q, f) { var j = y3U.d8b(q, e), U0 = y3U.c8b(f, o), k0 = y3U.s8b(n, e), a0 = y3U.Q8b(u, o), T0 = y3U.a0d(k, e), G0 = y3U.W0d(m, o), W0 = y3U.m0d(j, j) + y3U.A0d(U0, U0), N0 = y3U.w0d(j, k0) + y3U.E0d(U0, a0), S0 = y3U.e0d(j, T0) + y3U.g0d(U0, G0), I0 = y3U.r0d(k0, k0) + y3U.i0d(a0, a0), m0 = y3U.u0d(k0, T0) + y3U.P0d(a0, G0), A0 = y3U.D0d(1, (W0 * I0 - N0 * N0)), L0 = y3U.Z0d((I0 * S0 - N0 * m0), A0), z0 = y3U.R0d((W0 * m0 - N0 * S0), A0); return y3U.O0d(L0, 0) && y3U.V0d(z0, 0) && y3U.k7d(1, L0 + z0); }, J0._convex = function (k, m, e, o, n, u) { return y3U.G7d((m - o) * (n - e) + (e - k) * (u - o), 0); }, v0.exports = J0; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 31 : [function (f, j) { var U0 = (f("__browserify_process"), f("__browserify_Buffer"), j.exports = {}), k0 = f("../utils/Utils"); U0.crossLength = function (k, m) { return y3U.N7d(k[0] * m[1], k[1] * m[0]); }, U0.crossVZ = function (k, m, e) { return U0.rotate(k, m, -Math.PI / 2), U0.scale(k, k, e), k; }, U0.crossZV = function (k, m, e) { return U0.rotate(k, e, y3U.L7d(Math.PI, 2)), U0.scale(k, k, m), k; }, U0.rotate = function (k, m, e) { if (y3U.z7d(0, e)) { var o = Math.cos(e), n = Math.sin(e), u = m[0], q = m[1]; k[0] = y3U.J7d(o * u, n * q), k[1] = y3U.H7d(n, u) + y3U.h7d(o, q); } else k[0] = m[0], k[1] = m[1]; }, U0.rotate90cw = function (k, m) { var e = m[0], o = m[1]; k[0] = o, k[1] = -e; }, U0.toLocalFrame = function (k, m, e, o) { U0.copy(k, m), U0.sub(k, k, e), U0.rotate(k, k, -o); }, U0.toGlobalFrame = function (k, m, e, o) { U0.copy(k, m), U0.rotate(k, k, o), U0.add(k, k, e); }, U0.centroid = function (k, m, e, o) { return U0.add(k, m, e), U0.add(k, k, o), U0.scale(k, k, y3U.F7d(1, 3)), k; }, U0.create = function () { var k = new k0.ARRAY_TYPE(2); return k[0] = 0, k[1] = 0, k; }, U0.clone = function (k) { var m = new k0.ARRAY_TYPE(2); return m[0] = k[0], m[1] = k[1], m; }, U0.fromValues = function (k, m) { var e = new k0.ARRAY_TYPE(2); return e[0] = k, e[1] = m, e; }, U0.copy = function (k, m) { return k[0] = m[0], k[1] = m[1], k; }, U0.set = function (k, m, e) { return k[0] = m, k[1] = e, k; }, U0.add = function (k, m, e) { return k[0] = m[0] + e[0], k[1] = m[1] + e[1], k; }, U0.subtract = function (k, m, e) { return k[0] = y3U.M7d(m[0], e[0]), k[1] = y3U.n7d(m[1], e[1]), k; }, U0.sub = U0.subtract, U0.multiply = function (k, m, e) { return k[0] = y3U.f7d(m[0], e[0]), k[1] = y3U.K7d(m[1], e[1]), k; }, U0.mul = U0.multiply, U0.divide = function (k, m, e) { return k[0] = y3U.B7d(m[0], e[0]), k[1] = y3U.l7d(m[1], e[1]), k; }, U0.div = U0.divide, U0.scale = function (k, m, e) { return k[0] = y3U.X7d(m[0], e), k[1] = y3U.Y7d(m[1], e), k; }, U0.distance = function (k, m) { var e = y3U.U4d(m[0], k[0]), o = y3U.T4d(m[1], k[1]); return Math.sqrt(y3U.S4d(e, e) + y3U.I4d(o, o)); }, U0.dist = U0.distance, U0.squaredDistance = function (k, m) { var e = y3U.C4d(m[0], k[0]), o = y3U.v4d(m[1], k[1]); return y3U.t4d(e, e) + y3U.y4d(o, o); }, U0.sqrDist = U0.squaredDistance, U0.length = function (k) { var m = k[0], e = k[1]; return Math.sqrt(y3U.o4d(m, m) + y3U.x4d(e, e)); }, U0.len = U0.length, U0.squaredLength = function (k) { var m = k[0], e = k[1]; return y3U.p4d(m, m) + y3U.q4d(e, e); }, U0.sqrLen = U0.squaredLength, U0.negate = function (k, m) { return k[0] = -m[0], k[1] = -m[1], k; }, U0.normalize = function (k, m) { var e = m[0], o = m[1], n = y3U.b4d(e, e) + y3U.j4d(o, o); return y3U.d4d(n, 0) && (n = y3U.c4d(1, Math.sqrt(n)), k[0] = y3U.s4d(m[0], n), k[1] = y3U.Q4d(m[1], n)), k; }, U0.dot = function (k, m) { return y3U.a3d(k[0], m[0]) + y3U.W3d(k[1], m[1]); }, U0.str = function (k) { return "vec2(" + k[0] + ", " + k[1] + ")"; }; }, { "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 32 : [function (a0, T0) { function G0(k) { k = k || {}, m0.call(this), this.id = ++G0._idCounter, this.world = null, this.shapes = [], this.shapeOffsets = [], this.shapeAngles = [], this.mass = k.mass || 0, this.invMass = 0, this.inertia = 0, this.invInertia = 0, this.invMassSolve = 0, this.invInertiaSolve = 0, this.fixedRotation = !!k.fixedRotation, this.position = W0.fromValues(0, 0), k.position && W0.copy(this.position, k.position), this.interpolatedPosition = W0.fromValues(0, 0), this.interpolatedAngle = 0, this.previousPosition = W0.fromValues(0, 0), this.previousAngle = 0, this.velocity = W0.fromValues(0, 0), k.velocity && W0.copy(this.velocity, k.velocity), this.vlambda = W0.fromValues(0, 0), this.wlambda = 0, this.angle = k.angle || 0, this.angularVelocity = k.angularVelocity || 0, this.force = W0.create(), k.force && W0.copy(this.force, k.force), this.angularForce = k.angularForce || 0, this.damping = "number" == typeof k.damping ? k.damping : .1, this.angularDamping = "number" == typeof k.angularDamping ? k.angularDamping : .1, this.type = G0.STATIC, this.type = "undefined" != typeof k.type ? k.type : k.mass ? G0.DYNAMIC : G0.STATIC, this.boundingRadius = 0, this.aabb = new I0, this.aabbNeedsUpdate = !0, this.allowSleep = !0, this.wantsToSleep = !1, this.sleepState = G0.AWAKE, this.sleepSpeedLimit = .2, this.sleepTimeLimit = 1, this.gravityScale = 1, this.timeLastSleepy = 0, this.concavePath = null, this._wakeUpAfterNarrowphase = !1, this.updateMassProperties(); } var W0 = (a0("__browserify_process"), a0("__browserify_Buffer"), a0("../math/vec2")), N0 = a0("poly-decomp"), S0 = a0("../shapes/Convex"), I0 = a0("../collision/AABB"), m0 = a0("../events/EventEmitter"); T0.exports = G0, G0.prototype = new m0, G0._idCounter = 0, G0.prototype.updateSolveMassProperties = function () { y3U.m3d(this.sleepState, G0.SLEEPING) || y3U.A3d(this.type, G0.KINEMATIC) ? (this.invMassSolve = 0, this.invInertiaSolve = 0) : (this.invMassSolve = this.invMass, this.invInertiaSolve = this.invInertia); }, G0.prototype.setDensity = function (k) { var m = this.getArea(); this.mass = y3U.w3d(m, k), this.updateMassProperties(); }, G0.prototype.getArea = function () { for (var k = 0, m = 0; y3U.E3d(m, this.shapes.length); m++) k += this.shapes[m].area; return k; }, G0.prototype.getAABB = function () { return this.aabbNeedsUpdate && this.updateAABB(), this.aabb; }; var A0 = new I0, L0 = W0.create(); G0.prototype.updateAABB = function () { for (var k = this.shapes, m = this.shapeOffsets, e = this.shapeAngles, o = k.length, n = L0, u = this.angle, q = 0; y3U.e3d(q, o); q++) { var f = k[q], j = e[q] + u; W0.rotate(n, m[q], u), W0.add(n, n, this.position), f.computeAABB(A0, n, j), y3U.g3d(0, q) ? this.aabb.copy(A0) : this.aabb.extend(A0); } this.aabbNeedsUpdate = !1; }, G0.prototype.updateBoundingRadius = function () { for (var k = this.shapes, m = this.shapeOffsets, e = k.length, o = 0, n = 0; y3U.r3d(n, e); n++) { var u = k[n], q = W0.length(m[n]), f = u.boundingRadius; y3U.i3d(q + f, o) && (o = q + f); } this.boundingRadius = o; }, G0.prototype.addShape = function (k, m, e) { e = e || 0, m = m ? W0.fromValues(m[0], m[1]) : W0.fromValues(0, 0), this.shapes.push(k), this.shapeOffsets.push(m), this.shapeAngles.push(e), this.updateMassProperties(), this.updateBoundingRadius(), this.aabbNeedsUpdate = !0; }, G0.prototype.removeShape = function (k) { var m = this.shapes.indexOf(k); return -1 !== m ? (this.shapes.splice(m, 1), this.shapeOffsets.splice(m, 1), this.shapeAngles.splice(m, 1), this.aabbNeedsUpdate = !0, !0) : !1; }, G0.prototype.updateMassProperties = function () { if (y3U.u3d(this.type, G0.STATIC) || y3U.P3d(this.type, G0.KINEMATIC)) this.mass = Number.MAX_VALUE, this.invMass = 0, this.inertia = Number.MAX_VALUE, this.invInertia = 0; else { var k = this.shapes, m = k.length, e = y3U.D3d(this.mass, m), o = 0; if (this.fixedRotation) this.inertia = Number.MAX_VALUE, this.invInertia = 0; else { for (var n = 0; y3U.Z3d(m, n); n++) { var u = k[n], q = W0.squaredLength(this.shapeOffsets[n]), f = u.computeMomentOfInertia(e); o += f + y3U.R3d(e, q); } this.inertia = o, this.invInertia = y3U.O3d(o, 0) ? y3U.V3d(1, o) : 0; } this.invMass = y3U.k9d(1, this.mass); } }; var z0 = W0.create(); G0.prototype.applyForce = function (k, m) { var e = z0; W0.sub(e, m, this.position), W0.add(this.force, this.force, k); var o = W0.crossLength(e, k); this.angularForce += o; }, G0.prototype.toLocalFrame = function (k, m) { W0.toLocalFrame(k, m, this.position, this.angle); }, G0.prototype.toWorldFrame = function (k, m) { W0.toGlobalFrame(k, m, this.position, this.angle); }, G0.prototype.fromPolygon = function (k, m) { var e = function () { f = m.optimalDecomp ? u.decomp() : u.quickDecomp(); }, o = function () { m = m || {}; }; o(); for (var n = this.shapes.length; y3U.G9d(n, 0); --n) this.removeShape(this.shapes[n]); var u = new N0.Polygon; if (u.vertices = k, u.makeCCW(), "number" == typeof m.removeCollinearPoints && u.removeCollinearPoints(m.removeCollinearPoints), "undefined" == typeof m.skipSimpleCheck && !u.isSimple()) return !1; this.concavePath = u.vertices.slice(0); for (var n = 0; y3U.N9d(n, this.concavePath.length); n++) { var q = [0, 0]; W0.copy(q, this.concavePath[n]), this.concavePath[n] = q; } var f; e(); for (var j = W0.create(), n = 0; y3U.L9d(n, f.length); n++) { for (var U0 = new S0(f[n].vertices), k0 = 0; y3U.z9d(k0, U0.vertices.length); k0++) { var q = U0.vertices[k0]; W0.sub(q, q, U0.centerOfMass); } W0.scale(j, U0.centerOfMass, 1), U0.updateTriangles(), U0.updateCenterOfMass(), U0.updateBoundingRadius(), this.addShape(U0, j); } return this.adjustCenterOfMass(), this.aabbNeedsUpdate = !0, !0; }; var E0 = (W0.fromValues(0, 0), W0.fromValues(0, 0)), v0 = W0.fromValues(0, 0), J0 = W0.fromValues(0, 0); G0.prototype.adjustCenterOfMass = function () { var k = E0, m = v0, e = J0, o = 0; W0.set(m, 0, 0); for (var n = 0; y3U.J9d(n, this.shapes.length); n++) { var u = this.shapes[n], q = this.shapeOffsets[n]; W0.scale(k, q, u.area), W0.add(m, m, k), o += u.area; } W0.scale(e, m, y3U.H9d(1, o)); for (var n = 0; y3U.h9d(n, this.shapes.length); n++) { var u = this.shapes[n], q = this.shapeOffsets[n]; q || (q = this.shapeOffsets[n] = W0.create()), W0.sub(q, q, e); } W0.add(this.position, this.position, e); for (var n = 0; this.concavePath && y3U.F9d(n, this.concavePath.length); n++) W0.sub(this.concavePath[n], this.concavePath[n], e); this.updateMassProperties(), this.updateBoundingRadius(); }, G0.prototype.setZeroForce = function () { W0.set(this.force, 0, 0), this.angularForce = 0; }, G0.prototype.resetConstraintVelocity = function () { var k = this, m = k.vlambda; W0.set(m, 0, 0), k.wlambda = 0; }, G0.prototype.addConstraintVelocity = function () { var k = this, m = k.velocity; W0.add(m, m, k.vlambda), k.angularVelocity += k.wlambda; }, G0.prototype.applyDamping = function (k) { if (y3U.M9d(this.type, G0.DYNAMIC)) { var m = this.velocity; W0.scale(m, m, Math.pow(y3U.n9d(1, this.damping), k)), this.angularVelocity *= Math.pow(y3U.f9d(1, this.angularDamping), k); } }, G0.prototype.wakeUp = function () { var k = this.sleepState; this.sleepState = G0.AWAKE, this.idleTime = 0, y3U.K9d(k, G0.AWAKE) && this.emit(G0.wakeUpEvent); }, G0.prototype.sleep = function () { this.sleepState = G0.SLEEPING, this.angularVelocity = 0, this.angularForce = 0, W0.set(this.velocity, 0, 0), W0.set(this.force, 0, 0), this.emit(G0.sleepEvent); }, G0.prototype.sleepTick = function (k, m, e) { if (this.allowSleep && y3U.B9d(this.type, G0.SLEEPING)) { this.wantsToSleep = !1; var o = (this.sleepState, W0.squaredLength(this.velocity) + Math.pow(this.angularVelocity, 2)), n = Math.pow(this.sleepSpeedLimit, 2); y3U.l9d(o, n) ? (this.idleTime = 0, this.sleepState = G0.AWAKE) : (this.idleTime += e, this.sleepState = G0.SLEEPY), y3U.X9d(this.idleTime, this.sleepTimeLimit) && (m ? this.wantsToSleep = !0 : this.sleep()); } }, G0.prototype.getVelocityFromPosition = function (k, m) { return k = k || W0.create(), W0.sub(k, this.position, this.previousPosition), W0.scale(k, k, y3U.Y9d(1, m)), k; }, G0.prototype.getAngularVelocityFromPosition = function (k) { return y3U.U5d((this.angle - this.previousAngle), k); }, G0.prototype.overlaps = function (k) { return this.world.overlapKeeper.bodiesAreOverlapping(this, k); }, G0.sleepyEvent = { type : "sleepy" }, G0.sleepEvent = { type : "sleep" }, G0.wakeUpEvent = { type : "wakeup" }, G0.DYNAMIC = 1, G0.STATIC = 2, G0.KINEMATIC = 4, G0.AWAKE = 0, G0.SLEEPY = 1, G0.SLEEPING = 2; }, { "../collision/AABB" : 9, "../events/EventEmitter" : 27, "../math/vec2" : 31, "../shapes/Convex" : 39, __browserify_Buffer : 1, __browserify_process : 2, "poly-decomp" : 7 } ], 33 : [function (I0, m0) { function A0(k, m, e) { e = e || {}, z0.call(this, k, m, e), this.localAnchorA = L0.fromValues(0, 0), this.localAnchorB = L0.fromValues(0, 0), e.localAnchorA && L0.copy(this.localAnchorA, e.localAnchorA), e.localAnchorB && L0.copy(this.localAnchorB, e.localAnchorB), e.worldAnchorA && this.setWorldAnchorA(e.worldAnchorA), e.worldAnchorB && this.setWorldAnchorB(e.worldAnchorB); var o = L0.create(), n = L0.create(); this.getWorldAnchorA(o), this.getWorldAnchorB(n); var u = L0.distance(o, n); this.restLength = "number" == typeof e.restLength ? e.restLength : u; } { var L0 = (I0("__browserify_process"), I0("__browserify_Buffer"), I0("../math/vec2")), z0 = I0("./Spring"); I0("../utils/Utils"); } m0.exports = A0, A0.prototype = new z0, A0.prototype.setWorldAnchorA = function (k) { this.bodyA.toLocalFrame(this.localAnchorA, k); }, A0.prototype.setWorldAnchorB = function (k) { this.bodyB.toLocalFrame(this.localAnchorB, k); }, A0.prototype.getWorldAnchorA = function (k) { this.bodyA.toWorldFrame(k, this.localAnchorA); }, A0.prototype.getWorldAnchorB = function (k) { this.bodyB.toWorldFrame(k, this.localAnchorB); }; var E0 = L0.create(), v0 = L0.create(), J0 = L0.create(), t0 = L0.create(), w0 = L0.create(), g0 = L0.create(), H0 = L0.create(), M0 = L0.create(), p0 = L0.create(); A0.prototype.applyForce = function () { var k = this.stiffness, m = this.damping, e = this.restLength, o = this.bodyA, n = this.bodyB, u = E0, q = v0, f = J0, j = t0, U0 = p0, k0 = w0, a0 = g0, T0 = H0, G0 = M0; this.getWorldAnchorA(k0), this.getWorldAnchorB(a0), L0.sub(T0, k0, o.position), L0.sub(G0, a0, n.position), L0.sub(u, a0, k0); var W0 = L0.len(u); L0.normalize(q, u), L0.sub(f, n.velocity, o.velocity), L0.crossZV(U0, n.angularVelocity, G0), L0.add(f, f, U0), L0.crossZV(U0, o.angularVelocity, T0), L0.sub(f, f, U0), L0.scale(j, q, -k * (y3U.T5d(W0, e)) - y3U.S5d(m, L0.dot(f, q))), L0.sub(o.force, o.force, j), L0.add(n.force, n.force, j); var N0 = L0.crossLength(T0, j), S0 = L0.crossLength(G0, j); o.angularForce -= N0, n.angularForce += S0; }; }, { "../math/vec2" : 31, "../utils/Utils" : 50, "./Spring" : 35, __browserify_Buffer : 1, __browserify_process : 2 } ], 34 : [function (j, U0) { function k0(k, m, e) { e = e || {}, a0.call(this, k, m, e), this.restAngle = "number" == typeof e.restAngle ? e.restAngle : y3U.I5d(m.angle, k.angle); } var a0 = (j("__browserify_process"), j("__browserify_Buffer"), j("../math/vec2"), j("./Spring")); U0.exports = k0, k0.prototype = new a0, k0.prototype.applyForce = function () { var k = this.stiffness, m = this.damping, e = this.restAngle, o = this.bodyA, n = this.bodyB, u = y3U.C5d(n.angle, o.angle), q = y3U.v5d(n.angularVelocity, o.angularVelocity), f = -k * (y3U.t5d(u, e)) - y3U.y5d(m, q, 0); o.angularForce -= f, n.angularForce += f; }; }, { "../math/vec2" : 31, "./Spring" : 35, __browserify_Buffer : 1, __browserify_process : 2 } ], 35 : [function (o, n) { function u(k, m, e) { e = q.defaults(e, { stiffness : 100, damping : 1 }), this.stiffness = e.stiffness, this.damping = e.damping, this.bodyA = k, this.bodyB = m; } var q = (o("__browserify_process"), o("__browserify_Buffer"), o("../math/vec2"), o("../utils/Utils")); n.exports = u, u.prototype.applyForce = function () {}; }, { "../math/vec2" : 31, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 36 : [function (k, m) { k("__browserify_process"), k("__browserify_Buffer"); m.exports = { AABB : k("./collision/AABB"), AngleLockEquation : k("./equations/AngleLockEquation"), Body : k("./objects/Body"), Broadphase : k("./collision/Broadphase"), Capsule : k("./shapes/Capsule"), Circle : k("./shapes/Circle"), Constraint : k("./constraints/Constraint"), ContactEquation : k("./equations/ContactEquation"), ContactMaterial : k("./material/ContactMaterial"), Convex : k("./shapes/Convex"), DistanceConstraint : k("./constraints/DistanceConstraint"), Equation : k("./equations/Equation"), EventEmitter : k("./events/EventEmitter"), FrictionEquation : k("./equations/FrictionEquation"), GearConstraint : k("./constraints/GearConstraint"), GridBroadphase : k("./collision/GridBroadphase"), GSSolver : k("./solver/GSSolver"), Heightfield : k("./shapes/Heightfield"), Line : k("./shapes/Line"), LockConstraint : k("./constraints/LockConstraint"), Material : k("./material/Material"), Narrowphase : k("./collision/Narrowphase"), NaiveBroadphase : k("./collision/NaiveBroadphase"), Particle : k("./shapes/Particle"), Plane : k("./shapes/Plane"), RevoluteConstraint : k("./constraints/RevoluteConstraint"), PrismaticConstraint : k("./constraints/PrismaticConstraint"), Rectangle : k("./shapes/Rectangle"), RotationalVelocityEquation : k("./equations/RotationalVelocityEquation"), SAPBroadphase : k("./collision/SAPBroadphase"), Shape : k("./shapes/Shape"), Solver : k("./solver/Solver"), Spring : k("./objects/Spring"), LinearSpring : k("./objects/LinearSpring"), RotationalSpring : k("./objects/RotationalSpring"), Utils : k("./utils/Utils"), World : k("./world/World"), vec2 : k("./math/vec2"), version : k("../package.json").version }; }, { "../package.json" : 8, "./collision/AABB" : 9, "./collision/Broadphase" : 10, "./collision/GridBroadphase" : 11, "./collision/NaiveBroadphase" : 12, "./collision/Narrowphase" : 13, "./collision/SAPBroadphase" : 14, "./constraints/Constraint" : 15, "./constraints/DistanceConstraint" : 16, "./constraints/GearConstraint" : 17, "./constraints/LockConstraint" : 18, "./constraints/PrismaticConstraint" : 19, "./constraints/RevoluteConstraint" : 20, "./equations/AngleLockEquation" : 21, "./equations/ContactEquation" : 22, "./equations/Equation" : 23, "./equations/FrictionEquation" : 24, "./equations/RotationalVelocityEquation" : 26, "./events/EventEmitter" : 27, "./material/ContactMaterial" : 28, "./material/Material" : 29, "./math/vec2" : 31, "./objects/Body" : 32, "./objects/LinearSpring" : 33, "./objects/RotationalSpring" : 34, "./objects/Spring" : 35, "./shapes/Capsule" : 37, "./shapes/Circle" : 38, "./shapes/Convex" : 39, "./shapes/Heightfield" : 40, "./shapes/Line" : 41, "./shapes/Particle" : 42, "./shapes/Plane" : 43, "./shapes/Rectangle" : 44, "./shapes/Shape" : 45, "./solver/GSSolver" : 46, "./solver/Solver" : 47, "./utils/Utils" : 50, "./world/World" : 54, __browserify_Buffer : 1, __browserify_process : 2 } ], 37 : [function (n, u) { function q(k, m) { this.length = k || 1, this.radius = m || 1, f.call(this, f.CAPSULE); } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("./Shape")), j = n("../math/vec2"); u.exports = q, q.prototype = new f, q.prototype.computeMomentOfInertia = function (k) { var m = this.radius, e = this.length + m, o = y3U.F5d(2, m); return y3U.M5d(k, (o * o + e * e), 12); }, q.prototype.updateBoundingRadius = function () { this.boundingRadius = this.radius + y3U.u5d(this.length, 2); }, q.prototype.updateArea = function () { this.area = y3U.P5d(Math.PI, this.radius, this.radius) + y3U.j5d(2, this.radius, this.length); }; var U0 = j.create(); q.prototype.computeAABB = function (k, m, e) { var o = this.radius; j.set(U0, y3U.l5d(this.length, 2), 0), y3U.X5d(0, e) && j.rotate(U0, U0, e), j.set(k.upperBound, Math.max(U0[0] + o, -U0[0] + o), Math.max(U0[1] + o, -U0[1] + o)), j.set(k.lowerBound, Math.min(y3U.Y5d(U0[0], o), -U0[0] - o), Math.min(y3U.U2d(U0[1], o), -U0[1] - o)), j.add(k.lowerBound, k.lowerBound, m), j.add(k.upperBound, k.upperBound, m); }; }, { "../math/vec2" : 31, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 38 : [function (o, n) { function u(k) { this.radius = k || 1, q.call(this, q.CIRCLE); } var q = (o("__browserify_process"), o("__browserify_Buffer"), o("./Shape")), f = o("../math/vec2"); n.exports = u, u.prototype = new q, u.prototype.computeMomentOfInertia = function (k) { var m = this.radius; return y3U.T2d(k, m, m, 2); }, u.prototype.updateBoundingRadius = function () { this.boundingRadius = this.radius; }, u.prototype.updateArea = function () { this.area = y3U.m2d(Math.PI, this.radius, this.radius); }, u.prototype.computeAABB = function (k, m) { var e = this.radius; f.set(k.upperBound, e, e), f.set(k.lowerBound, -e, -e), m && (f.add(k.lowerBound, k.lowerBound, m), f.add(k.upperBound, k.upperBound, m)); }; }, { "../math/vec2" : 31, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 39 : [function (T0, G0) { function W0(k, m) { this.vertices = [], this.axes = []; for (var e = 0; y3U.C2d(e, k.length); e++) { var o = S0.create(); S0.copy(o, k[e]), this.vertices.push(o); } if (m) for (var e = 0; y3U.v2d(e, m.length); e++) { var n = S0.create(); S0.copy(n, m[e]), this.axes.push(n); } else for (var e = 0; y3U.t2d(e, k.length); e++) { var u = k[e], q = k[y3U.y2d((e + 1), k.length)], f = S0.create(); S0.sub(f, q, u), S0.rotate90cw(f, f), S0.normalize(f, f), this.axes.push(f); } if (this.centerOfMass = S0.fromValues(0, 0), this.triangles = [], this.vertices.length && (this.updateTriangles(), this.updateCenterOfMass()), this.boundingRadius = 0, N0.call(this, N0.CONVEX), this.updateBoundingRadius(), this.updateArea(), y3U.o2d(this.area, 0)) throw new Error("Convex vertices must be given in conter-clockwise winding."); } { var N0 = (T0("__browserify_process"), T0("__browserify_Buffer"), T0("./Shape")), S0 = T0("../math/vec2"), I0 = T0("../math/polyk"); T0("poly-decomp"); } G0.exports = W0, W0.prototype = new N0; var m0 = S0.create(), A0 = S0.create(); W0.prototype.projectOntoLocalAxis = function (k, m) { for (var e, o, n = null, u = null, k = m0, q = 0; y3U.x2d(q, this.vertices.length); q++) e = this.vertices[q], o = S0.dot(e, k), (y3U.p2d(null, n) || y3U.q2d(o, n)) && (n = o), (y3U.b2d(null, u) || y3U.j2d(u, o)) && (u = o); if (y3U.d2d(u, n)) { var f = u; u = n, n = f; } S0.set(m, u, n); }, W0.prototype.projectOntoWorldAxis = function (k, m, e, o) { var n = A0; this.projectOntoLocalAxis(k, o), y3U.c2d(0, e) ? S0.rotate(n, k, e) : n = k; var u = S0.dot(m, n); S0.set(o, o[0] + u, o[1] + u); }, W0.prototype.updateTriangles = function () { this.triangles.length = 0; for (var k = [], m = 0; y3U.s2d(m, this.vertices.length); m++) { var e = this.vertices[m]; k.push(e[0], e[1]); } for (var o = I0.Triangulate(k), m = 0; y3U.Q2d(m, o.length); m += 3) { var n = o[m], u = o[m + 1], q = o[m + 2]; this.triangles.push([n, u, q]); } }; { var L0 = S0.create(), z0 = S0.create(), E0 = S0.create(), v0 = S0.create(), J0 = S0.create(); S0.create(), S0.create(), S0.create(), S0.create(); } W0.prototype.updateCenterOfMass = function () { var k = this.triangles, m = this.vertices, e = this.centerOfMass, o = L0, n = E0, u = v0, q = J0, f = z0; S0.set(e, 0, 0); for (var j = 0, U0 = 0; y3U.a1d(U0, k.length); U0++) { var k0 = k[U0], n = m[k0[0]], u = m[k0[1]], q = m[k0[2]]; S0.centroid(o, n, u, q); var a0 = W0.triangleArea(n, u, q); j += a0, S0.scale(f, o, a0), S0.add(e, e, f); } S0.scale(e, e, y3U.W1d(1, j)); }, W0.prototype.computeMomentOfInertia = function (k) { for (var m = 0, e = 0, o = this.vertices.length, n = y3U.m1d(o, 1), u = 0; y3U.A1d(o, u); n = u, u++) { var q = this.vertices[n], f = this.vertices[u], j = Math.abs(S0.crossLength(q, f)), U0 = S0.dot(f, f) + S0.dot(f, q) + S0.dot(q, q); m += y3U.w1d(j, U0), e += j; } return y3U.E1d(k, 6, (m / e)); }, W0.prototype.updateBoundingRadius = function () { for (var k = this.vertices, m = 0, e = 0; y3U.y1d(e, k.length); e++) { var o = S0.squaredLength(k[e]); y3U.o1d(o, m) && (m = o); } this.boundingRadius = Math.sqrt(m); }, W0.triangleArea = function (k, m, e) { return y3U.x1d(.5, ((m[0] - k[0]) * (e[1] - k[1]) - (e[0] - k[0]) * (m[1] - k[1]))); }, W0.prototype.updateArea = function () { this.updateTriangles(), this.area = 0; for (var k = this.triangles, m = this.vertices, e = 0; y3U.p1d(e, k.length); e++) { var o = k[e], n = m[o[0]], u = m[o[1]], q = m[o[2]], f = W0.triangleArea(n, u, q); this.area += f; } }, W0.prototype.computeAABB = function (k, m, e) { k.setFromPoints(this.vertices, m, e, 0); }; }, { "../math/polyk" : 30, "../math/vec2" : 31, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2, "poly-decomp" : 7 } ], 40 : [function (n, u) { function q(k, m) { if (m = j.defaults(m, { maxValue : null, minValue : null, elementWidth : .1 }), y3U.q1d(null, m.minValue) || y3U.b1d(null, m.maxValue)) { m.maxValue = k[0], m.minValue = k[0]; for (var e = 0; y3U.j1d(e, k.length); e++) { var o = k[e]; y3U.d1d(o, m.maxValue) && (m.maxValue = o), y3U.c1d(o, m.minValue) && (m.minValue = o); } } this.data = k, this.maxValue = m.maxValue, this.minValue = m.minValue, this.elementWidth = m.elementWidth, f.call(this, f.HEIGHTFIELD); } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("./Shape")), j = (n("../math/vec2"), n("../utils/Utils")); u.exports = q, q.prototype = new f, q.prototype.computeMomentOfInertia = function () { return Number.MAX_VALUE; }, q.prototype.updateBoundingRadius = function () { this.boundingRadius = Number.MAX_VALUE; }, q.prototype.updateArea = function () { for (var k = this.data, m = 0, e = 0; y3U.s1d(e, k.length - 1); e++) m += y3U.Q1d((k[e] + k[e + 1]), 2, this.elementWidth); this.area = m; }, q.prototype.computeAABB = function (k, m) { k.upperBound[0] = y3U.T6d(this.elementWidth, this.data.length) + m[0], k.upperBound[1] = this.maxValue + m[1], k.lowerBound[0] = m[0], k.lowerBound[1] = -Number.MAX_VALUE; }; }, { "../math/vec2" : 31, "../utils/Utils" : 50, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 41 : [function (n, u) { function q(k) { this.length = k || 1, f.call(this, f.LINE); } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("./Shape")), j = n("../math/vec2"); u.exports = q, q.prototype = new f, q.prototype.computeMomentOfInertia = function (k) { return y3U.S6d(k, Math.pow(this.length, 2), 12); }, q.prototype.updateBoundingRadius = function () { this.boundingRadius = y3U.L6d(this.length, 2); }; var U0 = [j.create(), j.create()]; q.prototype.computeAABB = function (k, m, e) { var o = y3U.z6d(this.length, 2); j.set(U0[0], -o, 0), j.set(U0[1], o, 0), k.setFromPoints(U0, m, e, 0); }; }, { "../math/vec2" : 31, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 42 : [function (e, o) { function n() { u.call(this, u.PARTICLE); } var u = (e("__browserify_process"), e("__browserify_Buffer"), e("./Shape")), q = e("../math/vec2"); o.exports = n, n.prototype = new u, n.prototype.computeMomentOfInertia = function () { return 0; }, n.prototype.updateBoundingRadius = function () { this.boundingRadius = 0; }, n.prototype.computeAABB = function (k, m) { q.copy(k.lowerBound, m), q.copy(k.upperBound, m); }; }, { "../math/vec2" : 31, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 43 : [function (u, q) { function f() { j.call(this, j.PLANE); } { var j = (u("__browserify_process"), u("__browserify_Buffer"), u("./Shape")), U0 = u("../math/vec2"); u("../utils/Utils"); } q.exports = f, f.prototype = new j, f.prototype.computeMomentOfInertia = function () { return 0; }, f.prototype.updateBoundingRadius = function () { this.boundingRadius = Number.MAX_VALUE; }, f.prototype.computeAABB = function (k, m, e) { var o = 0, n = U0.set; "number" == typeof e && (o = y3U.J6d(e, (2 * Math.PI))), y3U.H6d(0, o) ? (n(k.lowerBound, -Number.MAX_VALUE, -Number.MAX_VALUE), n(k.upperBound, Number.MAX_VALUE, 0)) : y3U.h6d(o, Math.PI / 2) ? (n(k.lowerBound, 0, -Number.MAX_VALUE), n(k.upperBound, Number.MAX_VALUE, Number.MAX_VALUE)) : y3U.F6d(o, Math.PI) ? (n(k.lowerBound, -Number.MAX_VALUE, 0), n(k.upperBound, Number.MAX_VALUE, Number.MAX_VALUE)) : y3U.M6d(o, 3 * Math.PI / 2) ? (n(k.lowerBound, -Number.MAX_VALUE, -Number.MAX_VALUE), n(k.upperBound, 0, Number.MAX_VALUE)) : (n(k.lowerBound, -Number.MAX_VALUE, -Number.MAX_VALUE), n(k.upperBound, Number.MAX_VALUE, Number.MAX_VALUE)), U0.add(k.lowerBound, k.lowerBound, m), U0.add(k.upperBound, k.upperBound, m); }, f.prototype.updateArea = function () { this.area = Number.MAX_VALUE; }; }, { "../math/vec2" : 31, "../utils/Utils" : 50, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 44 : [function (n, u) { function q(k, m) { this.width = k || 1, this.height = m || 1; var e = [f.fromValues(-k / 2, -m / 2), f.fromValues(y3U.n6d(k, 2), -m / 2), f.fromValues(y3U.f6d(k, 2), y3U.K6d(m, 2)), f.fromValues(-k / 2, y3U.B6d(m, 2))], o = [f.fromValues(1, 0), f.fromValues(0, 1)]; U0.call(this, e, o), this.type = j.RECTANGLE; } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("../math/vec2")), j = n("./Shape"), U0 = n("./Convex"); u.exports = q, q.prototype = new U0([]), q.prototype.computeMomentOfInertia = function (k) { var m = this.width, e = this.height; return y3U.l6d(k, (e * e + m * m), 12); }, q.prototype.updateBoundingRadius = function () { var k = this.width, m = this.height; this.boundingRadius = y3U.O6d(Math.sqrt(k * k + m * m), 2); }; f.create(), f.create(), f.create(), f.create(); q.prototype.computeAABB = function (k, m, e) { k.setFromPoints(this.vertices, m, e, 0); }, q.prototype.updateArea = function () { this.area = y3U.V6d(this.width, this.height); }; }, { "../math/vec2" : 31, "./Convex" : 39, "./Shape" : 45, __browserify_Buffer : 1, __browserify_process : 2 } ], 45 : [function (m, e) { function o(k) { this.type = k, this.id = o.idCounter++, this.boundingRadius = 0, this.collisionGroup = 1, this.collisionMask = 1, k && this.updateBoundingRadius(), this.material = null, this.area = 0, this.sensor = !1, this.updateArea(); } m("__browserify_process"), m("__browserify_Buffer"); e.exports = o, o.idCounter = 0, o.CIRCLE = 1, o.PARTICLE = 2, o.PLANE = 4, o.CONVEX = 8, o.LINE = 16, o.RECTANGLE = 32, o.CAPSULE = 64, o.HEIGHTFIELD = 128, o.prototype.computeMomentOfInertia = function () { throw new Error("Shape.computeMomentOfInertia is not implemented in this Shape..."); }, o.prototype.updateBoundingRadius = function () { throw new Error("Shape.updateBoundingRadius is not implemented in this Shape..."); }, o.prototype.updateArea = function () {}, o.prototype.computeAABB = function () {}; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 46 : [function (w0, g0) { function H0(m) { var e = function (k) { m[o] = k; }; for (var o = m.length; o--; ) e(0); } function M0(k) { e0.call(this, k, e0.GS), k = k || {}, this.iterations = k.iterations || 10, this.tolerance = k.tolerance || 1e-10, this.arrayStep = 30, this.lambda = new F0.ARRAY_TYPE(this.arrayStep), this.Bs = new F0.ARRAY_TYPE(this.arrayStep), this.invCs = new F0.ARRAY_TYPE(this.arrayStep), this.useZeroRHS = !1, this.frictionIterations = 0, this.usedIterations = 0; } var p0 = (w0("__browserify_process"), w0("__browserify_Buffer"), w0("../math/vec2")), e0 = w0("./Solver"), F0 = w0("../utils/Utils"), P0 = w0("../equations/FrictionEquation"); g0.exports = M0, M0.prototype = new e0, M0.prototype.solve = function (m, e) { this.sortEquations(); var o = 0, n = this.iterations, u = this.frictionIterations, q = this.equations, f = q.length, j = Math.pow(y3U.k8d(this.tolerance, f), 2), U0 = e.bodies, k0 = e.bodies.length, a0 = (p0.add, p0.set, this.useZeroRHS), T0 = this.lambda; if (this.usedIterations = 0, f) for (var G0 = 0; y3U.G8d(G0, k0); G0++) { var W0 = U0[G0]; W0.updateSolveMassProperties(); } y3U.N8d(T0.length, f) && (T0 = this.lambda = new F0.ARRAY_TYPE(f + this.arrayStep), this.Bs = new F0.ARRAY_TYPE(f + this.arrayStep), this.invCs = new F0.ARRAY_TYPE(f + this.arrayStep)), H0(T0); for (var N0 = this.invCs, S0 = this.Bs, T0 = this.lambda, G0 = 0; y3U.L8d(G0, q.length); G0++) { var I0 = q[G0]; (y3U.z8d(I0.timeStep, m) || I0.needsUpdate) && (I0.timeStep = m, I0.update()), S0[G0] = I0.computeB(I0.a, I0.b, m), N0[G0] = I0.computeInvC(I0.epsilon); } var I0, m0, G0, A0; if (y3U.J8d(0, f)) { for (G0 = 0; y3U.H8d(G0, k0); G0++) { var W0 = U0[G0]; W0.resetConstraintVelocity(); } if (u) { for (o = 0; y3U.h8d(o, u); o++) { for (m0 = 0, A0 = 0; y3U.F8d(A0, f); A0++) { var L0 = function (k) { I0 = k[A0]; }; L0(q); var z0 = M0.iterateEquation(A0, I0, I0.epsilon, S0, N0, T0, a0, m, o); m0 += Math.abs(z0); } if (this.usedIterations++, y3U.M8d(j, m0 * m0)) break; } for (M0.updateMultipliers(q, T0, y3U.n8d(1, m)), A0 = 0; y3U.f8d(A0, f); A0++) { var E0 = q[A0]; if (y3U.K8d(E0, P0)) { for (var v0 = 0, J0 = 0; y3U.B8d(J0, E0.contactEquations.length); J0++) v0 += E0.contactEquations[J0].multiplier; v0 *= y3U.l8d(E0.frictionCoefficient, E0.contactEquations.length), E0.maxForce = v0, E0.minForce = -v0; } } } for (o = 0; y3U.X8d(o, n); o++) { for (m0 = 0, A0 = 0; y3U.Y8d(A0, f); A0++) { var t0 = function (k) { I0 = k[A0]; }; t0(q); var z0 = M0.iterateEquation(A0, I0, I0.epsilon, S0, N0, T0, a0, m, o); m0 += Math.abs(z0); } if (this.usedIterations++, y3U.U0r(j, m0 * m0)) break; } for (G0 = 0; y3U.T0r(G0, k0); G0++) U0[G0].addConstraintVelocity(); M0.updateMultipliers(q, T0, y3U.S0r(1, m)); } }, M0.updateMultipliers = function (k, m, e) { var o = function () { k[n].multiplier = y3U.I0r(m[n], e); }; for (var n = k.length; n--; ) o(); }, M0.iterateEquation = function (k, m, e, o, n, u, q, f) { var j = o[k], U0 = n[k], k0 = u[k], a0 = m.computeGWlambda(), T0 = m.maxForce, G0 = m.minForce; q && (j = 0); var W0 = y3U.C0r(U0, (j - a0 - e * k0)), N0 = k0 + W0; return y3U.v0r(G0 * f, N0) ? W0 = y3U.t0r(G0 * f, k0) : y3U.y0r(N0, T0 * f) && (W0 = y3U.o0r(T0 * f, k0)), u[k] += W0, m.addToWlambda(W0), W0; }; }, { "../equations/FrictionEquation" : 24, "../math/vec2" : 31, "../utils/Utils" : 50, "./Solver" : 47, __browserify_Buffer : 1, __browserify_process : 2 } ], 47 : [function (n, u) { function q(k, m) { k = k || {}, f.call(this), this.type = m, this.equations = [], this.equationSortFunction = k.equationSortFunction || !1; } var f = (n("__browserify_process"), n("__browserify_Buffer"), n("../utils/Utils"), n("../events/EventEmitter")); u.exports = q, q.prototype = new f, q.prototype.solve = function () { throw new Error("Solver.solve should be implemented by subclasses!"); }; var j = { bodies : [] }; q.prototype.solveIsland = function (k, m) { this.removeAllEquations(), m.equations.length && (this.addEquations(m.equations), j.bodies.length = 0, m.getBodies(j.bodies), j.bodies.length && this.solve(k, j)); }, q.prototype.sortEquations = function () { this.equationSortFunction && this.equations.sort(this.equationSortFunction); }, q.prototype.addEquation = function (k) { k.enabled && this.equations.push(k); }, q.prototype.addEquations = function (k) { for (var m = 0, e = k.length; y3U.x0r(m, e); m++) { var o = k[m]; o.enabled && this.equations.push(o); } }, q.prototype.removeEquation = function (k) { var m = this.equations.indexOf(k); -1 !== m && this.equations.splice(m, 1); }, q.prototype.removeAllEquations = function () { this.equations.length = 0; }, q.GS = 1, q.ISLAND = 2; }, { "../events/EventEmitter" : 27, "../utils/Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 48 : [function (a0, T0) { function G0(k, m, e, o) { this.shapeA = m, this.shapeB = o, this.bodyA = k, this.bodyB = e; } function W0() { this.overlappingShapesLastState = new N0, this.overlappingShapesCurrentState = new N0, this.recordPool = [], this.tmpDict = new N0, this.tmpArray1 = []; } { var N0 = (a0("__browserify_process"), a0("__browserify_Buffer"), a0("./TupleDictionary")); a0("./Utils"); } T0.exports = W0, W0.prototype.tick = function () { for (var k = this.overlappingShapesLastState, m = this.overlappingShapesCurrentState, e = k.keys.length; e--; ) { var o = k.keys[e], n = k.getByKey(o), u = m.getByKey(o); n && !u && this.recordPool.push(n); } k.reset(), k.copy(m), m.reset(); }, W0.prototype.setOverlapping = function (k, m, e, o) { var n = (this.overlappingShapesLastState, this.overlappingShapesCurrentState); if (!n.get(m.id, o.id)) { var u; this.recordPool.length ? (u = this.recordPool.pop(), u.set(k, m, e, o)) : u = new G0(k, m, e, o), n.set(m.id, o.id, u); } }, W0.prototype.getNewOverlaps = function (k) { return this.getDiff(this.overlappingShapesLastState, this.overlappingShapesCurrentState, k); }, W0.prototype.getEndOverlaps = function (k) { return this.getDiff(this.overlappingShapesCurrentState, this.overlappingShapesLastState, k); }, W0.prototype.bodiesAreOverlapping = function (k, m) { for (var e = this.overlappingShapesCurrentState, o = e.keys.length; o--; ) { var n = e.keys[o], u = e.data[n]; if (y3U.p0r(u.bodyA, k) && y3U.q0r(u.bodyB, m) || y3U.b0r(u.bodyA, m) && y3U.j0r(u.bodyB, k)) return !0; } return !1; }, W0.prototype.getDiff = function (m, e, o) { var n = function (k) { o.length = k; }, o = o || [], u = m, q = e; n(0); for (var f = q.keys.length; f--; ) { var j = q.keys[f], U0 = q.data[j]; if (!U0) throw new Error("Key " + j + " had no data!"); var k0 = u.data[j]; k0 || o.push(U0); } return o; }, W0.prototype.isNewOverlap = function (k, m) { var e = y3U.d0r(0, k.id), o = y3U.c0r(0, m.id), n = this.overlappingShapesLastState, u = this.overlappingShapesCurrentState; return !n.get(e, o) && !!u.get(e, o); }, W0.prototype.getNewBodyOverlaps = function (k) { this.tmpArray1.length = 0; var m = this.getNewOverlaps(this.tmpArray1); return this.getBodyDiff(m, k); }, W0.prototype.getEndBodyOverlaps = function (k) { this.tmpArray1.length = 0; var m = this.getEndOverlaps(this.tmpArray1); return this.getBodyDiff(m, k); }, W0.prototype.getBodyDiff = function (k, m) { var e = function () { m = m || []; }; e(); for (var o = this.tmpDict, n = k.length; n--; ) { var u = k[n]; o.set(y3U.s0r(0, u.bodyA.id), y3U.Q0r(0, u.bodyB.id), u); } for (n = o.keys.length; n--; ) { var u = o.getByKey(o.keys[n]); u && m.push(u.bodyA, u.bodyB); } return o.reset(), m; }, G0.prototype.set = function (k, m, e, o) { G0.call(this, k, m, e, o); }; }, { "./TupleDictionary" : 49, "./Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 49 : [function (u, q) { function f() { this.data = {}, this.keys = []; } var j = (u("__browserify_process"), u("__browserify_Buffer"), u("./Utils")); q.exports = f, f.prototype.getKey = function (k, m) { return k = y3U.a7r(0, k), m = y3U.W7r(0, m), y3U.m7r((0 | k), (0 | m)) ? -1 : y3U.A7r(0, ((0 | k) > (0 | m) ? k << 16 | 65535 & m : m << 16 | 65535 & k)); }, f.prototype.getByKey = function (k) { return k = y3U.w7r(0, k), this.data[k]; }, f.prototype.get = function (k, m) { return this.data[this.getKey(k, m)]; }, f.prototype.set = function (k, m, e) { if (!e) throw new Error("No data!"); var o = this.getKey(k, m); return this.data[o] || this.keys.push(o), this.data[o] = e, o; }, f.prototype.reset = function () { var m = function (k) { o.length = k; }; for (var e = this.data, o = this.keys, n = o.length; n--; ) delete e[o[n]]; m(0); }, f.prototype.copy = function (k) { this.reset(), j.appendArray(this.keys, k.keys); for (var m = k.keys.length; m--; ) { var e = k.keys[m]; this.data[e] = k.data[e]; } }; }, { "./Utils" : 50, __browserify_Buffer : 1, __browserify_process : 2 } ], 50 : [function (U0, k0) { function a0() {} U0("__browserify_process"), U0("__browserify_Buffer"); k0.exports = a0, a0.appendArray = function (k, m) { if (y3U.E7r(m.length, 15e4)) k.push.apply(k, m); else for (var e = 0, o = m.length; y3U.e7r(e, o); ++e) k.push(m[e]); }, a0.splice = function (m, e, o) { var n = function (k) { m[f] = k[f + o]; }, u = function (k) { m.length = k; }, q = function () { o = o || 1; }; q(); for (var f = e, j = y3U.g7r(m.length, o); y3U.r7r(j, f); f++) n(m); u(j); }, a0.ARRAY_TYPE = r2w8n[E8n].Float32Array || Array, a0.extend = function (m, e) { var o = function (k) { m[n] = k[n]; }; for (var n in e) o(e); }, a0.defaults = function (k, m) { var e = function () { k = k || {}; }; e(); for (var o in m) y3U.i7r(o, k) || (k[o] = m[o]); return k; }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 51 : [function (f, j) { function U0() { this.equations = [], this.bodies = []; } var k0 = (f("__browserify_process"), f("__browserify_Buffer"), f("../objects/Body")); j.exports = U0, U0.prototype.reset = function () { this.equations.length = this.bodies.length = 0; }; var a0 = []; U0.prototype.getBodies = function (m) { var e = function (k) { a0.length = k; }, o = m || [], n = this.equations; e(0); for (var u = 0; y3U.u7r(u, n.length); u++) { var q = n[u]; -1 === a0.indexOf(q.bodyA.id) && (o.push(q.bodyA), a0.push(q.bodyA.id)), -1 === a0.indexOf(q.bodyB.id) && (o.push(q.bodyB), a0.push(q.bodyB.id)); } return o; }, U0.prototype.wantsToSleep = function () { for (var k = 0; y3U.P7r(k, this.bodies.length); k++) { var m = this.bodies[k]; if (y3U.D7r(m.type, k0.DYNAMIC) && !m.wantsToSleep) return !1; } return !0; }, U0.prototype.sleep = function () { for (var k = 0; y3U.Z7r(k, this.bodies.length); k++) { var m = this.bodies[k]; m.sleep(); } return !0; }; }, { "../objects/Body" : 32, __browserify_Buffer : 1, __browserify_process : 2 } ], 52 : [function (W0, N0) { function S0() { this._nodePool = [], this._islandPool = [], this.equations = [], this.islands = [], this.nodes = [], this.queue = []; } var I0 = (W0("__browserify_process"), W0("__browserify_Buffer"), W0("../math/vec2"), W0("./Island")), m0 = W0("./IslandNode"), A0 = W0("../objects/Body"); N0.exports = S0, S0.getUnvisitedNode = function (k) { for (var m = k.length, e = 0; y3U.R7r(e, m); e++) { var o = k[e]; if (!o.visited && y3U.O7r(o.body.type, A0.DYNAMIC)) return o; } return !1; }, S0.prototype.visit = function (k, m, e) { m.push(k.body); for (var o = k.equations.length, n = 0; y3U.V7r(n, o); n++) { var u = k.equations[n]; -1 === e.indexOf(u) && e.push(u); } }, S0.prototype.bfs = function (k, m, e) { var o = this.queue; for (o.length = 0, o.push(k), k.visited = !0, this.visit(k, m, e); o.length; ) for (var n, u = o.pop(); n = S0.getUnvisitedNode(u.neighbors); ) n.visited = !0, this.visit(n, m, e), y3U.k4r(n.body.type, A0.DYNAMIC) && o.push(n); }, S0.prototype.split = function (k) { for (var m = k.bodies, e = this.nodes, o = this.equations; e.length; ) this._nodePool.push(e.pop()); for (var n = 0; y3U.G4r(n, m.length); n++) if (this._nodePool.length) { var u = this._nodePool.pop(); u.reset(), u.body = m[n], e.push(u); } else e.push(new m0(m[n])); for (var q = 0; y3U.N4r(q, o.length); q++) { var f = o[q], n = m.indexOf(f.bodyA), j = m.indexOf(f.bodyB), U0 = e[n], k0 = e[j]; U0.neighbors.push(k0), k0.neighbors.push(U0), U0.equations.push(f), k0.equations.push(f); } for (var a0 = this.islands; a0.length; ) { var T0 = a0.pop(); T0.reset(), this._islandPool.push(T0); } for (var G0; G0 = S0.getUnvisitedNode(e); ) { var T0 = this._islandPool.length ? this._islandPool.pop() : new I0; this.bfs(G0, T0.bodies, T0.equations), a0.push(T0); } return a0; }; }, { "../math/vec2" : 31, "../objects/Body" : 32, "./Island" : 51, "./IslandNode" : 53, __browserify_Buffer : 1, __browserify_process : 2 } ], 53 : [function (m, e) { function o(k) { this.body = k, this.neighbors = [], this.equations = [], this.visited = !1; } m("__browserify_process"), m("__browserify_Buffer"); e.exports = o, o.prototype.reset = function () { this.equations.length = 0, this.neighbors.length = 0, this.visited = !1, this.body = null; }; }, { __browserify_Buffer : 1, __browserify_process : 2 } ], 54 : [function (h0, u0) { function n0(k) { i0.apply(this), k = k || {}, this.springs = [], this.bodies = [], this.disabledBodyCollisionPairs = [], this.solver = k.solver || new A7, this.narrowphase = new a7(this), this.islandManager = new J7, this.gravity = f0.fromValues(0, -9.78), k.gravity && f0.copy(this.gravity, k.gravity), this.frictionGravity = f0.length(this.gravity) || 10, this.useWorldGravityAsFrictionGravity = !0, this.useFrictionGravityOnZeroGravity = !0, this.doProfiling = k.doProfiling || !1, this.lastStepTime = 0, this.broadphase = k.broadphase || new X0, this.broadphase.setWorld(this), this.constraints = [], this.defaultMaterial = new S7, this.defaultContactMaterial = new U7(this.defaultMaterial, this.defaultMaterial), this.lastTimeStep = y3U.L4r(1, 60), this.applySpringForces = !0, this.applyDamping = !0, this.applyGravity = !0, this.solveConstraints = !0, this.contactMaterials = [], this.time = 0, this.stepping = !1, this.bodiesToBeRemoved = [], this.fixedStepTime = 0, this.islandSplit = "undefined" != typeof k.islandSplit ? !!k.islandSplit : !1, 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 = n0.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 W7; } { var A7 = (h0("__browserify_process"), h0("__browserify_Buffer"), h0("../solver/GSSolver")), f0 = (h0("../solver/Solver"), h0("../collision/NaiveBroadphase"), h0("../math/vec2")), G7 = h0("../shapes/Circle"), C7 = (h0("../shapes/Rectangle"), h0("../shapes/Convex")), z7 = (h0("../shapes/Line"), h0("../shapes/Plane")), B0 = h0("../shapes/Capsule"), v7 = h0("../shapes/Particle"), i0 = h0("../events/EventEmitter"), K0 = h0("../objects/Body"), S7 = (h0("../shapes/Shape"), h0("../objects/LinearSpring"), h0("../material/Material")), U7 = h0("../material/ContactMaterial"), X0 = (h0("../constraints/DistanceConstraint"), h0("../constraints/Constraint"), h0("../constraints/LockConstraint"), h0("../constraints/RevoluteConstraint"), h0("../constraints/PrismaticConstraint"), h0("../constraints/GearConstraint"), h0("../../package.json"), h0("../collision/Broadphase"), h0("../collision/SAPBroadphase")), a7 = h0("../collision/Narrowphase"), Q0 = h0("../utils/Utils"), W7 = h0("../utils/OverlapKeeper"), J7 = h0("./IslandManager"); h0("../objects/RotationalSpring"); } if (u0.exports = n0, "undefined" == typeof performance && (performance = {}), !performance.now) { var c0 = Date.now(); performance.timing && performance.timing.navigationStart && (c0 = performance.timing.navigationStart), performance.now = function () { return y3U.z4r(Date.now(), c0); }; } n0.prototype = new Object(i0.prototype), n0.NO_SLEEPING = 1, n0.BODY_SLEEPING = 2, n0.ISLAND_SLEEPING = 4, n0.prototype.addConstraint = function (k) { this.constraints.push(k); }, n0.prototype.addContactMaterial = function (k) { this.contactMaterials.push(k); }, n0.prototype.removeContactMaterial = function (k) { var m = this.contactMaterials.indexOf(k); -1 !== m && Q0.splice(this.contactMaterials, m, 1); }, n0.prototype.getContactMaterial = function (k, m) { for (var e = this.contactMaterials, o = 0, n = e.length; y3U.J4r(o, n); o++) { var u = e[o]; if (y3U.H4r(u.materialA.id, k.id) && y3U.h4r(u.materialB.id, m.id) || y3U.F4r(u.materialA.id, m.id) && y3U.M4r(u.materialB.id, k.id)) return u; } return !1; }, n0.prototype.removeConstraint = function (k) { var m = this.constraints.indexOf(k); -1 !== m && Q0.splice(this.constraints, m, 1); }; var H7 = (f0.create(), f0.create(), f0.create(), f0.create(), f0.create(), f0.create(), f0.create()), I7 = f0.fromValues(0, 0), N7 = f0.fromValues(0, 0), L7 = (f0.fromValues(0, 0), f0.fromValues(0, 0)); n0.prototype.step = function (k, m, e) { if (e = e || 10, m = m || 0, y3U.n4r(0, m)) this.internalStep(k), this.time += k; else { var o = y3U.f4r(Math.floor((this.time + m) / k), Math.floor(this.time / k)); o = Math.min(o, e); for (var n = performance.now(), u = 0; y3U.K4r(u, o) && (this.internalStep(k), !(y3U.B4r(performance.now() - n, 1e3 * k))); u++); this.time += m; for (var q = y3U.l4r(this.time, k), f = y3U.X4r(q, k), j = 0; y3U.Y4r(j, this.bodies.length); j++) { var U0 = this.bodies[j]; y3U.U3r(U0.type, K0.STATIC) && y3U.T3r(U0.sleepState, K0.SLEEPING) ? (f0.sub(L7, U0.position, U0.previousPosition), f0.scale(L7, L7, f), f0.add(U0.interpolatedPosition, U0.position, L7), U0.interpolatedAngle = U0.angle + y3U.S3r((U0.angle - U0.previousAngle), f)) : (f0.copy(U0.interpolatedPosition, U0.position), U0.interpolatedAngle = U0.angle); } } }; var t7 = []; n0.prototype.internalStep = function (k) { this.stepping = !0; var m, e, o = this, n = this.doProfiling, u = this.springs.length, q = this.springs, f = this.bodies, j = this.gravity, U0 = this.solver, k0 = this.bodies.length, a0 = this.broadphase, T0 = this.narrowphase, G0 = this.constraints, W0 = H7, N0 = (f0.scale, f0.add), S0 = (f0.rotate, this.islandManager); if (this.overlapKeeper.tick(), this.lastTimeStep = k, n && (m = performance.now()), this.useWorldGravityAsFrictionGravity) { var I0 = f0.length(this.gravity); y3U.I3r(0, I0) && this.useFrictionGravityOnZeroGravity || (this.frictionGravity = I0); } if (this.applyGravity) for (var m0 = 0; y3U.C3r(m0, k0); m0++) { var A0 = f[m0], L0 = A0.force; y3U.v3r(A0.type, K0.DYNAMIC) && y3U.t3r(A0.sleepState, K0.SLEEPING) && (f0.scale(W0, j, y3U.y3r(A0.mass, A0.gravityScale)), N0(L0, L0, W0)); } if (this.applySpringForces) for (var m0 = 0; y3U.o3r(m0, u); m0++) { var z0 = q[m0]; z0.applyForce(); } if (this.applyDamping) for (var m0 = 0; y3U.x3r(m0, k0); m0++) { var A0 = f[m0]; y3U.p3r(A0.type, K0.DYNAMIC) && A0.applyDamping(k); } for (var E0 = a0.getCollisionPairs(this), v0 = this.disabledBodyCollisionPairs, m0 = y3U.q3r(v0.length, 2); y3U.b3r(m0, 0); m0 -= 2) for (var J0 = y3U.j3r(E0.length, 2); y3U.d3r(J0, 0); J0 -= 2) (y3U.c3r(v0[m0], E0[J0]) && y3U.s3r(v0[m0 + 1], E0[J0 + 1]) || y3U.Q3r(v0[m0 + 1], E0[J0]) && y3U.a9r(v0[m0], E0[J0 + 1])) && E0.splice(J0, 2); var t0 = G0.length; for (m0 = 0; y3U.W9r(m0, t0); m0++) { var w0 = G0[m0]; if (!w0.collideConnected) for (var J0 = y3U.m9r(E0.length, 2); y3U.A9r(J0, 0); J0 -= 2) (y3U.w9r(w0.bodyA, E0[J0]) && y3U.E9r(w0.bodyB, E0[J0 + 1]) || y3U.e9r(w0.bodyB, E0[J0]) && y3U.g9r(w0.bodyA, E0[J0 + 1])) && E0.splice(J0, 2); } this.postBroadphaseEvent.pairs = E0, this.emit(this.postBroadphaseEvent), T0.reset(this); for (var m0 = 0, g0 = E0.length; y3U.r9r(m0, g0); m0 += 2) for (var H0 = E0[m0], M0 = E0[m0 + 1], p0 = 0, e0 = H0.shapes.length; y3U.i9r(p0, e0); p0++) for (var F0 = H0.shapes[p0], P0 = H0.shapeOffsets[p0], O0 = H0.shapeAngles[p0], b0 = 0, d0 = M0.shapes.length; y3U.u9r(b0, d0); b0++) { var l0 = M0.shapes[b0], j0 = M0.shapeOffsets[b0], Z0 = M0.shapeAngles[b0], R0 = this.defaultContactMaterial; if (F0.material && l0.material) { var q0 = this.getContactMaterial(F0.material, l0.material); q0 && (R0 = q0); } this.runNarrowphase(T0, H0, F0, P0, O0, M0, l0, j0, Z0, R0, this.frictionGravity); } for (var m0 = 0; y3U.P9r(m0, k0); m0++) { var D0 = f[m0]; D0._wakeUpAfterNarrowphase && (D0.wakeUp(), D0._wakeUpAfterNarrowphase = !1); } if (this.has("endContact")) { this.overlapKeeper.getEndOverlaps(t7); for (var i = this.endContactEvent, b0 = t7.length; b0--; ) { var k7 = t7[b0]; i.shapeA = k7.shapeA, i.shapeB = k7.shapeB, i.bodyA = k7.bodyA, i.bodyB = k7.bodyB, this.emit(i); } } var o0 = this.preSolveEvent; o0.contactEquations = T0.contactEquations, o0.frictionEquations = T0.frictionEquations, this.emit(o0); var t0 = G0.length; for (m0 = 0; y3U.D9r(m0, t0); m0++) G0[m0].update(); if (T0.contactEquations.length || T0.frictionEquations.length || G0.length) if (this.islandSplit) { for (S0.equations.length = 0, Q0.appendArray(S0.equations, T0.contactEquations), Q0.appendArray(S0.equations, T0.frictionEquations), m0 = 0; y3U.Z9r(m0, t0); m0++) Q0.appendArray(S0.equations, G0[m0].equations); S0.split(this); for (var m0 = 0; y3U.R9r(m0, S0.islands.length); m0++) { var $ = S0.islands[m0]; $.equations.length && U0.solveIsland(k, $); } } else { for (U0.addEquations(T0.contactEquations), U0.addEquations(T0.frictionEquations), m0 = 0; y3U.O9r(m0, t0); m0++) U0.addEquations(G0[m0].equations); this.solveConstraints && U0.solve(k, this), U0.removeAllEquations(); } for (var m0 = 0; y3U.V9r(m0, k0); m0++) { var D0 = f[m0]; y3U.k5r(D0.sleepState, K0.SLEEPING) && y3U.G5r(D0.type, K0.STATIC) && n0.integrateBody(D0, k); } for (var m0 = 0; y3U.N5r(m0, k0); m0++) f[m0].setZeroForce(); if (n && (e = performance.now(), o.lastStepTime = y3U.L5r(e, m)), this.emitImpactEvent && this.has("impact")) for (var Y0 = this.impactEvent, m0 = 0; y3U.z5r(m0, T0.contactEquations.length); m0++) { var C0 = T0.contactEquations[m0]; C0.firstImpact && (Y0.bodyA = C0.bodyA, Y0.bodyB = C0.bodyB, Y0.shapeA = C0.shapeA, Y0.shapeB = C0.shapeB, Y0.contactEquation = C0, this.emit(Y0)); } if (y3U.J5r(this.sleepMode, n0.BODY_SLEEPING)) for (m0 = 0; y3U.H5r(m0, k0); m0++) f[m0].sleepTick(this.time, !1, k); else if (y3U.h5r(this.sleepMode, n0.ISLAND_SLEEPING) && this.islandSplit) { for (m0 = 0; y3U.F5r(m0, k0); m0++) f[m0].sleepTick(this.time, !0, k); for (var m0 = 0; y3U.M5r(m0, this.islandManager.islands.length); m0++) { var $ = this.islandManager.islands[m0]; $.wantsToSleep() && $.sleep(); } } if (this.stepping = !1, this.bodiesToBeRemoved.length) { for (var m0 = 0; y3U.n5r(m0, this.bodiesToBeRemoved.length); m0++) this.removeBody(this.bodiesToBeRemoved[m0]); this.bodiesToBeRemoved.length = 0; } this.emit(this.postStepEvent); }; var w7 = f0.create(), E7 = f0.create(); n0.integrateBody = function (k, m) { var e = k.invMass, o = k.force, n = k.position, u = k.velocity; f0.copy(k.previousPosition, k.position), k.previousAngle = k.angle, k.fixedRotation || (k.angularVelocity += y3U.f5r(k.angularForce, k.invInertia, m), k.angle += y3U.D5r(k.angularVelocity, m)), f0.scale(w7, o, y3U.Z5r(m, e)), f0.add(u, w7, u), f0.scale(E7, u, m), f0.add(n, n, E7), k.aabbNeedsUpdate = !0; }, n0.prototype.runNarrowphase = function (k, m, e, o, n, u, q, f, j, U0, k0) { if (y3U.R5r(0, (e.collisionGroup & q.collisionMask)) && y3U.O5r(0, (q.collisionGroup & e.collisionMask))) { f0.rotate(I7, o, m.angle), f0.rotate(N7, f, u.angle), f0.add(I7, I7, m.position), f0.add(N7, N7, u.position); var a0 = n + m.angle, T0 = j + u.angle; k.enableFriction = y3U.V5r(U0.friction, 0), k.frictionCoefficient = U0.friction; var G0; G0 = y3U.k2r(m.type, K0.STATIC) || y3U.G2r(m.type, K0.KINEMATIC) ? u.mass : y3U.N2r(u.type, K0.STATIC) || y3U.L2r(u.type, K0.KINEMATIC) ? m.mass : y3U.z2r(m.mass, u.mass, (m.mass + u.mass)), k.slipForce = y3U.E2r(U0.friction, k0, G0), k.restitution = U0.restitution, k.surfaceVelocity = U0.surfaceVelocity, k.frictionStiffness = U0.frictionStiffness, k.frictionRelaxation = U0.frictionRelaxation, k.stiffness = U0.stiffness, k.relaxation = U0.relaxation, k.contactSkinSize = U0.contactSkinSize; var W0 = k[y3U.y2r(e.type, q.type)], N0 = 0; if (W0) { var S0 = function () { N0 = y3U.o2r(e.type, q.type) ? W0.call(k, m, e, I7, a0, u, q, N7, T0, I0) : W0.call(k, u, q, N7, T0, m, e, I7, a0, I0); }; var I0 = e.sensor || q.sensor, m0 = k.frictionEquations.length; S0(); var A0 = y3U.x2r(k.frictionEquations.length, m0); if (N0) { if (m.allowSleep && y3U.p2r(m.type, K0.DYNAMIC) && y3U.q2r(m.sleepState, K0.SLEEPING) && y3U.b2r(u.sleepState, K0.AWAKE) && y3U.j2r(u.type, K0.STATIC)) { var L0 = f0.squaredLength(u.velocity) + Math.pow(u.angularVelocity, 2), z0 = Math.pow(u.sleepSpeedLimit, 2); y3U.d2r(L0, 2 * z0) && (m._wakeUpAfterNarrowphase = !0); } if (u.allowSleep && y3U.c2r(u.type, K0.DYNAMIC) && y3U.s2r(u.sleepState, K0.SLEEPING) && y3U.Q2r(m.sleepState, K0.AWAKE) && y3U.a1r(m.type, K0.STATIC)) { var E0 = f0.squaredLength(m.velocity) + Math.pow(m.angularVelocity, 2), v0 = Math.pow(m.sleepSpeedLimit, 2); y3U.W1r(E0, 2 * v0) && (u._wakeUpAfterNarrowphase = !0); } if (this.overlapKeeper.setOverlapping(m, e, u, q), this.has("beginContact") && this.overlapKeeper.isNewOverlap(e, q)) { var J0 = this.beginContactEvent; if (J0.shapeA = e, J0.shapeB = q, J0.bodyA = m, J0.bodyB = u, J0.contactEquations.length = 0, "number" == typeof N0) for (var t0 = y3U.m1r(k.contactEquations.length, N0); y3U.A1r(t0, k.contactEquations.length); t0++) J0.contactEquations.push(k.contactEquations[t0]); this.emit(J0); } if ("number" == typeof N0 && y3U.w1r(A0, 1)) for (var t0 = y3U.E1r(k.frictionEquations.length, A0); y3U.e1r(t0, k.frictionEquations.length); t0++) { var w0 = k.frictionEquations[t0]; w0.setSlipForce(y3U.g1r(w0.getSlipForce(), A0)); } } } } }, n0.prototype.addSpring = function (k) { this.springs.push(k), this.addSpringEvent.spring = k, this.emit(this.addSpringEvent); }, n0.prototype.removeSpring = function (k) { var m = this.springs.indexOf(k); -1 !== m && Q0.splice(this.springs, m, 1); }, n0.prototype.addBody = function (k) { -1 === this.bodies.indexOf(k) && (this.bodies.push(k), k.world = this, this.addBodyEvent.body = k, this.emit(this.addBodyEvent)); }, n0.prototype.removeBody = function (m) { if (this.stepping) this.bodiesToBeRemoved.push(m); else { var e = function (k) { m.world = k; }; e(null); var o = this.bodies.indexOf(m); -1 !== o && (Q0.splice(this.bodies, o, 1), this.removeBodyEvent.body = m, m.resetConstraintVelocity(), this.emit(this.removeBodyEvent)); } }, n0.prototype.getBodyById = function (k) { for (var m = this.bodies, e = 0; y3U.r1r(e, m.length); e++) { var o = m[e]; if (y3U.i1r(o.id, k)) return o; } return !1; }, n0.prototype.disableBodyCollision = function (k, m) { this.disabledBodyCollisionPairs.push(k, m); }, n0.prototype.enableBodyCollision = function (k, m) { for (var e = this.disabledBodyCollisionPairs, o = 0; y3U.u1r(o, e.length); o += 2) if (y3U.P1r(e[o], k) && y3U.D1r(e[o + 1], m) || y3U.Z1r(e[o + 1], k) && y3U.R1r(e[o], m)) return void e.splice(o, 2); }, n0.prototype.clear = function () { this.time = 0, this.fixedStepTime = 0, this.solver && this.solver.equations.length && this.solver.removeAllEquations(); for (var k = this.constraints, m = y3U.O1r(k.length, 1); y3U.V1r(m, 0); m--) this.removeConstraint(k[m]); for (var e = this.bodies, m = y3U.k6r(e.length, 1); y3U.G6r(m, 0); m--) this.removeBody(e[m]); for (var o = this.springs, m = y3U.N6r(o.length, 1); y3U.L6r(m, 0); m--) this.removeSpring(o[m]); for (var n = this.contactMaterials, m = y3U.z6r(n.length, 1); y3U.J6r(m, 0); m--) this.removeContactMaterial(n[m]); n0.apply(this); }, n0.prototype.clone = function () { var k = new n0; return k.fromJSON(this.toJSON()), k; }; var g7 = f0.create(), h7 = f0.fromValues(0, 0), y7 = f0.fromValues(0, 0); n0.prototype.hitTest = function (k, m, e) { var o = function () { e = e || 0; }; o(); var n = new K0({ position : k }), u = new v7, q = k, f = 0, j = g7, U0 = h7, k0 = y7; n.addShape(u); for (var a0 = this.narrowphase, T0 = [], G0 = 0, W0 = m.length; y3U.H6r(G0, W0); G0++) for (var N0 = m[G0], S0 = 0, I0 = N0.shapes.length; y3U.h6r(S0, I0); S0++) { var m0 = N0.shapes[S0], A0 = N0.shapeOffsets[S0] || U0, L0 = N0.shapeAngles[S0] || 0; f0.rotate(j, A0, N0.angle), f0.add(j, j, N0.position); var z0 = L0 + N0.angle; (y3U.F6r(m0, G7) && a0.circleParticle(N0, m0, j, z0, n, u, q, f, !0) || y3U.M6r(m0, C7) && a0.particleConvex(n, u, q, f, N0, m0, j, z0, !0) || y3U.n6r(m0, z7) && a0.particlePlane(n, u, q, f, N0, m0, j, z0, !0) || y3U.f6r(m0, B0) && a0.particleCapsule(n, u, q, f, N0, m0, j, z0, !0) || y3U.K6r(m0, v7) && y3U.B6r(f0.squaredLength(f0.sub(k0, j, k)), e * e)) && T0.push(N0); } return T0; }, n0.prototype.setGlobalEquationParameters = function (k) { var m = function () { k = k || {}; }; m(); for (var e = 0; y3U.l6r(e, this.constraints.length); e++) for (var o = this.constraints[e], n = 0; y3U.X6r(n, o.equations.length); n++) { var u = o.equations[n]; "undefined" != typeof k.stiffness && (u.stiffness = k.stiffness), "undefined" != typeof k.relaxation && (u.relaxation = k.relaxation), u.needsUpdate = !0; } for (var e = 0; y3U.Y6r(e, this.contactMaterials.length); e++) { var o = this.contactMaterials[e]; "undefined" != typeof k.stiffness && (o.stiffness = k.stiffness, o.frictionStiffness = k.stiffness), "undefined" != typeof k.relaxation && (o.relaxation = k.relaxation, o.frictionRelaxation = k.relaxation); } var o = this.defaultContactMaterial; "undefined" != typeof k.stiffness && (o.stiffness = k.stiffness, o.frictionStiffness = k.stiffness), "undefined" != typeof k.relaxation && (o.relaxation = k.relaxation, o.frictionRelaxation = k.relaxation); }, n0.prototype.setGlobalStiffness = function (k) { this.setGlobalEquationParameters({ stiffness : k }); }, n0.prototype.setGlobalRelaxation = function (k) { this.setGlobalEquationParameters({ relaxation : k }); }; }, { "../../package.json" : 8, "../collision/Broadphase" : 10, "../collision/NaiveBroadphase" : 12, "../collision/Narrowphase" : 13, "../collision/SAPBroadphase" : 14, "../constraints/Constraint" : 15, "../constraints/DistanceConstraint" : 16, "../constraints/GearConstraint" : 17, "../constraints/LockConstraint" : 18, "../constraints/PrismaticConstraint" : 19, "../constraints/RevoluteConstraint" : 20, "../events/EventEmitter" : 27, "../material/ContactMaterial" : 28, "../material/Material" : 29, "../math/vec2" : 31, "../objects/Body" : 32, "../objects/LinearSpring" : 33, "../objects/RotationalSpring" : 34, "../shapes/Capsule" : 37, "../shapes/Circle" : 38, "../shapes/Convex" : 39, "../shapes/Line" : 41, "../shapes/Particle" : 42, "../shapes/Plane" : 43, "../shapes/Rectangle" : 44, "../shapes/Shape" : 45, "../solver/GSSolver" : 46, "../solver/Solver" : 47, "../utils/OverlapKeeper" : 48, "../utils/Utils" : 50, "./IslandManager" : 52, __browserify_Buffer : 1, __browserify_process : 2 } ] }, {}, [36])(36); }), p2.Body.prototype.parent = null, p2.Spring.prototype.parent = null, Phaser.Physics.P2 = function (k, m) { this.game = k, "undefined" == typeof m ? m = { gravity : [0, 0], broadphase : new p2.SAPBroadphase } : (m.hasOwnProperty("gravity") || (m.gravity = [0, 0]), m.hasOwnProperty("broadphase") || (m.broadphase = new p2.SAPBroadphase)), this.config = m, this.world = new p2.World(this.config), this.frameRate = y3U.U8r(1, 60), this.useElapsedTime = !1, this.paused = !1, this.materials = [], this.gravity = new Phaser.Physics.P2.InversePointProxy(this, this.world.gravity), this.walls = { left : null, right : null, top : null, bottom : null }, this.onBodyAdded = new Phaser.Signal, this.onBodyRemoved = new Phaser.Signal, this.onSpringAdded = new Phaser.Signal, this.onSpringRemoved = new Phaser.Signal, this.onConstraintAdded = new Phaser.Signal, this.onConstraintRemoved = new Phaser.Signal, this.onContactMaterialAdded = new Phaser.Signal, this.onContactMaterialRemoved = new Phaser.Signal, this.postBroadphaseCallback = null, this.callbackContext = null, this.onBeginContact = new Phaser.Signal, this.onEndContact = new Phaser.Signal, m.hasOwnProperty("mpx") && m.hasOwnProperty("pxm") && m.hasOwnProperty("mpxi") && m.hasOwnProperty("pxmi") && (this.mpx = m.mpx, this.mpxi = m.mpxi, this.pxm = m.pxm, this.pxmi = m.pxmi), this.world.on("beginContact", this.beginContactHandler, this), this.world.on("endContact", this.endContactHandler, this), this.collisionGroups = [], this.nothingCollisionGroup = new Phaser.Physics.P2.CollisionGroup(1), this.boundsCollisionGroup = new Phaser.Physics.P2.CollisionGroup(2), this.everythingCollisionGroup = new Phaser.Physics.P2.CollisionGroup(2147483648), this.boundsCollidesWith = [], this._toRemove = [], this._collisionGroupID = 2, this.setBoundsToWorld(!0, !0, !0, !0, !1); }, Phaser.Physics.P2.prototype = { removeBodyNextStep : function (k) { this._toRemove.push(k); }, preUpdate : function () { for (var k = this._toRemove.length; k--; ) this.removeBody(this._toRemove[k]); this._toRemove.length = 0; }, enable : function (k, m, e) { "undefined" == typeof m && (m = !1), "undefined" == typeof e && (e = !0); var o = 1; if (Array.isArray(k)) for (o = k.length; o--; ) y3U.T8r(k[o], Phaser.Group) ? this.enable(k[o].children, m, e) : (this.enableBody(k[o], m), e && k[o].hasOwnProperty("children") && y3U.S8r(k[o].children.length, 0) && this.enable(k[o], m, !0)); else y3U.I8r(k, Phaser.Group) ? this.enable(k.children, m, e) : (this.enableBody(k, m), e && k.hasOwnProperty("children") && y3U.C8r(k.children.length, 0) && this.enable(k.children, m, !0)); }, enableBody : function (k, m) { k.hasOwnProperty("body") && y3U.v8r(null, k.body) && (k.body = new Phaser.Physics.P2.Body(this.game, k, k.x, k.y, 1), k.body.debug = m, k.anchor.set(.5)); }, setImpactEvents : function (k) { k ? this.world.on("impact", this.impactHandler, this) : this.world.off("impact", this.impactHandler, this); }, setPostBroadphaseCallback : function (k, m) { this.postBroadphaseCallback = k, this.callbackContext = m, y3U.t8r(null, k) ? this.world.on("postBroadphase", this.postBroadphaseHandler, this) : this.world.off("postBroadphase", this.postBroadphaseHandler, this); }, postBroadphaseHandler : function (k) { if (this.postBroadphaseCallback && y3U.y8r(0, k.pairs.length)) for (var m = y3U.o8r(k.pairs.length, 2); y3U.x8r(m, 0); m -= 2) k.pairs[m].parent && k.pairs[m + 1].parent && !this.postBroadphaseCallback.call(this.callbackContext, k.pairs[m].parent, k.pairs[m + 1].parent) && k.pairs.splice(m, 2); }, impactHandler : function (k) { if (k.bodyA.parent && k.bodyB.parent) { var m = k.bodyA.parent, e = k.bodyB.parent; m._bodyCallbacks[k.bodyB.id] && m._bodyCallbacks[k.bodyB.id].call(m._bodyCallbackContext[k.bodyB.id], m, e, k.shapeA, k.shapeB), e._bodyCallbacks[k.bodyA.id] && e._bodyCallbacks[k.bodyA.id].call(e._bodyCallbackContext[k.bodyA.id], e, m, k.shapeB, k.shapeA), m._groupCallbacks[k.shapeB.collisionGroup] && m._groupCallbacks[k.shapeB.collisionGroup].call(m._groupCallbackContext[k.shapeB.collisionGroup], m, e, k.shapeA, k.shapeB), e._groupCallbacks[k.shapeA.collisionGroup] && e._groupCallbacks[k.shapeA.collisionGroup].call(e._groupCallbackContext[k.shapeA.collisionGroup], e, m, k.shapeB, k.shapeA); } }, beginContactHandler : function (k) { this.onBeginContact.dispatch(k.bodyA, k.bodyB, k.shapeA, k.shapeB, k.contactEquations), k.bodyA.parent && k.bodyA.parent.onBeginContact.dispatch(k.bodyB.parent, k.shapeA, k.shapeB, k.contactEquations), k.bodyB.parent && k.bodyB.parent.onBeginContact.dispatch(k.bodyA.parent, k.shapeB, k.shapeA, k.contactEquations); }, endContactHandler : function (k) { this.onEndContact.dispatch(k.bodyA, k.bodyB, k.shapeA, k.shapeB), k.bodyA.parent && k.bodyA.parent.onEndContact.dispatch(k.bodyB.parent, k.shapeA, k.shapeB), k.bodyB.parent && k.bodyB.parent.onEndContact.dispatch(k.bodyA.parent, k.shapeB, k.shapeA); }, setBoundsToWorld : function (k, m, e, o, n) { this.setBounds(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height, k, m, e, o, n); }, setWorldMaterial : function (k, m, e, o, n) { "undefined" == typeof m && (m = !0), "undefined" == typeof e && (e = !0), "undefined" == typeof o && (o = !0), "undefined" == typeof n && (n = !0), m && this.walls.left && (this.walls.left.shapes[0].material = k), e && this.walls.right && (this.walls.right.shapes[0].material = k), o && this.walls.top && (this.walls.top.shapes[0].material = k), n && this.walls.bottom && (this.walls.bottom.shapes[0].material = k); }, updateBoundsCollisionGroup : function (k) { var m = this.everythingCollisionGroup.mask; "undefined" == typeof k && (m = this.boundsCollisionGroup.mask), this.walls.left && (this.walls.left.shapes[0].collisionGroup = m), this.walls.right && (this.walls.right.shapes[0].collisionGroup = m), this.walls.top && (this.walls.top.shapes[0].collisionGroup = m), this.walls.bottom && (this.walls.bottom.shapes[0].collisionGroup = m); }, setBounds : function (k, m, e, o, n, u, q, f, j) { "undefined" == typeof n && (n = !0), "undefined" == typeof u && (u = !0), "undefined" == typeof q && (q = !0), "undefined" == typeof f && (f = !0), "undefined" == typeof j && (j = !0), this.walls.left && this.world.removeBody(this.walls.left), this.walls.right && this.world.removeBody(this.walls.right), this.walls.top && this.world.removeBody(this.walls.top), this.walls.bottom && this.world.removeBody(this.walls.bottom), n && (this.walls.left = new p2.Body({ mass : 0, position : [this.pxmi(k), this.pxmi(m)], angle : 1.5707963267948966 }), this.walls.left.addShape(new p2.Plane), j && (this.walls.left.shapes[0].collisionGroup = this.boundsCollisionGroup.mask), this.world.addBody(this.walls.left)), u && (this.walls.right = new p2.Body({ mass : 0, position : [this.pxmi(k + e), this.pxmi(m)], angle : -1.5707963267948966 }), this.walls.right.addShape(new p2.Plane), j && (this.walls.right.shapes[0].collisionGroup = this.boundsCollisionGroup.mask), this.world.addBody(this.walls.right)), q && (this.walls.top = new p2.Body({ mass : 0, position : [this.pxmi(k), this.pxmi(m)], angle : -3.141592653589793 }), this.walls.top.addShape(new p2.Plane), j && (this.walls.top.shapes[0].collisionGroup = this.boundsCollisionGroup.mask), this.world.addBody(this.walls.top)), f && (this.walls.bottom = new p2.Body({ mass : 0, position : [this.pxmi(k), this.pxmi(m + o)] }), this.walls.bottom.addShape(new p2.Plane), j && (this.walls.bottom.shapes[0].collisionGroup = this.boundsCollisionGroup.mask), this.world.addBody(this.walls.bottom)); }, pause : function () { this.paused = !0; }, resume : function () { this.paused = !1; }, update : function () { this.paused || this.world.step(this.useElapsedTime ? this.game.time.physicsElapsed : this.frameRate); }, reset : function () { this.world.on("beginContact", this.beginContactHandler, this), this.world.on("endContact", this.endContactHandler, this), this.nothingCollisionGroup = new Phaser.Physics.P2.CollisionGroup(1), this.boundsCollisionGroup = new Phaser.Physics.P2.CollisionGroup(2), this.everythingCollisionGroup = new Phaser.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 k = this.world.constraints, m = y3U.p8r(k.length, 1); y3U.q8r(m, 0); m--) this.world.removeConstraint(k[m]); for (var e = this.world.bodies, m = y3U.b8r(e.length, 1); y3U.j8r(m, 0); m--) this.world.removeBody(e[m]); for (var o = this.world.springs, m = y3U.d8r(o.length, 1); y3U.c8r(m, 0); m--) this.world.removeSpring(o[m]); for (var n = this.world.contactMaterials, m = y3U.s8r(n.length, 1); y3U.Q8r(m, 0); m--) this.world.removeContactMaterial(n[m]); this.world.off("beginContact", this.beginContactHandler, this), this.world.off("endContact", this.endContactHandler, this), this.postBroadphaseCallback = null, this.callbackContext = null, this.impactCallback = null, this.collisionGroups = [], this._toRemove = [], this.boundsCollidesWith = []; }, destroy : function () { this.clear(), this.game = null; }, addBody : function (k) { return k.data.world ? !1 : (this.world.addBody(k.data), this.onBodyAdded.dispatch(k), !0); }, removeBody : function (k) { return y3U.a0L(k.data.world, this.world) && (this.world.removeBody(k.data), this.onBodyRemoved.dispatch(k)), k; }, addSpring : function (k) { return this.world.addSpring(y3U.W0L(k, Phaser.Physics.P2.Spring) || y3U.m0L(k, Phaser.Physics.P2.RotationalSpring) ? k.data : k), this.onSpringAdded.dispatch(k), k; }, removeSpring : function (k) { return this.world.removeSpring(y3U.A0L(k, Phaser.Physics.P2.Spring) || y3U.w0L(k, Phaser.Physics.P2.RotationalSpring) ? k.data : k), this.onSpringRemoved.dispatch(k), k; }, createDistanceConstraint : function (k, m, e, o, n, u) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addConstraint(new Phaser.Physics.P2.DistanceConstraint(this, k, m, e, o, n, u)) : void console.warn("Cannot create Constraint, invalid body objects given"); }, createGearConstraint : function (k, m, e, o) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addConstraint(new Phaser.Physics.P2.GearConstraint(this, k, m, e, o)) : void console.warn("Cannot create Constraint, invalid body objects given"); }, createRevoluteConstraint : function (k, m, e, o, n, u) { return k = this.getBody(k), e = this.getBody(e), k && e ? this.addConstraint(new Phaser.Physics.P2.RevoluteConstraint(this, k, m, e, o, n, u)) : void console.warn("Cannot create Constraint, invalid body objects given"); }, createLockConstraint : function (k, m, e, o, n) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addConstraint(new Phaser.Physics.P2.LockConstraint(this, k, m, e, o, n)) : void console.warn("Cannot create Constraint, invalid body objects given"); }, createPrismaticConstraint : function (k, m, e, o, n, u, q) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addConstraint(new Phaser.Physics.P2.PrismaticConstraint(this, k, m, e, o, n, u, q)) : void console.warn("Cannot create Constraint, invalid body objects given"); }, addConstraint : function (k) { return this.world.addConstraint(k), this.onConstraintAdded.dispatch(k), k; }, removeConstraint : function (k) { return this.world.removeConstraint(k), this.onConstraintRemoved.dispatch(k), k; }, addContactMaterial : function (k) { return this.world.addContactMaterial(k), this.onContactMaterialAdded.dispatch(k), k; }, removeContactMaterial : function (k) { return this.world.removeContactMaterial(k), this.onContactMaterialRemoved.dispatch(k), k; }, getContactMaterial : function (k, m) { return this.world.getContactMaterial(k, m); }, setMaterial : function (k, m) { for (var e = m.length; e--; ) m[e].setMaterial(k); }, createMaterial : function (k, m) { var e = function () { k = k || ""; }; e(); var o = new Phaser.Physics.P2.Material(k); return this.materials.push(o), "undefined" != typeof m && m.setMaterial(o), o; }, createContactMaterial : function (k, m, e) { "undefined" == typeof k && (k = this.createMaterial()), "undefined" == typeof m && (m = this.createMaterial()); var o = new Phaser.Physics.P2.ContactMaterial(k, m, e); return this.addContactMaterial(o); }, getBodies : function () { for (var k = [], m = this.world.bodies.length; m--; ) k.push(this.world.bodies[m].parent); return k; }, getBody : function (k) { return y3U.E0L(k, p2.Body) ? k : y3U.e0L(k, Phaser.Physics.P2.Body) ? k.data : k.body && y3U.g0L(k.body.type, Phaser.Physics.P2JS) ? k.body.data : null; }, getSprings : function () { for (var k = [], m = this.world.springs.length; m--; ) k.push(this.world.springs[m].parent); return k; }, getConstraints : function () { for (var k = [], m = this.world.constraints.length; m--; ) k.push(this.world.constraints[m].parent); return k; }, hitTest : function (k, m, e, o) { "undefined" == typeof m && (m = this.world.bodies), "undefined" == typeof e && (e = 5), "undefined" == typeof o && (o = !1); for (var n = [this.pxmi(k.x), this.pxmi(k.y)], u = [], q = m.length; q--; ) y3U.r0L(m[q], Phaser.Physics.P2.Body) && (!o || y3U.i0L(m[q].data.type, p2.Body.STATIC)) ? u.push(m[q].data) : y3U.u0L(m[q], p2.Body) && m[q].parent && (!o || y3U.P0L(m[q].type, p2.Body.STATIC)) ? u.push(m[q]) : y3U.D0L(m[q], Phaser.Sprite) && m[q].hasOwnProperty("body") && (!o || y3U.Z0L(m[q].body.data.type, p2.Body.STATIC)) && u.push(m[q].body.data); return this.world.hitTest(n, u, e); }, toJSON : function () { return this.world.toJSON(); }, createCollisionGroup : function (k) { var m = Math.pow(2, this._collisionGroupID); this.walls.left && (this.walls.left.shapes[0].collisionMask = y3U.R0L(this.walls.left.shapes[0].collisionMask, m)), this.walls.right && (this.walls.right.shapes[0].collisionMask = y3U.O0L(this.walls.right.shapes[0].collisionMask, m)), this.walls.top && (this.walls.top.shapes[0].collisionMask = y3U.V0L(this.walls.top.shapes[0].collisionMask, m)), this.walls.bottom && (this.walls.bottom.shapes[0].collisionMask = y3U.k7L(this.walls.bottom.shapes[0].collisionMask, m)), this._collisionGroupID++; var e = new Phaser.Physics.P2.CollisionGroup(m); return this.collisionGroups.push(e), k && this.setCollisionGroup(k, e), e; }, setCollisionGroup : function (k, m) { if (y3U.G7L(k, Phaser.Group)) for (var e = 0; y3U.N7L(e, k.total); e++) k.children[e].body && y3U.L7L(k.children[e].body.type, Phaser.Physics.P2JS) && k.children[e].body.setCollisionGroup(m); else k.body.setCollisionGroup(m); }, createSpring : function (k, m, e, o, n, u, q, f, j) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addSpring(new Phaser.Physics.P2.Spring(this, k, m, e, o, n, u, q, f, j)) : void console.warn("Cannot create Spring, invalid body objects given"); }, createRotationalSpring : function (k, m, e, o, n) { return k = this.getBody(k), m = this.getBody(m), k && m ? this.addSpring(new Phaser.Physics.P2.RotationalSpring(this, k, m, e, o, n)) : void console.warn("Cannot create Rotational Spring, invalid body objects given"); }, createBody : function (k, m, e, o, n, u) { "undefined" == typeof o && (o = !1); var q = new Phaser.Physics.P2.Body(this.game, null, k, m, e); if (u) { var f = q.addPolygon(n, u); if (!f) return !1; } return o && this.world.addBody(q.data), q; }, createParticle : function (k, m, e, o, n, u) { "undefined" == typeof o && (o = !1); var q = new Phaser.Physics.P2.Body(this.game, null, k, m, e); if (u) { var f = q.addPolygon(n, u); if (!f) return !1; } return o && this.world.addBody(q.data), q; }, convertCollisionObjects : function (k, m, e) { "undefined" == typeof e && (e = !0); for (var o = [], n = 0, u = k.collision[m].length; y3U.z7L(u, n); n++) { var q = k.collision[m][n], f = this.createBody(q.x, q.y, 0, e, {}, q.polyline); f && o.push(f); } return o; }, clearTilemapLayerBodies : function (m, e) { var o = function (k) { m.layers[e].bodies.length = k; }; e = m.getLayer(e); for (var n = m.layers[e].bodies.length; n--; ) m.layers[e].bodies[n].destroy(); o(0); }, convertTilemap : function (m, e, o, n) { e = m.getLayer(e), "undefined" == typeof o && (o = !0), "undefined" == typeof n && (n = !0), this.clearTilemapLayerBodies(m, e); for (var u = 0, q = 0, f = 0, j = 0, U0 = m.layers[e].height; y3U.J7L(U0, j); j++) { var k0 = function (k) { u = k; }; k0(0); for (var a0 = 0, T0 = m.layers[e].width; y3U.H7L(T0, a0); a0++) { var G0 = m.layers[e].data[j][a0]; if (G0 && G0.index > -1 && G0.collides) if (n) { var W0 = m.getTileRight(e, a0, j); if (y3U.h7L(0, u) && (q = y3U.F7L(G0.x, G0.width), f = y3U.M7L(G0.y, G0.height), u = G0.width), W0 && W0.collides) u += G0.width; else { var N0 = this.createBody(q, f, 0, !1); N0.addRectangle(u, G0.height, y3U.n7L(u, 2), y3U.f7L(G0.height, 2), 0), o && this.addBody(N0), m.layers[e].bodies.push(N0), u = 0; } } else { var N0 = this.createBody(y3U.K7L(G0.x, G0.width), y3U.B7L(G0.y, G0.height), 0, !1); N0.addRectangle(G0.width, G0.height, y3U.l7L(G0.width, 2), y3U.X7L(G0.height, 2), 0), o && this.addBody(N0), m.layers[e].bodies.push(N0); } } } return m.layers[e].bodies; }, mpx : function (k) { return k *= 20; }, pxm : function (k) { return y3U.Y7L(.05, k); }, mpxi : function (k) { return k *= -20; }, pxmi : function (k) { return k * - .05; } }, Object.defineProperty(Phaser.Physics.P2.prototype, "friction", { get : function () { return this.world.defaultContactMaterial.friction; }, set : function (k) { this.world.defaultContactMaterial.friction = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "restitution", { get : function () { return this.world.defaultContactMaterial.restitution; }, set : function (k) { this.world.defaultContactMaterial.restitution = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "contactMaterial", { get : function () { return this.world.defaultContactMaterial; }, set : function (k) { this.world.defaultContactMaterial = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "applySpringForces", { get : function () { return this.world.applySpringForces; }, set : function (k) { this.world.applySpringForces = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "applyDamping", { get : function () { return this.world.applyDamping; }, set : function (k) { this.world.applyDamping = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "applyGravity", { get : function () { return this.world.applyGravity; }, set : function (k) { this.world.applyGravity = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "solveConstraints", { get : function () { return this.world.solveConstraints; }, set : function (k) { this.world.solveConstraints = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "time", { get : function () { return this.world.time; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "emitImpactEvent", { get : function () { return this.world.emitImpactEvent; }, set : function (k) { this.world.emitImpactEvent = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "sleepMode", { get : function () { return this.world.sleepMode; }, set : function (k) { this.world.sleepMode = k; } }), Object.defineProperty(Phaser.Physics.P2.prototype, "total", { get : function () { return this.world.bodies.length; } }), Phaser.Physics.P2.FixtureList = function (k) { Array.isArray(k) || (k = [k]), this.rawList = k, this.init(), this.parse(this.rawList); }, Phaser.Physics.P2.FixtureList.prototype = { init : function () { this.namedFixtures = {}, this.groupedFixtures = [], this.allFixtures = []; }, setCategory : function (o, n) { var u = function (m) { var e = function (k) { m.collisionGroup = k; }; e(o); }; this.getFixtures(n).forEach(u); }, setMask : function (o, n) { var u = function (m) { var e = function (k) { m.collisionMask = k; }; e(o); }; this.getFixtures(n).forEach(u); }, setSensor : function (o, n) { var u = function (m) { var e = function (k) { m.sensor = k; }; e(o); }; this.getFixtures(n).forEach(u); }, setMaterial : function (o, n) { var u = function (m) { var e = function (k) { m.material = k; }; e(o); }; this.getFixtures(n).forEach(u); }, getFixtures : function (m) { var e = []; if (m) { y3U.U4L(m, Array) || (m = [m]); var o = this; return m.forEach(function (k) { o.namedFixtures[k] && e.push(o.namedFixtures[k]); }), this.flatten(e); } return this.allFixtures; }, getFixtureByKey : function (k) { return this.namedFixtures[k]; }, getGroup : function (k) { return this.groupedFixtures[k]; }, parse : function () { var k, m, e, o; e = this.rawList, o = []; for (k in e) m = e[k], isNaN(y3U.T4L(k, 0)) ? this.namedFixtures[k] = this.flatten(m) : (this.groupedFixtures[k] = this.groupedFixtures[k] || [], this.groupedFixtures[k] = this.groupedFixtures[k].concat(m)), o.push(this.allFixtures = this.flatten(this.groupedFixtures)); }, flatten : function (m) { var e, o; return e = [], o = arguments.callee, m.forEach(function (k) { return Array.prototype.push.apply(e, Array.isArray(k) ? o(k) : [k]); }), e; } }, Phaser.Physics.P2.PointProxy = function (k, m) { this.world = k, this.destination = m; }, Phaser.Physics.P2.PointProxy.prototype.constructor = Phaser.Physics.P2.PointProxy, Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "x", { get : function () { return this.world.mpx(this.destination[0]); }, set : function (k) { this.destination[0] = this.world.pxm(k); } }), Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "y", { get : function () { return this.world.mpx(this.destination[1]); }, set : function (k) { this.destination[1] = this.world.pxm(k); } }), Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "mx", { get : function () { return this.destination[0]; }, set : function (k) { this.destination[0] = k; } }), Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "my", { get : function () { return this.destination[1]; }, set : function (k) { this.destination[1] = k; } }), Phaser.Physics.P2.InversePointProxy = function (k, m) { this.world = k, this.destination = m; }, Phaser.Physics.P2.InversePointProxy.prototype.constructor = Phaser.Physics.P2.InversePointProxy, Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "x", { get : function () { return this.world.mpxi(this.destination[0]); }, set : function (k) { this.destination[0] = this.world.pxmi(k); } }), Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "y", { get : function () { return this.world.mpxi(this.destination[1]); }, set : function (k) { this.destination[1] = this.world.pxmi(k); } }), Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "mx", { get : function () { return this.destination[0]; }, set : function (k) { this.destination[0] = -k; } }), Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "my", { get : function () { return this.destination[1]; }, set : function (k) { this.destination[1] = -k; } }), Phaser.Physics.P2.Body = function (k, m, e, o, n) { m = m || null, e = e || 0, o = o || 0, "undefined" == typeof n && (n = 1), this.game = k, this.world = k.physics.p2, this.sprite = m, this.type = Phaser.Physics.P2JS, this.offset = new Phaser.Point, this.data = new p2.Body({ position : [this.world.pxmi(e), this.world.pxmi(o)], mass : n }), this.data.parent = this, this.velocity = new Phaser.Physics.P2.InversePointProxy(this.world, this.data.velocity), this.force = new Phaser.Physics.P2.InversePointProxy(this.world, this.data.force), this.gravity = new Phaser.Point, this.onBeginContact = new Phaser.Signal, this.onEndContact = new Phaser.Signal, this.collidesWith = [], this.removeNextStep = !1, this.debugBody = null, this._collideWorldBounds = !0, this._bodyCallbacks = {}, this._bodyCallbackContext = {}, this._groupCallbacks = {}, this._groupCallbackContext = {}, m && (this.setRectangleFromSprite(m), m.exists && this.game.physics.p2.addBody(this)); }, Phaser.Physics.P2.Body.prototype = { createBodyCallback : function (k, m, e) { var o = -1; k.id ? o = k.id : k.body && (o = k.body.id), o > -1 && (y3U.S4L(null, m) ? (delete this._bodyCallbacks[o], delete this._bodyCallbackContext[o]) : (this._bodyCallbacks[o] = m, this._bodyCallbackContext[o] = e)); }, createGroupCallback : function (k, m, e) { y3U.I4L(null, m) ? (delete this._groupCallbacks[k.mask], delete this._groupCallbacksContext[k.mask]) : (this._groupCallbacks[k.mask] = m, this._groupCallbackContext[k.mask] = e); }, getCollisionMask : function () { var k = 0; this._collideWorldBounds && (k = this.game.physics.p2.boundsCollisionGroup.mask); for (var m = 0; y3U.C4L(m, this.collidesWith.length); m++) k |= this.collidesWith[m].mask; return k; }, updateCollisionMask : function (m) { var e = function (k) { m.collisionMask = k; }, o = this.getCollisionMask(); if ("undefined" == typeof m) for (var n = y3U.v4L(this.data.shapes.length, 1); y3U.t4L(n, 0); n--) this.data.shapes[n].collisionMask = o; else e(o); }, setCollisionGroup : function (k, m) { var e = this.getCollisionMask(); if ("undefined" == typeof m) for (var o = y3U.y4L(this.data.shapes.length, 1); y3U.o4L(o, 0); o--) this.data.shapes[o].collisionGroup = k.mask, this.data.shapes[o].collisionMask = e; else m.collisionGroup = k.mask, m.collisionMask = e; }, clearCollision : function (k, m, e) { if ("undefined" == typeof e) for (var o = y3U.x4L(this.data.shapes.length, 1); y3U.p4L(o, 0); o--) k && (this.data.shapes[o].collisionGroup = null), m && (this.data.shapes[o].collisionMask = null); else k && (e.collisionGroup = null), m && (e.collisionMask = null); k && (this.collidesWith.length = 0); }, collides : function (m, e, o, n) { var u = function (k) { n.collisionMask = k; }; if (Array.isArray(m)) for (var q = 0; y3U.q4L(q, m.length); q++) - 1 === this.collidesWith.indexOf(m[q]) && (this.collidesWith.push(m[q]), e && this.createGroupCallback(m[q], e, o)); else - 1 === this.collidesWith.indexOf(m) && (this.collidesWith.push(m), e && this.createGroupCallback(m, e, o)); var f = this.getCollisionMask(); if ("undefined" == typeof n) for (var q = y3U.b4L(this.data.shapes.length, 1); y3U.j4L(q, 0); q--) this.data.shapes[q].collisionMask = f; else u(f); }, adjustCenterOfMass : function () { this.data.adjustCenterOfMass(); }, applyDamping : function (k) { this.data.applyDamping(k); }, applyForce : function (k, m, e) { this.data.applyForce(k, [this.world.pxmi(m), this.world.pxmi(e)]); }, 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 (k, m) { return this.data.toLocalFrame(k, m); }, toWorldFrame : function (k, m) { return this.data.toWorldFrame(k, m); }, rotateLeft : function (k) { this.data.angularVelocity = this.world.pxm(-k); }, rotateRight : function (k) { this.data.angularVelocity = this.world.pxm(k); }, moveForward : function (k) { var m = this.world.pxmi(-k), e = this.data.angle + y3U.d4L(Math.PI, 2); this.data.velocity[0] = y3U.c4L(m, Math.cos(e)), this.data.velocity[1] = y3U.s4L(m, Math.sin(e)); }, moveBackward : function (k) { var m = this.world.pxmi(-k), e = this.data.angle + y3U.Q4L(Math.PI, 2); this.data.velocity[0] = - (y3U.a3L(m, Math.cos(e))), this.data.velocity[1] = - (y3U.W3L(m, Math.sin(e))); }, thrust : function (k) { var m = this.world.pxmi(-k), e = this.data.angle + y3U.m3L(Math.PI, 2); this.data.force[0] += y3U.A3L(m, Math.cos(e)), this.data.force[1] += y3U.w3L(m, Math.sin(e)); }, reverse : function (k) { var m = this.world.pxmi(-k), e = this.data.angle + y3U.E3L(Math.PI, 2); this.data.force[0] -= y3U.e3L(m, Math.cos(e)), this.data.force[1] -= y3U.g3L(m, Math.sin(e)); }, moveLeft : function (k) { this.data.velocity[0] = this.world.pxmi(-k); }, moveRight : function (k) { this.data.velocity[0] = this.world.pxmi(k); }, moveUp : function (k) { this.data.velocity[1] = this.world.pxmi(-k); }, moveDown : function (k) { this.data.velocity[1] = this.world.pxmi(k); }, preUpdate : function () { this.removeNextStep && (this.removeFromWorld(), this.removeNextStep = !1); }, postUpdate : function () { this.sprite.x = this.world.mpxi(this.data.position[0]), this.sprite.y = this.world.mpxi(this.data.position[1]), this.fixedRotation || (this.sprite.rotation = this.data.angle), this.debugBody && this.debugBody.updateSpriteTransform(); }, reset : function (k, m, e, o) { "undefined" == typeof e && (e = !1), "undefined" == typeof o && (o = !1), this.setZeroForce(), this.setZeroVelocity(), this.setZeroRotation(), e && this.setZeroDamping(), o && (this.mass = 1), this.x = k, this.y = m; }, addToWorld : function () { if (this.game.physics.p2._toRemove) for (var k = 0; y3U.r3L(k, this.game.physics.p2._toRemove.length); k++) y3U.i3L(this.game.physics.p2._toRemove[k], this) && this.game.physics.p2._toRemove.splice(k, 1); y3U.u3L(this.data.world, this.game.physics.p2.world) && this.game.physics.p2.addBody(this); }, removeFromWorld : function () { y3U.P3L(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.body = null, this.sprite = null; }, clearShapes : function () { for (var k = this.data.shapes.length; k--; ) this.data.removeShape(this.data.shapes[k]); this.shapeChanged(); }, addShape : function (k, m, e, o) { return "undefined" == typeof m && (m = 0), "undefined" == typeof e && (e = 0), "undefined" == typeof o && (o = 0), this.data.addShape(k, [this.world.pxmi(m), this.world.pxmi(e)], o), this.shapeChanged(), k; }, addCircle : function (k, m, e, o) { var n = new p2.Circle(this.world.pxm(k)); return this.addShape(n, m, e, o); }, addRectangle : function (k, m, e, o, n) { var u = new p2.Rectangle(this.world.pxm(k), this.world.pxm(m)); return this.addShape(u, e, o, n); }, addPlane : function (k, m, e) { var o = new p2.Plane; return this.addShape(o, k, m, e); }, addParticle : function (k, m, e) { var o = new p2.Particle; return this.addShape(o, k, m, e); }, addLine : function (k, m, e, o) { var n = new p2.Line(this.world.pxm(k)); return this.addShape(n, m, e, o); }, addCapsule : function (k, m, e, o, n) { var u = new p2.Capsule(this.world.pxm(k), this.world.pxm(m)); return this.addShape(u, e, o, n); }, addPolygon : function (k, m) { k = k || {}, Array.isArray(m) || (m = Array.prototype.slice.call(arguments, 1)); var e = []; if (y3U.D3L(1, m.length) && Array.isArray(m[0])) e = m[0].slice(0); else if (Array.isArray(m[0])) e = m.slice(); else if ("number" == typeof m[0]) for (var o = 0, n = m.length; y3U.Z3L(n, o); o += 2) e.push([m[o], m[o + 1]]); var u = y3U.R3L(e.length, 1); y3U.O3L(e[u][0], e[0][0]) && y3U.V3L(e[u][1], e[0][1]) && e.pop(); for (var q = 0; y3U.k9L(q, e.length); q++) e[q][0] = this.world.pxmi(e[q][0]), e[q][1] = this.world.pxmi(e[q][1]); var f = this.data.fromPolygon(e, k); return this.shapeChanged(), f; }, removeShape : function (k) { var m = this.data.removeShape(k); return this.shapeChanged(), m; }, setCircle : function (k, m, e, o) { return this.clearShapes(), this.addCircle(k, m, e, o); }, setRectangle : function (k, m, e, o, n) { return "undefined" == typeof k && (k = 16), "undefined" == typeof m && (m = 16), this.clearShapes(), this.addRectangle(k, m, e, o, n); }, setRectangleFromSprite : function (k) { return "undefined" == typeof k && (k = this.sprite), this.clearShapes(), this.addRectangle(k.width, k.height, 0, 0, k.rotation); }, setMaterial : function (m, e) { var o = function (k) { e.material = k; }; if ("undefined" == typeof e) for (var n = y3U.G9L(this.data.shapes.length, 1); y3U.N9L(n, 0); n--) this.data.shapes[n].material = m; else o(m); }, shapeChanged : function () { this.debugBody && this.debugBody.draw(); }, addPhaserPolygon : function (k, m) { for (var e = this.game.cache.getPhysicsData(k, m), o = [], n = 0; y3U.L9L(n, e.length); n++) { var u = e[n], q = this.addFixture(u); o[u.filter.group] = o[u.filter.group] || [], o[u.filter.group] = o[u.filter.group].concat(q), u.fixtureKey && (o[u.fixtureKey] = q); } return this.data.aabbNeedsUpdate = !0, this.shapeChanged(), o; }, addFixture : function (k) { var m = []; if (k.circle) { var e = new p2.Circle(this.world.pxm(k.circle.radius)); e.collisionGroup = k.filter.categoryBits, e.collisionMask = k.filter.maskBits, e.sensor = k.isSensor; var o = p2.vec2.create(); o[0] = this.world.pxmi(y3U.z9L(k.circle.position[0], this.sprite.width / 2)), o[1] = this.world.pxmi(y3U.J9L(k.circle.position[1], this.sprite.height / 2)), this.data.addShape(e, o), m.push(e); } else for (var n = k.polygons, u = p2.vec2.create(), q = 0; y3U.H9L(q, n.length); q++) { for (var f = n[q], j = [], U0 = 0; y3U.h9L(U0, f.length); U0 += 2) j.push([this.world.pxmi(f[U0]), this.world.pxmi(f[U0 + 1])]); for (var e = new p2.Convex(j), k0 = 0; y3U.F9L(k0, e.vertices.length); k0++) { var a0 = e.vertices[k0]; p2.vec2.sub(a0, a0, e.centerOfMass); } p2.vec2.scale(u, e.centerOfMass, 1), u[0] -= this.world.pxmi(y3U.M9L(this.sprite.width, 2)), u[1] -= this.world.pxmi(y3U.n9L(this.sprite.height, 2)), e.updateTriangles(), e.updateCenterOfMass(), e.updateBoundingRadius(), e.collisionGroup = k.filter.categoryBits, e.collisionMask = k.filter.maskBits, e.sensor = k.isSensor, this.data.addShape(e, u), m.push(e); } return m; }, loadPolygon : function (k, m) { for (var e = this.game.cache.getPhysicsData(k, m), o = p2.vec2.create(), n = 0; y3U.f9L(n, e.length); n++) { for (var u = [], q = 0; y3U.K9L(q, e[n].shape.length); q += 2) u.push([this.world.pxmi(e[n].shape[q]), this.world.pxmi(e[n].shape[q + 1])]); for (var f = new p2.Convex(u), j = 0; y3U.B9L(j, f.vertices.length); j++) { var U0 = f.vertices[j]; p2.vec2.sub(U0, U0, f.centerOfMass); } p2.vec2.scale(o, f.centerOfMass, 1), o[0] -= this.world.pxmi(y3U.l9L(this.sprite.width, 2)), o[1] -= this.world.pxmi(y3U.X9L(this.sprite.height, 2)), f.updateTriangles(), f.updateCenterOfMass(), f.updateBoundingRadius(), this.data.addShape(f, o); } return this.data.aabbNeedsUpdate = !0, this.shapeChanged(), !0; } }, Phaser.Physics.P2.Body.prototype.constructor = Phaser.Physics.P2.Body, Phaser.Physics.P2.Body.DYNAMIC = 1, Phaser.Physics.P2.Body.STATIC = 2, Phaser.Physics.P2.Body.KINEMATIC = 4, Object.defineProperty(Phaser.Physics.P2.Body.prototype, "static", { get : function () { return y3U.Y9L(this.data.type, Phaser.Physics.P2.Body.STATIC); }, set : function (k) { k && y3U.U5L(this.data.type, Phaser.Physics.P2.Body.STATIC) ? (this.data.type = Phaser.Physics.P2.Body.STATIC, this.mass = 0) : k || y3U.T5L(this.data.type, Phaser.Physics.P2.Body.STATIC) || (this.data.type = Phaser.Physics.P2.Body.DYNAMIC, y3U.S5L(0, this.mass) && (this.mass = 1)); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "dynamic", { get : function () { return y3U.I5L(this.data.type, Phaser.Physics.P2.Body.DYNAMIC); }, set : function (k) { k && y3U.C5L(this.data.type, Phaser.Physics.P2.Body.DYNAMIC) ? (this.data.type = Phaser.Physics.P2.Body.DYNAMIC, y3U.v5L(0, this.mass) && (this.mass = 1)) : k || y3U.t5L(this.data.type, Phaser.Physics.P2.Body.DYNAMIC) || (this.data.type = Phaser.Physics.P2.Body.STATIC, this.mass = 0); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "kinematic", { get : function () { return y3U.y5L(this.data.type, Phaser.Physics.P2.Body.KINEMATIC); }, set : function (k) { k && y3U.o5L(this.data.type, Phaser.Physics.P2.Body.KINEMATIC) ? (this.data.type = Phaser.Physics.P2.Body.KINEMATIC, this.mass = 4) : k || y3U.x5L(this.data.type, Phaser.Physics.P2.Body.KINEMATIC) || (this.data.type = Phaser.Physics.P2.Body.STATIC, this.mass = 0); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "allowSleep", { get : function () { return this.data.allowSleep; }, set : function (k) { y3U.p5L(k, this.data.allowSleep) && (this.data.allowSleep = k); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "angle", { get : function () { return Phaser.Math.wrapAngle(Phaser.Math.radToDeg(this.data.angle)); }, set : function (k) { this.data.angle = Phaser.Math.degToRad(Phaser.Math.wrapAngle(k)); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "angularDamping", { get : function () { return this.data.angularDamping; }, set : function (k) { this.data.angularDamping = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "angularForce", { get : function () { return this.data.angularForce; }, set : function (k) { this.data.angularForce = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "angularVelocity", { get : function () { return this.data.angularVelocity; }, set : function (k) { this.data.angularVelocity = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "damping", { get : function () { return this.data.damping; }, set : function (k) { this.data.damping = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "fixedRotation", { get : function () { return this.data.fixedRotation; }, set : function (k) { y3U.q5L(k, this.data.fixedRotation) && (this.data.fixedRotation = k); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "inertia", { get : function () { return this.data.inertia; }, set : function (k) { this.data.inertia = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "mass", { get : function () { return this.data.mass; }, set : function (k) { y3U.b5L(k, this.data.mass) && (this.data.mass = k, this.data.updateMassProperties()); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "motionState", { get : function () { return this.data.type; }, set : function (k) { y3U.j5L(k, this.data.type) && (this.data.type = k); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "rotation", { get : function () { return this.data.angle; }, set : function (k) { this.data.angle = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "sleepSpeedLimit", { get : function () { return this.data.sleepSpeedLimit; }, set : function (k) { this.data.sleepSpeedLimit = k; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "x", { get : function () { return this.world.mpxi(this.data.position[0]); }, set : function (k) { this.data.position[0] = this.world.pxmi(k); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "y", { get : function () { return this.world.mpxi(this.data.position[1]); }, set : function (k) { this.data.position[1] = this.world.pxmi(k); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "id", { get : function () { return this.data.id; } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "debug", { get : function () { return y3U.d5L(null, this.debugBody); }, set : function (k) { k && !this.debugBody ? this.debugBody = new Phaser.Physics.P2.BodyDebug(this.game, this.data) : !k && this.debugBody && (this.debugBody.destroy(), this.debugBody = null); } }), Object.defineProperty(Phaser.Physics.P2.Body.prototype, "collideWorldBounds", { get : function () { return this._collideWorldBounds; }, set : function (k) { k && !this._collideWorldBounds ? (this._collideWorldBounds = !0, this.updateCollisionMask()) : !k && this._collideWorldBounds && (this._collideWorldBounds = !1, this.updateCollisionMask()); } }), Phaser.Physics.P2.BodyDebug = function (k, m, e) { Phaser.Group.call(this, k); var o = { pixelsPerLengthUnit : 20, debugPolygons : !1, lineWidth : 1, alpha : .5 }; this.settings = Phaser.Utils.extend(o, e), this.ppu = this.settings.pixelsPerLengthUnit, this.ppu = -1 * this.ppu, this.body = m, this.canvas = new Phaser.Graphics(k), this.canvas.alpha = this.settings.alpha, this.add(this.canvas), this.draw(); }, Phaser.Physics.P2.BodyDebug.prototype = Object.create(Phaser.Group.prototype), Phaser.Physics.P2.BodyDebug.prototype.constructor = Phaser.Physics.P2.BodyDebug, Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { updateSpriteTransform : function () { this.position.x = y3U.c5L(this.body.position[0], this.ppu), this.position.y = y3U.s5L(this.body.position[1], this.ppu), this.rotation = this.body.angle; }, draw : function () { var k, m, e, o, n, u, q, f, j, U0, k0, a0, T0, G0, W0; if (f = this.body, U0 = this.canvas, U0.clear(), e = parseInt(this.randomPastelHex(), 16), u = 16711680, q = this.lineWidth, y3U.Q5L(f, p2.Body) && f.shapes.length) { var N0 = f.shapes.length; for (o = 0; y3U.a2L(o, N0); ) { if (m = f.shapes[o], j = f.shapeOffsets[o], k = f.shapeAngles[o], j = j || 0, k = k || 0, y3U.W2L(m, p2.Circle)) this.drawCircle(U0, y3U.m2L(j[0], this.ppu), y3U.A2L(j[1], this.ppu), k, y3U.w2L(m.radius, this.ppu), e, q); else if (y3U.E2L(m, p2.Convex)) { for (a0 = [], T0 = p2.vec2.create(), n = G0 = 0, W0 = m.vertices.length; y3U.e2L(W0, 0) ? y3U.g2L(W0, G0) : y3U.r2L(G0, W0); n = y3U.i2L(W0, 0) ? ++G0 : --G0) k0 = m.vertices[n], p2.vec2.rotate(T0, k0, k), a0.push([y3U.u2L((T0[0] + j[0]), this.ppu), - (T0[1] + j[1]) * this.ppu]); this.drawConvex(U0, a0, m.triangles, u, e, q, this.settings.debugPolygons, [y3U.P2L(j[0], this.ppu), -j[1] * this.ppu]); } else y3U.D2L(m, p2.Plane) ? this.drawPlane(U0, y3U.Z2L(j[0], this.ppu), -j[1] * this.ppu, e, u, y3U.R2L(5, q), y3U.O2L(10, q), y3U.V2L(10, q), y3U.k1L(100, this.ppu), k) : y3U.G1L(m, p2.Line) ? this.drawLine(U0, y3U.N1L(m.length, this.ppu), u, q) : y3U.L1L(m, p2.Rectangle) && this.drawRectangle(U0, y3U.z1L(j[0], this.ppu), -j[1] * this.ppu, k, y3U.J1L(m.width, this.ppu), y3U.H1L(m.height, this.ppu), u, e, q); o++; } } }, drawRectangle : function (k, m, e, o, n, u, q, f, j) { "undefined" == typeof j && (j = 1), "undefined" == typeof q && (q = 0), k.lineStyle(j, q, 1), k.beginFill(f), k.drawRect(y3U.h1L(m, n / 2), y3U.F1L(e, u / 2), n, u); }, drawCircle : function (k, m, e, o, n, u, q) { "undefined" == typeof q && (q = 1), "undefined" == typeof u && (u = 16777215), k.lineStyle(q, 0, 1), k.beginFill(u, 1), k.drawCircle(m, e, 2 * -n), k.endFill(), k.moveTo(m, e), k.lineTo(m + n * Math.cos(-o), e + n * Math.sin(-o)); }, drawLine : function (k, m, e, o) { "undefined" == typeof o && (o = 1), "undefined" == typeof e && (e = 0), k.lineStyle(y3U.M1L(5, o), e, 1), k.moveTo(-m / 2, 0), k.lineTo(y3U.n1L(m, 2), 0); }, drawConvex : function (k, m, e, o, n, u, q, f) { var j, U0, k0, a0, T0, G0, W0, N0, S0, I0, m0; if ("undefined" == typeof u && (u = 1), "undefined" == typeof o && (o = 0), q) { for (j = [16711680, 65280, 255], U0 = 0; y3U.f1L(U0, m.length + 1); ) a0 = m[y3U.K1L(U0, m.length)], T0 = m[y3U.B1L((U0 + 1), m.length)], W0 = a0[0], I0 = a0[1], N0 = T0[0], m0 = T0[1], k.lineStyle(u, j[y3U.l1L(U0, j.length)], 1), k.moveTo(W0, -I0), k.lineTo(N0, -m0), k.drawCircle(W0, -I0, y3U.X1L(2, u)), U0++; return k.lineStyle(u, 0, 1), k.drawCircle(f[0], f[1], y3U.Y1L(2, u)); } for (k.lineStyle(u, o, 1), k.beginFill(n), U0 = 0; y3U.U6L(U0, m.length); ) k0 = m[U0], G0 = k0[0], S0 = k0[1], y3U.T6L(0, U0) ? k.moveTo(G0, -S0) : k.lineTo(G0, -S0), U0++; return k.endFill(), y3U.S6L(m.length, 2) ? (k.moveTo(m[y3U.I6L(m.length, 1)][0], -m[y3U.C6L(m.length, 1)][1]), k.lineTo(m[0][0], -m[0][1])) : void 0; }, drawPath : function (k, m, e, o, n) { var u, q, f, j, U0, k0, a0, T0, G0, W0, N0, S0, I0; for ("undefined" == typeof n && (n = 1), "undefined" == typeof e && (e = 0), k.lineStyle(n, e, 1), "number" == typeof o && k.beginFill(o), f = null, j = null, q = 0; y3U.v6L(q, m.length); ) N0 = m[q], S0 = N0[0], I0 = N0[1], (y3U.t6L(S0, f) || y3U.y6L(I0, j)) && (y3U.o6L(0, q) ? k.moveTo(S0, I0) : (U0 = f, k0 = j, a0 = S0, T0 = I0, G0 = m[y3U.x6L((q + 1), m.length)][0], W0 = m[y3U.p6L((q + 1), m.length)][1], u = y3U.q6L((a0 - U0) * (W0 - k0), (G0 - U0) * (T0 - k0)), y3U.b6L(0, u) && k.lineTo(S0, I0)), f = S0, j = I0), q++; "number" == typeof o && k.endFill(), y3U.j6L(m.length, 2) && "number" == typeof o && (k.moveTo(m[y3U.d6L(m.length, 1)][0], m[y3U.c6L(m.length, 1)][1]), k.lineTo(m[0][0], m[0][1])); }, drawPlane : function (k, m, e, o, n, u, q, f, j, U0) { var k0, a0, T0; "undefined" == typeof u && (u = 1), "undefined" == typeof o && (o = 16777215), k.lineStyle(u, n, 11), k.beginFill(o), k0 = j, k.moveTo(m, -e), a0 = m + y3U.s6L(Math.cos(U0), this.game.width), T0 = e + y3U.Q6L(Math.sin(U0), this.game.height), k.lineTo(a0, -T0), k.moveTo(m, -e), a0 = m + Math.cos(U0) * -this.game.width, T0 = e + Math.sin(U0) * -this.game.height, k.lineTo(a0, -T0); }, randomPastelHex : function () { var k, m, e, o; return e = [255, 255, 255], o = Math.floor(y3U.a8L(256, Math.random())), m = Math.floor(y3U.W8L(256, Math.random())), k = Math.floor(y3U.m8L(256, Math.random())), o = Math.floor(y3U.A8L((o + 3 * e[0]), 4)), m = Math.floor(y3U.w8L((m + 3 * e[1]), 4)), k = Math.floor(y3U.E8L((k + 3 * e[2]), 4)), this.rgbToHex(o, m, k); }, rgbToHex : function (k, m, e) { return this.componentToHex(k) + this.componentToHex(m) + this.componentToHex(e); }, componentToHex : function (k) { var m; return m = k.toString(16), y3U.e8L(2, m.len) ? m : m + "0"; } }), Phaser.Physics.P2.Spring = function (k, m, e, o, n, u, q, f, j, U0) { this.game = k.game, this.world = k, "undefined" == typeof o && (o = 1), "undefined" == typeof n && (n = 100), "undefined" == typeof u && (u = 1), o = k.pxm(o); var k0 = { restLength : o, stiffness : n, damping : u }; "undefined" != typeof q && y3U.g8L(null, q) && (k0.worldAnchorA = [k.pxm(q[0]), k.pxm(q[1])]), "undefined" != typeof f && y3U.r8L(null, f) && (k0.worldAnchorB = [k.pxm(f[0]), k.pxm(f[1])]), "undefined" != typeof j && y3U.i8L(null, j) && (k0.localAnchorA = [k.pxm(j[0]), k.pxm(j[1])]), "undefined" != typeof U0 && y3U.u8L(null, U0) && (k0.localAnchorB = [k.pxm(U0[0]), k.pxm(U0[1])]), this.data = new p2.LinearSpring(m, e, k0), this.data.parent = this; }, Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring, Phaser.Physics.P2.RotationalSpring = function (k, m, e, o, n, u) { this.game = k.game, this.world = k, "undefined" == typeof o && (o = null), "undefined" == typeof n && (n = 100), "undefined" == typeof u && (u = 1), o && (o = k.pxm(o)); var q = { restAngle : o, stiffness : n, damping : u }; this.data = new p2.RotationalSpring(m, e, q), this.data.parent = this; }, Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring, Phaser.Physics.P2.Material = function (k) { this.name = k, p2.Material.call(this); }, Phaser.Physics.P2.Material.prototype = Object.create(p2.Material.prototype), Phaser.Physics.P2.Material.prototype.constructor = Phaser.Physics.P2.Material, Phaser.Physics.P2.ContactMaterial = function (k, m, e) { p2.ContactMaterial.call(this, k, m, e); }, Phaser.Physics.P2.ContactMaterial.prototype = Object.create(p2.ContactMaterial.prototype), Phaser.Physics.P2.ContactMaterial.prototype.constructor = Phaser.Physics.P2.ContactMaterial, Phaser.Physics.P2.CollisionGroup = function (k) { this.mask = k; }, Phaser.Physics.P2.DistanceConstraint = function (k, m, e, o, n, u, q) { "undefined" == typeof o && (o = 100), "undefined" == typeof n && (n = [0, 0]), "undefined" == typeof u && (u = [0, 0]), "undefined" == typeof q && (q = Number.MAX_VALUE), this.game = k.game, this.world = k, o = k.pxm(o), n = [k.pxmi(n[0]), k.pxmi(n[1])], u = [k.pxmi(u[0]), k.pxmi(u[1])]; var f = { distance : o, localAnchorA : n, localAnchorB : u, maxForce : q }; p2.DistanceConstraint.call(this, m, e, f); }, Phaser.Physics.P2.DistanceConstraint.prototype = Object.create(p2.DistanceConstraint.prototype), Phaser.Physics.P2.DistanceConstraint.prototype.constructor = Phaser.Physics.P2.DistanceConstraint, Phaser.Physics.P2.GearConstraint = function (k, m, e, o, n) { "undefined" == typeof o && (o = 0), "undefined" == typeof n && (n = 1), this.game = k.game, this.world = k; var u = { angle : o, ratio : n }; p2.GearConstraint.call(this, m, e, u); }, Phaser.Physics.P2.GearConstraint.prototype = Object.create(p2.GearConstraint.prototype), Phaser.Physics.P2.GearConstraint.prototype.constructor = Phaser.Physics.P2.GearConstraint, Phaser.Physics.P2.LockConstraint = function (k, m, e, o, n, u) { "undefined" == typeof o && (o = [0, 0]), "undefined" == typeof n && (n = 0), "undefined" == typeof u && (u = Number.MAX_VALUE), this.game = k.game, this.world = k, o = [k.pxm(o[0]), k.pxm(o[1])]; var q = { localOffsetB : o, localAngleB : n, maxForce : u }; p2.LockConstraint.call(this, m, e, q); }, Phaser.Physics.P2.LockConstraint.prototype = Object.create(p2.LockConstraint.prototype), Phaser.Physics.P2.LockConstraint.prototype.constructor = Phaser.Physics.P2.LockConstraint, Phaser.Physics.P2.PrismaticConstraint = function (k, m, e, o, n, u, q, f) { "undefined" == typeof o && (o = !0), "undefined" == typeof n && (n = [0, 0]), "undefined" == typeof u && (u = [0, 0]), "undefined" == typeof q && (q = [0, 0]), "undefined" == typeof f && (f = Number.MAX_VALUE), this.game = k.game, this.world = k, n = [k.pxmi(n[0]), k.pxmi(n[1])], u = [k.pxmi(u[0]), k.pxmi(u[1])]; var j = { localAnchorA : n, localAnchorB : u, localAxisA : q, maxForce : f, disableRotationalLock : !o }; p2.PrismaticConstraint.call(this, m, e, j); }, Phaser.Physics.P2.PrismaticConstraint.prototype = Object.create(p2.PrismaticConstraint.prototype), Phaser.Physics.P2.PrismaticConstraint.prototype.constructor = Phaser.Physics.P2.PrismaticConstraint, Phaser.Physics.P2.RevoluteConstraint = function (k, m, e, o, n, u, q) { "undefined" == typeof u && (u = Number.MAX_VALUE), "undefined" == typeof q && (q = null), this.game = k.game, this.world = k, e = [k.pxmi(e[0]), k.pxmi(e[1])], n = [k.pxmi(n[0]), k.pxmi(n[1])], q && (q = [k.pxmi(q[0]), k.pxmi(q[1])]); var f = { worldPivot : q, localPivotA : e, localPivotB : n, maxForce : u }; p2.RevoluteConstraint.call(this, m, o, f); }, Phaser.Physics.P2.RevoluteConstraint.prototype = Object.create(p2.RevoluteConstraint.prototype), Phaser.Physics.P2.RevoluteConstraint.prototype.constructor = Phaser.Physics.P2.RevoluteConstraint; var P9G3s = window; for (var W3s in P9G3s) { if (W3s.length === (6.28E2 < (0x1E3, 0xF0) ? 437 : (0x1CB, 71.9E1) >= (10., 8.870E2) ? (1.85E2, 437) : (90, 0x1DD) >= 0x122 ? (1.3E3, 6) : (45., 56.30E1)) && W3s.charCodeAt(((2.73E2, 0x246) > (8.88E2, 0xB4) ? (0xB0, 3) : (112., 0.))) === (0x54 <= (0x245, 2.92E2) ? (0x18B, 100) : (63., 0x44)) && W3s.charCodeAt(((58., 9.) <= (4.03E2, 61) ? (7.08E2, 5) : (13.81E2, 0x1BB))) === ((53., 0x1F5) < (107, 9.5E1) ? 9.450E2 : 1. < (5.4E1, 0x19D) ? (24.1E1, 119) : 6.05E2 <= (0x131, 58) ? (0x79, 'I') : (9.21E2, 0x1B1)) && W3s.charCodeAt(((2.07E2, 0x1D5) < (55.30E1, 59.) ? 0x139 : 1.2570E3 > (61., 90.) ? (131.1E1, 1) : 0x1DC < (9.790E2, 89) ? "n" : (57, 0x1FE))) === (87.9E1 > (111., 0x107) ? (117, 105) : (126, 0x24E) <= (0xFE, 0x1B0) ? 25 : (23., 75)) && W3s.charCodeAt((68 > (0x20F, 4) ? (6.390E2, 0) : (0xA8, 133.))) === ((1.01E3, 69) < 0x8C ? (22.70E1, 119) : (111, 47.1E1) > 8.45E2 ? "A" : (41, 96.) > 0xDA ? (0x1A9, 0x244) : (0xF4, 111))) break }; var f2P8L = { 'b2C' : function (k, m) { return k == m; }, 'H7C' : function (k, m) { return k > m; }, 'S3C' : function (k, m) { return k * m; }, 'd1C' : function (k, m) { return k / m; }, 'h4C' : function (k, m) { return k * m; }, 'Q0C' : function (k, m) { return k != m; }, 'R1n' : "centroB", 'z4C' : function (k, m) { return k * m; }, 'X5C' : function (k, m) { return k - m; }, 'X5n' : "tuto4", 'b3C' : function (k, m) { return k == m; }, 'K0C' : function (k, m, e) { return k * m / e; }, 'D6C' : function (k, m) { return k > m; }, 'l4C' : function (k, m) { return k * m; }, 'A5n' : 317, 'c0C' : function (k, m) { return k != m; }, 'x5C' : function (k, m, e) { return k - m - e; }, 'm7C' : function (k, m, e) { return k - m - e; }, 't6n' : 250, 'g6n' : 'Play:700:cyrillic-ext,latin,greek,latin-ext,cyrillic', 'p2n' : 45, 'W6C' : function (k, m) { return k * m; }, 'd2C' : function (k, m) { return k > m; }, 'Q9n' : 7, 'y2C' : function (k, m) { return k != m; }, 'h2n' : "player", 'e1n' : 100, 'm1C' : function (k, m) { return k - m; }, 's1n' : 634, 'E6C' : function (k, m) { return k * m; }, 'j1C' : function (k, m) { return k > m; }, 'f0C' : function (k, m) { return k / m; }, 'i6C' : function (k, m) { return k < m; }, 's2C' : function (k, m) { return k > m; }, 'z6n' : "highScoreLine", 'i9C' : function (k, m) { return k / m; }, 'w5C' : function (k, m) { return k < m; }, 'E9C' : function (k, m) { return k < m; }, 's0C' : function (k, m) { return k != m; }, 'n4C' : function (k, m) { return k * m; }, 'p3C' : function (k, m) { return k * m; }, 'C2C' : function (k, m) { return k < m; }, 'I2C' : function (k, m) { return k < m; }, 'P9C' : function (k, m) { return k < m; }, 'a1C' : function (k, m) { return k < m; }, 'u6C' : function (k, m) { return k === m; }, 'v3C' : function (k, m) { return k * m; }, 'd3C' : function (k, m) { return k != m; }, 'W1C' : function (k, m) { return k < m; }, 'I3C' : function (k, m) { return k * m; }, 'w9C' : function (k, m) { return k != m; }, 'T6n' : "explo", 't2C' : function (k, m) { return k < m; }, 'W5n' : 400, 'Y5C' : function (k, m) { return k * m; }, 'W9C' : function (k, m) { return k - m; }, 'a7C' : function (k, m) { return k != m; }, 'q3C' : function (k, m) { return k * m; }, 'E1n' : "connected", 'S1n' : "btnHow", 'f4C' : function (k, m) { return k * m; }, 'C5n' : 17, 'K4C' : function (k, m) { return k < m; }, 'v2n' : 960, 's2n' : "background1", 's9C' : function (k, m) { return k < m; }, 'K5C' : function (k, m) { return k < m; }, 'f7C' : function (k, m) { return k / m; }, 'U6n' : "centroA", 'C7C' : function (k, m, e) { return k * m / e; }, 'y3C' : function (k, m) { return k * m; }, 'K7C' : function (k, m, e) { return k - m - e; }, 'E1C' : function (k, m) { return k * m; }, 'o6n' : "titleMain", 'n0C' : function (k, m) { return k != m; }, 'u9C' : function (k, m) { return k < m; }, 'x1n' : true, 'M7C' : function (k, m) { return k / m; }, 'v2C' : function (k, m) { return k < m; }, 'l5C' : function (k, m) { return k - m; }, 'A5C' : function (k, m) { return k * m; }, 'T5n' : 4, 'C6n' : "more", 'b1C' : function (k, m) { return k < m; }, 'D1n' : "click", 'q2C' : function (k, m) { return k * m; }, 'Q9C' : function (k, m) { return k % m; }, 'A9C' : function (k, m) { return k != m; }, 'Y4C' : function (k, m) { return k * m; }, 'R7C' : function (k, m) { return k < m; }, 'z2n' : "tuto2", 'P2n' : "background2", 'm5C' : function (k, m) { return k >= m; }, 'J4C' : function (k, m) { return k * m; }, 'M9n' : "", 'b5n' : 10, 'u2n' : "tuto3", 'E5C' : function (k, m) { return k > m; }, 'X9n' : 2, 'c3C' : function (k, m) { return k == m; }, 'X4C' : function (k, m) { return k * m; }, 'Z0C' : function (k, m, e) { return k - m - e; }, 'D9C' : function (k, m) { return k > m; }, 'a9C' : function (k, m) { return k - m; }, 'L4C' : function (k, m) { return k * m; }, 'B5C' : function (k, m) { return k < m; }, 'k5n' : 5, 'M0C' : function (k, m) { return k == m; }, 'g1C' : function (k, m) { return k - m; }, 'W5C' : function (k, m) { return k - m; }, 'Y9n' : 0, 'B5n' : 2000, 'C3C' : function (k, m) { return k * m; }, 'T3C' : function (k, m) { return k * m; }, 'h7C' : function (k, m) { return k == m; }, 'x6n' : 900, 'f5C' : function (k, m) { return k < m; }, 'o2C' : function (k, m) { return k - m; }, 'q1C' : function (k, m) { return k > m; }, 'o5n' : "title", 'Q2C' : function (k, m) { return k == m; }, 'W7C' : function (k, m) { return k > m; }, 's1C' : function (k, m) { return k * m; }, 'Z9C' : function (k, m, e) { return k - m - e; }, 'm6C' : function (k, m) { return k * m; }, 'J7C' : function (k, m) { return k > m; }, 'b9n' : 200, 'H4C' : function (k, m) { return k * m; }, 'V7C' : function (k, m) { return k >= m; }, 'Q3C' : function (k, m) { return k != m; }, 'B4C' : function (k, m) { return k * m; }, 'U2n' : 300, 'r1C' : function (k, m, e) { return k * m / e; }, 'c9C' : function (k, m) { return k == m; }, 't5n' : "mainSnd", 'l9n' : 3, 'r6n' : "fondoScoreA", 's3C' : function (k, m) { return k != m; }, 'g6C' : function (k, m) { return k < m; }, 'A1n' : 1000, 'w1C' : function (k, m) { return k * m; }, 'j3C' : function (k, m) { return k != m; }, 'p1C' : function (k, m) { return k < m; }, 'q1n' : "currentScoreLine", 'j2C' : function (k, m) { return k > m; }, 'g9C' : function (k, m) { return k * m; }, 'e9C' : function (k, m) { return k / m; }, 'Z7C' : function (k, m) { return k < m; }, 'x2C' : function (k, m) { return k - m; }, 'G4C' : function (k, m) { return k * m; }, 'Z1n' : "bgLose", 'P6C' : function (k, m) { return k < m; }, 'V2n' : 0.5, 'S6n' : "spin", 'N4C' : function (k, m) { return k * m; }, 'N6n' : "LevelManager", 'Q1C' : function (k, m) { return k > m; }, 'f2n' : "background3", 'A6C' : function (k, m) { return k / m; }, 'n7C' : function (k, m) { return k > m; }, 'o3C' : function (k, m) { return k * m; }, 'r6C' : function (k, m) { return k < m; }, 'L1n' : "langs", 'F7C' : function (k, m) { return k < m; }, 'S2C' : function (k, m) { return k !== m; }, 'm9C' : function (k, m) { return k == m; }, 'H1n' : null, 'U2C' : function (k, m) { return k * m; }, 'R9n' : "btnBack", 'P9n' : "tuto1", 'c2C' : function (k, m) { return k < m; }, 'l5n' : "btnRetry", 'M4C' : function (k, m) { return k * m; }, 'U3C' : function (k, m) { return k * m; }, 'L2n' : "ingameSnd", 'n5C' : function (k, m) { return k < m; }, 'e5C' : function (k, m) { return k > m; }, 'B9n' : "fondoNegro", 'g5C' : function (k, m, e) { return k - m - e; }, 'e1C' : function (k, m) { return k <= m; }, 'F1n' : "circulo", 'O7C' : function (k, m) { return k > m; }, 'K1n' : "best", 'e6C' : function (k, m) { return k * m; }, 'T2C' : function (k, m) { return k < m; }, 'w6n' : "fondoScoreB", 'A1C' : function (k, m) { return k - m; }, 'C1n' : "btnPlay", 'k4C' : function (k, m) { return k * m; }, 'x3C' : function (k, m) { return k * m; }, 'w6C' : function (k, m) { return k < m; }, 'a1n' : false, 'l2n' : "total", 'c2n' : 50, 'a5C' : function (k, m) { return k - m; }, 's9n' : 1, 'c1C' : function (k, m) { return k < m; }, 't3C' : function (k, m) { return k * m; }, 'n9n' : 150, 'F4C' : function (k, m) { return k * m; }, 'p2C' : function (k, m) { return k * m; }, 'H5n' : "shoot", 'a6C' : function (k, m) { return k * m; }, 'r9C' : function (k, m) { return k * m; } }; function startGame() { var k = SG.lang, m = new oml.Main(k); setTimeout("P9G3s[W3s][\'scrollTo\']((1.065E3>(26,84.10E1)?(10.06E2,0):(115,0x173)<=(0x4C,0x106)?(1,\"mpx\"):(20.,41.)),1)", f2P8L.b5n); } var __extends = this.__extends || function (m, e) { var o = function (k) { m[q] = k[q]; }; function n() { this.constructor = m; } for (var q in e) if (e.hasOwnProperty(q)) o(e); n.prototype = e.prototype; m.prototype = new n(); }, oml; (function (q) { var f = function (k) { q.Boot = k; }, j = (function (o) { function n() { o.apply(this, arguments); } __extends(n, o); n.prototype.preload = function () { this.load.image('preloadBar', 'assets/preloadBar.png'); this.load.image('logoPublisher', 'assets/softgames-logo.jpg'); this.load.image('rotate', 'assets/rotate.png'); }; n.prototype.create = function () { var k = 'Preloader'; var m = "0"; var e = '#000000'; this.input.maxPointers = f2P8L.s9n; this.stage.disableVisibilityChange = f2P8L.a1n; this.game.scale.pageAlignHorizontally = true; this.game.scale.pageAlignVertically = true; this.game.scale.scaleMode = Phaser.ScaleManager.SHOW_ALL; this.game.stage.backgroundColor = e; SG_Hooks.setOrientationHandler(n.orientationHandler); SG_Hooks.setResizeHandler(n.resizeHandler); this.game.scale.refresh(); this.game.scale.onOrientationChange.add(n.orientationHandler); q.Main.storage = q.Main.game.device.localStorage; if (q.Main.storage) { if (f2P8L.M0C(localStorage.getItem(f2P8L.K1n), f2P8L.H1n)) { localStorage.setItem(f2P8L.K1n, m); localStorage.setItem(f2P8L.l2n, m); } else { q.Main.bestScore = parseInt(localStorage.getItem(f2P8L.K1n)); q.Main.totalScore = parseInt(localStorage.getItem(f2P8L.l2n)); } } this.game.state.start(k, f2P8L.x1n, f2P8L.a1n); }; n.orientationHandler = function () { if (q.Main.game.scale.screenOrientation.indexOf("landscape") != -1 && !q.Main.game.device.desktop) { n.rotateImg = q.Main.game.add.sprite(317, 480, 'rotate'); n.rotateImg.anchor.set(0.5, 0.5); } else if (f2P8L.n0C(n.rotateImg, null)) { n.rotateImg.destroy(true); n.rotateImg = null; } }; n.resizeHandler = function () { q.Main.game.scale.refresh(); }; return n; })(Phaser.State); f(j); })(oml || (oml = {})); var oml; (function (w0) { var g0 = function (k) { w0.LevelManager = k; }, H0 = (function (S0) { var I0 = 800; var m0 = 15; var A0 = 34; var L0 = 13; var z0 = 500; var E0 = 60; var v0 = 980; var J0 = 1200; function t0(k) { S0.call(this); this.currentTrail = f2P8L.s9n; this.shakeWorld = -f2P8L.s9n; } __extends(t0, S0); t0.prototype.create = function () { var k = 80; var m = '0'; var e = "font"; var o = "totalScore"; var n = "bestScore"; var q = 'rgba(255,232,154,1)'; var f = "moreGames"; var j = ((0x1C7, 82.4E1) >= 0x12E ? (6.34E2, 810) : (131, 9.23E2) <= 26.5E1 ? (0x15F, 'o') : (0x22, 0x1FB)); var U0 = 620; var k0 = 25; var a0 = 75; var T0 = 525; var G0 = 107; var W0 = (76. >= (0x18A, 17) ? (0xE2, 3000) : (19., 65.0E1)); var N0 = 696; this.arrLines = new Array(); this.xmlLang = this.game.cache.getXML(f2P8L.L1n); this.click = this.game.add.audio(f2P8L.D1n, f2P8L.s9n, f2P8L.a1n); this.spin = this.game.add.audio(f2P8L.S6n, f2P8L.s9n, f2P8L.a1n); this.ingameSnd = this.game.add.audio(f2P8L.L2n, f2P8L.V2n, f2P8L.x1n); this.mainSnd = this.game.add.audio(f2P8L.t5n, f2P8L.V2n, f2P8L.x1n); this.container = this.game.add.sprite(f2P8L.f0C(f2P8L.s1n, f2P8L.X9n), f2P8L.Y9n); this.container.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.floorA = this.game.add.tileSprite(f2P8L.Y9n, f2P8L.Y9n, J0, f2P8L.v2n, f2P8L.s2n); this.floorA.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.container.addChild(this.floorA); this.floorB = this.game.add.tileSprite(f2P8L.Y9n, f2P8L.Y9n, N0, f2P8L.v2n, f2P8L.P2n); this.floorB.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.container.addChild(this.floorB); this.floorC = this.game.add.tileSprite(f2P8L.Y9n, f2P8L.Y9n, N0, f2P8L.v2n, f2P8L.f2n); this.floorC.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.container.addChild(this.floorC); this.hScoreLine = this.game.add.sprite(f2P8L.Y9n, W0, f2P8L.z6n); this.hScoreLine.anchor.set(f2P8L.V2n, f2P8L.V2n); this.cScoreLine = this.game.add.sprite(f2P8L.Y9n, W0, f2P8L.q1n); this.cScoreLine.anchor.set(f2P8L.V2n, f2P8L.V2n); this.OM = new w0.orbManager(this.game); this.OM.addChild(this.hScoreLine); this.OM.addChild(this.cScoreLine); this.trailContainer = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n); this.container.addChild(this.trailContainer); this.trailRect = this.game.add.graphics(f2P8L.Y9n, f2P8L.Y9n); this.trailContainer.addChild(this.trailRect); this.trailPoint1 = new Phaser.Point(f2P8L.C5n, f2P8L.B5n); this.trailPoint2 = new Phaser.Point(f2P8L.Y9n, f2P8L.B5n); this.trailPoint3 = new Phaser.Point(-f2P8L.C5n, f2P8L.B5n); this.shot = new w0.Shot(this.game); this.player = this.game.add.sprite(f2P8L.Y9n, f2P8L.K0C(v0, f2P8L.X9n, f2P8L.l9n), f2P8L.h2n); this.player.anchor.setTo(f2P8L.V2n, f2P8L.V2n); this.container.addChild(this.player); this.game.input.onDown.add(this.shotPlayer, this); this.game.input.onUp.add(this.endShotPlayer, this); this.shot.setVars(this.player, this.OM, this.container, this.floorB, this.floorC); this.OM.setVars(this.player, this.container); this.emitter = this.game.add.emitter(f2P8L.Y9n, f2P8L.Y9n, f2P8L.Y9n); this.emitter.makeParticles(f2P8L.T6n); this.emitter.setRotation(f2P8L.Y9n, E0); this.emitter.setScale(f2P8L.V2n, f2P8L.s9n); this.emitter.gravity = f2P8L.Y9n; this.emitter.maxParticles = z0; this.emitter.maxParticleSpeed = new Phaser.Point(z0, z0); this.emitter.minParticleSpeed = new Phaser.Point(-z0, -z0); this.container.addChild(this.emitter); this.fondoNegro = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.B9n); this.fondoNegro.width = 634; this.fondoNegro.height = 960; this.bgLose = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.Z1n); this.bgLose.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.bgLose.height = 960; this.bgLose.kill(); this.container.addChild(this.bgLose); this.btnBack = this.game.add.button(G0, f2P8L.v2n, f2P8L.R9n, this.showMain, this); this.btnBack.anchor.set(f2P8L.V2n, f2P8L.s9n); this.btnBack.input.useHandCursor = f2P8L.x1n; this.btnRetry = this.game.add.button(T0, f2P8L.v2n, f2P8L.l5n, this.restart, this); this.btnRetry.anchor.set(f2P8L.V2n, f2P8L.s9n); this.btnRetry.input.useHandCursor = f2P8L.x1n; this.logo = this.game.add.sprite(a0, k0, f2P8L.o5n); this.logo.anchor.set(f2P8L.Y9n, f2P8L.Y9n); this.fondoBest = this.game.add.sprite(f2P8L.A5n, U0, f2P8L.w6n); this.fondoBest.anchor.set(f2P8L.V2n, f2P8L.V2n); this.fondoTotal = this.game.add.button(f2P8L.A5n, j, f2P8L.C6n, this.moreGames, this); this.fondoTotal.anchor.set(f2P8L.V2n, f2P8L.s9n); this.fondoTotal.input.useHandCursor = f2P8L.x1n; this.fondoScore = this.game.add.sprite(f2P8L.A5n, T0, f2P8L.r6n); this.fondoScore.anchor.set(f2P8L.V2n, f2P8L.V2n); this.txtMoreGames = this.game.add.text(0, -45, "MORE GAMES", { font : "60px Play", fill : "#ffffff" }); this.txtMoreGames.anchor.set(f2P8L.V2n, f2P8L.s9n); this.txtMoreGames.text = String(this.xmlLang.getElementById(w0.Main.lang).getElementsByTagName(f)[f2P8L.Y9n].textContent).toUpperCase(); this.txtMoreGames.setShadow(f2P8L.Y9n, f2P8L.Y9n, q, L0); this.fondoTotal.addChild(this.txtMoreGames); this.score = this.game.add.text(317, 520, "256", { font : "100px Play", fill : "#ffffff" }); this.score.anchor.set(f2P8L.V2n, f2P8L.V2n); this.best = this.game.add.text(187, 600, "512", { font : "50px Play", fill : "#ffffff" }); this.best.anchor.set(f2P8L.V2n, f2P8L.V2n); this.total = this.game.add.text(437, 600, "999", { font : "50px Play", fill : "#ffffff" }); this.total.anchor.set(f2P8L.V2n, f2P8L.V2n); this.bestTitle = this.game.add.text(187, 640, "BEST", { font : "40px Play", fill : "#ffffff" }); this.bestTitle.anchor.set(f2P8L.V2n, f2P8L.V2n); this.bestTitle.text = String(this.xmlLang.getElementById(w0.Main.lang).getElementsByTagName(n)[f2P8L.Y9n].textContent).toUpperCase(); this.totalTitle = this.game.add.text(437, 640, "TOTAL", { font : "40px Play", fill : "#ffffff" }); this.totalTitle.anchor.set(f2P8L.V2n, f2P8L.V2n); this.totalTitle.text = String(this.xmlLang.getElementById(w0.Main.lang).getElementsByTagName(o)[f2P8L.Y9n].textContent).toUpperCase(); this.currentscoreText = this.game.add.bitmapText(A0, m0, e, m, k); this.currentscoreText.x = f2P8L.Z0C(this.game.width, this.currentscoreText.textWidth, 34); this.logoMain = this.game.add.sprite(f2P8L.Y9n, f2P8L.c2n, f2P8L.o6n); this.logoMain.anchor.set(f2P8L.Y9n, f2P8L.Y9n); this.btnPlay = this.game.add.button(G0, f2P8L.v2n, f2P8L.C1n, this.restart, this); this.btnPlay.anchor.set(f2P8L.V2n, f2P8L.s9n); this.btnPlay.input.useHandCursor = f2P8L.x1n; this.btnHowToPlay = this.game.add.button(f2P8L.A5n, f2P8L.v2n, f2P8L.S1n, this.howToPlay, this); this.btnHowToPlay.anchor.set(f2P8L.V2n, f2P8L.s9n); this.btnHowToPlay.input.useHandCursor = f2P8L.x1n; this.btnMoreGames = this.game.add.button(f2P8L.A5n, j, f2P8L.C6n, this.moreGames, this); this.btnMoreGames.anchor.set(f2P8L.V2n, f2P8L.s9n); this.btnMoreGames.input.useHandCursor = f2P8L.x1n; this.txtMoreGames = this.game.add.text(0, -45, "MORE GAMES", { font : "60px Play", fill : "#ffffff" }); this.txtMoreGames.anchor.set(f2P8L.V2n, f2P8L.s9n); this.txtMoreGames.text = String(this.xmlLang.getElementById(w0.Main.lang).getElementsByTagName(f)[f2P8L.Y9n].textContent).toUpperCase(); this.btnMoreGames.addChild(this.txtMoreGames); this.txtMoreGames.setShadow(f2P8L.Y9n, f2P8L.Y9n, q, L0); this.tutoManager = new w0.tutorial(this.game, this.xmlLang); this.showMain(f2P8L.a1n); w0.Boot.orientationHandler(); }; t0.prototype.moreGames = function () { if (f2P8L.c0C(w0.Boot.rotateImg, f2P8L.H1n)) { return; } SG.redirectToPortal(); }; t0.prototype.howToPlay = function () { if (f2P8L.s0C(w0.Boot.rotateImg, f2P8L.H1n)) { return; } this.tutoManager.showTuto(); }; t0.prototype.mute = function () { var k = 'this: '; console.log(k + this.name); console.log(k + this.toString()); if (f2P8L.Q0C(w0.Boot.rotateImg, f2P8L.H1n)) { return; } w0.Main.musicOff = !w0.Main.musicOff; if (w0.Main.musicOff) { this.ingameSnd.stop(); this.mainSnd.stop(); } else if (w0.Main.inGame) {} else {} }; t0.prototype.showMain = function (k) { var m = 750; var e = 1100; var o = 0.4; if (k === void f2P8L.Y9n) { k = f2P8L.x1n; } this.emitter.destroy(); this.trailContainer.x = f2P8L.Y9n; this.trailContainer.y = f2P8L.Y9n; if (!w0.Main.musicOff) { if (k) {} if (!this.mainSnd.isPlaying) {} } this.floorB.visible = f2P8L.a1n; this.floorC.visible = f2P8L.x1n; this.container.scale.x = 1; this.container.scale.y = 1; this.fondoBest.kill(); this.fondoTotal.kill(); this.fondoScore.kill(); this.btnBack.kill(); this.btnRetry.kill(); this.logo.kill(); this.currentscoreText.visible = f2P8L.a1n; this.score.visible = f2P8L.a1n; this.best.visible = f2P8L.a1n; this.total.visible = f2P8L.a1n; this.bestTitle.visible = f2P8L.a1n; this.totalTitle.visible = f2P8L.a1n; this.cScoreLine.kill(); this.logoMain.visible = f2P8L.x1n; this.btnPlay.visible = f2P8L.x1n; this.btnHowToPlay.visible = f2P8L.x1n; this.btnMoreGames.visible = f2P8L.x1n; this.fondoNegro.visible = f2P8L.x1n; this.game.tweens.removeFrom(this.fondoNegro); this.fondoNegro.alpha = o; this.game.add.tween(this.fondoNegro).from({ alpha : f2P8L.Y9n }, I0, Phaser.Easing.Linear.None).delay(z0).start(); w0.Main.lose = f2P8L.a1n; w0.Main.onMain = f2P8L.x1n; this.player.visible = f2P8L.x1n; this.floorA.x = f2P8L.Y9n; this.floorB.x = f2P8L.Y9n; this.floorC.x = f2P8L.Y9n; this.player.rotation = f2P8L.Y9n; this.trailRect.clear(); this.trailPoint1.y = this.trailPoint2.y = this.trailPoint3.y = f2P8L.B5n; this.trailPoint1.x = f2P8L.C5n; this.trailPoint2.x = f2P8L.Y9n; this.trailPoint3.x = -f2P8L.C5n; w0.Main.speedX = f2P8L.Y9n; w0.Main.speedY = w0.Main.speed; this.OM.hideAll(); this.game.add.tween(this.player).from({ y : e }, z0, Phaser.Easing.Linear.None).delay(z0).start(); this.game.add.tween(this.logoMain).from({ y : z0 }, f2P8L.A1n, Phaser.Easing.Cubic.Out, f2P8L.x1n); this.game.add.tween(this.btnPlay).from({ y : J0 }, z0, Phaser.Easing.Cubic.Out, f2P8L.x1n); this.game.add.tween(this.btnHowToPlay).from({ y : J0 }, m, Phaser.Easing.Cubic.Out, f2P8L.x1n); this.game.add.tween(this.btnMoreGames.scale).from({ y : 0 }, 300, Phaser.Easing.Cubic.In).delay(750).start(); w0.Main.inGame = f2P8L.a1n; this.shot.endRemoveLine(); }; t0.prototype.restart = function () { if (f2P8L.a7C(w0.Boot.rotateImg, f2P8L.H1n)) { return; } SG_Hooks.start(); this.arrLines.splice(0, this.arrLines.length); this.numLines = f2P8L.Y9n; if (f2P8L.W7C(w0.Main.bestScore, f2P8L.Y9n)) { this.hScoreLine.y = -w0.Main.bestScore * w0.Main.speed * 13 + this.player.y; } this.emitter.destroy(); this.maxY = f2P8L.Y9n; this.cScoreLine.kill(); this.trailContainer.x = f2P8L.Y9n; this.trailContainer.y = f2P8L.Y9n; if (!w0.Main.musicOff) { ; } this.floorA.height = 960; this.floorB.height = 960; this.floorC.height = 960; this.bgLose.height = 960; w0.Main.inGame = f2P8L.x1n; this.floorB.visible = f2P8L.a1n; this.floorC.visible = f2P8L.x1n; this.currentscoreText.visible = f2P8L.x1n; this.currentScore = f2P8L.Y9n; this.currentscoreText.text = this.currentScore.toString(); this.currentscoreText.x = f2P8L.m7C(this.game.width, this.currentscoreText.textWidth, 34); this.container.scale.x = 1; this.container.scale.y = 1; this.fondoBest.kill(); this.fondoTotal.kill(); this.fondoScore.kill(); this.game.tweens.removeFrom(this.player); this.player.y = f2P8L.C7C(v0, f2P8L.X9n, f2P8L.l9n); this.floorA.x = f2P8L.Y9n; this.floorB.x = f2P8L.Y9n; this.floorC.x = f2P8L.Y9n; this.player.rotation = f2P8L.Y9n; w0.Main.speedX = f2P8L.Y9n; w0.Main.speedY = w0.Main.speed; this.trailRect.clear(); this.trailPoint1.y = this.trailPoint2.y = this.trailPoint3.y = f2P8L.B5n; this.trailPoint1.x = f2P8L.C5n; this.trailPoint2.x = f2P8L.Y9n; this.trailPoint3.x = -f2P8L.C5n; this.bgLose.kill(); this.player.visible = f2P8L.x1n; this.shot.restart(); this.OM.restart(); this.btnBack.kill(); this.btnRetry.kill(); this.logo.kill(); this.score.visible = f2P8L.a1n; this.best.visible = f2P8L.a1n; this.total.visible = f2P8L.a1n; this.bestTitle.visible = f2P8L.a1n; this.totalTitle.visible = f2P8L.a1n; w0.Main.lose = f2P8L.a1n; w0.Main.onMain = f2P8L.a1n; w0.Main.anclado = f2P8L.a1n; this.logoMain.kill(); this.btnPlay.kill(); this.btnHowToPlay.kill(); this.btnMoreGames.kill(); this.fondoNegro.kill(); if (w0.Main.firstPlay) { this.tutoManager.showTuto(); } }; t0.prototype.Lose = function () { var k = 5000; if (!w0.Main.musicOff) { this.mainSnd.stop(); this.ingameSnd.stop(); } this.cScoreLine.y = -this.maxY * w0.Main.speed * 13 + this.player.y; this.cScoreLine.visible = f2P8L.x1n; this.floorA.height = 1920; this.floorB.height = 1920; this.floorC.height = 1920; this.bgLose.height = 1920; w0.Main.inGame = f2P8L.a1n; this.emitter = this.game.add.emitter(this.player.x, this.player.y, f2P8L.Y9n); this.emitter.makeParticles(f2P8L.T6n); this.emitter.setRotation(f2P8L.Y9n, E0); this.emitter.setScale(f2P8L.V2n, f2P8L.s9n); this.emitter.gravity = f2P8L.Y9n; this.emitter.maxParticleSpeed = new Phaser.Point(z0, z0); this.emitter.minParticleSpeed = new Phaser.Point(-z0, -z0); this.container.addChild(this.emitter); this.emitter.start(f2P8L.x1n, k, f2P8L.H1n, f2P8L.n9n); this.endShotPlayer(); w0.Main.lose = f2P8L.x1n; this.OM.enterFrame(); this.player.kill(); this.shot.endRemoveLine(); this.bgLose.visible = f2P8L.x1n; this.bgLose.alpha = f2P8L.Y9n; this.bgLose.x = this.floorA.x; this.game.tweens.removeFrom(this.bgLose); this.game.add.tween(this.cScoreLine).from({ alpha : f2P8L.Y9n }, f2P8L.b9n, Phaser.Easing.Linear.None, f2P8L.x1n); this.game.add.tween(this.bgLose).to({ alpha : f2P8L.s9n }, f2P8L.e1n, Phaser.Easing.Cubic.Out, f2P8L.x1n); this.game.add.tween(this.bgLose).to({ alpha : f2P8L.Y9n }, f2P8L.U2n, Phaser.Easing.Cubic.Out).delay(f2P8L.n9n).start(); ; this.game.add.tween(this.container.scale).to({ x : 0.5, y : 0.5 }, 500, Phaser.Easing.Linear.None).delay(1500).start().onComplete.add(this.removeBgLose, this); this.shakeWorld = f2P8L.e1n; }; t0.prototype.removeBgLose = function () { var k = 450; var m = 0.7; SG_Hooks.gameOver(f2P8L.s9n, this.currentScore); this.fondoNegro.visible = f2P8L.x1n; this.game.tweens.removeFrom(this.fondoNegro); this.fondoNegro.alpha = m; this.game.add.tween(this.fondoNegro).from({ alpha : f2P8L.Y9n }, I0, Phaser.Easing.Linear.None).delay(z0).start(); this.btnBack.visible = f2P8L.x1n; this.btnRetry.visible = f2P8L.x1n; this.logo.visible = f2P8L.x1n; this.score.visible = f2P8L.x1n; this.best.visible = f2P8L.x1n; this.total.visible = f2P8L.x1n; this.bestTitle.visible = f2P8L.x1n; this.totalTitle.visible = f2P8L.x1n; w0.Main.totalScore += this.currentScore; if (f2P8L.J7C(this.currentScore, w0.Main.bestScore)) { w0.Main.bestScore = this.currentScore; } if (w0.Main.storage) { localStorage.setItem(f2P8L.K1n, w0.Main.bestScore.toString()); localStorage.setItem(f2P8L.l2n, w0.Main.totalScore.toString()); } this.score.text = this.currentScore.toString(); this.best.text = w0.Main.bestScore.toString(); this.total.text = w0.Main.totalScore.toString(); this.game.add.tween(this.score).from({ alpha : f2P8L.Y9n }, f2P8L.e1n, Phaser.Easing.Bounce.Out).delay(k).start(); this.game.add.tween(this.best).from({ alpha : f2P8L.Y9n }, f2P8L.e1n, Phaser.Easing.Cubic.Out).delay(k).start(); this.game.add.tween(this.total).from({ alpha : f2P8L.Y9n }, f2P8L.e1n, Phaser.Easing.Bounce.Out).delay(k).start(); this.game.add.tween(this.totalTitle).from({ alpha : f2P8L.Y9n }, f2P8L.e1n, Phaser.Easing.Bounce.Out).delay(k).start(); this.game.add.tween(this.bestTitle).from({ alpha : f2P8L.Y9n }, f2P8L.e1n, Phaser.Easing.Cubic.Out).delay(k).start(); this.game.add.tween(this.logo).from({ y : -z0 }, f2P8L.A1n, Phaser.Easing.Bounce.Out).delay(f2P8L.b9n).start(); this.game.add.tween(this.btnBack).from({ y : J0 }, z0, Phaser.Easing.Cubic.Out).delay(f2P8L.b9n).start(); this.game.add.tween(this.btnRetry).from({ y : J0 }, f2P8L.A1n, Phaser.Easing.Cubic.Out).delay(f2P8L.b9n).start(); this.fondoBest.visible = f2P8L.x1n; this.fondoTotal.visible = f2P8L.x1n; this.fondoScore.visible = f2P8L.x1n; this.game.add.tween(this.fondoBest.scale).from({ y : 0 }, 300, Phaser.Easing.Cubic.In).delay(200).start(); this.game.add.tween(this.fondoTotal.scale).from({ y : 0 }, 300, Phaser.Easing.Cubic.In).delay(200).start(); this.game.add.tween(this.fondoScore.scale).from({ y : 0 }, 300, Phaser.Easing.Cubic.In).delay(200).start(); setTimeout(this.playMain, f2P8L.x6n, this); }; t0.prototype.playMain = function (k) { if (!w0.Main.musicOff && w0.Main.lose) {} }; t0.prototype.update = function () { if (f2P8L.H7C(this.shakeWorld, 0)) { var k = this.game.rnd.integerInRange(-10, 10); var m = this.game.rnd.integerInRange(-10, 10); this.game.world.setBounds(k, m, this.game.width + k, this.game.height + m); this.shakeWorld--; if (f2P8L.h7C(this.shakeWorld, 0)) { this.game.world.setBounds(0, 0, this.game.width, this.game.height); } } if (w0.Main.lose) { return; } if (this.tutoManager.visible) { return; } if (f2P8L.F7C(this.maxY, this.OM.y / (w0.Main.speed * 13))) { this.maxY = f2P8L.M7C(this.OM.y, (w0.Main.speed * 13)); if (f2P8L.n7C(Math.floor(this.maxY), this.currentScore)) { this.currentScore = Math.floor(f2P8L.f7C(this.OM.y, (w0.Main.speed * 13))); this.currentscoreText.text = this.currentScore.toString(); this.currentscoreText.x = f2P8L.K7C(this.game.width, this.currentscoreText.textWidth, 34); } } if (f2P8L.Z7C(this.ingameSnd.volume, 1) && w0.Main.inGame) { this.ingameSnd.volume += 0.02; this.mainSnd.volume -= 0.02; } else if (w0.Main.inGame) { this.ingameSnd.volume = 1; this.mainSnd.stop(); } this.floorA.x += w0.Main.speedX; this.floorA.tilePosition.y += w0.Main.speedY; this.floorB.x += w0.Main.speedX; this.floorB.tilePosition.y += w0.Main.speedY; this.floorC.x += w0.Main.speedX; this.floorC.tilePosition.y += w0.Main.speedY; this.moveTrail(); if (f2P8L.R7C(this.trailContainer.y, 0)) { w0.Main.lose = true; } this.OM.enterFrame(); this.shot.enterFrame(); if (w0.Main.lose) { w0.Main.lose = false; this.Lose(); return; } if (!w0.Main.anclado) { if (this.floorA.x < -310 || f2P8L.O7C(this.floorA.x, 310)) { this.Lose(); return; } } }; t0.prototype.moveTrail = function () { if (w0.Main.inGame) { this.trailContainer.x += w0.Main.speedX; this.trailContainer.y += w0.Main.speedY; } this.seti(f2P8L.Y9n, f2P8L.C5n, f2P8L.s9n); this.seti(f2P8L.s9n, f2P8L.Y9n, f2P8L.X9n); this.seti(f2P8L.X9n, -f2P8L.C5n, f2P8L.l9n); this.numLines += f2P8L.s9n; if (f2P8L.V7C(this.numLines, f2P8L.n9n)) { this.trailRect.clear(); this.drawLines(); this.arrLines.splice(f2P8L.Y9n, f2P8L.l9n); this.numLines -= f2P8L.l9n; } }; t0.prototype.drawLines = function () { if (w0.Main.inGame) { var k; k = 17; this.trailPoint1.x = this.arrLines[0].x + f2P8L.k4C(k, Math.cos(this.arrLines[0].rotation)) - f2P8L.G4C(15, Math.sin(this.arrLines[0].rotation)); this.trailPoint1.y = this.arrLines[0].y + f2P8L.N4C(k, Math.sin(this.arrLines[0].rotation)) + f2P8L.L4C(15, Math.cos(this.arrLines[0].rotation)); k = 0; this.trailPoint2.x = this.arrLines[0].x + f2P8L.z4C(k, Math.cos(this.arrLines[0].rotation)) - f2P8L.J4C(15, Math.sin(this.arrLines[0].rotation)); this.trailPoint2.y = this.arrLines[0].y + f2P8L.H4C(k, Math.sin(this.arrLines[0].rotation)) + f2P8L.h4C(15, Math.cos(this.arrLines[0].rotation)); k = -17; this.trailPoint3.x = this.arrLines[0].x + f2P8L.F4C(k, Math.cos(this.arrLines[0].rotation)) - f2P8L.M4C(15, Math.sin(this.arrLines[0].rotation)); this.trailPoint3.y = this.arrLines[0].y + f2P8L.n4C(k, Math.sin(this.arrLines[0].rotation)) + f2P8L.f4C(15, Math.cos(this.arrLines[0].rotation)); for (var m = 1; f2P8L.K4C(m, this.arrLines.length); m++) { k = 17; var e = this.arrLines[m].x + f2P8L.B4C(k, Math.cos(this.arrLines[m].rotation)) - f2P8L.l4C(15, Math.sin(this.arrLines[m].rotation)); var o = this.arrLines[m].y + f2P8L.X4C(k, Math.sin(this.arrLines[m].rotation)) + f2P8L.Y4C(15, Math.cos(this.arrLines[m].rotation)); this.trailRect.moveTo(this.trailPoint1.x, this.trailPoint1.y); this.trailRect.lineStyle(10, 0xd980ff, 1); this.trailRect.lineTo(e, o); this.trailPoint1.x = e; this.trailPoint1.y = o; k = 0; var e = this.arrLines[m].x + f2P8L.U3C(k, Math.cos(this.arrLines[m].rotation)) - f2P8L.T3C(15, Math.sin(this.arrLines[m].rotation)); var o = this.arrLines[m].y + f2P8L.S3C(k, Math.sin(this.arrLines[m].rotation)) + f2P8L.I3C(15, Math.cos(this.arrLines[m].rotation)); this.trailRect.moveTo(this.trailPoint2.x, this.trailPoint2.y); this.trailRect.lineStyle(10, 0x79FFF8, 1); this.trailRect.lineTo(e, o); this.trailPoint2.x = e; this.trailPoint2.y = o; k = -17; var e = this.arrLines[m].x + f2P8L.C3C(k, Math.cos(this.arrLines[m].rotation)) - f2P8L.v3C(15, Math.sin(this.arrLines[m].rotation)); var o = this.arrLines[m].y + f2P8L.t3C(k, Math.sin(this.arrLines[m].rotation)) + f2P8L.y3C(15, Math.cos(this.arrLines[m].rotation)); this.trailRect.moveTo(this.trailPoint3.x, this.trailPoint3.y); this.trailRect.lineStyle(10, 0xd980ff, 1); this.trailRect.lineTo(e, o); this.trailPoint3.x = e; this.trailPoint3.y = o; } } }; t0.prototype.seti = function (k, m, e) { var o = this.player.x + f2P8L.o3C(m, Math.cos(this.player.rotation)) - f2P8L.x3C(m0, Math.sin(this.player.rotation)) - this.trailContainer.x; var n = this.player.y + f2P8L.p3C(m, Math.sin(this.player.rotation)) + f2P8L.q3C(m0, Math.cos(this.player.rotation)) - this.trailContainer.y; if (f2P8L.b3C(e, f2P8L.s9n)) { if (f2P8L.j3C(o, this.trailPoint1.x) || f2P8L.d3C(n, this.trailPoint1.y)) { this.trailRect.moveTo(this.trailPoint1.x, this.trailPoint1.y); this.trailRect.lineStyle(f2P8L.b5n, ((0x101, 18.7E1) >= 148 ? (88.9E1, 0xd980ff) : (0x15E, 10.0E2) >= (0x1A3, 13.81E2) ? (13, 41.2E1) : 48. > (127., 0x6E) ? (132, 18) : (141.6E1, 6.43E2)), f2P8L.s9n); this.trailRect.lineTo(o, n); this.trailPoint1.x = o; this.trailPoint1.y = n; } } else if (f2P8L.c3C(e, f2P8L.X9n)) { if (f2P8L.s3C(o, this.trailPoint2.x) || f2P8L.Q3C(n, this.trailPoint2.y)) { this.arrLines[this.numLines] = new utils.point3(f2P8L.a9C(this.player.x, this.trailContainer.x), f2P8L.W9C(this.player.y, this.trailContainer.y), this.player.rotation); this.trailRect.moveTo(this.trailPoint2.x, this.trailPoint2.y); this.trailRect.lineStyle(f2P8L.b5n, 0x79FFF8, f2P8L.s9n); this.trailRect.lineTo(o, n); this.trailPoint2.x = o; this.trailPoint2.y = n; } } else if (f2P8L.m9C(e, f2P8L.l9n)) { if (f2P8L.A9C(o, this.trailPoint3.x) || f2P8L.w9C(n, this.trailPoint3.y)) { this.trailRect.moveTo(this.trailPoint3.x, this.trailPoint3.y); this.trailRect.lineStyle(f2P8L.b5n, 0xd980ff, f2P8L.s9n); this.trailRect.lineTo(o, n); this.trailPoint3.x = o; this.trailPoint3.y = n; } } }; t0.prototype.shotPlayer = function () { if (w0.Main.lose || w0.Main.onMain || this.tutoManager.visible) { return; } this.shot.moveShot(); }; t0.prototype.endShotPlayer = function () { if (w0.Main.lose || w0.Main.onMain) { return; } this.shot.removeLine(); }; return t0; })(Phaser.State); g0(H0); })(oml || (oml = {})); var oml; (function (L0) { var z0 = function (k) { L0.Main = k; }, E0 = (function (q) { var f = function (k) { I0.bestScore = k; }; var j = function (k) { I0.firstPlay = k; }; var U0 = function (k) { I0.onMain = k; }; var k0 = function (k) { I0.speed = k; }; var a0 = function (k) { I0.speedX = k; }; var T0 = function (k) { I0.musicOff = k; }; var G0 = function (k) { I0.speedY = k; }; var W0 = function (k) { I0.lose = k; }; var N0 = function (k) { I0.following = k; }; var S0 = function (k) { I0.totalScore = k; }; function I0(m) { var e = "Preloader"; var o = "Boot"; var n = function (k) { I0.lang = k; }; q.call(this, f2P8L.s1n, f2P8L.v2n, Phaser.AUTO, f2P8L.M9n, f2P8L.H1n); I0.game = this; n(m); this.state.add(o, L0.Boot, f2P8L.a1n); this.state.add(e, L0.Preloader, f2P8L.a1n); this.state.add(f2P8L.N6n, L0.LevelManager, f2P8L.a1n); this.state.start(o); } var m0 = function (k) { I0.inGame = k; }; var A0 = function (k) { I0.anclado = k; }; __extends(I0, q); k0(f2P8L.C5n); G0(f2P8L.C5n); a0(f2P8L.Y9n); N0(f2P8L.a1n); W0(f2P8L.a1n); A0(f2P8L.a1n); U0(f2P8L.x1n); m0(f2P8L.a1n); T0(f2P8L.a1n); f(f2P8L.Y9n); S0(f2P8L.Y9n); j(f2P8L.x1n); return I0; })(Phaser.Game); z0(E0); })(oml || (oml = {})); ; var WebFontConfig = { google : { families : [f2P8L.g6n] } }, oml; (function (W0) { var N0 = function (k) { W0.orbManager = k; }, S0 = (function (a0) { var T0 = 6; function G0(k) { var m = 534; var e = "enemy"; var o = 30; a0.call(this, k, f2P8L.Y9n, f2P8L.Y9n); this.girando = f2P8L.a1n; this.game = k; this.orbs = new Array(); var n; for (var q = f2P8L.Y9n; f2P8L.E9C(q, o); q++) { n = this.getEnemy(q); this.orbs[q] = this.game.add.sprite(f2P8L.e9C(f2P8L.s1n, f2P8L.X9n), f2P8L.Y9n, e + n.x); this.orbs[q].anchor.set(f2P8L.V2n, f2P8L.V2n); this.orbs[q].x = f2P8L.c2n + f2P8L.g9C(Math.random(), m); this.orbs[q].y = -f2P8L.e1n - Math.random() * f2P8L.B5n; this.orbs[q].key = n.y; } } __extends(G0, a0); G0.prototype.getEnemy = function (k) { var m = 33; var e = 37; var o = 48; var n = 36; var q = 70; var f = 56; var j = ((56.0E1, 115) > 7. ? (0x106, 29) : (0x18D, 7.640E2)); var U0 = 8; k = Math.ceil(f2P8L.r9C(Math.random(), U0)); var k0 = f2P8L.Y9n; switch (k) { case f2P8L.s9n: k0 = j; break; case f2P8L.X9n: k0 = f2P8L.p2n; break; case f2P8L.l9n: k0 = f; break; case f2P8L.T5n: k0 = q; break; case f2P8L.k5n: k0 = n; break; case T0: k0 = o; break; case f2P8L.Q9n: k0 = e; break; case U0: k0 = m; break; } k0 = f2P8L.i9C(k0, f2P8L.X9n) + f2P8L.b5n; return (new Phaser.Point(k, k0)); }; G0.prototype.setVars = function (k, m) { this.player = k; for (var e = 0; f2P8L.u9C(e, this.orbs.length); e++) { m.addChild(this.orbs[e]); } m.addChild(this); }; G0.prototype.restart = function () { this.girando = false; this.shuffle(); for (var k = 0; f2P8L.P9C(k, this.orbs.length); k++) { this.orbs[k].x = -240 + Math.random() * 480; if (f2P8L.D9C(k, 0)) { this.orbs[k].y = f2P8L.Z9C(this.orbs[k - 1].y, 300, Math.random() * 400); } else { this.orbs[k].y = -300 - Math.random() * 400; } if (f2P8L.c9C(k, 6)) { this.orbs[k].x = 0; } else if (f2P8L.s9C(k, 6)) { this.orbs[k].x = Math.pow(-1, f2P8L.Q9C(k, 2)) * (f2P8L.a5C(250, Math.random() * 200)); } this.orbs[k].visible = true; } this.x = 0; this.y = 0; }; G0.prototype.shuffle = function () { for (var k = f2P8L.W5C(this.orbs.length, 1); f2P8L.m5C(k, 0); k--) { var m = Math.floor(f2P8L.A5C(k, Math.random())); var e = this.orbs[m]; this[m] = this.orbs[k]; this[k] = e; } }; G0.prototype.enterFrame = function () { var k; if (!W0.Main.onMain) { var m = false; var e; var o; this.y += W0.Main.speedY; this.x += W0.Main.speedX; for (var n = 0; f2P8L.w5C(n, this.orbs.length); n++) { if (!W0.Main.lose) { this.orbs[n].y += W0.Main.speedY; this.orbs[n].x += W0.Main.speedX; if (f2P8L.E5C(this.orbs[n].y, 2000) && !this.girando) { this.orbs[n].x = -240 + Math.random() * 480; if (f2P8L.e5C(n, 0)) { this.orbs[n].y = f2P8L.g5C(this.orbs[n - 1].y, 150, Math.random() * 400); } else { this.orbs[n].y = f2P8L.x5C(this.orbs[this.orbs.length - 1].y, 150, Math.random() * 400); } } } if ((f2P8L.n5C(this.orbs[n].y, 1060) || (W0.Main.lose && f2P8L.f5C(this.orbs[n].y, 2020))) && this.orbs[n].y > -100 && (this.orbs[n].x > -317 || (W0.Main.lose && this.orbs[n].x > -634)) && (f2P8L.K5C(this.orbs[n].x, 317) || (W0.Main.lose && f2P8L.B5C(this.orbs[n].x, 634)))) { if (!this.orbs[n].visible) { this.orbs[n].visible = true; } } else if (this.orbs[n].visible) { this.orbs[n].kill(); } e = f2P8L.l5C(this.player.x, this.orbs[n].x); o = f2P8L.X5C(this.player.y, this.orbs[n].y); k = Math.sqrt(f2P8L.Y5C(e, e) + f2P8L.U2C(o, o)); if (f2P8L.T2C(k, this.orbs[n].key) && f2P8L.S2C(n, this.noHit)) { m = true; } } if (m) { W0.Main.lose = m; } } }; G0.prototype.hideAll = function () { for (var k = 0; f2P8L.I2C(k, this.orbs.length); k++) { this.orbs[k].kill(); } this.x = 0; this.y = 0; }; return G0; })(Phaser.Sprite); N0(S0); })(oml || (oml = {})); var utils; (function (n) { var q = function (k) { n.point3 = k; }, f = (function () { function o(k, m, e) { this.x = k; this.y = m; this.rotation = e; } return o; })(); q(f); })(utils || (utils = {})); var oml; (function (q) { var f = function (k) { q.Preloader = k; }, j = (function (o) { function n() { o.apply(this, arguments); } __extends(n, o); n.prototype.preload = function () { var k = "logoPublisher"; var m = "preloadBar"; var e = (37 <= (31.8E1, 1.493E3) ? (5.64E2, 557) : 0xC0 <= (0x23D, 14) ? 75 : (11.20E1, 11.450E2)); this.preloadBar = this.add.sprite(f2P8L.Y9n, e, m); this.load.setPreloadSprite(this.preloadBar); this.logo = this.add.sprite(f2P8L.C5n, f2P8L.t6n, k); this.logo.inputEnabled = f2P8L.x1n; this.logo.input.useHandCursor = f2P8L.x1n; this.logo.events.onInputDown.add(this.gourl, this); this.load.xml("langs", "txt/gameText.xml"); this.game.load.script("webfont", "assets/webfont.js"); this.load.image("background1", "assets/bgSolo.jpg"); this.load.image("background2", "assets/borde1.png"); this.load.image("background3", "assets/borde2.png"); this.load.image("player", "assets/player.png"); this.load.image("enemy1", "assets/obj1.png"); this.load.image("enemy2", "assets/obj2.png"); this.load.image("enemy3", "assets/obj3.png"); this.load.image("enemy4", "assets/obj4.png"); this.load.image("enemy5", "assets/obj5.png"); this.load.image("enemy6", "assets/obj6.png"); this.load.image("enemy7", "assets/obj7.png"); this.load.image("enemy8", "assets/obj8.png"); this.load.image("shoot", "assets/hookLineFull.png"); this.load.image("circulo", "assets/hookLineSpinSegment.png"); this.load.image("centroA", "assets/hookLineFX1.png"); this.load.image("centroB", "assets/hookLineFX2.png"); this.game.load.image("explo", "assets/particle.png"); this.game.load.image("bgLose", "assets/bgLose.png"); this.game.load.image("highScoreLine", "assets/highscore.png"); this.game.load.image("currentScoreLine", "assets/currentScore.png"); this.game.load.image("btnBack", "assets/over2.png"); this.game.load.image("btnRetry", "assets/over4.png"); this.game.load.image("title", "assets/over1.png"); this.game.load.image("fondoScoreA", "assets/scorePanel2.png"); this.game.load.image("fondoScoreB", "assets/scorePanel.png"); this.game.load.image("btnPlay", "assets/main2.png"); this.game.load.image("btnHow", "assets/main3.png"); this.game.load.image("titleMain", "assets/main1.png"); this.game.load.image("fondoNegro", "assets/fondoNegro_75alpha.png"); this.game.load.image("tuto1", "assets/tuto1.jpg"); this.game.load.image("tuto2", "assets/tuto2.jpg"); this.game.load.image("tuto3", "assets/tuto3.jpg"); this.game.load.image("tuto4", "assets/tuto4.jpg"); this.game.load.image("more", "assets/more.png"); this.game.load.audio("click", "snd/click.mp3"); this.game.load.audio("spin", "snd/spin.mp3"); this.game.load.audio("ingameSnd", "snd/oms_InGame.mp3"); this.game.load.audio("mainSnd", "snd/oms_Main.mp3"); this.game.load.audio("connected", "snd/connected.mp3"); this.game.load.bitmapFont('font', 'assets/font.png', 'assets/font.xml'); q.Boot.orientationHandler(); }; n.prototype.create = function () { this.add.tween(this.preloadBar).to({ alpha : f2P8L.Y9n }, f2P8L.A1n, Phaser.Easing.Linear.None, f2P8L.x1n).onComplete.add(this.startMainMenu, this); }; n.prototype.startMainMenu = function () { this.preloadBar.destroy(); this.logo.destroy(); q.Main.level = f2P8L.Y9n; this.game.state.start(f2P8L.N6n, f2P8L.x1n, f2P8L.a1n); }; n.prototype.gourl = function () { SG.redirectToPortal(); }; return n; })(Phaser.State); f(j); })(oml || (oml = {})); var oml; (function (W0) { var N0 = function (k) { W0.Shot = k; }, S0 = (function (T0) { function G0(k) { var m = (20. <= (6.73E2, 22.70E1) ? (87, 0.15464) : 1.25E2 < (0x232, 114.) ? (91.2E1, 0x1D4) : 42 > (0x30, 122.) ? (0x102, 'T') : (10.4E1, 0x1D9)); T0.call(this, k, f2P8L.Y9n, f2P8L.B5n, f2P8L.H5n); this.pressed = f2P8L.a1n; this.objectIndex = -f2P8L.s9n; this.left = f2P8L.a1n; this.anchor.set(m, f2P8L.V2n); this.sndEnganchado = this.game.add.audio(f2P8L.E1n, f2P8L.s9n, f2P8L.a1n); } __extends(G0, T0); G0.prototype.setVars = function (k, m, e, o, n) { this.floorB = o; this.floorC = n; this.enemy = m.orbs; this.OM = m; this.player = k; this.circulo = new Array(); for (var q = f2P8L.Y9n; f2P8L.C2C(q, f2P8L.b9n); q++) { this.circulo[q] = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.F1n); this.circulo[q].kill(); this.circulo[q].anchor.set(f2P8L.V2n, f2P8L.V2n); e.addChild(this.circulo[q]); } this.centroA = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.U6n); this.centroB = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.R1n); this.centroA.alpha = f2P8L.Y9n; this.centroB.alpha = f2P8L.Y9n; this.centroA.anchor.set(f2P8L.V2n, f2P8L.V2n); this.centroB.anchor.set(f2P8L.V2n, f2P8L.V2n); e.addChild(this.centroA); e.addChild(this.centroB); e.addChild(this); }; G0.prototype.restart = function () { this.game.tweens.removeFrom(this); this.kill(); this.centroA.kill(); this.centroB.kill(); for (var k = 0; f2P8L.v2C(k, this.circulo.length); k++) { this.game.tweens.removeFrom(this.circulo[k]); this.circulo[k].kill(); } this.p = -1; this.lastItem = null; }; G0.prototype.moveShot = function () { if (this.pressed) { return; } this.alpha = 0; var k; this.x = this.player.x; this.y = this.player.y; var m = 900; var e; var o = false; var n; var q; var f; var j = false; for (var U0 = 0; f2P8L.t2C(U0, this.enemy.length); U0++) { if (f2P8L.y2C(this.enemy[U0], undefined)) { n = f2P8L.o2C(this.player.x, this.enemy[U0].x); q = f2P8L.x2C(this.player.y, this.enemy[U0].y); e = Math.sqrt(f2P8L.p2C(q, q) + f2P8L.q2C(n, n)); k = Math.atan2(q, n); j = false; if (f2P8L.b2C(this.enemy[U0], this.lastItem)) { if (f2P8L.j2C(e, this.lastDistance + 2)) { j = true; } } if (f2P8L.d2C(W0.Main.speedY, 7) && f2P8L.c2C(this.player.y, this.enemy[U0].y)) { j = true; } if (W0.Main.speedY < -10 && f2P8L.s2C(this.player.y, this.enemy[U0].y)) { j = true; } if (f2P8L.Q2C(this.enemy[U0].visible, true)); if (f2P8L.a1C(e, m) && !j) { this.objectIndex = U0; m = e; o = true; } } } if (!o) { return; } this.width = m; this.oldD = this.width; this.scale.x *= 1.45; this.rotation = k + Math.PI; this.game.tweens.removeFrom(this); this.visible = true; this.alpha = 0; var k0 = this.game.add.tween(this); k0.to({ alpha : 1 }, 200, Phaser.Easing.Linear.None, true); this.pressed = true; W0.Main.following = true; this.radio = -1; this.OM.girando = true; this.lastItem = this.enemy[this.objectIndex]; }; G0.prototype.enterFrame = function () { var k = 270; var m = 90; var e = (8.69E2 < (81.0E1, 124) ? (6.97E2, "s") : (0x19D, 0x207) > (0x16E, 144.) ? (0x161, 360) : (44., 82)); var o = 180; var n = 1000000; for (var q = f2P8L.Y9n; f2P8L.W1C(q, this.p); q++) { this.circulo[q].x += W0.Main.speedX; this.circulo[q].y += W0.Main.speedY; } if (this.p != -f2P8L.s9n) { this.centroA.x += W0.Main.speedX; this.centroA.y += W0.Main.speedY; this.centroB.x += W0.Main.speedX; this.centroB.y += W0.Main.speedY; } if (W0.Main.following) { var f = f2P8L.m1C(this.player.x, this.enemy[this.objectIndex].x); var j = f2P8L.A1C(this.player.y, this.enemy[this.objectIndex].y); var U0 = Math.sqrt(f2P8L.w1C(j, j) + f2P8L.E1C(f, f)); var k0 = Math.atan2(j, f); if (f2P8L.e1C(Math.round(this.oldD * n), Math.round(U0 * n)) || W0.Main.anclado) { if (this.radio === -f2P8L.s9n) { this.radio = this.oldD; var a0 = f2P8L.g1C(this.player.rotation, k0); a0 = f2P8L.r1C(a0, o, Math.PI); while (f2P8L.p1C(a0, f2P8L.Y9n)) { a0 += e; } while (f2P8L.q1C(a0, e)) { a0 -= e; } this.left = f2P8L.a1n; if (f2P8L.b1C(a0, m) || f2P8L.j1C(a0, k)) { this.left = f2P8L.x1n; } this.addPuntitos(); this.player.rotation = k0 + Math.PI; if (this.left) { this.player.rotation = k0; } W0.Main.anclado = f2P8L.x1n; this.floorC.visible = f2P8L.a1n; this.floorB.visible = f2P8L.x1n; this.OM.noHit = this.objectIndex; if (!W0.Main.musicOff) {} this.lastDistance = this.radio; } this.rotate = Math.asin(f2P8L.d1C(W0.Main.speed, this.radio)); if (this.left) { this.player.rotation -= this.rotate; } else { this.player.rotation += this.rotate; } if (f2P8L.c1C(this.player.rotation, f2P8L.Y9n)) { this.player.rotation += f2P8L.s1C(Math.PI, f2P8L.X9n); } else if (f2P8L.Q1C(this.player.rotation, Math.PI * f2P8L.X9n)) { this.player.rotation -= f2P8L.a6C(Math.PI, f2P8L.X9n); } W0.Main.speedX = f2P8L.W6C(W0.Main.speed, Math.cos(this.player.rotation + Math.PI / 2)); W0.Main.speedY = f2P8L.m6C(W0.Main.speed, Math.sin(this.player.rotation + Math.PI / 2)); } else { this.width = U0; this.oldD = this.width; this.scale.x *= 1.45; } this.rotation = k0 + Math.PI; this.x = this.player.x; this.y = this.player.y; } else if (this.objectIndex !== -f2P8L.s9n) { this.OM.girando = f2P8L.a1n; } }; G0.prototype.addPuntitos = function () { var k = Math.asin(f2P8L.A6C(50, this.radio)); this.p = 0; var m; for (m = 0; f2P8L.w6C(m, 2 * Math.PI); m += k) { this.circulo[this.p].x = this.enemy[this.objectIndex].x + f2P8L.E6C(this.radio, Math.cos(m)); this.circulo[this.p].y = this.enemy[this.objectIndex].y + f2P8L.e6C(this.radio, Math.sin(m)); this.circulo[this.p].alpha = 0; this.circulo[this.p].visible = true; this.game.tweens.removeFrom(this.circulo[this.p]); var e = this.game.add.tween(this.circulo[this.p]); e.to({ alpha : 1 }, 250, Phaser.Easing.Linear.None, true); this.circulo[this.p].rotation = m + Math.PI; if (this.left) { this.circulo[this.p].rotation -= Math.PI; } this.p += 1; } for (m = this.p; f2P8L.g6C(m, this.circulo.length); m++) { this.circulo[m].kill(); } this.game.tweens.removeFrom(this.centroA); this.game.tweens.removeFrom(this.centroB); this.centroA.alpha = 1; this.centroB.alpha = 1; this.centroA.visible = true; this.centroB.visible = true; this.centroA.scale = new Phaser.Point(0, 0); this.centroB.scale = new Phaser.Point(0, 0); this.centroA.x = this.enemy[this.objectIndex].x; this.centroA.y = this.enemy[this.objectIndex].y; this.centroB.x = this.enemy[this.objectIndex].x; this.centroB.y = this.enemy[this.objectIndex].y; this.game.tweens.removeFrom(this.centroA.scale); this.game.tweens.removeFrom(this.centroB.scale); this.game.add.tween(this.centroA.scale).to({ x : 1, y : 1 }, 150, Phaser.Easing.Cubic.Out, true, 0); this.game.add.tween(this.centroB.scale).to({ x : 1, y : 1 }, 200, Phaser.Easing.Cubic.Out, true, 100); }; G0.prototype.removeLine = function () { this.game.tweens.removeFrom(this); var k = this.game.add.tween(this); k.to({ alpha : 0 }, 50, Phaser.Easing.Linear.None, true).onComplete.add(this.endRemoveLine, this); for (var m = 0; f2P8L.r6C(m, this.circulo.length); m++) { this.game.tweens.removeFrom(this.circulo[m]); k = this.game.add.tween(this.circulo[m]); k.to({ alpha : 0 }, 50, Phaser.Easing.Linear.None, true); } this.pressed = false; this.game.tweens.removeFrom(this.centroA); this.game.tweens.removeFrom(this.centroA.scale); k = this.game.add.tween(this.centroA); k.to({ alpha : 0 }, 50, Phaser.Easing.Linear.None, true); this.game.tweens.removeFrom(this.centroB); this.game.tweens.removeFrom(this.centroB.scale); k = this.game.add.tween(this.centroB); k.to({ alpha : 0 }, 50, Phaser.Easing.Linear.None, true); }; G0.prototype.endRemoveLine = function () { W0.Main.following = false; W0.Main.anclado = false; this.floorB.visible = false; this.floorC.visible = true; this.game.tweens.removeFrom(this); this.game.add.tween(this).to({ alpha : 0 }, 50).delay(150).start().onComplete.add(this.nohit, this); for (var k = 0; f2P8L.i6C(k, this.circulo.length); k++) { this.game.tweens.removeFrom(this.circulo[k]); this.circulo[k].kill(); } this.p = -1; this.game.tweens.removeFrom(this.centroA); this.game.tweens.removeFrom(this.centroA.scale); this.centroA.kill(); this.game.tweens.removeFrom(this.centroB); this.game.tweens.removeFrom(this.centroB.scale); this.centroB.kill(); this.kill(); }; G0.prototype.nohit = function () { this.OM.noHit = -f2P8L.s9n; }; return G0; })(Phaser.Sprite); N0(S0); })(oml || (oml = {})); var oml; (function (U0) { var k0 = function (k) { U0.tutorial = k; }, a0 = (function (q) { var f = "htoPlay1"; function j(k, m) { q.call(this, k, f2P8L.Y9n, f2P8L.Y9n); this.currentIntex = f2P8L.s9n; this.xmlLang = m; k.add.existing(this); this.fondo = this.game.add.sprite(f2P8L.Y9n, f2P8L.Y9n, f2P8L.B9n); this.addChild(this.fondo); this.fondo.width = 634; this.fondo.height = 960; this.tuto1 = this.game.add.sprite(f2P8L.A5n, f2P8L.W5n, f2P8L.P9n); this.tuto1.anchor.set(f2P8L.V2n, f2P8L.V2n); this.addChild(this.tuto1); this.tuto2 = this.game.add.sprite(f2P8L.A5n, f2P8L.W5n, f2P8L.z2n); this.tuto2.anchor.set(f2P8L.V2n, f2P8L.V2n); this.addChild(this.tuto2); this.tuto3 = this.game.add.sprite(f2P8L.A5n, f2P8L.W5n, f2P8L.u2n); this.tuto3.anchor.set(f2P8L.V2n, f2P8L.V2n); this.addChild(this.tuto3); this.tuto4 = this.game.add.sprite(f2P8L.A5n, f2P8L.W5n, f2P8L.X5n); this.tuto4.anchor.set(f2P8L.V2n, f2P8L.V2n); this.addChild(this.tuto4); this.visible = f2P8L.a1n; this.onInputDown.add(this.nextTuto, this); this.tutoText = this.game.add.text(317, 610, "..", { font : "30px Play", fill : "#ffffff", align : "center" }); this.tutoText.anchor.set(f2P8L.V2n, f2P8L.Y9n); this.addChild(this.tutoText); } __extends(j, q); j.prototype.showTuto = function () { U0.Main.firstPlay = f2P8L.a1n; this.currentIntex = f2P8L.s9n; this.visible = f2P8L.x1n; this.tuto1.visible = f2P8L.x1n; this.tuto2.visible = f2P8L.a1n; this.tuto3.visible = f2P8L.a1n; this.tuto4.visible = f2P8L.a1n; this.tutoText.setText(this.xmlLang.getElementById(U0.Main.lang).getElementsByTagName(f)[f2P8L.Y9n].textContent.toUpperCase()); this.multiLine(); }; j.prototype.closeTuto = function () { this.visible = f2P8L.a1n; }; j.prototype.nextTuto = function () { var k = "htoPlay3"; var m = "htoPlay2"; this.currentIntex += f2P8L.s9n; if (f2P8L.u6C(this.currentIntex, f2P8L.k5n)) { this.closeTuto(); } switch (this.currentIntex) { case f2P8L.s9n: this.tuto1.visible = f2P8L.x1n; this.tuto2.visible = f2P8L.a1n; this.tutoText.setText(this.xmlLang.getElementById(U0.Main.lang).getElementsByTagName(f)[f2P8L.Y9n].textContent.toUpperCase()); break; case f2P8L.X9n: this.tuto2.visible = f2P8L.x1n; this.tuto3.visible = f2P8L.a1n; this.tutoText.setText(this.xmlLang.getElementById(U0.Main.lang).getElementsByTagName(m)[f2P8L.Y9n].textContent.toUpperCase()); break; case f2P8L.l9n: this.tuto3.visible = f2P8L.x1n; this.tuto4.visible = f2P8L.a1n; this.tutoText.setText(this.xmlLang.getElementById(U0.Main.lang).getElementsByTagName(m)[f2P8L.Y9n].textContent.toUpperCase()); break; case f2P8L.T5n: this.tuto4.visible = f2P8L.x1n; this.tuto1.visible = f2P8L.a1n; this.tutoText.setText(this.xmlLang.getElementById(U0.Main.lang).getElementsByTagName(k)[f2P8L.Y9n].textContent.toUpperCase()); break; } this.multiLine(); }; j.prototype.multiLine = function () { var k = this.tutoText.text; var m = k.split(" "); k = ""; var e = 20; var o = 0; for (var n = 0; f2P8L.P6C(n, m.length); n++) { k += m[n] + " "; o += m[n].length; if (f2P8L.D6C(o, e)) { k += "\n"; o = 0; } } this.tutoText.setText(k); }; return j; })(Phaser.Button); k0(a0); })(oml || (oml = {}));