/* howler.js v2.1.1 | (c) 2013-2018, James Simpson of GoldFire Studios | MIT License | howlerjs.com Spatial Plugin @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ var $jscomp = $jscomp || {}; $jscomp.scope = {}; $jscomp.ASSUME_ES5 = !1; $jscomp.ASSUME_NO_NATIVE_MAP = !1; $jscomp.ASSUME_NO_NATIVE_SET = !1; $jscomp.SIMPLE_FROUND_POLYFILL = !1; $jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function (la, y, R) { la != Array.prototype && la != Object.prototype && (la[y] = R.value) }; $jscomp.getGlobal = function (la) { la = ["object" == typeof window && window, "object" == typeof self && self, "object" == typeof global && global, la]; for (var y = 0; y < la.length; ++y) { var R = la[y]; if (R && R.Math == Math) return R } throw Error("Cannot find global object"); }; $jscomp.global = $jscomp.getGlobal(this); $jscomp.polyfill = function (la, y, R, H) { if (y) { R = $jscomp.global; la = la.split("."); for (H = 0; H < la.length - 1; H++) { var Q = la[H]; Q in R || (R[Q] = {}); R = R[Q] } la = la[la.length - 1]; H = R[la]; y = y(H); y != H && null != y && $jscomp.defineProperty(R, la, {configurable: !0, writable: !0, value: y}) } }; $jscomp.polyfill("String.fromCodePoint", function (la) { return la ? la : function (y) { for (var R = "", H = 0; H < arguments.length; H++) { var Q = Number(arguments[H]); if (0 > Q || 1114111 < Q || Q !== Math.floor(Q)) throw new RangeError("invalid_code_point " + Q); 65535 >= Q ? R += String.fromCharCode(Q) : (Q -= 65536, R += String.fromCharCode(Q >>> 10 & 1023 | 55296), R += String.fromCharCode(Q & 1023 | 56320)) } return R } }, "es6", "es3"); $jscomp.arrayIteratorImpl = function (la) { var y = 0; return function () { return y < la.length ? {done: !1, value: la[y++]} : {done: !0} } }; $jscomp.arrayIterator = function (la) { return {next: $jscomp.arrayIteratorImpl(la)} }; $jscomp.SYMBOL_PREFIX = "jscomp_symbol_"; $jscomp.initSymbol = function () { $jscomp.initSymbol = function () { }; $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol) }; $jscomp.SymbolClass = function (la, y) { this.$jscomp$symbol$id_ = la; $jscomp.defineProperty(this, "description", {configurable: !0, writable: !0, value: y}) }; $jscomp.SymbolClass.prototype.toString = function () { return this.$jscomp$symbol$id_ }; $jscomp.Symbol = function () { function la(R) { if (this instanceof la) throw new TypeError("Symbol is not a constructor"); return new $jscomp.SymbolClass($jscomp.SYMBOL_PREFIX + (R || "") + "_" + y++, R) } var y = 0; return la }(); $jscomp.initSymbolIterator = function () { $jscomp.initSymbol(); var la = $jscomp.global.Symbol.iterator; la || (la = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("Symbol.iterator")); "function" != typeof Array.prototype[la] && $jscomp.defineProperty(Array.prototype, la, { configurable: !0, writable: !0, value: function () { return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this)) } }); $jscomp.initSymbolIterator = function () { } }; $jscomp.initSymbolAsyncIterator = function () { $jscomp.initSymbol(); var la = $jscomp.global.Symbol.asyncIterator; la || (la = $jscomp.global.Symbol.asyncIterator = $jscomp.global.Symbol("Symbol.asyncIterator")); $jscomp.initSymbolAsyncIterator = function () { } }; $jscomp.iteratorPrototype = function (la) { $jscomp.initSymbolIterator(); la = {next: la}; la[$jscomp.global.Symbol.iterator] = function () { return this }; return la }; $jscomp.iteratorFromArray = function (la, y) { $jscomp.initSymbolIterator(); la instanceof String && (la += ""); var R = 0, H = { next: function () { if (R < la.length) { var Q = R++; return {value: y(Q, la[Q]), done: !1} } H.next = function () { return {done: !0, value: void 0} }; return H.next() } }; H[Symbol.iterator] = function () { return H }; return H }; $jscomp.polyfill("Array.prototype.keys", function (la) { return la ? la : function () { return $jscomp.iteratorFromArray(this, function (y) { return y }) } }, "es6", "es3"); $jscomp.checkStringArgs = function (la, y, R) { if (null == la) throw new TypeError("The 'this' value for String.prototype." + R + " must not be null or undefined"); if (y instanceof RegExp) throw new TypeError("First argument to String.prototype." + R + " must not be a regular expression"); return la + "" }; $jscomp.polyfill("String.prototype.startsWith", function (la) { return la ? la : function (y, R) { var H = $jscomp.checkStringArgs(this, y, "startsWith"); y += ""; var Q = H.length, ia = y.length; R = Math.max(0, Math.min(R | 0, H.length)); for (var u = 0; u < ia && R < Q;) if (H[R++] != y[u++]) return !1; return u >= ia } }, "es6", "es3"); $jscomp.polyfill("Array.prototype.values", function (la) { return la ? la : function () { return $jscomp.iteratorFromArray(this, function (y, R) { return R }) } }, "es8", "es3"); $jscomp.polyfill("String.prototype.codePointAt", function (la) { return la ? la : function (y) { var R = $jscomp.checkStringArgs(this, null, "codePointAt"), H = R.length; y = Number(y) || 0; if (0 <= y && y < H) { y |= 0; var Q = R.charCodeAt(y); if (55296 > Q || 56319 < Q || y + 1 === H) return Q; y = R.charCodeAt(y + 1); return 56320 > y || 57343 < y ? Q : 1024 * (Q - 55296) + y + 9216 } } }, "es6", "es3"); $jscomp.polyfill("String.prototype.endsWith", function (la) { return la ? la : function (y, R) { var H = $jscomp.checkStringArgs(this, y, "endsWith"); y += ""; void 0 === R && (R = H.length); R = Math.max(0, Math.min(R | 0, H.length)); for (var Q = y.length; 0 < Q && 0 < R;) if (H[--R] != y[--Q]) return !1; return 0 >= Q } }, "es6", "es3"); $jscomp.polyfill("Array.prototype.fill", function (la) { return la ? la : function (y, R, H) { var Q = this.length || 0; 0 > R && (R = Math.max(0, Q + R)); if (null == H || H > Q) H = Q; H = Number(H); 0 > H && (H = Math.max(0, Q + H)); for (R = Number(R || 0); R < H; R++) this[R] = y; return this } }, "es6", "es3"); $jscomp.polyfill("String.prototype.repeat", function (la) { return la ? la : function (y) { var R = $jscomp.checkStringArgs(this, null, "repeat"); if (0 > y || 1342177279 < y) throw new RangeError("Invalid count value"); y |= 0; for (var H = ""; y;) if (y & 1 && (H += R), y >>>= 1) R += R; return H } }, "es6", "es3"); (function (la, y) { la.lime = la.lime || {}; la.lime.$scripts = la.lime.$scripts || {}; la.lime.$scripts.Into_The_Pit_EasyMode = function (y, H) { (function (y, R) { function u(a, b) { a = Object.create(a); for (var c in b) a[c] = b[c]; b.toString !== Object.prototype.toString && (a.toString = b.toString); return a } function H(a) { return a instanceof Array ? new Qe(a) : a.iterator() } function q(a, b) { if (null == b) return null; null == b.__id__ && (b.__id__ = R.$haxeUID++); var c; null == a.hx__closures__ ? a.hx__closures__ = {} : c = a.hx__closures__[b.__id__]; null == c && (c = b.bind(a), a.hx__closures__[b.__id__] = c); return c } y.lime = y.lime || {}; var k = {}, t = function () { return w.__string_rec(this, "") }, A = A || {}, x, Aa = function () { }; k.ApplicationMain = Aa; Aa.__name__ = "ApplicationMain"; Aa.main = function () { ua.am = Aa; ua.setupTracing(!0); aa.load(); L.loadInputConfig(); ua.setupTracing(); $a.__registerEntryPoint("Into_The_Pit_EasyMode", Aa.create); Oa.get_current() }; Aa.reloadGame = function () { for (var a = 0, b = Aa.reloadListeners; a < b.length;) { var c = b[a]; ++a; c() } f.resetStatics(); ca.resetStatics(); wb.resetStatics(); Re.resetStatics(); zb.resetStatics(); Na.resetStatics(); ac.resetStatics(); xe.resetStatics(); Ac.resetStatics(); Ud.resetStatics(); Ff.resetStatics(); re.resetStatics(); nb.resetStatics(); X.resetStatics(); pc.resetStatics(); L.resetStatics(); h.resetStatics(); Oa.get_current().removeChild(Aa.universal); L.loadInputConfig(); Aa.universal = new ua; Oa.get_current().addChild(Aa.universal); Aa.universal.preloaderComplete() }; Aa.create = function (a) { Aa.app = new kj; la.init(a); Aa.app.meta.h.build = "1"; Aa.app.meta.h.company = "Stencyl"; Aa.app.meta.h.file = "Into_The_Pit_EasyMode"; Aa.app.meta.h.name = "Into_The_Pit_EasyMode"; Aa.app.meta.h.packageName = "com.example.myapp"; Aa.app.meta.h.version = "1.0.0"; var b = { allowHighDPI: !1, alwaysOnTop: !1, borderless: !1, element: null, frameRate: 65, height: 486, hidden: !1, maximized: !1, minimized: !1, parameters: {}, resizable: !0, title: "Into_The_Pit_EasyMode", width: 864, x: null, y: null }; b.context = { antialiasing: aa.antialias ? 2 : 0, background: 0, colorDepth: 32, depth: !0, hardware: !0, stencil: !0, type: null, vsync: !0 }; if (null == Aa.app.__window && null != a) for (var c = 0, d = V.fields(a); c < d.length;) { var e = d[c]; ++c; Object.prototype.hasOwnProperty.call(b, e) ? b[e] = V.field(a, e) : Object.prototype.hasOwnProperty.call(b.context, e) && (b.context[e] = V.field(a, e)) } Aa.app.createWindow(b); aa.releaseMode || Oa.get_current().get_loaderInfo().uncaughtErrorEvents.addEventListener("uncaughtError", Aa.uncaughtErrorHandler); ua.initWindow(Aa.app.__window); Aa.universal = new ua; Oa.get_current().addChild(Aa.universal); ya.start(!1, function () { ya.gameLoadingStart(); var a = new qk; a.onComplete.add((x = Aa.universal, q(x, x.preloaderComplete))); Aa.app.__preloader.onProgress.add(q(a, a.onUpdate)); Aa.app.__preloader.onComplete.add(q(a, a.onLoaded)); Aa.app.__preloader.onProgress.add(Aa.onUpdate); Aa.app.__preloader.onComplete.add(Aa.onLoaded); a = 0; for (var b = la.preloadLibraries; a < b.length;) { var c = b[a]; ++a; Aa.app.__preloader.addLibrary(c) } a = 0; for (b = la.preloadLibraryNames; a < b.length;) c = b[a], ++a, Aa.app.__preloader.addLibraryName(c); Aa.app.__preloader.load(); Aa.app.exec() }) }; Aa.onUpdate = function (a, b) { ya.gameLoadingProgress(a / b, a, b) }; Aa.onLoaded = function () { ya.gameLoadingFinished() }; Aa.uncaughtErrorHandler = function (a) { }; var fb = function (a, b) { this.r = new RegExp(a, b.split("u").join("")) }; k.EReg = fb; fb.__name__ = "EReg"; fb.prototype = { r: null, match: function (a) { this.r.global && (this.r.lastIndex = 0); this.r.m = this.r.exec(a); this.r.s = a; return null != this.r.m }, matched: function (a) { if (null != this.r.m && 0 <= a && a < this.r.m.length) return this.r.m[a]; throw I.thrown("EReg::matched"); }, matchedRight: function () { if (null == this.r.m) throw I.thrown("No string matched"); var a = this.r.m.index + this.r.m[0].length; return K.substr(this.r.s, a, this.r.s.length - a) }, matchedPos: function () { if (null == this.r.m) throw I.thrown("No string matched"); return {pos: this.r.m.index, len: this.r.m[0].length} }, matchSub: function (a, b, c) { null == c && (c = -1); if (this.r.global) { if (this.r.lastIndex = b, this.r.m = this.r.exec(0 > c ? a : K.substr(a, 0, b + c)), c = null != this.r.m) this.r.s = a } else if (c = this.match(0 > c ? K.substr(a, b, null) : K.substr(a, b, c))) this.r.s = a, this.r.m.index += b; return c }, split: function (a) { return a.replace(this.r, "#__delim__#").split("#__delim__#") }, map: function (a, b) { for (var c = 0, d = ""; !(c >= a.length);) { if (!this.matchSub(a, c)) { d += z.string(K.substr(a, c, null)); break } var e = this.matchedPos(); d += z.string(K.substr(a, c, e.pos - c)); d += z.string(b(this)); 0 == e.len ? (d += z.string(K.substr(a, e.pos, 1)), c = e.pos + 1) : c = e.pos + e.len; if (!this.r.global) break } !this.r.global && 0 < c && c < a.length && (d += z.string(K.substr(a, c, null))); return d }, __class__: fb }; var za = function () { }; k.EasyMath = za; za.__name__ = "EasyMath"; za.max_list = function (a) { var b = 0; 0 < a.length && (b = a[0]); for (var c = 1, d = a.length; c < d;) { var e = c++; a[e] > b && (b = a[e]) } return b }; za.min_list = function (a) { var b = 0; 0 < a.length && (b = a[0]); for (var c = 1, d = a.length; c < d;) { var e = c++; a[e] < b && (b = a[e]) } return b }; za.avg_list = function (a) { var b = 0; if (0 < a.length) { for (var c = 0, d = a.length; c < d;) { var e = c++; b += a[e] } b /= a.length } return b }; za.distance_between_points = function (a, b, c, d) { return Math.sqrt(Math.pow(a - c, 2) + Math.pow(b - d, 2)) }; za.angle_between_points = function (a, b, c, d, e) { b = Math.atan2(c - e, b - d); return "radians" == a ? b : 57.29577951308402 * b }; za.distance_to_target = function (a, b) { return Math.sqrt(Math.pow(a.getXCenter() - b.getXCenter(), 2) + Math.pow(a.getYCenter() - b.getYCenter(), 2)) }; za.angle_to_target = function (a, b, c) { b = Math.atan2(b.getYCenter() - c.getYCenter(), b.getXCenter() - c.getXCenter()); return "radians" == a ? b : 57.29577951308402 * b }; za.velocity_calc = function (a, b) { return "magnitude" == a ? Math.sqrt(Math.pow(b.getXVelocity(), 2) + Math.pow(b.getYVelocity(), 2)) : "angle (radians)" == a ? Math.atan2(b.getYVelocity(), b.getXVelocity()) : 57.29577951308402 * Math.atan2(b.getYVelocity(), b.getXVelocity()) }; var K = function () { }; k.HxOverrides = K; K.__name__ = "HxOverrides"; K.strDate = function (a) { switch (a.length) { case 8: a = a.split(":"); var b = new Date; b.setTime(0); b.setUTCHours(a[0]); b.setUTCMinutes(a[1]); b.setUTCSeconds(a[2]); return b; case 10: return a = a.split("-"), new Date(a[0], a[1] - 1, a[2], 0, 0, 0); case 19: return a = a.split(" "), b = a[0].split("-"), a = a[1].split(":"), new Date(b[0], b[1] - 1, b[2], a[0], a[1], a[2]); default: throw I.thrown("Invalid date format : " + a); } }; K.cca = function (a, b) { a = a.charCodeAt(b); if (a == a) return a }; K.substr = function (a, b, c) { if (null == c) c = a.length; else if (0 > c) if (0 == b) c = a.length + c; else return ""; return a.substr(b, c) }; K.remove = function (a, b) { b = a.indexOf(b); if (-1 == b) return !1; a.splice(b, 1); return !0 }; K.now = function () { return Date.now() }; var Q = function (a, b) { this.min = a; this.max = b }; k.IntIterator = Q; Q.__name__ = "IntIterator"; Q.prototype = { min: null, max: null, hasNext: function () { return this.min < this.max }, next: function () { return this.min++ }, __class__: Q }; var ia = function () { }; k.Lambda = ia; ia.__name__ = "Lambda"; ia.array = function (a) { var b = []; for (a = H(a); a.hasNext();) { var c = a.next(); b.push(c) } return b }; ia.count = function (a, b) { var c = 0; if (null == b) for (b = H(a); b.hasNext();) b.next(), ++c; else for (a = H(a); a.hasNext();) { var d = a.next(); b(d) && ++c } return c }; ia.indexOf = function (a, b) { var c = 0; for (a = H(a); a.hasNext();) { var d = a.next(); if (b == d) return c; ++c } return -1 }; var la = function () { }; k.ManifestResources = la; la.__name__ = "ManifestResources"; la.init = function (a) { la.preloadLibraries = []; la.preloadLibraryNames = []; la.rootPath = null; null != a && Object.prototype.hasOwnProperty.call(a, "rootPath") && (la.rootPath = V.field(a, "rootPath")); null == la.rootPath && (la.rootPath = "./"); a = Nc.parse('{"name":null,"assets":"aoy8:positioni10y4:sizezy4:typey5:IMAGEy2:idy45:assets%2Fgraphics%2F1x%2Fbackground-109-0.pngy6:lengthi2657y7:preloadtgoR0i2667R1zR2R3R4y45:assets%2Fgraphics%2F1x%2Fbackground-249-0.pngR6i1098R7tgoR0i3765R1zR2R3R4y44:assets%2Fgraphics%2F1x%2Fbackground-66-0.pngR6i3207R7tgoR0i6972R1zR2R3R4y44:assets%2Fgraphics%2F1x%2Fbackground-75-0.pngR6i4066R7tgoR0i11038R1zR2y4:TEXTR4y37:assets%2Fgraphics%2F1x%2Ffont-145.fntR6i1222goR0i12260R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-145.pngR6i10271R7tgoR0i22531R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-169.fntR6i1165goR0i23696R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-169.pngR6i4031R7tgoR0i27727R1zR2R11R4y36:assets%2Fgraphics%2F1x%2Ffont-17.fntR6i1039goR0i28766R1zR2R3R4y36:assets%2Fgraphics%2F1x%2Ffont-17.pngR6i4849R7tgoR0i33615R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-172.fntR6i777goR0i34392R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-172.pngR6i7062R7tgoR0i41454R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-173.fntR6i894goR0i42348R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-173.pngR6i4746R7tgoR0i47094R1zR2R11R4y36:assets%2Fgraphics%2F1x%2Ffont-20.fntR6i995goR0i48089R1zR2R3R4y36:assets%2Fgraphics%2F1x%2Ffont-20.pngR6i1224R7tgoR0i49313R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-212.fntR6i1109goR0i50422R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-212.pngR6i1442R7tgoR0i51864R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-217.fntR6i906goR0i52770R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-217.pngR6i1258R7tgoR0i54028R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-252.fntR6i993goR0i55021R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-252.pngR6i802R7tgoR0i55823R1zR2R11R4y37:assets%2Fgraphics%2F1x%2Ffont-255.fntR6i993goR0i56816R1zR2R3R4y37:assets%2Fgraphics%2F1x%2Ffont-255.pngR6i802R7tgoR0i57618R1zR2R11R4y36:assets%2Fgraphics%2F1x%2Ffont-65.fntR6i1043goR0i58661R1zR2R3R4y36:assets%2Fgraphics%2F1x%2Ffont-65.pngR6i3346R7tgoR0i62007R1zR2R11R4y36:assets%2Fgraphics%2F1x%2Ffont-76.fntR6i995goR0i63002R1zR2R3R4y36:assets%2Fgraphics%2F1x%2Ffont-76.pngR6i1201R7tgoR0i64203R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-100-2.pngR6i392R7tgoR0i64595R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-100-3.pngR6i305R7tgoR0i64900R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-100-4.pngR6i265R7tgoR0i65165R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-102-0.pngR6i198R7tgoR0i65363R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-102-1.pngR6i212R7tgoR0i65575R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-0.pngR6i152R7tgoR0i65727R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-1.pngR6i144R7tgoR0i65871R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-2.pngR6i144R7tgoR0i66015R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-3.pngR6i140R7tgoR0i66155R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-4.pngR6i137R7tgoR0i66292R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-5.pngR6i133R7tgoR0i66425R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-6.pngR6i140R7tgoR0i66565R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-104-7.pngR6i137R7tgoR0i66702R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-106-0.pngR6i158R7tgoR0i66860R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-10.pngR6i172R7tgoR0i67032R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-11.pngR6i217R7tgoR0i67249R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-12.pngR6i201R7tgoR0i67450R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-13.pngR6i185R7tgoR0i67635R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-14.pngR6i230R7tgoR0i67865R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-15.pngR6i212R7tgoR0i68077R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-16.pngR6i180R7tgoR0i68257R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-17.pngR6i218R7tgoR0i68475R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-18.pngR6i203R7tgoR0i68678R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-19.pngR6i181R7tgoR0i68859R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-20.pngR6i181R7tgoR0i69040R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-21.pngR6i181R7tgoR0i69221R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-108-22.pngR6i181R7tgoR0i69402R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-108-8.pngR6i225R7tgoR0i69627R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-108-9.pngR6i207R7tgoR0i69834R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-129-10.pngR6i1367R7tgoR0i71201R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-129-3.pngR6i445R7tgoR0i71646R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-129-4.pngR6i1357R7tgoR0i73003R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-133-0.pngR6i156R7tgoR0i73159R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-147-0.pngR6i659R7tgoR0i73818R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-147-1.pngR6i601R7tgoR0i74419R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-12.pngR6i131R7tgoR0i74550R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-13.pngR6i129R7tgoR0i74679R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-14.pngR6i120R7tgoR0i74799R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-15.pngR6i133R7tgoR0i74932R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-16.pngR6i136R7tgoR0i75068R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-151-17.pngR6i126R7tgoR0i75194R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-14.pngR6i262R7tgoR0i75456R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-15.pngR6i276R7tgoR0i75732R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-16.pngR6i263R7tgoR0i75995R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-17.pngR6i311R7tgoR0i76306R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-18.pngR6i235R7tgoR0i76541R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-19.pngR6i288R7tgoR0i76829R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-20.pngR6i310R7tgoR0i77139R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-21.pngR6i294R7tgoR0i77433R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-22.pngR6i308R7tgoR0i77741R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-23.pngR6i272R7tgoR0i78013R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-24.pngR6i261R7tgoR0i78274R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-153-25.pngR6i241R7tgoR0i78515R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-155-0.pngR6i468R7tgoR0i78983R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-155-1.pngR6i489R7tgoR0i79472R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-155-2.pngR6i296R7tgoR0i79768R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-155-3.pngR6i492R7tgoR0i80260R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-155-4.pngR6i350R7tgoR0i80610R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-0.pngR6i484R7tgoR0i81094R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-1.pngR6i635R7tgoR0i81729R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-2.pngR6i639R7tgoR0i82368R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-3.pngR6i621R7tgoR0i82989R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-4.pngR6i642R7tgoR0i83631R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-5.pngR6i680R7tgoR0i84311R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-157-6.pngR6i219R7tgoR0i84530R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-0.pngR6i109R7tgoR0i84639R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-1.pngR6i114R7tgoR0i84753R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-2.pngR6i108R7tgoR0i84861R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-3.pngR6i110R7tgoR0i84971R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-4.pngR6i114R7tgoR0i85085R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-5.pngR6i110R7tgoR0i85195R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-6.pngR6i110R7tgoR0i85305R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-7.pngR6i111R7tgoR0i85416R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-8.pngR6i106R7tgoR0i85522R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-159-9.pngR6i112R7tgoR0i85634R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-162-0.pngR6i106R7tgoR0i85740R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-162-1.pngR6i124R7tgoR0i85864R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-1.pngR6i118R7tgoR0i85982R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-2.pngR6i141R7tgoR0i86123R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-3.pngR6i166R7tgoR0i86289R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-4.pngR6i167R7tgoR0i86456R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-5.pngR6i104R7tgoR0i86560R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-164-6.pngR6i101R7tgoR0i86661R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-166-0.pngR6i180R7tgoR0i86841R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-168-0.pngR6i152R7tgoR0i86993R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-168-1.pngR6i278R7tgoR0i87271R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-171-0.pngR6i179R7tgoR0i87450R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-171-1.pngR6i169R7tgoR0i87619R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-175-0.pngR6i300R7tgoR0i87919R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-175-1.pngR6i321R7tgoR0i88240R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-175-2.pngR6i295R7tgoR0i88535R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-177-0.pngR6i418R7tgoR0i88953R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-177-1.pngR6i422R7tgoR0i89375R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-177-2.pngR6i414R7tgoR0i89789R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-181-0.pngR6i111R7tgoR0i89900R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-0.pngR6i123R7tgoR0i90023R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-1.pngR6i124R7tgoR0i90147R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-183-10.pngR6i116R7tgoR0i90263R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-183-11.pngR6i117R7tgoR0i90380R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-183-12.pngR6i98R7tgoR0i90478R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-2.pngR6i122R7tgoR0i90600R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-3.pngR6i123R7tgoR0i90723R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-4.pngR6i133R7tgoR0i90856R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-5.pngR6i134R7tgoR0i90990R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-6.pngR6i133R7tgoR0i91123R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-7.pngR6i133R7tgoR0i91256R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-8.pngR6i116R7tgoR0i91372R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-183-9.pngR6i117R7tgoR0i91489R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-185-0.pngR6i113R7tgoR0i91602R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-185-1.pngR6i99R7tgoR0i91701R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-187-0.pngR6i94R7tgoR0i91795R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-189-3.pngR6i216R7tgoR0i92011R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-189-4.pngR6i253R7tgoR0i92264R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-189-5.pngR6i357R7tgoR0i92621R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-22.pngR6i514R7tgoR0i93135R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-23.pngR6i513R7tgoR0i93648R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-24.pngR6i157R7tgoR0i93805R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-25.pngR6i155R7tgoR0i93960R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-26.pngR6i517R7tgoR0i94477R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-27.pngR6i520R7tgoR0i94997R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-28.pngR6i156R7tgoR0i95153R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-19-29.pngR6i158R7tgoR0i95311R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-192-10.pngR6i535R7tgoR0i95846R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-192-11.pngR6i600R7tgoR0i96446R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-192-12.pngR6i616R7tgoR0i97062R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-192-13.pngR6i443R7tgoR0i97505R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-192-8.pngR6i448R7tgoR0i97953R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-192-9.pngR6i500R7tgoR0i98453R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-194-0.pngR6i201R7tgoR0i98654R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-196-1.pngR6i151R7tgoR0i98805R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-196-2.pngR6i212R7tgoR0i99017R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-0.pngR6i173R7tgoR0i99190R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-1.pngR6i174R7tgoR0i99364R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-2.pngR6i175R7tgoR0i99539R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-3.pngR6i175R7tgoR0i99714R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-4.pngR6i118R7tgoR0i99832R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-5.pngR6i114R7tgoR0i99946R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-6.pngR6i165R7tgoR0i100111R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-7.pngR6i170R7tgoR0i100281R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-8.pngR6i178R7tgoR0i100459R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-198-9.pngR6i180R7tgoR0i100639R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-200-10.pngR6i335R7tgoR0i100974R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-200-11.pngR6i382R7tgoR0i101356R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-200-12.pngR6i412R7tgoR0i101768R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-200-13.pngR6i426R7tgoR0i102194R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-200-14.pngR6i199R7tgoR0i102393R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-200-9.pngR6i209R7tgoR0i102602R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-4.pngR6i360R7tgoR0i102962R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-5.pngR6i443R7tgoR0i103405R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-6.pngR6i483R7tgoR0i103888R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-7.pngR6i500R7tgoR0i104388R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-8.pngR6i519R7tgoR0i104907R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-202-9.pngR6i363R7tgoR0i105270R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-17.pngR6i294R7tgoR0i105564R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-18.pngR6i367R7tgoR0i105931R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-19.pngR6i393R7tgoR0i106324R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-20.pngR6i402R7tgoR0i106726R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-21.pngR6i423R7tgoR0i107149R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-22.pngR6i293R7tgoR0i107442R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-23.pngR6i294R7tgoR0i107736R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-24.pngR6i367R7tgoR0i108103R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-25.pngR6i393R7tgoR0i108496R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-26.pngR6i402R7tgoR0i108898R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-27.pngR6i423R7tgoR0i109321R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-204-28.pngR6i293R7tgoR0i109614R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-0.pngR6i309R7tgoR0i109923R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-1.pngR6i314R7tgoR0i110237R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-206-2.pngR6i302R7tgoR0i110539R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-0.pngR6i131R7tgoR0i110670R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-1.pngR6i121R7tgoR0i110791R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-10.pngR6i134R7tgoR0i110925R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-11.pngR6i128R7tgoR0i111053R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-12.pngR6i141R7tgoR0i111194R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-13.pngR6i137R7tgoR0i111331R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-14.pngR6i124R7tgoR0i111455R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-15.pngR6i144R7tgoR0i111599R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-16.pngR6i134R7tgoR0i111733R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-17.pngR6i141R7tgoR0i111874R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-18.pngR6i142R7tgoR0i112016R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-19.pngR6i143R7tgoR0i112159R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-2.pngR6i122R7tgoR0i112281R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-20.pngR6i127R7tgoR0i112408R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-21.pngR6i131R7tgoR0i112539R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-22.pngR6i146R7tgoR0i112685R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-23.pngR6i129R7tgoR0i112814R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-24.pngR6i147R7tgoR0i112961R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-25.pngR6i121R7tgoR0i113082R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-26.pngR6i126R7tgoR0i113208R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-27.pngR6i136R7tgoR0i113344R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-28.pngR6i145R7tgoR0i113489R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-29.pngR6i138R7tgoR0i113627R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-3.pngR6i125R7tgoR0i113752R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-30.pngR6i149R7tgoR0i113901R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-31.pngR6i144R7tgoR0i114045R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-32.pngR6i145R7tgoR0i114190R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-33.pngR6i149R7tgoR0i114339R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-34.pngR6i136R7tgoR0i114475R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-208-35.pngR6i148R7tgoR0i114623R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-4.pngR6i124R7tgoR0i114747R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-5.pngR6i123R7tgoR0i114870R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-6.pngR6i135R7tgoR0i115005R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-7.pngR6i122R7tgoR0i115127R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-8.pngR6i126R7tgoR0i115253R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-208-9.pngR6i136R7tgoR0i115389R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-0.pngR6i555R7tgoR0i115944R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-1.pngR6i781R7tgoR0i116725R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-10.pngR6i773R7tgoR0i117498R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-11.pngR6i473R7tgoR0i117971R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-12.pngR6i326R7tgoR0i118297R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-13.pngR6i518R7tgoR0i118815R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-14.pngR6i583R7tgoR0i119398R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-15.pngR6i350R7tgoR0i119748R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-16.pngR6i272R7tgoR0i120020R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-17.pngR6i395R7tgoR0i120415R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-18.pngR6i422R7tgoR0i120837R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-19.pngR6i248R7tgoR0i121085R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-2.pngR6i950R7tgoR0i122035R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-211-20.pngR6i1993R7tgoR0i124028R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-3.pngR6i536R7tgoR0i124564R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-4.pngR6i545R7tgoR0i125109R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-5.pngR6i812R7tgoR0i125921R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-6.pngR6i944R7tgoR0i126865R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-7.pngR6i547R7tgoR0i127412R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-8.pngR6i450R7tgoR0i127862R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-211-9.pngR6i676R7tgoR0i128538R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-216-0.pngR6i105R7tgoR0i128643R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-4.pngR6i137R7tgoR0i128780R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-5.pngR6i142R7tgoR0i128922R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-6.pngR6i142R7tgoR0i129064R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-219-7.pngR6i292R7tgoR0i129356R1zR2R3R4y42:assets%2Fgraphics%2F1x%2Fsprite-221-11.pngR6i157R7tgoR0i129513R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-227-0.pngR6i185R7tgoR0i129698R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-1.pngR6i209R7tgoR0i129907R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-2.pngR6i202R7tgoR0i130109R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-3.pngR6i203R7tgoR0i130312R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-4.pngR6i215R7tgoR0i130527R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-5.pngR6i212R7tgoR0i130739R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-6.pngR6i219R7tgoR0i130958R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-7.pngR6i219R7tgoR0i131177R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-229-8.pngR6i215R7tgoR0i131392R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-231-0.pngR6i567R7tgoR0i131959R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-233-0.pngR6i405R7tgoR0i132364R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-235-0.pngR6i195R7tgoR0i132559R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-24-0.pngR6i214R7tgoR0i132773R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-242-0.pngR6i155R7tgoR0i132928R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-242-1.pngR6i157R7tgoR0i133085R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-246-0.pngR6i894R7tgoR0i133979R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-248-0.pngR6i207R7tgoR0i134186R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-248-1.pngR6i195R7tgoR0i134381R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-251-3.pngR6i576R7tgoR0i134957R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-251-4.pngR6i585R7tgoR0i135542R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-251-5.pngR6i566R7tgoR0i136108R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-254-0.pngR6i119R7tgoR0i136227R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-257-0.pngR6i164R7tgoR0i136391R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-259-0.pngR6i1610R7tgoR0i138001R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-261-0.pngR6i614R7tgoR0i138615R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-263-0.pngR6i2482R7tgoR0i141097R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-265-0.pngR6i1374R7tgoR0i142471R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-268-0.pngR6i286R7tgoR0i142757R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-28-2.pngR6i184R7tgoR0i142941R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-36-0.pngR6i160R7tgoR0i143101R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-38-0.pngR6i196R7tgoR0i143297R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-42-0.pngR6i148R7tgoR0i143445R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-42-1.pngR6i142R7tgoR0i143587R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-42-2.pngR6i140R7tgoR0i143727R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-42-3.pngR6i136R7tgoR0i143863R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-42-4.pngR6i169R7tgoR0i144032R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-46-5.pngR6i130R7tgoR0i144162R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-46-6.pngR6i132R7tgoR0i144294R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-48-0.pngR6i180R7tgoR0i144474R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-1.pngR6i169R7tgoR0i144643R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-54-10.pngR6i167R7tgoR0i144810R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-3.pngR6i164R7tgoR0i144974R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-5.pngR6i168R7tgoR0i145142R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-6.pngR6i167R7tgoR0i145309R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-7.pngR6i164R7tgoR0i145473R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-8.pngR6i169R7tgoR0i145642R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-54-9.pngR6i168R7tgoR0i145810R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-58-1.pngR6i181R7tgoR0i145991R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-60-0.pngR6i214R7tgoR0i146205R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-3.pngR6i142R7tgoR0i146347R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-4.pngR6i186R7tgoR0i146533R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-5.pngR6i194R7tgoR0i146727R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-6.pngR6i186R7tgoR0i146913R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-7.pngR6i194R7tgoR0i147107R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-68-8.pngR6i142R7tgoR0i147249R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-0.pngR6i92R7tgoR0i147341R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-1.pngR6i95R7tgoR0i147436R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-70-10.pngR6i100R7tgoR0i147536R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-70-11.pngR6i102R7tgoR0i147638R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-2.pngR6i98R7tgoR0i147736R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-3.pngR6i103R7tgoR0i147839R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-4.pngR6i101R7tgoR0i147940R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-5.pngR6i105R7tgoR0i148045R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-6.pngR6i100R7tgoR0i148145R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-7.pngR6i98R7tgoR0i148243R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-8.pngR6i100R7tgoR0i148343R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-70-9.pngR6i98R7tgoR0i148441R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-12.pngR6i191R7tgoR0i148632R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-13.pngR6i187R7tgoR0i148819R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-14.pngR6i185R7tgoR0i149004R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-15.pngR6i195R7tgoR0i149199R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-16.pngR6i192R7tgoR0i149391R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-17.pngR6i204R7tgoR0i149595R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-18.pngR6i202R7tgoR0i149797R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-19.pngR6i194R7tgoR0i149991R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-20.pngR6i215R7tgoR0i150206R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-21.pngR6i203R7tgoR0i150409R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-22.pngR6i219R7tgoR0i150628R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-23.pngR6i219R7tgoR0i150847R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-24.pngR6i212R7tgoR0i151059R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-25.pngR6i209R7tgoR0i151268R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-26.pngR6i215R7tgoR0i151483R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-74-27.pngR6i202R7tgoR0i151685R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-78-0.pngR6i176R7tgoR0i151861R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-78-1.pngR6i145R7tgoR0i152006R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-78-2.pngR6i198R7tgoR0i152204R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-82-1.pngR6i559R7tgoR0i152763R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-0.pngR6i144R7tgoR0i152907R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-1.pngR6i144R7tgoR0i153051R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-86-10.pngR6i148R7tgoR0i153199R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-2.pngR6i134R7tgoR0i153333R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-3.pngR6i157R7tgoR0i153490R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-4.pngR6i177R7tgoR0i153667R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-5.pngR6i163R7tgoR0i153830R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-6.pngR6i132R7tgoR0i153962R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-7.pngR6i200R7tgoR0i154162R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-8.pngR6i185R7tgoR0i154347R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-86-9.pngR6i204R7tgoR0i154551R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-88-1.pngR6i333R7tgoR0i154884R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-88-2.pngR6i265R7tgoR0i155149R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-88-3.pngR6i218R7tgoR0i155367R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-88-4.pngR6i333R7tgoR0i155700R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-90-5.pngR6i204R7tgoR0i155904R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-90-6.pngR6i182R7tgoR0i156086R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-90-7.pngR6i161R7tgoR0i156247R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-11.pngR6i266R7tgoR0i156513R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-12.pngR6i232R7tgoR0i156745R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-13.pngR6i194R7tgoR0i156939R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-14.pngR6i266R7tgoR0i157205R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-15.pngR6i232R7tgoR0i157437R1zR2R3R4y41:assets%2Fgraphics%2F1x%2Fsprite-92-16.pngR6i194R7tgoR0i157631R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-96-5.pngR6i229R7tgoR0i157860R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-96-6.pngR6i193R7tgoR0i158053R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-96-7.pngR6i203R7tgoR0i158256R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-96-8.pngR6i195R7tgoR0i158451R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-96-9.pngR6i197R7tgoR0i158648R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-98-1.pngR6i313R7tgoR0i158961R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-98-2.pngR6i266R7tgoR0i159227R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Fsprite-98-3.pngR6i230R7tgoR0i159457R1zR2R3R4y40:assets%2Fgraphics%2F1x%2Ftileset-160.pngR6i155R7tgoR0i159612R1zR2R3R4y38:assets%2Fgraphics%2F1x%2Ftileset-4.pngR6i232R7tgoR0i159844R1zR2R11R4y36:assets%2Fgraphics%2Fdefault-font.fntR6i1057goR0i160901R1zR2R3R4y36:assets%2Fgraphics%2Fdefault-font.pngR6i1759R7tgoR1i2769396R2y5:MUSICR4y30:assets%2Fmusic%2Fsound-113.mp3y9:pathGroupaR391y30:assets%2Fmusic%2Fsound-113.ogghR7tgoR1i2996948R2R390R4R393R392aR391R393hgoR1i22568R2y5:SOUNDR4y28:assets%2Fsfx%2Fsound-110.mp3R392aR395y28:assets%2Fsfx%2Fsound-110.ogghR7tgoR1i5850R2R394R4y28:assets%2Fsfx%2Fsound-112.mp3R392aR397y28:assets%2Fsfx%2Fsound-112.ogghR7tgoR1i18389R2R394R4y28:assets%2Fsfx%2Fsound-134.mp3R392aR399y28:assets%2Fsfx%2Fsound-134.ogghR7tgoR1i2506R2R394R4y28:assets%2Fsfx%2Fsound-135.mp3R392aR401y28:assets%2Fsfx%2Fsound-135.ogghR7tgoR1i6686R2R394R4y28:assets%2Fsfx%2Fsound-136.mp3R392aR403y28:assets%2Fsfx%2Fsound-136.ogghR7tgoR1i5850R2R394R4y28:assets%2Fsfx%2Fsound-137.mp3R392aR405y28:assets%2Fsfx%2Fsound-137.ogghR7tgoR1i8358R2R394R4y28:assets%2Fsfx%2Fsound-138.mp3R392aR407y28:assets%2Fsfx%2Fsound-138.ogghR7tgoR1i40959R2R394R4y28:assets%2Fsfx%2Fsound-139.mp3R392aR409y28:assets%2Fsfx%2Fsound-139.ogghR7tgoR1i10866R2R394R4y28:assets%2Fsfx%2Fsound-140.mp3R392aR411y28:assets%2Fsfx%2Fsound-140.ogghR7tgoR1i10030R2R394R4y28:assets%2Fsfx%2Fsound-141.mp3R392aR413y28:assets%2Fsfx%2Fsound-141.ogghR7tgoR1i20897R2R394R4y28:assets%2Fsfx%2Fsound-142.mp3R392aR415y28:assets%2Fsfx%2Fsound-142.ogghR7tgoR1i23404R2R394R4y28:assets%2Fsfx%2Fsound-143.mp3R392aR417y28:assets%2Fsfx%2Fsound-143.ogghR7tgoR1i22568R2R394R4y28:assets%2Fsfx%2Fsound-144.mp3R392aR419y28:assets%2Fsfx%2Fsound-144.ogghR7tgoR1i44302R2R394R4y28:assets%2Fsfx%2Fsound-178.mp3R392aR421y28:assets%2Fsfx%2Fsound-178.ogghR7tgoR1i44302R2R394R4y28:assets%2Fsfx%2Fsound-179.mp3R392aR423y28:assets%2Fsfx%2Fsound-179.ogghR7tgoR1i22568R2R394R4y28:assets%2Fsfx%2Fsound-190.mp3R392aR425y28:assets%2Fsfx%2Fsound-190.ogghR7tgoR1i27584R2R394R4y28:assets%2Fsfx%2Fsound-209.mp3R392aR427y28:assets%2Fsfx%2Fsound-209.ogghR7tgoR1i12955R2R394R4y28:assets%2Fsfx%2Fsound-240.mp3R392aR429y28:assets%2Fsfx%2Fsound-240.ogghR7tgoR1i10030R2R394R4y28:assets%2Fsfx%2Fsound-266.mp3R392aR431y28:assets%2Fsfx%2Fsound-266.ogghR7tgoR1i10285R2R394R4R396R392aR395R396hgoR1i5055R2R394R4R398R392aR397R398hgoR1i9850R2R394R4R400R392aR399R400hgoR1i5229R2R394R4R402R392aR401R402hgoR1i5247R2R394R4R404R392aR403R404hgoR1i5164R2R394R4R406R392aR405R406hgoR1i6071R2R394R4R408R392aR407R408hgoR1i12784R2R394R4R410R392aR409R410hgoR1i6507R2R394R4R412R392aR411R412hgoR1i6633R2R394R4R414R392aR413R414hgoR1i9837R2R394R4R416R392aR415R416hgoR1i8786R2R394R4R418R392aR417R418hgoR1i14537R2R394R4R420R392aR419R420hgoR1i18671R2R394R4R422R392aR421R422hgoR1i19313R2R394R4R424R392aR423R424hgoR1i11177R2R394R4R426R392aR425R426hgoR1i17397R2R394R4R428R392aR427R428hgoR1i12070R2R394R4R430R392aR429R430hgoR1i6280R2R394R4R432R392aR431R432hgoR0i162660R1zR2y6:BINARYR4y29:assets%2Fdata%2Fbehaviors.mbsR6i15080goR0i177740R1zR2R433R4y24:assets%2Fdata%2Fgame.mbsR6i1284goR0i179024R1zR2R3R4y34:assets%2Fdata%2Finner-joystick.pngR6i902R7tgoR0i179926R1zR2R3R4y41:assets%2Fdata%2Finner-joystick%401.5x.pngR6i1815R7tgoR0i181741R1zR2R3R4y39:assets%2Fdata%2Finner-joystick%402x.pngR6i1969R7tgoR0i183710R1zR2R3R4y39:assets%2Fdata%2Finner-joystick%403x.pngR6i4013R7tgoR0i187723R1zR2R3R4y39:assets%2Fdata%2Finner-joystick%404x.pngR6i4367R7tgoR0i192090R1zR2R3R4y34:assets%2Fdata%2Fouter-joystick.pngR6i1974R7tgoR0i194064R1zR2R3R4y41:assets%2Fdata%2Fouter-joystick%401.5x.pngR6i4044R7tgoR0i198108R1zR2R3R4y39:assets%2Fdata%2Fouter-joystick%402x.pngR6i4500R7tgoR0i202608R1zR2R3R4y39:assets%2Fdata%2Fouter-joystick%403x.pngR6i9185R7tgoR0i211793R1zR2R3R4y39:assets%2Fdata%2Fouter-joystick%404x.pngR6i9685R7tgoR0i221478R1zR2R433R4y29:assets%2Fdata%2Fresources.mbsR6i22277goR0i243755R1zR2R433R4y28:assets%2Fdata%2Fscene-14.mbsR6i750goR0i244505R1zR2R433R4y28:assets%2Fdata%2Fscene-14.scnR6i71goR0i244576R1zR2R433R4y28:assets%2Fdata%2Fscene-15.mbsR6i638goR0i245214R1zR2R433R4y28:assets%2Fdata%2Fscene-15.scnR6i65goR0i245279R1zR2R433R4y28:assets%2Fdata%2Fscene-16.mbsR6i213goR0i245492R1zR2R433R4y28:assets%2Fdata%2Fscene-16.scnR6i26goR0i245518R1zR2R433R4y28:assets%2Fdata%2Fscene-17.mbsR6i1184goR0i246702R1zR2R433R4y28:assets%2Fdata%2Fscene-17.scnR6i67goR0i246769R1zR2R433R4y28:assets%2Fdata%2Fscene-18.mbsR6i963goR0i247732R1zR2R433R4y28:assets%2Fdata%2Fscene-18.scnR6i65goR0i247797R1zR2R433R4y26:assets%2Fdata%2Fscenes.mbsR6i122gh","rootPath":null,"version":2,"libraryArgs":["lib/default.pak","gzip"],"libraryType":"lime.utils.PackedAssetLibrary"}', la.rootPath); a = Ab.fromManifest(a); ta.registerLibrary("default", a); a = ta.getLibrary("default"); null != a ? la.preloadLibraries.push(a) : la.preloadLibraryNames.push("default") }; Math.__name__ = "Math"; var ya = function () { }; k.PokiWraper = ya; ya.__name__ = "PokiWraper"; ya.start = function (a, b) { null == ya.instance && (ya.adBlocked = !1, ya.instance = new xn(a, b)) }; ya.IsVideoPlaying = function () { return ya.instance.IsVideoPlaying() }; ya.moveBanner = function (a) { ya.instance.moveBanner(a) }; ya.isMobileGame = function () { return ya.instance.isMobileGame() }; ya.showBanner = function (a, b, c, d) { null == d && (d = !1); ya.instance.showBanner(a, b, c, d) }; ya.killBanner = function () { ya.instance.killBanner() }; ya.gameLoadingStart = function () { ya.instance.gameLoadingStart() }; ya.gameLoadingFinished = function () { ya.instance.gameLoadingFinished() }; ya.gameLoadingProgress = function (a, b, c) { ya.instance.gameLoadingProgress({percentageDone: a, bytesLoaded: b, bytesTotal: c}) }; ya.commercialBreak = function (a) { ya.instance.commercialBreak(a) }; ya.rewardedBreak = function (a) { ya.instance.rewardedBreak(a) }; ya.sendHappyTime = function (a) { ya.instance.sendHappyTime(a) }; ya.sendGameplayStart = function () { ya.instance.sendGameplayStart() }; ya.sendGameplayStop = function () { ya.instance.sendGameplayStop() }; var V = function () { }; k.Reflect = V; V.__name__ = "Reflect"; V.field = function (a, b) { try { return a[b] } catch (c) { return ra.lastError = c, null } }; V.getProperty = function (a, b) { var c; if (null == a) return null; var d = a.__properties__ ? c = a.__properties__["get_" + b] : !1; return d ? a[c]() : a[b] }; V.fields = function (a) { var b = []; if (null != a) { var c = Object.prototype.hasOwnProperty, d; for (d in a) "__id__" != d && "hx__closures__" != d && c.call(a, d) && b.push(d) } return b }; V.isFunction = function (a) { return "function" == typeof a ? !(a.__name__ || a.__ename__) : !1 }; V.compare = function (a, b) { return a == b ? 0 : a > b ? 1 : -1 }; V.compareMethods = function (a, b) { return a == b ? !0 : V.isFunction(a) && V.isFunction(b) ? a.scope == b.scope && a.method == b.method ? null != a.method : !1 : !1 }; V.isEnumValue = function (a) { return null != a ? null != a.__enum__ : !1 }; V.deleteField = function (a, b) { if (!Object.prototype.hasOwnProperty.call(a, b)) return !1; delete a[b]; return !0 }; V.makeVarArgs = function (a) { return function () { var b = Array.prototype.slice.call(arguments); return a(b) } }; var z = function () { }; k.Std = z; z.__name__ = "Std"; z.string = function (a) { return w.__string_rec(a, "") }; z.parseInt = function (a) { if (null != a) for (var b = 0, c = a.length; b < c;) { var d = b++, e = a.charCodeAt(d); if (8 >= e || 14 <= e && 32 != e && 45 != e) if (b = a.charCodeAt(d + 1), a = parseInt(a, 120 == b || 88 == b ? 16 : 10), isNaN(a)) break; else return a } return null }; var Kd = function () { }; k["_String.String_Impl_"] = Kd; Kd.__name__ = "_String.String_Impl_"; Kd.fromCharCode = function (a) { return String.fromCodePoint(a) }; var Sa = function () { this.b = "" }; k.StringBuf = Sa; Sa.__name__ = "StringBuf"; Sa.prototype = {b: null, __class__: Sa}; var T = function () { }; k.StringTools = T; T.__name__ = "StringTools"; T.htmlEscape = function (a, b) { for (var c = "", d = 0, e = a; d < e.length;) { a = e; var g = d++, r = a.charCodeAt(g); 55296 <= r && 56319 >= r && (r = r - 55232 << 10 | a.charCodeAt(g + 1) & 1023); a = r; 65536 <= a && ++d; switch (a) { case 34: c = b ? c + """ : c + String.fromCodePoint(a); break; case 38: c += "&"; break; case 39: c = b ? c + "'" : c + String.fromCodePoint(a); break; case 60: c += "<"; break; case 62: c += ">"; break; default: c += String.fromCodePoint(a) } } return c }; T.htmlUnescape = function (a) { return a.split(">").join(">").split("<").join("<").split(""").join('"').split("'").join("'").split("&").join("&") }; T.startsWith = function (a, b) { return a.length >= b.length ? 0 == a.lastIndexOf(b, 0) : !1 }; T.endsWith = function (a, b) { var c = b.length, d = a.length; return d >= c ? a.indexOf(b, d - c) == d - c : !1 }; T.isSpace = function (a, b) { a = K.cca(a, b); return 8 < a && 14 > a ? !0 : 32 == a }; T.ltrim = function (a) { for (var b = a.length, c = 0; c < b && T.isSpace(a, c);) ++c; return 0 < c ? K.substr(a, c, b - c) : a }; T.rtrim = function (a) { for (var b = a.length, c = 0; c < b && T.isSpace(a, b - c - 1);) ++c; return 0 < c ? K.substr(a, 0, b - c) : a }; T.trim = function (a) { return T.ltrim(T.rtrim(a)) }; T.rpad = function (a, b, c) { if (0 >= b.length) return a; for (a = null == a ? "null" : "" + a; a.length < c;) a += null == b ? "null" : "" + b; return a }; T.replace = function (a, b, c) { return a.split(b).join(c) }; T.hex = function (a, b) { for (var c = ""; c = "0123456789ABCDEF".charAt(a & 15) + c, a >>>= 4, 0 < a;) ; if (null != b) for (; c.length < b;) c = "0" + c; return c }; var xb = A.ValueType = { __ename__: "ValueType", __constructs__: null, TNull: {_hx_name: "TNull", _hx_index: 0, __enum__: "ValueType", toString: t}, TInt: {_hx_name: "TInt", _hx_index: 1, __enum__: "ValueType", toString: t}, TFloat: {_hx_name: "TFloat", _hx_index: 2, __enum__: "ValueType", toString: t}, TBool: {_hx_name: "TBool", _hx_index: 3, __enum__: "ValueType", toString: t}, TObject: {_hx_name: "TObject", _hx_index: 4, __enum__: "ValueType", toString: t}, TFunction: { _hx_name: "TFunction", _hx_index: 5, __enum__: "ValueType", toString: t }, TClass: (x = function (a) { return {_hx_index: 6, c: a, __enum__: "ValueType", toString: t} }, x._hx_name = "TClass", x.__params__ = ["c"], x), TEnum: (x = function (a) { return {_hx_index: 7, e: a, __enum__: "ValueType", toString: t} }, x._hx_name = "TEnum", x.__params__ = ["e"], x), TUnknown: {_hx_name: "TUnknown", _hx_index: 8, __enum__: "ValueType", toString: t} }; xb.__constructs__ = [xb.TNull, xb.TInt, xb.TFloat, xb.TBool, xb.TObject, xb.TFunction, xb.TClass, xb.TEnum, xb.TUnknown]; var Ha = function () { }; k.Type = Ha; Ha.__name__ = "Type"; Ha.resolveEnum = function (a) { return A[a] }; Ha.createInstance = function (a, b) { return new (Function.prototype.bind.apply(a, [null].concat(b))) }; Ha.createEnum = function (a, b, c) { var d = V.field(a, b); if (null == d) throw I.thrown("No such constructor " + b); if (V.isFunction(d)) { if (null == c) throw I.thrown("Constructor " + b + " need parameters"); return d.apply(a, c) } if (null != c && 0 != c.length) throw I.thrown("Constructor " + b + " does not need parameters"); return d }; Ha.getInstanceFields = function (a) { var b = [], c; for (c in a.prototype) b.push(c); K.remove(b, "__class__"); K.remove(b, "__properties__"); return b }; Ha.typeof = function (a) { switch (typeof a) { case "boolean": return xb.TBool; case "function": return a.__name__ || a.__ename__ ? xb.TObject : xb.TFunction; case "number": return Math.ceil(a) == a % 2147483648 ? xb.TInt : xb.TFloat; case "object": if (null == a) return xb.TNull; var b = a.__enum__; if (null != b) return xb.TEnum(A[b]); a = w.getClass(a); return null != a ? xb.TClass(a) : xb.TObject; case "string": return xb.TClass(String); case "undefined": return xb.TNull; default: return xb.TUnknown } }; Ha.enumParameters = function (a) { var b = A[a.__enum__].__constructs__[a._hx_index].__params__; if (null != b) { for (var c = [], d = 0; d < b.length;) { var e = b[d]; ++d; c.push(a[e]) } return c } return [] }; var Ba = { gt: function (a, b) { var c = 0 > a; return c != 0 > b ? c : a > b }, toFloat: function (a) { return 0 > a ? 4294967296 + a : a + 0 } }, te = function () { }; k["openfl.events.IEventDispatcher"] = te; te.__name__ = "openfl.events.IEventDispatcher"; te.__isInterface__ = !0; te.prototype = { addEventListener: null, dispatchEvent: null, hasEventListener: null, removeEventListener: null, willTrigger: null, __class__: te }; var jb = function (a) { null != a && (this.__targetDispatcher = a) }; k["openfl.events.EventDispatcher"] = jb; jb.__name__ = "openfl.events.EventDispatcher"; jb.__interfaces__ = [te]; jb.prototype = { __eventMap: null, __iterators: null, __targetDispatcher: null, addEventListener: function (a, b, c, d, e) { null == d && (d = 0); null == c && (c = !1); if (null != b) if (null == this.__eventMap && (this.__eventMap = new xa, this.__iterators = new xa), Object.prototype.hasOwnProperty.call(this.__eventMap.h, a)) { v = this.__eventMap.h[a]; e = 0; for (var g = v.length; e < g;) { var r = e++; if (v[r].match(b, c)) return } a = this.__iterators.h[a]; for (e = 0; e < a.length;) g = a[e], ++e, g.active && g.copy(); this.__addListenerByPriority(v, new lj(b, c, d)) } else { var v = []; v.push(new lj(b, c, d)); g = new mj(v); this.__eventMap.h[a] = v; this.__iterators.h[a] = [g] } }, dispatchEvent: function (a) { a.target = null != this.__targetDispatcher ? this.__targetDispatcher : this; return this.__dispatchEvent(a) }, hasEventListener: function (a) { return null == this.__eventMap ? !1 : Object.prototype.hasOwnProperty.call(this.__eventMap.h, a) }, removeEventListener: function (a, b, c) { null == c && (c = !1); if (null != this.__eventMap && null != b) { var d = this.__eventMap.h[a]; if (null != d) { for (var e = this.__iterators.h[a], g = 0, r = d.length; g < r;) { var v = g++; if (d[v].match(b, c)) { for (b = 0; b < e.length;) c = e[b], ++b, c.remove(d[v], v); d.splice(v, 1); break } } 0 == d.length && (d = this.__eventMap, e = a, Object.prototype.hasOwnProperty.call(d.h, e) && delete d.h[e], d = this.__iterators, e = a, Object.prototype.hasOwnProperty.call(d.h, e) && delete d.h[e]); 0 >= Object.keys(this.__eventMap.h).length && (this.__iterators = this.__eventMap = null) } } }, toString: function () { return "[object " + w.getClass(this).__name__.split(".").pop() + "]" }, willTrigger: function (a) { return this.hasEventListener(a) }, __dispatchEvent: function (a) { if (null == this.__eventMap || null == a) return !0; var b = a.type, c = this.__eventMap.h[b]; if (null == c) return !0; null == a.target && (a.target = null != this.__targetDispatcher ? this.__targetDispatcher : this); a.currentTarget = this; var d = 1 == a.eventPhase; b = this.__iterators.h[b]; var e = b[0]; e.active && (e = new mj(c), b.push(e)); e.start(); for (var g = e; g.hasNext();) { var r = g.next(); if (null != r && r.useCapture == d && (r.callback(a), a.__isCanceledNow)) break } e.stop(); e != b[0] ? K.remove(b, e) : e.reset(c); return !a.isDefaultPrevented() }, __removeAllListeners: function () { this.__iterators = this.__eventMap = null }, __addListenerByPriority: function (a, b) { for (var c = a.length, d = c, e = 0; e < c;) { var g = e++; if (a[g].priority < b.priority) { d = g; break } } a.splice(d, 0, b) }, __class__: jb }; var ue = function () { }; k["openfl.display.IBitmapDrawable"] = ue; ue.__name__ = "openfl.display.IBitmapDrawable"; ue.__isInterface__ = !0; ue.prototype = { __blendMode: null, __drawableType: null, __isMask: null, __renderable: null, __renderTransform: null, __transform: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, __getBounds: null, __update: null, __updateTransforms: null, __mask: null, __scrollRect: null, __class__: ue }; var Eb = { __properties__: { set_length: "set_length", get_length: "get_length", set_fixed: "set_fixed", get_fixed: "get_fixed" }, concat: function (a, b) { return a.concat(b) }, copy: function (a) { return a.copy() }, filter: function (a, b) { return a.filter(b) }, get: function (a, b) { return a.get(b) }, indexOf: function (a, b, c) { null == c && (c = 0); return a.indexOf(b, c) }, insertAt: function (a, b, c) { a.insertAt(b, c) }, iterator: function (a) { return a.iterator() }, join: function (a, b) { null == b && (b = ","); return a.join(b) }, lastIndexOf: function (a, b, c) { return a.lastIndexOf(b, c) }, pop: function (a) { return a.pop() }, push: function (a, b) { return a.push(b) }, removeAt: function (a, b) { return a.removeAt(b) }, reverse: function (a) { return a.reverse() }, set: function (a, b, c) { return a.set(b, c) }, shift: function (a) { return a.shift() }, slice: function (a, b, c) { null == b && (b = 0); return a.slice(b, c) }, sort: function (a, b) { a.sort(b) }, splice: function (a, b, c) { return a.splice(b, c) }, toString: function (a) { return null != a ? a.toString() : null }, unshift: function (a, b) { a.unshift(b) }, convert: function (a) { return a }, toBoolVector: function (a, b, c, d) { return new Gf(b, c, d) }, toIntVector: function (a, b, c, d) { return new Hf(b, c, d) }, toFloatVector: function (a, b, c, d) { return new If(b, c, d, !0) }, toFunctionVector: function (a, b, c, d) { return new Jf(b, c, d) }, toObjectVector: function (a, b, c, d) { return new uf(b, c, d, !0) }, toNullVector: function (a, b, c, d) { return new uf(b, c, d, !0) }, fromBoolVector: function (a) { return a }, fromIntVector: function (a) { return a }, fromFloatVector: function (a) { return a }, fromFunctionVector: function (a) { return a }, fromObjectVector: function (a) { return a }, get_fixed: function (a) { return a.fixed }, set_fixed: function (a, b) { return a.fixed = b }, get_length: function (a) { return a.get_length() }, set_length: function (a, b) { return a.set_length(b) } }, yd = function (a, b, c) { this.__pool = new Oc; this.inactiveObjects = this.activeObjects = 0; this.__inactiveObject1 = this.__inactiveObject0 = null; this.__inactiveObjectList = new E; null != a && (this.create = a); null != b && (this.clean = b); null != c && this.set_size(c) }; k["lime.utils.ObjectPool"] = yd; yd.__name__ = "lime.utils.ObjectPool"; yd.prototype = { activeObjects: null, inactiveObjects: null, __inactiveObject0: null, __inactiveObject1: null, __inactiveObjectList: null, __pool: null, __size: null, add: function (a) { this.__pool.exists(a) || (this.__pool.set(a, !1), this.clean(a), this.__pool.set(a, !1), null == this.__inactiveObject0 ? this.__inactiveObject0 = a : null == this.__inactiveObject1 ? this.__inactiveObject1 = a : this.__inactiveObjectList.add(a), this.inactiveObjects++) }, clean: function (a) { }, clear: function () { this.__pool = new Oc; this.inactiveObjects = this.activeObjects = 0; this.__inactiveObject1 = this.__inactiveObject0 = null; this.__inactiveObjectList.clear() }, create: function () { return null }, get: function () { var a = null; if (0 < this.inactiveObjects) null != this.__inactiveObject0 ? (a = this.__inactiveObject0, this.__inactiveObject0 = null) : null != this.__inactiveObject1 ? (a = this.__inactiveObject1, this.__inactiveObject1 = null) : (a = this.__inactiveObjectList.pop(), 0 < this.__inactiveObjectList.length && (this.__inactiveObject0 = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject1 = this.__inactiveObjectList.pop())), this.__pool.set(a, !0), this.inactiveObjects--, this.activeObjects++; else if (null == this.__size || this.activeObjects < this.__size) a = this.create(), null != a && (this.__pool.set(a, !0), this.activeObjects++); return a }, release: function (a) { this.__pool.exists(a) ? this.__pool.get(a) || Qa.error("Object has already been released", { fileName: "lime/utils/ObjectPool.hx", lineNumber: 106, className: "lime.utils.ObjectPool", methodName: "release" }) : Qa.error("Object is not a member of the pool", { fileName: "lime/utils/ObjectPool.hx", lineNumber: 102, className: "lime.utils.ObjectPool", methodName: "release" }); this.activeObjects--; null == this.__size || this.activeObjects + this.inactiveObjects < this.__size ? (this.clean(a), this.__pool.set(a, !1), null == this.__inactiveObject0 ? this.__inactiveObject0 = a : null == this.__inactiveObject1 ? this.__inactiveObject1 = a : this.__inactiveObjectList.add(a), this.inactiveObjects++) : this.__pool.remove(a) }, remove: function (a) { this.__pool.exists(a) && (this.__pool.remove(a), this.__inactiveObject0 == a ? (this.__inactiveObject0 = null, this.inactiveObjects--) : this.__inactiveObject1 == a ? (this.__inactiveObject1 = null, this.inactiveObjects--) : this.__inactiveObjectList.remove(a) ? this.inactiveObjects-- : this.activeObjects--) }, __addInactive: function (a) { this.__pool.set(a, !1); null == this.__inactiveObject0 ? this.__inactiveObject0 = a : null == this.__inactiveObject1 ? this.__inactiveObject1 = a : this.__inactiveObjectList.add(a); this.inactiveObjects++ }, __getInactive: function () { if (null != this.__inactiveObject0) { var a = this.__inactiveObject0; this.__inactiveObject0 = null } else null != this.__inactiveObject1 ? (a = this.__inactiveObject1, this.__inactiveObject1 = null) : (a = this.__inactiveObjectList.pop(), 0 < this.__inactiveObjectList.length && (this.__inactiveObject0 = this.__inactiveObjectList.pop()), 0 < this.__inactiveObjectList.length && (this.__inactiveObject1 = this.__inactiveObjectList.pop())); this.__pool.set(a, !0); this.inactiveObjects--; this.activeObjects++; return a }, __removeInactive: function (a) { if (!(0 >= a || 0 == this.inactiveObjects) && (null != this.__inactiveObject0 && (this.__pool.remove(this.__inactiveObject0), this.__inactiveObject0 = null, this.inactiveObjects--, --a), 0 != a && 0 != this.inactiveObjects && (null != this.__inactiveObject1 && (this.__pool.remove(this.__inactiveObject1), this.__inactiveObject1 = null, this.inactiveObjects--, --a), 0 != a && 0 != this.inactiveObjects))) for (var b = this.__inactiveObjectList.h; null != b;) { var c = b.item; b = b.next; this.__pool.remove(c); this.__inactiveObjectList.remove(c); this.inactiveObjects--; --a; if (0 == a || 0 == this.inactiveObjects) break } }, get_size: function () { return this.__size }, set_size: function (a) { if (null == a) this.__size = null; else { var b = this.inactiveObjects + this.activeObjects; this.__size = a; if (b > a) this.__removeInactive(b - a); else if (a > b) for (var c = 0, d = a - b; c < d;) if (c++, b = this.create(), null != b) this.__pool.set(b, !1), this.__inactiveObjectList.add(b), this.inactiveObjects++; else break } return a }, __class__: yd, __properties__: {set_size: "set_size", get_size: "get_size"} }; var jd = function () { }; k["haxe.IMap"] = jd; jd.__name__ = "haxe.IMap"; jd.__isInterface__ = !0; jd.prototype = { get: null, set: null, exists: null, remove: null, keys: null, iterator: null, keyValueIterator: null, __class__: jd }; var Oc = function () { this.h = {__keys__: {}} }; k["haxe.ds.ObjectMap"] = Oc; Oc.__name__ = "haxe.ds.ObjectMap"; Oc.__interfaces__ = [jd]; Oc.prototype = { h: null, set: function (a, b) { var c = a.__id__; null == c && (c = a.__id__ = R.$haxeUID++); this.h[c] = b; this.h.__keys__[c] = a }, get: function (a) { return this.h[a.__id__] }, exists: function (a) { return null != this.h.__keys__[a.__id__] }, remove: function (a) { a = a.__id__; if (null == this.h.__keys__[a]) return !1; delete this.h[a]; delete this.h.__keys__[a]; return !0 }, keys: function () { var a = [], b; for (b in this.h.__keys__) this.h.hasOwnProperty(b) && a.push(this.h.__keys__[b]); return new Qe(a) }, iterator: function () { return { ref: this.h, it: this.keys(), hasNext: function () { return this.it.hasNext() }, next: function () { var a = this.it.next(); return this.ref[a.__id__] } } }, keyValueIterator: function () { return new kh(this) }, toString: function () { var a = "{"; for (var b = this.keys(); b.hasNext();) { var c = b.next(); a += z.string(z.string(c)); a += " => "; a += z.string(z.string(this.h[c.__id__])); b.hasNext() && (a += ", ") } return a + "}" }, __class__: Oc }; var E = function () { this.length = 0 }; k["haxe.ds.List"] = E; E.__name__ = "haxe.ds.List"; E.prototype = { h: null, q: null, length: null, add: function (a) { a = new rk(a, null); null == this.h ? this.h = a : this.q.next = a; this.q = a; this.length++ }, push: function (a) { this.h = a = new rk(a, this.h); null == this.q && (this.q = a); this.length++ }, pop: function () { if (null == this.h) return null; var a = this.h.item; this.h = this.h.next; null == this.h && (this.q = null); this.length--; return a }, clear: function () { this.q = this.h = null; this.length = 0 }, remove: function (a) { for (var b = null, c = this.h; null != c;) { if (c.item == a) return null == b ? this.h = c.next : b.next = c.next, this.q == c && (this.q = b), this.length--, !0; b = c; c = c.next } return !1 }, iterator: function () { return new yn(this.h) }, __class__: E }; var Ga = function () { jb.call(this); this.__alpha = this.__drawableType = 1; this.__blendMode = 10; this.__cacheAsBitmap = !1; this.__transform = new Ja; this.__visible = !0; this.__rotationSine = this.__rotation = 0; this.__worldAlpha = this.__scaleY = this.__scaleX = this.__rotationCosine = 1; this.__worldBlendMode = 10; this.__worldTransform = new Ja; this.__worldColorTransform = new Pc; this.__renderTransform = new Ja; this.__worldVisible = !0; this.set_name("instance" + ++Ga.__instanceCount); null != Ga.__initStage && (this.stage = Ga.__initStage, Ga.__initStage = null, this.stage.addChild(this)) }; k["openfl.display.DisplayObject"] = Ga; Ga.__name__ = "openfl.display.DisplayObject"; Ga.__interfaces__ = [ue]; Ga.__calculateAbsoluteTransform = function (a, b, c) { c.a = a.a * b.a + a.b * b.c; c.b = a.a * b.b + a.b * b.d; c.c = a.c * b.a + a.d * b.c; c.d = a.c * b.b + a.d * b.d; c.tx = a.tx * b.a + a.ty * b.c + b.tx; c.ty = a.tx * b.b + a.ty * b.d + b.ty }; Ga.__super__ = jb; Ga.prototype = u(jb.prototype, { opaqueBackground: null, parent: null, stage: null, __alpha: null, __blendMode: null, __cacheAsBitmap: null, __cacheAsBitmapMatrix: null, __cacheBitmap: null, __cacheBitmapBackground: null, __cacheBitmapColorTransform: null, __cacheBitmapData: null, __cacheBitmapData2: null, __cacheBitmapData3: null, __cacheBitmapMatrix: null, __cacheBitmapRenderer: null, __cairo: null, __children: null, __customRenderClear: null, __customRenderEvent: null, __drawableType: null, __filters: null, __graphics: null, __interactive: null, __isCacheBitmapRender: null, __isMask: null, __loaderInfo: null, __mask: null, __maskTarget: null, __name: null, __objectTransform: null, __renderable: null, __renderDirty: null, __renderParent: null, __renderTransform: null, __renderTransformCache: null, __renderTransformChanged: null, __rotation: null, __rotationCosine: null, __rotationSine: null, __scale9Grid: null, __scaleX: null, __scaleY: null, __scrollRect: null, __shader: null, __tempPoint: null, __transform: null, __transformDirty: null, __visible: null, __worldAlpha: null, __worldAlphaChanged: null, __worldBlendMode: null, __worldClip: null, __worldClipChanged: null, __worldColorTransform: null, __worldShader: null, __worldScale9Grid: null, __worldTransform: null, __worldVisible: null, __worldVisibleChanged: null, __worldTransformInvalid: null, __worldZ: null, __canvas: null, __context: null, __style: null, addEventListener: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); null == c && (c = !1); switch (a) { case "activate": case "deactivate": case "enterFrame": case "exitFrame": case "frameConstructed": case "render": Object.prototype.hasOwnProperty.call(Ga.__broadcastEvents.h, a) || (Ga.__broadcastEvents.h[a] = []); var g = Ga.__broadcastEvents.h[a]; -1 == g.indexOf(this) && g.push(this); break; case "clearDOM": case "renderCairo": case "renderCanvas": case "renderDOM": case "renderOpenGL": null == this.__customRenderEvent && (this.__customRenderEvent = new wg(null), this.__customRenderEvent.objectColorTransform = new Pc, this.__customRenderEvent.objectMatrix = new Ja, this.__customRenderClear = !0) } jb.prototype.addEventListener.call(this, a, b, c, d, e) }, dispatchEvent: function (a) { if (a instanceof Qb) { var b = this.__getRenderTransform(); a.stageX = a.localX * b.a + a.localY * b.c + b.tx; b = this.__getRenderTransform(); a.stageY = a.localX * b.b + a.localY * b.d + b.ty } else a instanceof $d && (b = this.__getRenderTransform(), a.stageX = a.localX * b.a + a.localY * b.c + b.tx, b = this.__getRenderTransform(), a.stageY = a.localX * b.b + a.localY * b.d + b.ty); a.target = this; return this.__dispatchWithCapture(a) }, getBounds: function (a) { var b = Ja.__pool.get(); if (null != a && a != this) { b.copyFrom(this.__getWorldTransform()); var c = Ja.__pool.get(); c.copyFrom(a.__getWorldTransform()); c.invert(); b.concat(c); Ja.__pool.release(c) } else b.identity(); a = new ba; this.__getBounds(a, b); Ja.__pool.release(b); return a }, getRect: function (a) { return this.getBounds(a) }, globalToLocal: function (a) { return this.__globalToLocal(a, new na) }, hitTestObject: function (a) { if (null != a && null != a.parent && null != this.parent) { var b = this.getBounds(this); a = a.getBounds(this); return b.intersects(a) } return !1 }, hitTestPoint: function (a, b, c) { null == c && (c = !1); return null != this.stage ? this.__hitTest(a, b, c, null, !1, this) : !1 }, invalidate: function () { this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, localToGlobal: function (a) { return this.__getRenderTransform().transformPoint(a) }, removeEventListener: function (a, b, c) { null == c && (c = !1); jb.prototype.removeEventListener.call(this, a, b, c); switch (a) { case "activate": case "deactivate": case "enterFrame": case "exitFrame": case "frameConstructed": case "render": this.hasEventListener(a) || Object.prototype.hasOwnProperty.call(Ga.__broadcastEvents.h, a) && K.remove(Ga.__broadcastEvents.h[a], this); break; case "clearDOM": case "renderCairo": case "renderCanvas": case "renderDOM": case "renderOpenGL": this.hasEventListener("clearDOM") || this.hasEventListener("renderCairo") || this.hasEventListener("renderCanvas") || this.hasEventListener("renderDOM") || this.hasEventListener("renderOpenGL") || (this.__customRenderEvent = null) } }, __cleanup: function () { this.__context = this.__canvas = this.__cairo = null; null != this.__graphics && this.__graphics.__cleanup(); null != this.__cacheBitmap && (this.__cacheBitmap.__cleanup(), this.__cacheBitmap = null); null != this.__cacheBitmapData && (this.__cacheBitmapData.dispose(), this.__cacheBitmapData = null) }, __dispatch: function (a) { if (null != this.__eventMap && this.hasEventListener(a.type)) { var b = jb.prototype.__dispatchEvent.call(this, a); return a.__isCanceled ? !0 : b } return !0 }, __dispatchChildren: function (a) { }, __dispatchEvent: function (a) { var b = a.bubbles ? this.parent : null, c = jb.prototype.__dispatchEvent.call(this, a); if (a.__isCanceled) return !0; null != b && b != this && (a.eventPhase = 3, null == a.target && (a.target = this), b.__dispatchEvent(a)); return c }, __dispatchWithCapture: function (a) { null == a.target && (a.target = this); if (null != this.parent) if (a.eventPhase = 1, this.parent == this.stage) this.parent.__dispatch(a); else { for (var b = Ga.__tempStack.get(), c = this.parent, d = 0; null != c;) b.set(d, c), c = c.parent, ++d; c = 0; for (var e = d; c < e;) { var g = c++; b.get(d - g - 1).__dispatch(a) } Ga.__tempStack.release(b) } a.eventPhase = 2; return this.__dispatchEvent(a) }, __enterFrame: function (a) { }, __getBounds: function (a, b) { null != this.__graphics && this.__graphics.__getBounds(a, b) }, __getCursor: function () { return null }, __getFilterBounds: function (a, b) { this.__getRenderBounds(a, b); if (null != this.__filters) { b = ba.__pool.get(); for (var c = 0, d = this.__filters; c < d.length;) { var e = d[c]; ++c; b.__expand(-e.__leftExtension, -e.__topExtension, e.__leftExtension + e.__rightExtension, e.__topExtension + e.__bottomExtension) } a.width += b.width; a.height += b.height; a.x += b.x; a.y += b.y; ba.__pool.release(b) } }, __getInteractive: function (a) { return !1 }, __getLocalBounds: function (a) { this.__getBounds(a, this.__transform); a.x -= this.__transform.tx; a.y -= this.__transform.ty }, __getRenderBounds: function (a, b) { if (null == this.__scrollRect) this.__getBounds(a, b); else { var c = ba.__pool.get(); c.copyFrom(this.__scrollRect); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) } }, __getRenderTransform: function () { this.__getWorldTransform(); return this.__renderTransform }, __getWorldTransform: function () { if (this.__transformDirty || this.__worldTransformInvalid) { var a = [], b = this; if (null == this.parent) this.__update(!0, !1); else for (; b != this.stage && (a.push(b), b = b.parent, null != b);) ; for (var c = a.length; 0 <= --c;) b = a[c], b.__update(!0, !1) } return this.__worldTransform }, __globalToLocal: function (a, b) { this.__getRenderTransform(); if (a == b) { var c = this.__renderTransform, d = c.a * c.d - c.b * c.c; if (0 == d) a.x = -c.tx, a.y = -c.ty; else { var e = 1 / d * (c.c * (c.ty - a.y) + c.d * (a.x - c.tx)); a.y = 1 / d * (c.a * (a.y - c.ty) + c.b * (c.tx - a.x)); a.x = e } } else c = this.__renderTransform, d = c.a * c.d - c.b * c.c, b.x = 0 == d ? -c.tx : 1 / d * (c.c * (c.ty - a.y) + c.d * (a.x - c.tx)), c = this.__renderTransform, d = c.a * c.d - c.b * c.c, b.y = 0 == d ? -c.ty : 1 / d * (c.a * (a.y - c.ty) + c.b * (c.tx - a.x)); return b }, __hitTest: function (a, b, c, d, e, g) { if (null != this.__graphics) { if (!g.__visible || this.__isMask || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; if (this.__graphics.__hitTest(a, b, c, this.__getRenderTransform())) return null == d || e || d.push(g), !0 } return !1 }, __hitTestMask: function (a, b) { return null != this.__graphics && this.__graphics.__hitTest(a, b, !0, this.__getRenderTransform()) ? !0 : !1 }, __readGraphicsData: function (a, b) { null != this.__graphics && this.__graphics.__readGraphicsData(a) }, __setParentRenderDirty: function () { var a = null != this.__renderParent ? this.__renderParent : this.parent; null == a || a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty()) }, __setRenderDirty: function () { this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __setStageReference: function (a) { this.stage = a }, __setTransformDirty: function () { this.__transformDirty || (this.__transformDirty = !0, this.__setWorldTransformInvalid(), this.__setParentRenderDirty()) }, __setWorldTransformInvalid: function () { this.__worldTransformInvalid = !0 }, __stopAllMovieClips: function () { }, __update: function (a, b) { var c = null != this.__renderParent ? this.__renderParent : this.parent; this.__isMask && null == c && (c = this.__maskTarget); this.__renderable = this.__visible && 0 != this.__scaleX && 0 != this.__scaleY && !this.__isMask && (null == c || !c.__isMask); this.__updateTransforms(); this.__worldTransformInvalid = this.__transformDirty = !1; if (!a) if (Ga.__supportDOM && (this.__renderTransformChanged = !this.__renderTransform.equals(this.__renderTransformCache), null == this.__renderTransformCache ? this.__renderTransformCache = this.__renderTransform.clone() : this.__renderTransformCache.copyFrom(this.__renderTransform)), null != c) { if (Ga.__supportDOM) { var d = c.__worldVisible && this.__visible; this.__worldVisibleChanged = this.__worldVisible != d; this.__worldVisible = d; d = this.get_alpha() * c.__worldAlpha; this.__worldAlphaChanged = this.__worldAlpha != d; this.__worldAlpha = d } else this.__worldAlpha = this.get_alpha() * c.__worldAlpha; null != this.__objectTransform ? (this.__worldColorTransform.__copyFrom(this.__objectTransform.get_colorTransform()), this.__worldColorTransform.__combine(c.__worldColorTransform)) : this.__worldColorTransform.__copyFrom(c.__worldColorTransform); this.__worldBlendMode = null == this.__blendMode || 10 == this.__blendMode ? c.__worldBlendMode : this.__blendMode; this.__worldShader = null == this.__shader ? c.__shader : this.__shader; this.__worldScale9Grid = null == this.__scale9Grid ? c.__scale9Grid : this.__scale9Grid } else this.__worldAlpha = this.get_alpha(), Ga.__supportDOM && (this.__worldVisibleChanged = this.__worldVisible != this.__visible, this.__worldVisible = this.__visible, this.__worldAlphaChanged = this.__worldAlpha != this.get_alpha()), null != this.__objectTransform ? this.__worldColorTransform.__copyFrom(this.__objectTransform.get_colorTransform()) : this.__worldColorTransform.__identity(), this.__worldBlendMode = this.__blendMode, this.__worldShader = this.__shader, this.__worldScale9Grid = this.__scale9Grid; b && null != this.get_mask() && this.get_mask().__update(a, !0) }, __updateTransforms: function (a) { var b = null != a; a = b ? a : this.__transform; null == this.__worldTransform && (this.__worldTransform = new Ja); null == this.__renderTransform && (this.__renderTransform = new Ja); var c = null != this.__renderParent ? this.__renderParent : this.parent; if (b || null == this.parent) this.__worldTransform.copyFrom(a); else { var d = this.parent.__worldTransform, e = this.__worldTransform; e.a = a.a * d.a + a.b * d.c; e.b = a.a * d.b + a.b * d.d; e.c = a.c * d.a + a.d * d.c; e.d = a.c * d.b + a.d * d.d; e.tx = a.tx * d.a + a.ty * d.c + d.tx; e.ty = a.tx * d.b + a.ty * d.d + d.ty } b || null == c ? this.__renderTransform.copyFrom(a) : (d = c.__renderTransform, e = this.__renderTransform, e.a = a.a * d.a + a.b * d.c, e.b = a.a * d.b + a.b * d.d, e.c = a.c * d.a + a.d * d.c, e.d = a.c * d.b + a.d * d.d, e.tx = a.tx * d.a + a.ty * d.c + d.tx, e.ty = a.tx * d.b + a.ty * d.d + d.ty); null != this.__scrollRect && (b = this.__renderTransform, a = -this.__scrollRect.x, c = -this.__scrollRect.y, b.tx = a * b.a + c * b.c + b.tx, b.ty = a * b.b + c * b.d + b.ty) }, get_alpha: function () { return this.__alpha }, set_alpha: function (a) { 1 < a && (a = 1); 0 > a && (a = 0); a == this.__alpha || this.get_cacheAsBitmap() || this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__alpha = a }, get_blendMode: function () { return this.__blendMode }, set_blendMode: function (a) { null == a && (a = 10); a == this.__blendMode || this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__blendMode = a }, get_cacheAsBitmap: function () { return null == this.__filters ? this.__cacheAsBitmap : !0 }, set_cacheAsBitmap: function (a) { a == this.__cacheAsBitmap || this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__cacheAsBitmap = a }, get_cacheAsBitmapMatrix: function () { return this.__cacheAsBitmapMatrix }, set_cacheAsBitmapMatrix: function (a) { this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__cacheAsBitmapMatrix = null != a ? a.clone() : a }, get_filters: function () { return null == this.__filters ? [] : this.__filters.slice() }, set_filters: function (a) { null != a && 0 < a.length ? (this.__filters = a, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())) : null != this.__filters && (this.__filters = null, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return a }, get_height: function () { var a = ba.__pool.get(); this.__getLocalBounds(a); var b = a.height; ba.__pool.release(a); return b }, set_height: function (a) { var b = ba.__pool.get(), c = Ja.__pool.get(); c.identity(); this.__getBounds(b, c); a != b.height ? this.set_scaleY(a / b.height) : this.set_scaleY(1); ba.__pool.release(b); Ja.__pool.release(c); return a }, get_loaderInfo: function () { return null != this.stage ? Ic.current.__loaderInfo : null }, get_mask: function () { return this.__mask }, set_mask: function (a) { if (a == this.__mask) return a; a != this.__mask && (this.__setTransformDirty(), this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); if (null != this.__mask) { this.__mask.__isMask = !1; this.__mask.__maskTarget = null; this.__mask.__setTransformDirty(); var b = this.__mask; b.__renderDirty || (b.__renderDirty = !0, b.__setParentRenderDirty()) } null != a && (a.__isMask = !0, a.__maskTarget = this, a.__setWorldTransformInvalid()); null != this.__cacheBitmap && this.__cacheBitmap.get_mask() != a && this.__cacheBitmap.set_mask(a); return this.__mask = a }, get_mouseX: function () { var a = null != this.stage ? this.stage.__mouseX : Ic.current.stage.__mouseX, b = null != this.stage ? this.stage.__mouseY : Ic.current.stage.__mouseY, c = this.__getRenderTransform(), d = c.a * c.d - c.b * c.c; return 0 == d ? -c.tx : 1 / d * (c.c * (c.ty - b) + c.d * (a - c.tx)) }, get_mouseY: function () { var a = null != this.stage ? this.stage.__mouseX : Ic.current.stage.__mouseX, b = null != this.stage ? this.stage.__mouseY : Ic.current.stage.__mouseY, c = this.__getRenderTransform(), d = c.a * c.d - c.b * c.c; return 0 == d ? -c.ty : 1 / d * (c.a * (b - c.ty) + c.b * (c.tx - a)) }, get_name: function () { return this.__name }, set_name: function (a) { return this.__name = a }, get_root: function () { return null != this.stage ? Ic.current : null }, get_rotation: function () { return this.__rotation }, set_rotation: function (a) { if (a != this.__rotation) { this.__rotation = a; var b = Math.PI / 180 * this.__rotation; this.__rotationSine = Math.sin(b); this.__rotationCosine = Math.cos(b); this.__transform.a = this.__rotationCosine * this.__scaleX; this.__transform.b = this.__rotationSine * this.__scaleX; this.__transform.c = -this.__rotationSine * this.__scaleY; this.__transform.d = this.__rotationCosine * this.__scaleY; this.__setTransformDirty() } return a }, get_scale9Grid: function () { return null == this.__scale9Grid ? null : this.__scale9Grid.clone() }, set_scale9Grid: function (a) { if (null == a && null == this.__scale9Grid || null != a && null != this.__scale9Grid && this.__scale9Grid.equals(a)) return a; null != a ? (null == this.__scale9Grid && (this.__scale9Grid = new ba), this.__scale9Grid.copyFrom(a)) : this.__scale9Grid = null; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return a }, get_scaleX: function () { return this.__scaleX }, set_scaleX: function (a) { if (a != this.__scaleX) if (this.__scaleX = a, 0 == this.__transform.b) a != this.__transform.a && this.__setTransformDirty(), this.__transform.a = a; else { var b = this.__rotationCosine * a, c = this.__rotationSine * a; this.__transform.a == b && this.__transform.b == c || this.__setTransformDirty(); this.__transform.a = b; this.__transform.b = c } return a }, get_scaleY: function () { return this.__scaleY }, set_scaleY: function (a) { if (a != this.__scaleY) if (this.__scaleY = a, 0 == this.__transform.c) a != this.__transform.d && this.__setTransformDirty(), this.__transform.d = a; else { var b = -this.__rotationSine * a, c = this.__rotationCosine * a; this.__transform.d == c && this.__transform.c == b || this.__setTransformDirty(); this.__transform.c = b; this.__transform.d = c } return a }, get_scrollRect: function () { return null == this.__scrollRect ? null : this.__scrollRect.clone() }, set_scrollRect: function (a) { if (null == a && null == this.__scrollRect || null != a && null != this.__scrollRect && this.__scrollRect.equals(a)) return a; null != a ? (null == this.__scrollRect && (this.__scrollRect = new ba), this.__scrollRect.copyFrom(a)) : this.__scrollRect = null; this.__setTransformDirty(); Ga.__supportDOM && !this.__renderDirty && (this.__renderDirty = !0, this.__setParentRenderDirty()); return a }, get_shader: function () { return this.__shader }, set_shader: function (a) { this.__shader = a; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return a }, get_transform: function () { null == this.__objectTransform && (this.__objectTransform = new sk(this)); return this.__objectTransform }, set_transform: function (a) { if (null == a) throw I.thrown(new nj("Parameter transform must be non-null.")); null == this.__objectTransform && (this.__objectTransform = new sk(this)); this.__setTransformDirty(); this.__objectTransform.set_matrix(a.get_matrix()); if (!this.__objectTransform.get_colorTransform().__equals(a.get_colorTransform(), !0) || !this.get_cacheAsBitmap() && this.__objectTransform.get_colorTransform().alphaMultiplier != a.get_colorTransform().alphaMultiplier) this.__objectTransform.get_colorTransform().__copyFrom(a.get_colorTransform()), this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__objectTransform }, get_visible: function () { return this.__visible }, set_visible: function (a) { a == this.__visible || this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return this.__visible = a }, get_width: function () { var a = ba.__pool.get(); this.__getLocalBounds(a); var b = a.width; ba.__pool.release(a); return b }, set_width: function (a) { var b = ba.__pool.get(), c = Ja.__pool.get(); c.identity(); this.__getBounds(b, c); a != b.width ? this.set_scaleX(a / b.width) : this.set_scaleX(1); ba.__pool.release(b); Ja.__pool.release(c); return a }, get_x: function () { return this.__transform.tx }, set_x: function (a) { a != this.__transform.tx && this.__setTransformDirty(); return this.__transform.tx = a }, get_y: function () { return this.__transform.ty }, set_y: function (a) { a != this.__transform.ty && this.__setTransformDirty(); return this.__transform.ty = a }, __class__: Ga, __properties__: { set_y: "set_y", get_y: "get_y", set_x: "set_x", get_x: "get_x", set_width: "set_width", get_width: "get_width", set_visible: "set_visible", get_visible: "get_visible", set_transform: "set_transform", get_transform: "get_transform", set_shader: "set_shader", get_shader: "get_shader", set_scrollRect: "set_scrollRect", get_scrollRect: "get_scrollRect", set_scaleY: "set_scaleY", get_scaleY: "get_scaleY", set_scaleX: "set_scaleX", get_scaleX: "get_scaleX", set_scale9Grid: "set_scale9Grid", get_scale9Grid: "get_scale9Grid", set_rotation: "set_rotation", get_rotation: "get_rotation", get_root: "get_root", set_name: "set_name", get_name: "get_name", get_mouseY: "get_mouseY", get_mouseX: "get_mouseX", set_mask: "set_mask", get_mask: "get_mask", get_loaderInfo: "get_loaderInfo", set_height: "set_height", get_height: "get_height", set_filters: "set_filters", get_filters: "get_filters", set_cacheAsBitmapMatrix: "set_cacheAsBitmapMatrix", get_cacheAsBitmapMatrix: "get_cacheAsBitmapMatrix", set_cacheAsBitmap: "set_cacheAsBitmap", get_cacheAsBitmap: "get_cacheAsBitmap", set_blendMode: "set_blendMode", get_blendMode: "get_blendMode", set_alpha: "set_alpha", get_alpha: "get_alpha" } }); var Bb = function () { Ga.call(this); this.doubleClickEnabled = !1; this.mouseEnabled = !0; this.needsSoftKeyboard = !1; this.__tabEnabled = null; this.__tabIndex = -1 }; k["openfl.display.InteractiveObject"] = Bb; Bb.__name__ = "openfl.display.InteractiveObject"; Bb.__super__ = Ga; Bb.prototype = u(Ga.prototype, { doubleClickEnabled: null, focusRect: null, mouseEnabled: null, needsSoftKeyboard: null, softKeyboardInputAreaOfInterest: null, __tabEnabled: null, __tabIndex: null, requestSoftKeyboard: function () { Ic.notImplemented({ fileName: "openfl/display/InteractiveObject.hx", lineNumber: 1251, className: "openfl.display.InteractiveObject", methodName: "requestSoftKeyboard" }); return !1 }, __allowMouseFocus: function () { return this.get_tabEnabled() }, __getInteractive: function (a) { null != a && (a.push(this), null != this.parent && this.parent.__getInteractive(a)); return !0 }, __hitTest: function (a, b, c, d, e, g) { return !g.get_visible() || this.__isMask || e && !this.mouseEnabled ? !1 : Ga.prototype.__hitTest.call(this, a, b, c, d, e, g) }, __tabTest: function (a) { this.get_tabEnabled() && a.push(this) }, get_tabEnabled: function () { return 1 == this.__tabEnabled ? !0 : !1 }, set_tabEnabled: function (a) { this.__tabEnabled != a && (this.__tabEnabled = a, this.dispatchEvent(new oa("tabEnabledChange", !0, !1))); return this.__tabEnabled }, get_tabIndex: function () { return this.__tabIndex }, set_tabIndex: function (a) { if (this.__tabIndex != a) { if (-1 > a) throw I.thrown(new Jh("Parameter tabIndex must be a non-negative number; got " + a)); this.__tabIndex = a; this.dispatchEvent(new oa("tabIndexChange", !0, !1)) } return this.__tabIndex }, __class__: Bb, __properties__: u(Ga.prototype.__properties__, { set_tabIndex: "set_tabIndex", get_tabIndex: "get_tabIndex", set_tabEnabled: "set_tabEnabled", get_tabEnabled: "get_tabEnabled" }) }); var ab = function () { Bb.call(this); this.__tabChildren = this.mouseChildren = !0; this.__children = []; this.__removedChildren = Eb.toObjectVector(null) }; k["openfl.display.DisplayObjectContainer"] = ab; ab.__name__ = "openfl.display.DisplayObjectContainer"; ab.__super__ = Bb; ab.prototype = u(Bb.prototype, { mouseChildren: null, __removedChildren: null, __tabChildren: null, addChild: function (a) { return this.addChildAt(a, this.get_numChildren()) }, addChildAt: function (a, b) { if (null == a) throw a = new nj("Error #2007: Parameter child must be non-null."), a.errorID = 2007, I.thrown(a); if (a.stage == a) throw a = new oi("Error #3783: A Stage object cannot be added as the child of another object."), a.errorID = 3783, I.thrown(a); if (b > this.__children.length || 0 > b) throw I.thrown("Invalid index position " + b); if (a.parent == this) this.__children[b] != a && (K.remove(this.__children, a), this.__children.splice(b, 0, a), this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); else { null != a.parent && a.parent.removeChild(a); this.__children.splice(b, 0, a); a.parent = this; (b = null != this.stage && null == a.stage) && a.__setStageReference(this.stage); a.__setTransformDirty(); a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty()); this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); var c = new oa("added"); c.bubbles = !0; c.target = a; a.__dispatchWithCapture(c); b && (c = new oa("addedToStage", !1, !1), a.__dispatchWithCapture(c), a.__dispatchChildren(c)) } return a }, areInaccessibleObjectsUnderPoint: function (a) { return !1 }, contains: function (a) { for (; a != this && null != a;) a = a.parent; return a == this }, getChildAt: function (a) { return 0 <= a && a < this.__children.length ? this.__children[a] : null }, getChildByName: function (a) { for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; if (d.get_name() == a) return d } return null }, getChildIndex: function (a) { for (var b = 0, c = this.__children.length; b < c;) { var d = b++; if (this.__children[d] == a) return d } return -1 }, getObjectsUnderPoint: function (a) { var b = []; this.__hitTest(a.x, a.y, !1, b, !1, this); b.reverse(); return b }, removeChild: function (a) { if (null != a && a.parent == this) { a.__setTransformDirty(); a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty()); this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); var b = new oa("removed", !0); a.__dispatchWithCapture(b); null != this.stage && (null != a.stage && this.stage.get_focus() == a && this.stage.set_focus(null), b = new oa("removedFromStage", !1, !1), a.__dispatchWithCapture(b), a.__dispatchChildren(b), a.__setStageReference(null)); a.parent = null; K.remove(this.__children, a); this.__removedChildren.push(a); a.__setTransformDirty() } return a }, removeChildAt: function (a) { return 0 <= a && a < this.__children.length ? this.removeChild(this.__children[a]) : null }, removeChildren: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); if (2147483647 == b && (b = this.__children.length - 1, 0 > b)) return; if (!(a > this.__children.length - 1)) { if (b < a || 0 > a || b > this.__children.length) throw I.thrown(new Jh("The supplied index is out of bounds.")); for (b -= a; 0 <= b;) this.removeChildAt(a), --b } }, resolve: function (a) { if (null == this.__children) return null; for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; if (d.get_name() == a) return d } return null }, setChildIndex: function (a, b) { 0 <= b && b <= this.__children.length && a.parent == this && (K.remove(this.__children, a), this.__children.splice(b, 0, a)) }, stopAllMovieClips: function () { this.__stopAllMovieClips() }, swapChildren: function (a, b) { if (a.parent == this && b.parent == this) { var c = this.__children.indexOf(a), d = this.__children.indexOf(b); this.__children[c] = b; this.__children[d] = a; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) } }, swapChildrenAt: function (a, b) { var c = this.__children[a]; this.__children[a] = this.__children[b]; this.__children[b] = c; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __cleanup: function () { Bb.prototype.__cleanup.call(this); for (var a = 0, b = this.__children; a < b.length;) { var c = b[a]; ++a; c.__cleanup() } for (a = this.__removedChildren.iterator(); a.hasNext();) b = a.next(), null == b.stage && b.__cleanup(); this.__removedChildren.set_length(0) }, __cleanupRemovedChildren: function () { for (var a = this.__removedChildren.iterator(); a.hasNext();) { var b = a.next(); null == b.stage && b.__cleanup() } this.__removedChildren.set_length(0) }, __dispatchChildren: function (a) { if (null != this.__children) for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; a.target = d; if (!d.__dispatchWithCapture(a)) break; d.__dispatchChildren(a) } }, __enterFrame: function (a) { for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; d.__enterFrame(a) } }, __getBounds: function (a, b) { Bb.prototype.__getBounds.call(this, a, b); if (0 != this.__children.length) { for (var c = Ja.__pool.get(), d = 0, e = this.__children; d < e.length;) { var g = e[d]; ++d; if (0 != g.__scaleX && 0 != g.__scaleY) { var r = g.__transform; c.a = r.a * b.a + r.b * b.c; c.b = r.a * b.b + r.b * b.d; c.c = r.c * b.a + r.d * b.c; c.d = r.c * b.b + r.d * b.d; c.tx = r.tx * b.a + r.ty * b.c + b.tx; c.ty = r.tx * b.b + r.ty * b.d + b.ty; g.__getBounds(a, c) } } Ja.__pool.release(c) } }, __getFilterBounds: function (a, b) { Bb.prototype.__getFilterBounds.call(this, a, b); if (null == this.__scrollRect && 0 != this.__children.length) { for (var c = Ja.__pool.get(), d = 0, e = this.__children; d < e.length;) { var g = e[d]; ++d; if (0 != g.__scaleX && 0 != g.__scaleY && !g.__isMask) { var r = g.__transform; c.a = r.a * b.a + r.b * b.c; c.b = r.a * b.b + r.b * b.d; c.c = r.c * b.a + r.d * b.c; c.d = r.c * b.b + r.d * b.d; c.tx = r.tx * b.a + r.ty * b.c + b.tx; c.ty = r.tx * b.b + r.ty * b.d + b.ty; r = ba.__pool.get(); g.__getFilterBounds(r, c); a.__expand(r.x, r.y, r.width, r.height); ba.__pool.release(r) } } Ja.__pool.release(c) } }, __getRenderBounds: function (a, b) { if (null != this.__scrollRect) Bb.prototype.__getRenderBounds.call(this, a, b); else if (Bb.prototype.__getBounds.call(this, a, b), 0 != this.__children.length) { for (var c = Ja.__pool.get(), d = 0, e = this.__children; d < e.length;) { var g = e[d]; ++d; if (0 != g.__scaleX && 0 != g.__scaleY && !g.__isMask) { var r = g.__transform; c.a = r.a * b.a + r.b * b.c; c.b = r.a * b.b + r.b * b.d; c.c = r.c * b.a + r.d * b.c; c.d = r.c * b.b + r.d * b.d; c.tx = r.tx * b.a + r.ty * b.c + b.tx; c.ty = r.tx * b.b + r.ty * b.d + b.ty; g.__getRenderBounds(a, c) } } Ja.__pool.release(c) } }, __hitTest: function (a, b, c, d, e, g) { if (!g.get_visible() || this.__isMask || e && !this.mouseEnabled && !this.mouseChildren || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; if (null != this.__scrollRect) { var r = na.__pool.get(); r.setTo(a, b); var v = this.__getRenderTransform(), f = v.a * v.d - v.b * v.c; if (0 == f) r.x = -v.tx, r.y = -v.ty; else { var m = 1 / f * (v.c * (v.ty - r.y) + v.d * (r.x - v.tx)); r.y = 1 / f * (v.a * (r.y - v.ty) + v.b * (v.tx - r.x)); r.x = m } if (!this.__scrollRect.containsPoint(r)) return na.__pool.release(r), !1; na.__pool.release(r) } r = this.__children.length; if (e) if (null == d || !this.mouseChildren) for (; 0 <= --r;) { if (this.__children[r].__hitTest(a, b, c, null, !0, this.__children[r])) return null != d && d.push(g), !0 } else { if (null != d) { e = d.length; for (f = !1; 0 <= --r && !(((v = this.__children[r].__getInteractive(null)) || this.mouseEnabled && !f) && this.__children[r].__hitTest(a, b, c, d, !0, this.__children[r]) && (f = !0, v && d.length > e));) ; if (f) return d.splice(e, 0, g), !0 } } else { for (f = !1; 0 <= --r && (!this.__children[r].__hitTest(a, b, c, d, !1, this.__children[r]) || (f = !0, null != d));) ; return f } return !1 }, __hitTestMask: function (a, b) { for (var c = this.__children.length; 0 <= --c;) if (this.__children[c].__hitTestMask(a, b)) return !0; return !1 }, __readGraphicsData: function (a, b) { Bb.prototype.__readGraphicsData.call(this, a, b); if (b) for (var c = 0, d = this.__children; c < d.length;) { var e = d[c]; ++c; e.__readGraphicsData(a, b) } }, __setStageReference: function (a) { Bb.prototype.__setStageReference.call(this, a); if (null != this.__children) for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; d.__setStageReference(a) } }, __setWorldTransformInvalid: function () { if (!this.__worldTransformInvalid && (this.__worldTransformInvalid = !0, null != this.__children)) for (var a = 0, b = this.__children; a < b.length;) { var c = b[a]; ++a; c.__setWorldTransformInvalid() } }, __stopAllMovieClips: function () { for (var a = 0, b = this.__children; a < b.length;) { var c = b[a]; ++a; c.__stopAllMovieClips() } }, __tabTest: function (a) { Bb.prototype.__tabTest.call(this, a); if (this.get_tabChildren()) for (var b, c = 0, d = this.__children; c < d.length;) { var e = d[c]; ++c; if (b = e.__getInteractive(null)) b = e, b.__tabTest(a) } }, __update: function (a, b) { Bb.prototype.__update.call(this, a, b); if (b) { b = 0; for (var c = this.__children; b < c.length;) { var d = c[b]; ++b; d.__update(a, !0) } } }, get_numChildren: function () { return this.__children.length }, get_tabChildren: function () { return this.__tabChildren }, set_tabChildren: function (a) { this.__tabChildren != a && (this.__tabChildren = a, this.dispatchEvent(new oa("tabChildrenChange", !0, !1))); return this.__tabChildren }, __class__: ab, __properties__: u(Bb.prototype.__properties__, { set_tabChildren: "set_tabChildren", get_tabChildren: "get_tabChildren", get_numChildren: "get_numChildren" }) }); var Ca = function () { ab.call(this); this.__drawableType = 4; this.__buttonMode = !1; this.useHandCursor = !0 }; k["openfl.display.Sprite"] = Ca; Ca.__name__ = "openfl.display.Sprite"; Ca.__super__ = ab; Ca.prototype = u(ab.prototype, { dropTarget: null, hitArea: null, useHandCursor: null, __buttonMode: null, startDrag: function (a, b) { null == a && (a = !1); null != this.stage && this.stage.__startDrag(this, a, b) }, stopDrag: function () { null != this.stage && this.stage.__stopDrag(this) }, __getCursor: function () { return this.__buttonMode && this.useHandCursor ? "button" : null }, __hitTest: function (a, b, c, d, e, g) { if (e && !this.mouseEnabled && !this.mouseChildren) return !1; if (!g.get_visible() || this.__isMask || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return this.__hitTestHitArea(a, b, c, d, e, g); if (null != this.__scrollRect) { var r = na.__pool.get(); r.setTo(a, b); var v = this.__getRenderTransform(), f = v.a * v.d - v.b * v.c; if (0 == f) r.x = -v.tx, r.y = -v.ty; else { var m = 1 / f * (v.c * (v.ty - r.y) + v.d * (r.x - v.tx)); r.y = 1 / f * (v.a * (r.y - v.ty) + v.b * (v.tx - r.x)); r.x = m } if (!this.__scrollRect.containsPoint(r)) return na.__pool.release(r), this.__hitTestHitArea(a, b, c, d, !0, g); na.__pool.release(r) } return ab.prototype.__hitTest.call(this, a, b, c, d, e, g) ? null != d ? e : !0 : null == this.hitArea && null != this.__graphics && this.__graphics.__hitTest(a, b, c, this.__getRenderTransform()) ? (null == d || e && !this.mouseEnabled || d.push(g), !0) : this.__hitTestHitArea(a, b, c, d, e, g) }, __hitTestHitArea: function (a, b, c, d, e, g) { return null == this.hitArea || this.hitArea.mouseEnabled ? !1 : (this.hitArea.mouseEnabled = !0, a = this.hitArea.__hitTest(a, b, c, null, !0, g), this.hitArea.mouseEnabled = !1, null != d && a && (d[d.length] = g), a) }, __hitTestMask: function (a, b) { return ab.prototype.__hitTestMask.call(this, a, b) || null != this.__graphics && this.__graphics.__hitTest(a, b, !0, this.__getRenderTransform()) ? !0 : !1 }, get_graphics: function () { null == this.__graphics && (this.__graphics = new $e(this)); return this.__graphics }, get_tabEnabled: function () { return null == this.__tabEnabled ? this.__buttonMode : this.__tabEnabled }, get_buttonMode: function () { return this.__buttonMode }, set_buttonMode: function (a) { return this.__buttonMode = a }, __class__: Ca, __properties__: u(ab.prototype.__properties__, { get_graphics: "get_graphics", set_buttonMode: "set_buttonMode", get_buttonMode: "get_buttonMode" }) }); var ua = function () { Ca.call(this); this.set_name("Root"); this.addEventListener("addedToStage", q(this, this.onAdded)) }; k.Universal = ua; ua.__name__ = "Universal"; ua.initWindow = function (a) { ua.window = a; a.stage.align = 6; a.stage.set_scaleMode(2) }; ua.setupTracing = function (a) { null == a && (a = !1); null == ua.oldTrace && (ua.oldTrace = lh.trace); a || !aa.releaseMode ? (lh.trace = ua.oldTrace, Qa.level = 5) : (lh.trace = function (a, c) { }, Qa.level = 0) }; ua.reloadGame = function () { V.field(ua.am, "reloadGame").apply(ua.am, []) }; ua.addReloadListener = function (a) { V.field(ua.am, "reloadListeners").push(a) }; ua.__super__ = Ca; ua.prototype = u(Ca.prototype, { maskLayer: null, onAdded: function (a) { this.removeEventListener("addedToStage", q(this, this.onAdded)); this.initServices(); this.maskLayer = new Se; this.maskLayer.set_name("Mask Layer"); this.initScreen(aa.startInFullScreen) }, initServices: function () { }, initScreen: function (a) { a = !1; this.stage.set_displayState(a ? 1 : 2); this.stage.__setLogicalSize(0, 0); Oa.get_current().set_x(0); Oa.get_current().set_y(0); Oa.get_current().set_scaleX(1); Oa.get_current().set_scaleY(1); this.set_x(0); this.set_y(0); this.set_scaleX(1); this.set_scaleY(1); h.stage = this.stage; for (var b = new Oc, c = 0, d = aa.scales; c < d.length;) { var e = d[c]; ++c; b.set(e, !0) } ua.windowWidth = a ? Ba.toFloat(this.stage.get_fullScreenWidth()) : aa.stageWidth * aa.gameScale; ua.windowHeight = a ? Ba.toFloat(this.stage.get_fullScreenHeight()) : aa.stageHeight * aa.gameScale; c = this.getDesiredScale(ua.windowWidth, ua.windowHeight, aa.stageWidth, aa.stageHeight); d = this.getDesiredScale(Ba.toFloat(this.stage.get_fullScreenWidth()), Ba.toFloat(this.stage.get_fullScreenHeight()), aa.stageWidth, aa.stageHeight); d = aa.forceHiResAssets ? d : c; 4 == d && null != b.h.__keys__[Ld._4X.__id__] ? (h.SCALE = 4, h.IMG_BASE = "4x") : 3 <= d && null != b.h.__keys__[Ld._3X.__id__] ? (h.SCALE = 3, h.IMG_BASE = "3x") : 2 <= d && null != b.h.__keys__[Ld._2X.__id__] ? (h.SCALE = 2, h.IMG_BASE = "2x") : 1.5 <= d && null != b.h.__keys__[Ld._1_5X.__id__] ? (h.SCALE = 1.5, h.IMG_BASE = "1.5x") : (h.SCALE = 1, h.IMG_BASE = "1x"); b = aa.stageWidth * h.SCALE; d = aa.stageHeight * h.SCALE; e = ua.windowWidth / b; var g = ua.windowHeight / d; if (aa.forceHiResAssets || ua.windowWidth != aa.stageWidth || ua.windowHeight != aa.stageHeight) 1 == aa.scaleMode ? h.SCALE != c && (this.set_scaleX(c / h.SCALE), this.set_scaleY(this.get_scaleX())) : 2 == aa.scaleMode ? (this.set_scaleX(e), this.set_scaleY(g)) : 3 == aa.scaleMode || 5 == aa.scaleMode ? (this.set_scaleX(Math.min(e, g)), this.set_scaleY(this.get_scaleX())) : 4 == aa.scaleMode ? (this.set_scaleX(Math.max(e, g)), this.set_scaleY(this.get_scaleX())) : 0 == aa.scaleMode && h.SCALE != c && (this.set_scaleX(c / h.SCALE), this.set_scaleY(this.get_scaleX())), 5 != aa.scaleMode && 1 != aa.scaleMode && (this.set_x(this.get_x() + (ua.windowWidth - b * this.get_scaleX()) / 2), this.set_y(this.get_y() + (ua.windowHeight - d * this.get_scaleY()) / 2)); ua.logicalWidth = aa.stageWidth; ua.logicalHeight = aa.stageHeight; !a || 5 != aa.scaleMode && 1 != aa.scaleMode || (ua.logicalWidth = ua.windowWidth / this.get_scaleX() / h.SCALE, ua.logicalHeight = ua.windowHeight / this.get_scaleY() / h.SCALE, (ua.logicalWidth | 0) == ua.logicalWidth && (ua.logicalHeight | 0) == ua.logicalHeight) || (ua.logicalWidth |= 0, ua.logicalHeight |= 0, this.set_scaleX(ua.windowWidth / h.SCALE / ua.logicalWidth), this.set_scaleY(ua.windowHeight / h.SCALE / ua.logicalHeight)); h.screenScaleX = this.get_scaleX(); h.screenScaleY = this.get_scaleY(); this.maskLayer.get_graphics().clear(); !a || 3 != aa.scaleMode && 0 != aa.scaleMode || (a = this.get_x() / this.get_scaleX(), c = this.get_y() / this.get_scaleY(), e = ua.windowWidth / this.get_scaleX(), this.maskLayer.get_graphics().beginFill(this.stage.get_color()), this.maskLayer.get_graphics().drawRect(-a, -c, e, c), this.maskLayer.get_graphics().drawRect(-a, 0, a, d), this.maskLayer.get_graphics().drawRect(b, 0, a, d), this.maskLayer.get_graphics().drawRect(-a, d, e, c), this.maskLayer.get_graphics().endFill()) }, getDesiredScale: function (a, b, c, d) { var e = 2 * c, g = 2 * d; c *= 3; d *= 3; return a >= 2 * e && b >= 2 * g ? 4 : a >= c && b >= d ? 3 : a >= e && b >= g ? 2 : a >= c / 2 && b >= d / 2 ? 1.5 : 1 }, preloaderComplete: function () { try { new h(this) } catch (b) { ra.lastError = b; var a = I.caught(b).unwrap(); this.stage.__handleError(a) } }, __class__: ua }); var sa = { toString: function (a) { switch (a) { case 0: return "Element"; case 1: return "PCData"; case 2: return "CData"; case 3: return "Comment"; case 4: return "DocType"; case 5: return "ProcessingInstruction"; case 6: return "Document" } } }, S = function (a) { this.nodeType = a; this.children = []; this.attributeMap = new xa }; k.Xml = S; S.__name__ = "Xml"; S.parse = function (a) { return mh.parse(a) }; S.createElement = function (a) { var b = new S(S.Element); if (b.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeName = a; return b }; S.createPCData = function (a) { var b = new S(S.PCData); if (b.nodeType == S.Document || b.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeValue = a; return b }; S.createCData = function (a) { var b = new S(S.CData); if (b.nodeType == S.Document || b.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeValue = a; return b }; S.createComment = function (a) { var b = new S(S.Comment); if (b.nodeType == S.Document || b.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeValue = a; return b }; S.createDocType = function (a) { var b = new S(S.DocType); if (b.nodeType == S.Document || b.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeValue = a; return b }; S.createProcessingInstruction = function (a) { var b = new S(S.ProcessingInstruction); if (b.nodeType == S.Document || b.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); b.nodeValue = a; return b }; S.createDocument = function () { return new S(S.Document) }; S.prototype = { nodeType: null, nodeName: null, nodeValue: null, parent: null, children: null, attributeMap: null, get: function (a) { if (this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); return this.attributeMap.h[a] }, set: function (a, b) { if (this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); this.attributeMap.h[a] = b }, exists: function (a) { if (this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); return Object.prototype.hasOwnProperty.call(this.attributeMap.h, a) }, attributes: function () { if (this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); return new oj(this.attributeMap.h) }, elements: function () { if (this.nodeType != S.Document && this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); for (var a = [], b = 0, c = this.children; b < c.length;) { var d = c[b]; ++b; d.nodeType == S.Element && a.push(d) } return new Qe(a) }, elementsNamed: function (a) { if (this.nodeType != S.Document && this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); for (var b = [], c = 0, d = this.children; c < d.length;) { var e = d[c]; ++c; if (e.nodeType == S.Element) { if (e.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == e.nodeType ? "null" : sa.toString(e.nodeType))); var g = e.nodeName == a } else g = !1; g && b.push(e) } return new Qe(b) }, firstElement: function () { if (this.nodeType != S.Document && this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); for (var a = 0, b = this.children; a < b.length;) { var c = b[a]; ++a; if (c.nodeType == S.Element) return c } return null }, addChild: function (a) { if (this.nodeType != S.Document && this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); null != a.parent && a.parent.removeChild(a); this.children.push(a); a.parent = this }, removeChild: function (a) { if (this.nodeType != S.Document && this.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == this.nodeType ? "null" : sa.toString(this.nodeType))); return K.remove(this.children, a) ? (a.parent = null, !0) : !1 }, toString: function () { return pj.print(this) }, __class__: S }; var fa = function () { this.lowerBound = new M; this.upperBound = new M }; k["box2D.collision.B2AABB"] = fa; fa.__name__ = "box2D.collision.B2AABB"; fa.prototype = { isValid: function () { var a = this.upperBound.y - this.lowerBound.y; return 0 <= this.upperBound.x - this.lowerBound.x && 0 <= a && this.lowerBound.isValid() && this.upperBound.isValid() }, getCenter: function () { return new M((this.lowerBound.x + this.upperBound.x) / 2, (this.lowerBound.y + this.upperBound.y) / 2) }, getExtents: function () { return new M((this.upperBound.x - this.lowerBound.x) / 2, (this.upperBound.y - this.lowerBound.y) / 2) }, contains: function (a) { var b; return b = (b = (b = (b = this.lowerBound.x <= a.lowerBound.x) && this.lowerBound.y <= a.lowerBound.y) && a.upperBound.x <= this.upperBound.x) && a.upperBound.y <= this.upperBound.y }, rayCast: function (a, b) { var c = -Number.MAX_VALUE, d = Number.MAX_VALUE, e = b.p1.x, g = b.p1.y, r = b.p2.x - b.p1.x; b = b.p2.y - b.p1.y; var v = Math.abs(b), f = a.normal; if (Math.abs(r) < Number.MIN_VALUE) { if (e < this.lowerBound.x || this.upperBound.x < e) return !1 } else { var m = 1 / r; r = (this.lowerBound.x - e) * m; e = (this.upperBound.x - e) * m; m = -1; r > e && (m = r, r = e, e = m, m = 1); r > c && (f.x = m, f.y = 0, c = r); d = Math.min(d, e); if (c > d) return !1 } if (v < Number.MIN_VALUE) { if (g < this.lowerBound.y || this.upperBound.y < g) return !1 } else if (m = 1 / b, r = (this.lowerBound.y - g) * m, e = (this.upperBound.y - g) * m, m = -1, r > e && (m = r, r = e, e = m, m = 1), r > c && (f.y = m, f.x = 0, c = r), d = Math.min(d, e), c > d) return !1; a.fraction = c; return !0 }, testOverlap: function (a) { var b = a.lowerBound.y - this.upperBound.y, c = this.lowerBound.y - a.upperBound.y; return 0 < a.lowerBound.x - this.upperBound.x || 0 < b || 0 < this.lowerBound.x - a.upperBound.x || 0 < c ? !1 : !0 }, combine: function (a, b) { this.lowerBound.x = Math.min(a.lowerBound.x, b.lowerBound.x); this.lowerBound.y = Math.min(a.lowerBound.y, b.lowerBound.y); this.upperBound.x = Math.max(a.upperBound.x, b.upperBound.x); this.upperBound.y = Math.max(a.upperBound.y, b.upperBound.y) }, reset: function () { this.lowerBound.x = 0; this.lowerBound.y = 0; this.upperBound.x = 0; this.upperBound.y = 0 }, setTo: function (a) { this.lowerBound.x = a.lowerBound.x; this.lowerBound.y = a.lowerBound.y; this.upperBound.x = a.upperBound.x; this.upperBound.y = a.upperBound.y }, lowerBound: null, upperBound: null, __class__: fa }; var M = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b }; k["box2D.common.math.B2Vec2"] = M; M.__name__ = "box2D.common.math.B2Vec2"; M.make = function (a, b) { return new M(a, b) }; M.freePool = function () { M.pooli = 0 }; M.getFromPool = function () { 500 < M.pooli && (M.pooli = 0); if (M.pooli < M.pool.length) { var a = M.pool[M.pooli]; a.x = 0; a.y = 0 } else a = new M, M.pool.push(a); M.pooli++; return a }; M.prototype = { setZero: function () { this.y = this.x = 0 }, set: function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b }, setV: function (a) { this.x = a.x; this.y = a.y }, getNegative: function () { return new M(-this.x, -this.y) }, getNegativePooled: function () { var a = M.getFromPool(); a.x = -this.x; a.y = -this.y; return a }, negativeSelf: function () { this.x = -this.x; this.y = -this.y }, copy: function (a) { null == a && (a = !1); if (a) { a = M.getFromPool(); var b = this.x, c = this.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c } else a = new M(this.x, this.y); return a }, add: function (a) { this.x += a.x; this.y += a.y }, subtract: function (a) { this.x -= a.x; this.y -= a.y }, multiply: function (a) { this.x *= a; this.y *= a }, mulM: function (a) { var b = this.x; this.x = a.col1.x * b + a.col2.x * this.y; this.y = a.col1.y * b + a.col2.y * this.y }, mulTM: function (a) { var b = O.dot(this, a.col1); this.y = O.dot(this, a.col2); this.x = b }, crossVF: function (a) { var b = this.x; this.x = a * this.y; this.y = -a * b }, crossFV: function (a) { var b = this.x; this.x = -a * this.y; this.y = a * b }, minV: function (a) { this.x = this.x < a.x ? this.x : a.x; this.y = this.y < a.y ? this.y : a.y }, maxV: function (a) { this.x = this.x > a.x ? this.x : a.x; this.y = this.y > a.y ? this.y : a.y }, abs: function () { 0 > this.x && (this.x = -this.x); 0 > this.y && (this.y = -this.y) }, length: function () { return Math.sqrt(this.x * this.x + this.y * this.y) }, lengthSquared: function () { return this.x * this.x + this.y * this.y }, normalize: function () { var a = Math.sqrt(this.x * this.x + this.y * this.y); if (a < Number.MIN_VALUE) return 0; var b = 1 / a; this.x *= b; this.y *= b; return a }, perpDot: function (a) { return -this.y * a.x + this.x * a.y }, winding: function (a, b) { var c = a.copy(); c.subtract(this); b = b.copy(); b.subtract(a); return c.perpDot(b) }, isValid: function () { return O.isValid(this.x) ? O.isValid(this.y) : !1 }, x: null, y: null, toString: function () { return "(" + this.x + ", " + this.y + ")" }, reset: function () { this.y = this.x = 0 }, __class__: M }; var qc = function () { this.v = new M; this.id = new Xb }; k["box2D.collision.ClipVertex"] = qc; qc.__name__ = "box2D.collision.ClipVertex"; qc.prototype = { set: function (a) { var b = this.v, c = a.v; b.x = c.x; b.y = c.y; this.id.set(a.id) }, v: null, id: null, __class__: qc }; var Xb = function () { this.features = new sc; this.features._m_id = this }; k["box2D.collision.B2ContactID"] = Xb; Xb.__name__ = "box2D.collision.B2ContactID"; Xb.prototype = { set: function (a) { this.set_key(a._key) }, copy: function () { var a = new Xb; a.set_key(this.get_key()); return a }, get_key: function () { return this._key }, set_key: function (a) { this._key = a; this.features._referenceEdge = this._key & 255; this.features._incidentEdge = (this._key & 65280) >> 8 & 255; this.features._incidentVertex = (this._key & 16711680) >> 16 & 255; this.features._flip = (this._key & -16777216) >> 24 & 255; return this._key }, features: null, _key: null, indexA: null, indexB: null, typeA: null, typeB: null, __class__: Xb, __properties__: {set_key: "set_key", get_key: "get_key"} }; var sc = function () { }; k["box2D.collision.Features"] = sc; sc.__name__ = "box2D.collision.Features"; sc.prototype = { get_referenceEdge: function () { return this._referenceEdge }, set_referenceEdge: function (a) { this._referenceEdge = a; this._m_id._key = this._m_id._key & -256 | this._referenceEdge & 255; return a }, _referenceEdge: null, get_incidentEdge: function () { return this._incidentEdge }, set_incidentEdge: function (a) { this._incidentEdge = a; this._m_id._key = this._m_id._key & -65281 | this._incidentEdge << 8 & 65280; return a }, _incidentEdge: null, get_incidentVertex: function () { return this._incidentVertex }, set_incidentVertex: function (a) { this._incidentVertex = a; this._m_id._key = this._m_id._key & -16711681 | this._incidentVertex << 16 & 16711680; return a }, _incidentVertex: null, get_flip: function () { return this._flip }, set_flip: function (a) { this._flip = a; this._m_id._key = this._m_id._key & 16777215 | this._flip << 24 & -16777216; return a }, _flip: null, _m_id: null, __class__: sc, __properties__: { set_flip: "set_flip", get_flip: "get_flip", set_incidentVertex: "set_incidentVertex", get_incidentVertex: "get_incidentVertex", set_incidentEdge: "set_incidentEdge", get_incidentEdge: "get_incidentEdge", set_referenceEdge: "set_referenceEdge", get_referenceEdge: "get_referenceEdge" } }; var N = function () { }; k["box2D.collision.B2Collision"] = N; N.__name__ = "box2D.collision.B2Collision"; N.clipSegmentToLine = function (a, b, c, d) { var e = 0, g = b[0], r = g.v; g = b[1]; var v = g.v, f = c.x * r.x + c.y * r.y - d; g = c.x * v.x + c.y * v.y - d; 0 >= f && a[e++].set(b[0]); 0 >= g && a[e++].set(b[1]); 0 > f * g && (c = f / (f - g), g = a[e], g = g.v, g.x = r.x + c * (v.x - r.x), g.y = r.y + c * (v.y - r.y), g = a[e], g.id = (0 < f ? b[0] : b[1]).id, ++e); return e }; N.edgeSeparation = function (a, b, c, d, e) { var g = a.m_vertices, r = d.m_vertexCount; d = d.m_vertices; var v = b.R, f = a.m_normals[c]; a = v.col1.x * f.x + v.col2.x * f.y; var m = v.col1.y * f.x + v.col2.y * f.y; v = e.R; var h = v.col1.x * a + v.col1.y * m; v = v.col2.x * a + v.col2.y * m; for (var n = 0, yb = Number.MAX_VALUE, k = 0; k < r;) { var l = k++; f = d[l]; f = f.x * h + f.y * v; f < yb && (yb = f, n = l) } f = g[c]; v = b.R; c = b.position.x + (v.col1.x * f.x + v.col2.x * f.y); b = b.position.y + (v.col1.y * f.x + v.col2.y * f.y); f = d[n]; v = e.R; return (e.position.x + (v.col1.x * f.x + v.col2.x * f.y) - c) * a + (e.position.y + (v.col1.y * f.x + v.col2.y * f.y) - b) * m }; N.findMaxSeparation = function (a, b, c, d, e) { var g = b.m_vertexCount, r = b.m_normals, v = e.R, f = d.m_centroid, m = e.position.x + (v.col1.x * f.x + v.col2.x * f.y), h = e.position.y + (v.col1.y * f.x + v.col2.y * f.y); v = c.R; f = b.m_centroid; m -= c.position.x + (v.col1.x * f.x + v.col2.x * f.y); h -= c.position.y + (v.col1.y * f.x + v.col2.y * f.y); v = m * c.R.col1.x + h * c.R.col1.y; h = m * c.R.col2.x + h * c.R.col2.y; m = 0; for (var n = -Number.MAX_VALUE, yb = 0; yb < g;) { var k = yb++; f = r[k]; f = f.x * v + f.y * h; f > n && (n = f, m = k) } r = N.edgeSeparation(b, c, m, d, e); n = 0 <= m - 1 ? m - 1 : g - 1; v = N.edgeSeparation(b, c, n, d, e); yb = m + 1 < g ? m + 1 : 0; h = N.edgeSeparation(b, c, yb, d, e); if (v > r && v > h) f = -1; else if (h > r) f = 1, n = yb, v = h; else return a[0] = m, r; for (; ;) if (m = -1 == f ? 0 <= n - 1 ? n - 1 : g - 1 : n + 1 < g ? n + 1 : 0, r = N.edgeSeparation(b, c, m, d, e), r > v) n = m, v = r; else break; a[0] = n; return v }; N.findIncidentEdge = function (a, b, c, d, e, g) { var r = e.m_vertexCount, f = e.m_vertices; e = e.m_normals; var p = c.R; b = b.m_normals[d]; c = p.col1.x * b.x + p.col2.x * b.y; var m = p.col1.y * b.x + p.col2.y * b.y; p = g.R; b = p.col1.x * c + p.col1.y * m; m = p.col2.x * c + p.col2.y * m; c = b; p = 0; for (var h = Number.MAX_VALUE, n = 0; n < r;) { var yb = n++; b = e[yb]; b = c * b.x + m * b.y; b < h && (h = b, p = yb) } e = p; r = e + 1 < r ? e + 1 : 0; c = a[0]; b = f[e]; p = g.R; c.v.x = g.position.x + (p.col1.x * b.x + p.col2.x * b.y); c.v.y = g.position.y + (p.col1.y * b.x + p.col2.y * b.y); c.id.features.set_referenceEdge(d); c.id.features.set_incidentEdge(e); c.id.features.set_incidentVertex(0); c = a[1]; b = f[r]; p = g.R; c.v.x = g.position.x + (p.col1.x * b.x + p.col2.x * b.y); c.v.y = g.position.y + (p.col1.y * b.x + p.col2.y * b.y); c.id.features.set_referenceEdge(d); c.id.features.set_incidentEdge(r); c.id.features.set_incidentVertex(1) }; N.makeClipPointVector = function () { var a = []; a[0] = new qc; a[1] = new qc; return a }; N.collidePolygons = function (a, b, c, d, e) { a.m_pointCount = 0; var g = b.m_radius + d.m_radius; N.s_edgeAO[0] = 0; var r = N.findMaxSeparation(N.s_edgeAO, b, c, d, e); var f = N.s_edgeAO[0]; if (!(r > g)) { N.s_edgeBO[0] = 0; var p = N.findMaxSeparation(N.s_edgeBO, d, e, b, c); var m = N.s_edgeBO[0]; if (!(p > g)) { p > .98 * r + .001 ? (r = d, d = b, b = e, e = m, a.m_type = 4, f = 1) : (r = b, b = c, c = e, e = f, a.m_type = 2, f = 0); m = N.s_incidentEdge; N.findIncidentEdge(m, r, b, e, d, c); p = r.m_vertices; d = p[e]; var h = e + 1 < r.m_vertexCount ? p[e + 1] : p[0]; r = N.s_localTangent; e = h.x - d.x; var n = h.y - d.y; null == n && (n = 0); null == e && (e = 0); r.x = e; r.y = n; r.normalize(); p = N.s_localNormal; p.x = r.y; p.y = -r.x; var yb = N.s_planePoint; e = .5 * (d.x + h.x); n = .5 * (d.y + h.y); null == n && (n = 0); null == e && (e = 0); yb.x = e; yb.y = n; n = N.s_tangent; e = b.R; n.x = e.col1.x * r.x + e.col2.x * r.y; n.y = e.col1.y * r.x + e.col2.y * r.y; var k = N.s_tangent2; k.x = -n.x; k.y = -n.y; r = N.s_normal; r.x = n.y; r.y = -n.x; var l = N.s_v11, ub = N.s_v12; l.x = b.position.x + (e.col1.x * d.x + e.col2.x * d.y); l.y = b.position.y + (e.col1.y * d.x + e.col2.y * d.y); ub.x = b.position.x + (e.col1.x * h.x + e.col2.x * h.y); ub.y = b.position.y + (e.col1.y * h.x + e.col2.y * h.y); b = r.x * l.x + r.y * l.y; e = n.x * ub.x + n.y * ub.y + g; h = N.s_clipPoints1; d = N.s_clipPoints2; m = N.clipSegmentToLine(h, m, k, -n.x * l.x - n.y * l.y + g); if (!(2 > m || (m = N.clipSegmentToLine(d, h, n, e), 2 > m))) { m = a.m_localPlaneNormal; m.x = p.x; m.y = p.y; m = a.m_localPoint; m.x = yb.x; m.y = yb.y; p = m = 0; for (yb = Y.b2_maxManifoldPoints; p < yb;) e = p++, n = d[e], r.x * n.v.x + r.y * n.v.y - b <= g && (k = a.m_points[m], e = c.R, l = n.v.x - c.position.x, h = n.v.y - c.position.y, k.m_localPoint.x = l * e.col1.x + h * e.col1.y, k.m_localPoint.y = l * e.col2.x + h * e.col2.y, k.m_id.set(n.id), k.m_id.features.set_flip(f), ++m); a.m_pointCount = m } } } }; N.collideCircles = function (a, b, c, d, e) { a.m_pointCount = 0; var g = c.R, r = b.m_p, f = c.position.x + (g.col1.x * r.x + g.col2.x * r.y); c = c.position.y + (g.col1.y * r.x + g.col2.y * r.y); g = e.R; r = d.m_p; f = e.position.x + (g.col1.x * r.x + g.col2.x * r.y) - f; e = e.position.y + (g.col1.y * r.x + g.col2.y * r.y) - c; g = b.m_radius + d.m_radius; f * f + e * e > g * g || (a.m_type = 1, e = a.m_localPoint, b = b.m_p, e.x = b.x, e.y = b.y, e = a.m_localPlaneNormal, e.x = 0, e.y = 0, a.m_pointCount = 1, e = a.m_points[0].m_localPoint, b = d.m_p, e.x = b.x, e.y = b.y, a.m_points[0].m_id.set_key(0)) }; N.collidePolygonAndCircle = function (a, b, c, d, e) { a.m_pointCount = 0; var g = e.R, r = d.m_p, f = e.position.x + (g.col1.x * r.x + g.col2.x * r.y) - c.position.x, p = e.position.y + (g.col1.y * r.x + g.col2.y * r.y) - c.position.y; g = c.R; c = f * g.col1.x + p * g.col1.y; g = f * g.col2.x + p * g.col2.y; var m = 0, h = -Number.MAX_VALUE; e = b.m_radius + d.m_radius; var n = b.m_vertexCount, yb = b.m_vertices; b = b.m_normals; for (var k = 0; k < n;) { var l = k++; r = yb[l]; f = c - r.x; p = g - r.y; r = b[l]; r = r.x * f + r.y * p; if (r > e) return; r > h && (h = r, m = l) } f = m; r = yb[f]; n = yb[f + 1 < n ? f + 1 : 0]; if (h < Number.MIN_VALUE) a.m_pointCount = 1, a.m_type = 2, c = a.m_localPlaneNormal, g = b[m], c.x = g.x, c.y = g.y, a.m_localPoint.x = .5 * (r.x + n.x), a.m_localPoint.y = .5 * (r.y + n.y); else if (h = (c - n.x) * (r.x - n.x) + (g - n.y) * (r.y - n.y), 0 >= (c - r.x) * (n.x - r.x) + (g - r.y) * (n.y - r.y)) { if ((c - r.x) * (c - r.x) + (g - r.y) * (g - r.y) > e * e) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = c - r.x; a.m_localPlaneNormal.y = g - r.y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; c.x = r.x; c.y = r.y } else if (0 >= h) { if ((c - n.x) * (c - n.x) + (g - n.y) * (g - n.y) > e * e) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = c - n.x; a.m_localPlaneNormal.y = g - n.y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; c.x = n.x; c.y = n.y } else { m = .5 * (r.x + n.x); r = .5 * (r.y + n.y); h = (c - m) * b[f].x + (g - r) * b[f].y; if (h > e) return; a.m_pointCount = 1; a.m_type = 2; a.m_localPlaneNormal.x = b[f].x; a.m_localPlaneNormal.y = b[f].y; a.m_localPlaneNormal.normalize(); c = a.m_localPoint; g = m; e = r; null == e && (e = 0); null == g && (g = 0); c.x = g; c.y = e } c = a.m_points[0].m_localPoint; g = d.m_p; c.x = g.x; c.y = g.y; a.m_points[0].m_id.set_key(0) }; N.testOverlap = function (a, b) { var c = b.lowerBound, d = a.upperBound, e = c.x - d.x, g = c.y - d.y; c = a.lowerBound; d = b.upperBound; a = c.y - d.y; return 0 < e || 0 < g || 0 < c.x - d.x || 0 < a ? !1 : !0 }; var vf = function () { this.position = new M; this.velocity = new M; this.normal = new M; this.id = new Xb }; k["box2D.collision.B2ContactPoint"] = vf; vf.__name__ = "box2D.collision.B2ContactPoint"; vf.prototype = { shape1: null, shape2: null, position: null, velocity: null, normal: null, separation: null, friction: null, restitution: null, id: null, __class__: vf }; var ma = function () { this.m_v1 = new J; this.m_v2 = new J; this.m_v3 = new J; this.m_vertices = []; this.m_vertices[0] = this.m_v1; this.m_vertices[1] = this.m_v2; this.m_vertices[2] = this.m_v3 }; k["box2D.collision.B2Simplex"] = ma; ma.__name__ = "box2D.collision.B2Simplex"; ma.prototype = { readCache: function (a, b, c, d, e) { Y.b2Assert(0 <= a.count && 3 >= a.count); this.m_count = a.count; var g = this.m_vertices; if (a.useCache) { for (var r = 0, f = this.m_count; r < f;) { var p = r++; var m = g[p]; m.indexA = a.indexA[p]; m.indexB = a.indexB[p]; p = b.getVertex(m.indexA); var h = d.getVertex(m.indexB); m.wA = O.mulX(c, p, !0); m.wB = O.mulX(e, h, !0); m.w = O.subtractVVPooled(m.wB, m.wA); m.a = 0 } 1 < this.m_count && (a = a.metric, m = this.getMetric(), m < .5 * a || 2 * a < m || m < Number.MIN_VALUE) && (this.m_count = 0) } 0 == this.m_count && (m = g[0], m.indexA = 0, m.indexB = 0, p = b.getVertex(0), h = d.getVertex(0), m.wA = O.mulX(c, p, !0), m.wB = O.mulX(e, h, !0), m.w = O.subtractVVPooled(m.wB, m.wA), this.m_count = 1) }, writeCache: function (a) { if (a.useCache) { a.metric = this.getMetric(); a.count = this.m_count; for (var b = this.m_vertices, c = 0, d = this.m_count; c < d;) { var e = c++; a.indexA[e] = b[e].indexA; a.indexB[e] = b[e].indexB } } }, getSearchDirection: function () { switch (this.m_count) { case 1: return this.m_v1.w.getNegativePooled(); case 2: var a = O.subtractVVPooled(this.m_v2.w, this.m_v1.w); return 0 < O.crossVV(a, this.m_v1.w.getNegativePooled()) ? O.crossFV(1, a, !0) : O.crossVF(a, 1, !0); default: return Y.b2Assert(!1), M.getFromPool() } }, getClosestPoint: function () { switch (this.m_count) { case 0: return Y.b2Assert(!1), M.getFromPool(); case 1: return this.m_v1.w; case 2: var a = M.getFromPool(); a.x = this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x; a.y = this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y; return a; default: return Y.b2Assert(!1), M.getFromPool() } }, getWitnessPoints: function (a, b) { switch (this.m_count) { case 0: Y.b2Assert(!1); break; case 1: var c = this.m_v1.wA; a.x = c.x; a.y = c.y; c = this.m_v1.wB; b.x = c.x; b.y = c.y; break; case 2: a.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x; a.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y; b.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x; b.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y; break; case 3: b.x = a.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x; b.y = a.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y; break; default: Y.b2Assert(!1) } }, getMetric: function () { switch (this.m_count) { case 0: return Y.b2Assert(!1), 0; case 1: return 0; case 2: return O.subtractVVPooled(this.m_v1.w, this.m_v2.w).length(); case 3: return O.crossVV(O.subtractVVPooled(this.m_v2.w, this.m_v1.w), O.subtractVVPooled(this.m_v3.w, this.m_v1.w)); default: return Y.b2Assert(!1), 0 } }, solve2: function () { var a = this.m_v1.w, b = this.m_v2.w, c = O.subtractVVPooled(b, a); a = -(a.x * c.x + a.y * c.y); 0 >= a ? this.m_count = this.m_v1.a = 1 : (b = b.x * c.x + b.y * c.y, 0 >= b ? (this.m_count = this.m_v2.a = 1, this.m_v1.set(this.m_v2)) : (c = 1 / (b + a), this.m_v1.a = b * c, this.m_v2.a = a * c, this.m_count = 2)) }, solve3: function () { var a = this.m_v1.w, b = this.m_v2.w, c = this.m_v3.w, d = O.subtractVVPooled(b, a), e = O.dot(a, d), g = O.dot(b, d); e = -e; var r = O.subtractVVPooled(c, a), f = O.dot(a, r), p = O.dot(c, r); f = -f; var m = O.subtractVVPooled(c, b), h = O.dot(b, m); m = O.dot(c, m); h = -h; r = O.crossVV(d, r); d = r * O.crossVV(b, c); c = r * O.crossVV(c, a); a = r * O.crossVV(a, b); 0 >= e && 0 >= f ? this.m_count = this.m_v1.a = 1 : 0 < g && 0 < e && 0 >= a ? (p = 1 / (g + e), this.m_v1.a = g * p, this.m_v2.a = e * p, this.m_count = 2) : 0 < p && 0 < f && 0 >= c ? (g = 1 / (p + f), this.m_v1.a = p * g, this.m_v3.a = f * g, this.m_count = 2, this.m_v2.set(this.m_v3)) : 0 >= g && 0 >= h ? (this.m_count = this.m_v2.a = 1, this.m_v1.set(this.m_v2)) : 0 >= p && 0 >= m ? (this.m_count = this.m_v3.a = 1, this.m_v1.set(this.m_v3)) : 0 < m && 0 < h && 0 >= d ? (g = 1 / (m + h), this.m_v2.a = m * g, this.m_v3.a = h * g, this.m_count = 2, this.m_v1.set(this.m_v3)) : (g = 1 / (d + c + a), this.m_v1.a = d * g, this.m_v2.a = c * g, this.m_v3.a = a * g, this.m_count = 3) }, m_v1: null, m_v2: null, m_v3: null, m_vertices: null, m_count: null, __class__: ma }; var J = function () { }; k["box2D.collision.B2SimplexVertex"] = J; J.__name__ = "box2D.collision.B2SimplexVertex"; J.prototype = { set: function (a) { var b = this.wA, c = a.wA; b.x = c.x; b.y = c.y; b = this.wB; c = a.wB; b.x = c.x; b.y = c.y; b = this.w; c = a.w; b.x = c.x; b.y = c.y; this.a = a.a; this.indexA = a.indexA; this.indexB = a.indexB }, wA: null, wB: null, w: null, a: null, indexA: null, indexB: null, __class__: J }; var Te = function () { }; k["box2D.collision.B2Distance"] = Te; Te.__name__ = "box2D.collision.B2Distance"; Te.distance = function (a, b, c) { ++Te.b2_gjkCalls; var d = c.proxyA, e = c.proxyB, g = c.transformA, r = c.transformB, f = Te.s_simplex; f.readCache(b, d, g, e, r); var p = f.m_vertices, m = Te.s_saveA, h = Te.s_saveB; f.getClosestPoint().lengthSquared(); for (var n, yb = 0; 20 > yb;) { var k = f.m_count; for (var l = 0, ub = k; l < ub;) n = l++, m[n] = p[n].indexA, h[n] = p[n].indexB; switch (f.m_count) { case 1: break; case 2: f.solve2(); break; case 3: f.solve3(); break; default: Y.b2Assert(!1) } if (3 == f.m_count) break; n = f.getClosestPoint(); n.lengthSquared(); l = f.getSearchDirection(); if (l.lengthSquared() < Number.MIN_VALUE * Number.MIN_VALUE) break; n = p[f.m_count]; n.indexA = d.getSupport(O.mulTMV(g.R, l.getNegativePooled(), !0)) | 0; n.wA = O.mulX(g, d.getVertex(n.indexA), !0); n.indexB = e.getSupport(O.mulTMV(r.R, l, !0)) | 0; n.wB = O.mulX(r, e.getVertex(n.indexB), !0); n.w = O.subtractVVPooled(n.wB, n.wA); ++yb; ++Te.b2_gjkIters; l = !1; for (ub = 0; ub < k;) { var t = ub++; if (n.indexA == m[t] && n.indexB == h[t]) { l = !0; break } } if (l) break; ++f.m_count } Te.b2_gjkMaxIters = O.max(Te.b2_gjkMaxIters, yb) | 0; f.getWitnessPoints(a.pointA, a.pointB); a.distance = O.subtractVVPooled(a.pointA, a.pointB).length(); a.iterations = yb; f.writeCache(b); c.useRadii && (b = d.m_radius, e = e.m_radius, a.distance > b + e && a.distance > Number.MIN_VALUE ? (a.distance -= b + e, c = O.subtractVVPooled(a.pointB, a.pointA), c.normalize(), a.pointA.x += b * c.x, a.pointA.y += b * c.y, a.pointB.x -= e * c.x, a.pointB.y -= e * c.y) : (n = M.getFromPool(), n.x = .5 * (a.pointA.x + a.pointB.x), n.y = .5 * (a.pointA.y + a.pointB.y), a.pointA.x = a.pointB.x = n.x, a.pointA.y = a.pointB.y = n.y, a.distance = 0)) }; var ye = function () { }; k["box2D.collision.B2DistanceInput"] = ye; ye.__name__ = "box2D.collision.B2DistanceInput"; ye.prototype = { proxyA: null, proxyB: null, transformA: null, transformB: null, useRadii: null, __class__: ye }; var ze = function () { this.pointA = new M; this.pointB = new M }; k["box2D.collision.B2DistanceOutput"] = ze; ze.__name__ = "box2D.collision.B2DistanceOutput"; ze.prototype = {pointA: null, pointB: null, distance: null, iterations: null, __class__: ze}; var Pg = function () { this.m_internalVertices = [] }; k["box2D.collision.B2DistanceProxy"] = Pg; Pg.__name__ = "box2D.collision.B2DistanceProxy"; Pg.prototype = { set: function (a) { switch (a.getType()) { case 0: a = w.__cast(a, Qc); for (this.m_vertices = this.m_internalVertices; 1 < this.m_vertices.length;) this.m_vertices.pop(); this.m_vertices[0] = a.m_p; this.m_count = 1; this.m_radius = a.m_radius; break; case 1: a = w.__cast(a, Jb); this.m_vertices = a.m_vertices; this.m_count = a.m_vertexCount; this.m_radius = a.m_radius; break; case 2: a = w.__cast(a, xg); for (this.m_vertices = this.m_internalVertices; 2 < this.m_vertices.length;) this.m_vertices.pop(); this.m_vertices[0] = a.m_v1; this.m_vertices[1] = a.m_v2; this.m_count = 2; this.m_radius = a.m_radius; break; default: Y.b2Assert(!1) } }, getSupport: function (a) { for (var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, d = 1, e = this.m_count; d < e;) { var g = d++, r = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; r > c && (b = g, c = r) } return b }, getSupportVertex: function (a) { for (var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, d = 1, e = this.m_count; d < e;) { var g = d++, r = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; r > c && (b = g, c = r) } return this.m_vertices[b] }, getVertexCount: function () { return this.m_count }, getVertex: function (a) { Y.b2Assert(0 <= a && a < this.m_count); return this.m_vertices[a] }, m_internalVertices: null, m_vertices: null, m_count: null, m_radius: null, __class__: Pg }; var zn = function () { this.oldAABB = new fa; this.stackQueue = []; this.stackQueuePos = 0; this.m_freeList = this.m_root = null; this.m_insertionCount = this.m_path = 0 }; k["box2D.collision.B2DynamicTree"] = zn; zn.__name__ = "box2D.collision.B2DynamicTree"; zn.prototype = { createProxy: function (a, b) { var c = this.allocateNode(), d = Y.b2_aabbExtension, e = Y.b2_aabbExtension; c.aabb.lowerBound.x = a.lowerBound.x - d; c.aabb.lowerBound.y = a.lowerBound.y - e; c.aabb.upperBound.x = a.upperBound.x + d; c.aabb.upperBound.y = a.upperBound.y + e; c.userData = b; this.insertLeaf(c); return c }, destroyProxy: function (a) { this.removeLeaf(a); this.freeNode(a) }, moveProxy: function (a, b, c) { Y.b2Assert(a.isLeaf()); if (a.aabb.contains(b)) return !1; this.removeLeaf(a); var d = Y.b2_aabbExtension + Y.b2_aabbMultiplier * (0 < c.x ? c.x : -c.x); c = Y.b2_aabbExtension + Y.b2_aabbMultiplier * (0 < c.y ? c.y : -c.y); a.aabb.lowerBound.x = b.lowerBound.x - d; a.aabb.lowerBound.y = b.lowerBound.y - c; a.aabb.upperBound.x = b.upperBound.x + d; a.aabb.upperBound.y = b.upperBound.y + c; this.insertLeaf(a); return !0 }, rebalance: function (a) { if (null != this.m_root) for (var b = 0; b < a;) { b++; for (var c = this.m_root, d = 0; 0 == c.isLeaf();) c = 0 != (this.m_path >> d & 1) ? c.child2 : c.child1, d = d + 1 & 31; ++this.m_path; this.removeLeaf(c); this.insertLeaf(c) } }, getFatAABB: function (a) { return a.aabb }, getUserData: function (a) { return a.userData }, stackQueuePos: null, stackQueue: null, query: function (a, b) { if (null != this.m_root) { null == this.stackQueue[this.stackQueuePos] && (this.stackQueue[this.stackQueuePos] = []); var c = this.stackQueue[this.stackQueuePos++], d = 0; for (c[d++] = this.m_root; 0 < d;) { var e = c[--d]; if (e.aabb.testOverlap(b)) if (e.isLeaf()) { if (!a.queryCallback(e)) break } else c[d++] = e.child1, c[d++] = e.child2 } for (d = c.length; 0 < d--;) c.pop(); --this.stackQueuePos } }, rayCast: function (a, b) { if (null != this.m_root) { var c = b.p1, d = b.p2, e = O.subtractVVPooled(c, d); e.normalize(); e = O.crossFV(1, e); var g = O.absV(e), r = b.maxFraction, f = new fa; var p = c.x + r * (d.x - c.x); r = c.y + r * (d.y - c.y); f.lowerBound.x = Math.min(c.x, p); f.lowerBound.y = Math.min(c.y, r); f.upperBound.x = Math.max(c.x, p); f.upperBound.y = Math.max(c.y, r); var m = [], h = 0; for (m[h++] = this.m_root; 0 < h;) if (p = m[--h], 0 != p.aabb.testOverlap(f)) { r = p.aabb.getCenter(); var n = p.aabb.getExtents(); if (!(0 < Math.abs(e.x * (c.x - r.x) + e.y * (c.y - r.y)) - g.x * n.x - g.y * n.y)) if (p.isLeaf()) { r = new tk; r.p1 = b.p1; r.p2 = b.p2; r.maxFraction = b.maxFraction; r = a(r, p); if (0 == r) break; p = c.x + r * (d.x - c.x); r = c.y + r * (d.y - c.y); f.lowerBound.x = Math.min(c.x, p); f.lowerBound.y = Math.min(c.y, r); f.upperBound.x = Math.max(c.x, p); f.upperBound.y = Math.max(c.y, r) } else m[h++] = p.child1, m[h++] = p.child2 } } }, allocateNode: function () { if (null != this.m_freeList) { var a = this.m_freeList; this.m_freeList = a.parent; a.parent = null; a.child1 = null; a.child2 = null; return a } return new qj }, freeNode: function (a) { a.parent = this.m_freeList; this.m_freeList = a }, insertLeaf: function (a) { ++this.m_insertionCount; if (null == this.m_root) this.m_root = a, this.m_root.parent = null; else { var b = this.m_root; if (0 == b.isLeaf()) for (var c = (a.aabb.lowerBound.x + a.aabb.upperBound.x) / 2, d = (a.aabb.lowerBound.y + a.aabb.upperBound.y) / 2; ;) { var e = b.child1; b = b.child2; b = Math.abs((e.aabb.lowerBound.x + e.aabb.upperBound.x) / 2 - c) + Math.abs((e.aabb.lowerBound.y + e.aabb.upperBound.y) / 2 - d) < Math.abs((b.aabb.lowerBound.x + b.aabb.upperBound.x) / 2 - c) + Math.abs((b.aabb.lowerBound.y + b.aabb.upperBound.y) / 2 - d) ? e : b; if (0 != b.isLeaf()) break } c = b.parent; d = this.allocateNode(); d.parent = c; d.userData = null; d.aabb.combine(a.aabb, b.aabb); if (null != c) for (b.parent.child1 == b ? c.child1 = d : c.child2 = d, d.child1 = b, d.child2 = a, b.parent = d, a.parent = d; !c.aabb.contains(d.aabb) && (c.aabb.combine(c.child1.aabb, c.child2.aabb), d = c, c = c.parent, null != c);) ; else d.child1 = b, d.child2 = a, b.parent = d, this.m_root = a.parent = d } }, oldAABB: null, removeLeaf: function (a) { if (a == this.m_root) this.m_root = null; else { var b = a.parent, c = b.parent; a = b.child1 == a ? b.child2 : b.child1; if (null != c) for (c.child1 == b ? c.child1 = a : c.child2 = a, a.parent = c, this.freeNode(b); null != c;) { this.oldAABB.setTo(c.aabb); c.aabb.combine(c.child1.aabb, c.child2.aabb); if (this.oldAABB.contains(c.aabb)) break; c = c.parent } else this.m_root = a, a.parent = null, this.freeNode(b) } }, m_root: null, m_freeList: null, m_path: null, m_insertionCount: null, __class__: zn }; var Ae = function () { }; k["box2D.collision.QueryCallback"] = Ae; Ae.__name__ = "box2D.collision.QueryCallback"; Ae.__isInterface__ = !0; Ae.prototype = {queryCallback: null, __class__: Ae}; var uk = function () { }; k["box2D.collision.IBroadPhase"] = uk; uk.__name__ = "box2D.collision.IBroadPhase"; uk.__isInterface__ = !0; uk.prototype = { createProxy: null, destroyProxy: null, moveProxy: null, testOverlap: null, getUserData: null, getFatAABB: null, getProxyCount: null, updatePairs: null, query: null, rayCast: null, validate: null, rebalance: null, __class__: uk }; var vk = function () { this.m_tree = new zn; this.m_moveBuffer = []; this.m_pairBuffer = []; this.m_proxyCount = this.m_pairCount = 0 }; k["box2D.collision.B2DynamicTreeBroadPhase"] = vk; vk.__name__ = "box2D.collision.B2DynamicTreeBroadPhase"; vk.__interfaces__ = [Ae, uk]; vk.prototype = { createProxy: function (a, b) { a = this.m_tree.createProxy(a, b); ++this.m_proxyCount; this.bufferMove(a); return a }, destroyProxy: function (a) { this.unBufferMove(a); --this.m_proxyCount; this.m_tree.destroyProxy(a) }, moveProxy: function (a, b, c) { this.m_tree.moveProxy(a, b, c) && this.bufferMove(a) }, testOverlap: function (a, b) { a = this.m_tree.getFatAABB(a); b = this.m_tree.getFatAABB(b); return a.testOverlap(b) }, getUserData: function (a) { return this.m_tree.getUserData(a) }, getFatAABB: function (a) { return this.m_tree.getFatAABB(a) }, getProxyCount: function () { return this.m_proxyCount }, updatePairs: function (a) { for (var b = this.m_pairCount = 0, c = this.m_moveBuffer; b < c.length;) { var d = c[b]; ++b; this.cur_queryProxy = d; d = this.m_tree.getFatAABB(d); this.m_tree.query(this, d) } this.cur_queryProxy = null; for (b = this.m_moveBuffer.length; 0 <= --b;) this.m_moveBuffer.pop(); c = !0; for (b = 0; c;) if (b >= this.m_pairCount) c = !1; else for (d = this.m_pairBuffer[b], a.addPair(this.m_tree.getUserData(d.proxyA), this.m_tree.getUserData(d.proxyB)), ++b; b < this.m_pairCount;) { var e = this.m_pairBuffer[b]; if (e.proxyA != d.proxyA || e.proxyB != d.proxyB) break; ++b } }, queryCallback: function (a) { if (a == this.cur_queryProxy) return !0; this.m_pairCount == this.m_pairBuffer.length && (this.m_pairBuffer[this.m_pairCount] = new An); var b = this.m_pairBuffer[this.m_pairCount]; a.id < this.cur_queryProxy.id ? (b.proxyA = a, b.proxyB = this.cur_queryProxy) : (b.proxyA = this.cur_queryProxy, b.proxyB = a); ++this.m_pairCount; return !0 }, query: function (a, b) { this.m_tree.query(a, b) }, rayCast: function (a, b) { this.m_tree.rayCast(a, b) }, validate: function () { }, rebalance: function (a) { this.m_tree.rebalance(a) }, bufferMove: function (a) { this.m_moveBuffer[this.m_moveBuffer.length] = a }, unBufferMove: function (a) { K.remove(this.m_moveBuffer, a) }, comparePairs: function (a, b) { return 0 }, m_tree: null, m_proxyCount: null, m_moveBuffer: null, m_pairBuffer: null, m_pairCount: null, cur_queryProxy: null, __class__: vk }; var qj = function () { this.aabb = new fa; this.id = qj.currentID++ }; k["box2D.collision.B2DynamicTreeNode"] = qj; qj.__name__ = "box2D.collision.B2DynamicTreeNode"; qj.prototype = { id: null, isLeaf: function () { return null == this.child1 }, userData: null, aabb: null, parent: null, child1: null, child2: null, __class__: qj }; var An = function () { }; k["box2D.collision.B2DynamicTreePair"] = An; An.__name__ = "box2D.collision.B2DynamicTreePair"; An.prototype = {proxyA: null, proxyB: null, __class__: An}; var nh = function () { this.m_pointCount = 0; this.m_points = []; for (var a = 0, b = Y.b2_maxManifoldPoints; a < b;) { var c = a++; this.m_points[c] = new Bn } this.m_localPlaneNormal = new M; this.m_localPoint = new M }; k["box2D.collision.B2Manifold"] = nh; nh.__name__ = "box2D.collision.B2Manifold"; nh.prototype = { reset: function () { for (var a = 0, b = Y.b2_maxManifoldPoints; a < b;) { var c = a++; this.m_points[c].reset() } a = this.m_localPlaneNormal; a.x = 0; a.y = 0; a = this.m_localPoint; a.x = 0; this.m_pointCount = this.m_type = a.y = 0 }, set: function (a) { this.m_pointCount = a.m_pointCount; for (var b = 0, c = Y.b2_maxManifoldPoints; b < c;) { var d = b++; this.m_points[d].set(a.m_points[d]) } b = this.m_localPlaneNormal; c = a.m_localPlaneNormal; b.x = c.x; b.y = c.y; b = this.m_localPoint; c = a.m_localPoint; b.x = c.x; b.y = c.y; this.m_type = a.m_type }, copy: function () { var a = new nh; a.set(this); return a }, m_points: null, m_localPlaneNormal: null, m_localPoint: null, m_type: null, m_pointCount: null, __class__: nh }; var Bn = function () { this.m_localPoint = new M; this.m_id = new Xb; this.reset() }; k["box2D.collision.B2ManifoldPoint"] = Bn; Bn.__name__ = "box2D.collision.B2ManifoldPoint"; Bn.prototype = { reset: function () { var a = this.m_localPoint; a.x = 0; this.m_tangentImpulse = this.m_normalImpulse = a.y = 0; this.m_id.set_key(0) }, set: function (a) { var b = this.m_localPoint, c = a.m_localPoint; b.x = c.x; b.y = c.y; this.m_normalImpulse = a.m_normalImpulse; this.m_tangentImpulse = a.m_tangentImpulse; this.m_id.set(a.m_id) }, m_localPoint: null, m_normalImpulse: null, m_tangentImpulse: null, m_id: null, __class__: Bn }; var fr = function () { this.R = new Ec; this.center = new M; this.extents = new M }; k["box2D.collision.B2OBB"] = fr; fr.__name__ = "box2D.collision.B2OBB"; fr.prototype = { R: null, center: null, extents: null, __class__: fr }; var tk = function (a, b, c) { null == c && (c = 1); this.p1 = new M; this.p2 = new M; if (null != a) { var d = this.p1; d.x = a.x; d.y = a.y } null != b && (d = this.p2, d.x = b.x, d.y = b.y); this.maxFraction = c }; k["box2D.collision.B2RayCastInput"] = tk; tk.__name__ = "box2D.collision.B2RayCastInput"; tk.prototype = {p1: null, p2: null, maxFraction: null, __class__: tk}; var Cn = function () { this.normal = new M }; k["box2D.collision.B2RayCastOutput"] = Cn; Cn.__name__ = "box2D.collision.B2RayCastOutput"; Cn.prototype = {normal: null, fraction: null, __class__: Cn}; var mf = function () { this.m_localPoint = new M; this.m_axis = new M }; k["box2D.collision.B2SeparationFunction"] = mf; mf.__name__ = "box2D.collision.B2SeparationFunction"; mf.prototype = { initialize: function (a, b, c, d, e) { this.m_proxyA = b; this.m_proxyB = d; b = a.count; Y.b2Assert(0 < b && 3 > b); if (1 == b) { this.m_type = mf.e_points; var g = this.m_proxyA.getVertex(a.indexA[0]); a = this.m_proxyB.getVertex(a.indexB[0]); var r = g; var f = c.R; g = c.position.x + (f.col1.x * r.x + f.col2.x * r.y); c = c.position.y + (f.col1.y * r.x + f.col2.y * r.y); r = a; f = e.R; a = e.position.x + (f.col1.x * r.x + f.col2.x * r.y); e = e.position.y + (f.col1.y * r.x + f.col2.y * r.y); this.m_axis.x = a - g; this.m_axis.y = e - c; this.m_axis.normalize() } else if (a.indexB[0] == a.indexB[1]) { this.m_type = mf.e_faceA; b = this.m_proxyA.getVertex(a.indexA[0]); d = this.m_proxyA.getVertex(a.indexA[1]); a = this.m_proxyB.getVertex(a.indexB[0]); this.m_localPoint.x = .5 * (b.x + d.x); this.m_localPoint.y = .5 * (b.y + d.y); var p = this.m_axis; b = O.crossVF(O.subtractVVPooled(d, b), 1, !0); p.x = b.x; p.y = b.y; this.m_axis.normalize(); r = this.m_axis; f = c.R; b = f.col1.x * r.x + f.col2.x * r.y; d = f.col1.y * r.x + f.col2.y * r.y; r = this.m_localPoint; f = c.R; g = c.position.x + (f.col1.x * r.x + f.col2.x * r.y); c = c.position.y + (f.col1.y * r.x + f.col2.y * r.y); r = a; f = e.R; a = e.position.x + (f.col1.x * r.x + f.col2.x * r.y); e = e.position.y + (f.col1.y * r.x + f.col2.y * r.y); 0 > (a - g) * b + (e - c) * d && (p = this.m_axis, p.x = -p.x, p.y = -p.y) } else if (a.indexA[0] == a.indexA[0]) this.m_type = mf.e_faceB, f = this.m_proxyB.getVertex(a.indexB[0]), r = this.m_proxyB.getVertex(a.indexB[1]), g = this.m_proxyA.getVertex(a.indexA[0]), this.m_localPoint.x = .5 * (f.x + r.x), this.m_localPoint.y = .5 * (f.y + r.y), p = this.m_axis, b = O.crossVF(O.subtractVVPooled(r, f), 1, !0), p.x = b.x, p.y = b.y, this.m_axis.normalize(), r = this.m_axis, f = e.R, b = f.col1.x * r.x + f.col2.x * r.y, d = f.col1.y * r.x + f.col2.y * r.y, r = this.m_localPoint, f = e.R, a = e.position.x + (f.col1.x * r.x + f.col2.x * r.y), e = e.position.y + (f.col1.y * r.x + f.col2.y * r.y), r = g, f = c.R, g = c.position.x + (f.col1.x * r.x + f.col2.x * r.y), c = c.position.y + (f.col1.y * r.x + f.col2.y * r.y), 0 > (g - a) * b + (c - e) * d && (p = this.m_axis, p.x = -p.x, p.y = -p.y); else { b = this.m_proxyA.getVertex(a.indexA[0]); d = this.m_proxyA.getVertex(a.indexA[1]); f = this.m_proxyB.getVertex(a.indexB[0]); r = this.m_proxyB.getVertex(a.indexB[1]); var m = O.mulMV(c.R, O.subtractVVPooled(d, b), !0); e = O.mulMV(e.R, O.subtractVVPooled(r, f), !0); c = m.x * m.x + m.y * m.y; g = e.x * e.x + e.y * e.y; p = O.subtractVVPooled(e, m); a = m.x * p.x + m.y * p.y; p = e.x * p.x + e.y * p.y; m = m.x * e.x + m.y * e.y; var h = c * g - m * m; e = 0; 0 != h && (e = O.clamp((m * p - a * g) / h, 0, 1)); 0 > (m * e + p) / g && (e = O.clamp((m - a) / c, 0, 1)); g = M.getFromPool(); g.x = b.x + e * (d.x - b.x); g.y = b.y + e * (d.y - b.y); a = M.getFromPool(); a.x = f.x + e * (r.x - f.x); a.y = f.y + e * (r.y - f.y); 0 == e || 1 == e ? (this.m_type = mf.e_faceB, p = this.m_axis, b = O.crossVF(O.subtractVVPooled(r, f), 1, !0), p.x = b.x, p.y = b.y, this.m_axis.normalize(), p = this.m_localPoint, p.x = a.x, p.y = a.y) : (this.m_type = mf.e_faceA, p = this.m_axis, b = O.crossVF(O.subtractVVPooled(d, b), 1, !0), p.x = b.x, p.y = b.y, p = this.m_localPoint, p.x = g.x, p.y = g.y); 0 > e && (p = this.m_axis, p.x = -p.x, p.y = -p.y) } }, evaluate: function (a, b) { var c; if (this.m_type == mf.e_points) { var d = O.mulTMV(a.R, this.m_axis, !0); var e = O.mulTMV(b.R, this.m_axis.getNegativePooled(), !0); d = this.m_proxyA.getSupportVertex(d); e = this.m_proxyB.getSupportVertex(e); a = O.mulX(a, d, !0); b = O.mulX(b, e, !0); return c = (b.x - a.x) * this.m_axis.x + (b.y - a.y) * this.m_axis.y } if (this.m_type == mf.e_faceA) return c = O.mulMV(a.R, this.m_axis, !0), a = O.mulX(a, this.m_localPoint, !0), e = O.mulTMV(b.R, c.getNegativePooled(), !0), e = this.m_proxyB.getSupportVertex(e), b = O.mulX(b, e, !0), c = (b.x - a.x) * c.x + (b.y - a.y) * c.y; if (this.m_type == mf.e_faceB) return c = O.mulMV(b.R, this.m_axis, !0), b = O.mulX(b, this.m_localPoint, !0), d = O.mulTMV(a.R, c.getNegativePooled(), !0), d = this.m_proxyA.getSupportVertex(d), a = O.mulX(a, d, !0), c = (a.x - b.x) * c.x + (a.y - b.y) * c.y; Y.b2Assert(!1); return 0 }, m_proxyA: null, m_proxyB: null, m_type: null, m_localPoint: null, m_axis: null, __class__: mf }; var wk = function () { this.useCache = !1; this.indexA = []; this.indexB = [] }; k["box2D.collision.B2SimplexCache"] = wk; wk.__name__ = "box2D.collision.B2SimplexCache"; wk.prototype = {metric: null, count: null, indexA: null, indexB: null, useCache: null, __class__: wk}; var Dn = function () { this.proxyA = new Pg; this.proxyB = new Pg; this.sweepA = new oh; this.sweepB = new oh }; k["box2D.collision.B2TOIInput"] = Dn; Dn.__name__ = "box2D.collision.B2TOIInput"; Dn.prototype = {proxyA: null, proxyB: null, sweepA: null, sweepB: null, tolerance: null, __class__: Dn}; var af = function (a, b) { this.position = new M; this.R = new Ec; if (null != a) { var c = this.position; c.x = a.x; c.y = a.y; this.R.setM(b) } }; k["box2D.common.math.B2Transform"] = af; af.__name__ = "box2D.common.math.B2Transform"; af.prototype = { initialize: function (a, b) { var c = this.position; c.x = a.x; c.y = a.y; this.R.setM(b) }, setIdentity: function () { var a = this.position; a.x = 0; a.y = 0; this.R.setIdentity() }, set: function (a) { var b = this.position, c = a.position; b.x = c.x; b.y = c.y; this.R.setM(a.R) }, getAngle: function () { return Math.atan2(this.R.col1.y, this.R.col1.x) }, multiply: function (a) { a = this.R.multiplyV(a); a.add(this.position); return a }, multiplyInPlace: function (a) { this.R.multiplyVInPlace(a); a.add(this.position) }, position: null, R: null, __class__: af }; var Ec = function () { this.col1 = new M(0, 1); this.col2 = new M(0, 1) }; k["box2D.common.math.B2Mat22"] = Ec; Ec.__name__ = "box2D.common.math.B2Mat22"; Ec.fromAngle = function (a) { var b = new Ec; b.set(a); return b }; Ec.fromVV = function (a, b) { var c = new Ec; c.setVV(a, b); return c }; Ec.prototype = { set: function (a) { var b = Math.cos(a); a = Math.sin(a); this.col1.x = b; this.col2.x = -a; this.col1.y = a; this.col2.y = b }, setVV: function (a, b) { var c = this.col1; c.x = a.x; c.y = a.y; c = this.col2; c.x = b.x; c.y = b.y }, copy: function () { var a = new Ec; a.setM(this); return a }, setM: function (a) { var b = this.col1, c = a.col1; b.x = c.x; b.y = c.y; b = this.col2; c = a.col2; b.x = c.x; b.y = c.y }, addM: function (a) { this.col1.x += a.col1.x; this.col1.y += a.col1.y; this.col2.x += a.col2.x; this.col2.y += a.col2.y }, multiplyV: function (a) { return new M(this.col1.x * a.x + this.col2.x * a.y, this.col1.y * a.x + this.col2.y * a.y) }, multiplyVInPlace: function (a) { var b = this.col1.x * a.x + this.col2.x * a.y, c = this.col1.y * a.x + this.col2.y * a.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c }, setIdentity: function () { this.col1.x = 1; this.col2.x = 0; this.col1.y = 0; this.col2.y = 1 }, setZero: function () { this.col1.x = 0; this.col2.x = 0; this.col1.y = 0; this.col2.y = 0 }, setAngle: function (a) { this.col1.x = Math.cos(a); this.col1.y = Math.sin(a); this.col2.x = -this.col1.y; this.col2.y = this.col1.x }, getAngle: function () { return Math.atan2(this.col1.y, this.col1.x) }, getInverse: function (a) { var b = this.col1.x, c = this.col2.x, d = this.col1.y, e = this.col2.y, g = b * e - c * d; 0 != g && (g = 1 / g); a.col1.x = g * e; a.col2.x = -g * c; a.col1.y = -g * d; a.col2.y = g * b; return a }, solve: function (a, b, c) { var d = this.col1.x, e = this.col2.x, g = this.col1.y, r = this.col2.y, f = d * r - e * g; 0 != f && (f = 1 / f); a.x = f * (r * b - e * c); a.y = f * (d * c - g * b); return a }, abs: function () { this.col1.abs(); this.col2.abs() }, col1: null, col2: null, __class__: Ec }; var Ob = function () { }; k["box2D.collision.B2TimeOfImpact"] = Ob; Ob.__name__ = "box2D.collision.B2TimeOfImpact"; Ob.timeOfImpact = function (a) { ++Ob.b2_toiCalls; var b = a.proxyA, c = a.proxyB, d = a.sweepA, e = a.sweepB; Y.b2Assert(d.t0 == e.t0); Y.b2Assert(1 - d.t0 > Number.MIN_VALUE); var g = b.m_radius + c.m_radius; a = a.tolerance; var r = 0, f = 0, p = 0; Ob.s_cache.count = 0; for (Ob.s_distanceInput.useRadii = !1; ;) { d.getTransform(Ob.s_xfA, r); e.getTransform(Ob.s_xfB, r); Ob.s_distanceInput.proxyA = b; Ob.s_distanceInput.proxyB = c; Ob.s_distanceInput.transformA = Ob.s_xfA; Ob.s_distanceInput.transformB = Ob.s_xfB; Te.distance(Ob.s_distanceOutput, Ob.s_cache, Ob.s_distanceInput); if (0 >= Ob.s_distanceOutput.distance) { r = 1; break } Ob.s_fcn.initialize(Ob.s_cache, b, Ob.s_xfA, c, Ob.s_xfB); var m = Ob.s_fcn.evaluate(Ob.s_xfA, Ob.s_xfB); if (0 >= m) { r = 1; break } 0 == f && (p = m > g ? O.max(g - a, .75 * g) : O.max(m - a, .02 * g)); if (m - p < .5 * a) { if (0 == f) { r = 1; break } break } var h = r, n = r, yb = 1; d.getTransform(Ob.s_xfA, yb); e.getTransform(Ob.s_xfB, yb); var k = Ob.s_fcn.evaluate(Ob.s_xfA, Ob.s_xfB); if (k >= p) { r = 1; break } for (var l = 0; ;) { var ub = 0 != (l & 1) ? n + (p - m) * (yb - n) / (k - m) : .5 * (n + yb); d.getTransform(Ob.s_xfA, ub); e.getTransform(Ob.s_xfB, ub); var t = Ob.s_fcn.evaluate(Ob.s_xfA, Ob.s_xfB); if (O.abs(t - p) < .025 * a) { h = ub; break } t > p ? (n = ub, m = t) : (yb = ub, k = t); ++l; ++Ob.b2_toiRootIters; if (50 == l) break } Ob.b2_toiMaxRootIters = O.max(Ob.b2_toiMaxRootIters, l) | 0; if (h < (1 + 100 * Number.MIN_VALUE) * r) break; r = h; ++f; ++Ob.b2_toiIters; if (1E3 == f) break } Ob.b2_toiMaxIters = O.max(Ob.b2_toiMaxIters, f) | 0; return r }; var rj = function () { this.m_normal = new M; this.m_points = []; for (var a = 0, b = Y.b2_maxManifoldPoints; a < b;) { var c = a++; this.m_points[c] = new M } }; k["box2D.collision.B2WorldManifold"] = rj; rj.__name__ = "box2D.collision.B2WorldManifold"; rj.prototype = { reset: function () { var a = this.m_normal; a.x = 0; for (var b = a.y = 0, c = Y.b2_maxManifoldPoints; b < c;) a = b++, a = this.m_points[a], a.x = 0, a.y = 0 }, initialize: function (a, b, c, d, e) { if (0 != a.m_pointCount) { var g = this.m_normal; g.x = 0; for (var r = g.y = 0, f = Y.b2_maxManifoldPoints; r < f;) { var p = r++; g = this.m_points[p]; g.x = 0; g.y = 0 } switch (a.m_type) { case 1: var m = b.R; g = a.m_localPoint; r = b.position.x + m.col1.x * g.x + m.col2.x * g.y; b = b.position.y + m.col1.y * g.x + m.col2.y * g.y; m = d.R; g = a.m_points[0].m_localPoint; a = d.position.x + m.col1.x * g.x + m.col2.x * g.y; d = d.position.y + m.col1.y * g.x + m.col2.y * g.y; g = a - r; m = d - b; f = g * g + m * m; f > Number.MIN_VALUE * Number.MIN_VALUE ? (f = Math.sqrt(f), this.m_normal.x = g / f, this.m_normal.y = m / f) : (this.m_normal.x = 1, this.m_normal.y = 0); b += c * this.m_normal.y; d -= e * this.m_normal.y; this.m_points[0].x = .5 * (r + c * this.m_normal.x + (a - e * this.m_normal.x)); this.m_points[0].y = .5 * (b + d); break; case 2: m = b.R; g = a.m_localPlaneNormal; var h = m.col1.x * g.x + m.col2.x * g.y; var n = m.col1.y * g.x + m.col2.y * g.y; m = b.R; g = a.m_localPoint; var yb = b.position.x + m.col1.x * g.x + m.col2.x * g.y; var k = b.position.y + m.col1.y * g.x + m.col2.y * g.y; this.m_normal.x = h; this.m_normal.y = n; r = 0; for (f = a.m_pointCount; r < f;) { p = r++; m = d.R; g = a.m_points[p].m_localPoint; var l = d.position.x + m.col1.x * g.x + m.col2.x * g.y; g = d.position.y + m.col1.y * g.x + m.col2.y * g.y; this.m_points[p].x = l + .5 * (c - (l - yb) * h - (g - k) * n - e) * h; this.m_points[p].y = g + .5 * (c - (l - yb) * h - (g - k) * n - e) * n } break; case 4: for (m = d.R, g = a.m_localPlaneNormal, h = m.col1.x * g.x + m.col2.x * g.y, n = m.col1.y * g.x + m.col2.y * g.y, m = d.R, g = a.m_localPoint, yb = d.position.x + m.col1.x * g.x + m.col2.x * g.y, k = d.position.y + m.col1.y * g.x + m.col2.y * g.y, this.m_normal.x = -h, this.m_normal.y = -n, r = 0, f = a.m_pointCount; r < f;) p = r++, m = b.R, g = a.m_points[p].m_localPoint, l = b.position.x + m.col1.x * g.x + m.col2.x * g.y, g = b.position.y + m.col1.y * g.x + m.col2.y * g.y, this.m_points[p].x = l + .5 * (e - (l - yb) * h - (g - k) * n - c) * h, this.m_points[p].y = g + .5 * (e - (l - yb) * h - (g - k) * n - c) * n } } }, getPoint: function () { return 0 == this.m_points.length ? null : 1 == this.m_points.length ? this.m_points[0] : new M((this.m_points[0].x + this.m_points[1].x) / 2, (this.m_points[0].y + this.m_points[1].y) / 2) }, m_normal: null, m_points: null, __class__: rj }; var $b = function () { this.m_type = -1; this.m_radius = Y.b2_linearSlop }; k["box2D.collision.shapes.B2Shape"] = $b; $b.__name__ = "box2D.collision.shapes.B2Shape"; $b.testOverlap = function (a, b, c, d) { $b.initialized || ($b.distanceInput.proxyA = $b.proxyA, $b.distanceInput.proxyB = $b.proxyB, $b.distanceInput.useRadii = !0, $b.initialized = !0); $b.proxyA.set(a); $b.proxyB.set(c); $b.distanceInput.transformA = b; $b.distanceInput.transformB = d; $b.simplexCache.count = 0; Te.distance($b.distanceOutput, $b.simplexCache, $b.distanceInput); return $b.distanceOutput.distance < 10 * Number.MIN_VALUE }; $b.prototype = { copy: function () { return null }, set: function (a) { this.m_radius = a.m_radius }, getType: function () { return this.m_type }, testPoint: function (a, b) { return !1 }, rayCast: function (a, b, c) { return !1 }, computeAABB: function (a, b) { }, computeMass: function (a, b) { }, computeSubmergedArea: function (a, b, c, d) { return 0 }, m_type: null, m_radius: null, __class__: $b }; var Qc = function (a) { null == a && (a = 0); $b.call(this); this.m_p = new M; this.m_type = 0; this.m_radius = a }; k["box2D.collision.shapes.B2CircleShape"] = Qc; Qc.__name__ = "box2D.collision.shapes.B2CircleShape"; Qc.__super__ = $b; Qc.prototype = u($b.prototype, { copy: function () { var a = new Qc; a.set(this); return a }, set: function (a) { $b.prototype.set.call(this, a); if (a instanceof Qc) { var b = w.__cast(a, Qc); a = this.m_p; b = b.m_p; a.x = b.x; a.y = b.y } }, testPoint: function (a, b) { var c = a.R, d = a.position.x + (c.col1.x * this.m_p.x + c.col2.x * this.m_p.y); a = a.position.y + (c.col1.y * this.m_p.x + c.col2.y * this.m_p.y); d = b.x - d; a = b.y - a; return d * d + a * a <= this.m_radius * this.m_radius }, rayCast: function (a, b, c) { var d = c.R, e = b.p1.x - (c.position.x + (d.col1.x * this.m_p.x + d.col2.x * this.m_p.y)); c = b.p1.y - (c.position.y + (d.col1.y * this.m_p.x + d.col2.y * this.m_p.y)); d = b.p2.x - b.p1.x; var g = b.p2.y - b.p1.y, r = e * d + c * g, f = d * d + g * g, p = r * r - f * (e * e + c * c - this.m_radius * this.m_radius); if (0 > p || f < Number.MIN_VALUE) return !1; r = -(r + Math.sqrt(p)); return 0 <= r && r <= b.maxFraction * f ? (r /= f, a.fraction = r, a.normal.x = e + r * d, a.normal.y = c + r * g, a.normal.normalize(), !0) : !1 }, computeAABB: function (a, b) { var c = b.R, d = b.position.x + (c.col1.x * this.m_p.x + c.col2.x * this.m_p.y); b = b.position.y + (c.col1.y * this.m_p.x + c.col2.y * this.m_p.y); c = a.lowerBound; var e = d - this.m_radius, g = b - this.m_radius; null == g && (g = 0); null == e && (e = 0); c.x = e; c.y = g; c = a.upperBound; e = d + this.m_radius; g = b + this.m_radius; null == g && (g = 0); null == e && (e = 0); c.x = e; c.y = g }, computeMass: function (a, b) { a.mass = b * Y.b2_pi * this.m_radius * this.m_radius; b = a.center; var c = this.m_p; b.x = c.x; b.y = c.y; a.I = a.mass * (.5 * this.m_radius * this.m_radius + (this.m_p.x * this.m_p.x + this.m_p.y * this.m_p.y)) }, computeSubmergedArea: function (a, b, c, d) { c = O.mulX(c, this.m_p, !0); var e = -(O.dot(a, c) - b); if (e < -this.m_radius + Number.MIN_VALUE) return 0; if (e > this.m_radius) return d.x = c.x, d.y = c.y, Math.PI * this.m_radius * this.m_radius; b = this.m_radius * this.m_radius; var g = e * e; e = b * (Math.asin(e / this.m_radius) + Math.PI / 2) + e * Math.sqrt(b - g); b = -.6666666666666666 * Math.pow(b - g, 1.5) / e; d.x = c.x + a.x * b; d.y = c.y + a.y * b; return e }, getLocalPosition: function () { return this.m_p }, setLocalPosition: function (a) { var b = this.m_p; b.x = a.x; b.y = a.y }, getRadius: function () { return this.m_radius }, setRadius: function (a) { this.m_radius = a }, m_p: null, __class__: Qc }); var xg = function (a, b) { $b.call(this); this.s_supportVec = new M; this.m_v1 = new M; this.m_v2 = new M; this.m_v0 = new M; this.m_v3 = new M; this.m_hasVertex3 = this.m_hasVertex0 = !1; this.m_coreV1 = new M; this.m_coreV2 = new M; this.m_normal = new M; this.m_direction = new M; this.m_cornerDir1 = new M; this.m_cornerDir2 = new M; this.m_type = 2; this.m_nextEdge = this.m_prevEdge = null; this.m_v1 = a; this.m_v2 = b; a = this.m_direction; b = this.m_v2.x - this.m_v1.x; var c = this.m_v2.y - this.m_v1.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.m_length = this.m_direction.normalize(); a = this.m_normal; b = this.m_direction.y; c = -this.m_direction.x; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.m_coreV1; b = -Y.b2_toiSlop * (this.m_normal.x - this.m_direction.x) + this.m_v1.x; c = -Y.b2_toiSlop * (this.m_normal.y - this.m_direction.y) + this.m_v1.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.m_coreV2; b = -Y.b2_toiSlop * (this.m_normal.x + this.m_direction.x) + this.m_v2.x; c = -Y.b2_toiSlop * (this.m_normal.y + this.m_direction.y) + this.m_v2.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.m_cornerDir1 = this.m_normal; a = this.m_cornerDir2; b = -this.m_normal.x; c = -this.m_normal.y; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c }; k["box2D.collision.shapes.B2EdgeShape"] = xg; xg.__name__ = "box2D.collision.shapes.B2EdgeShape"; xg.__super__ = $b; xg.prototype = u($b.prototype, { testPoint: function (a, b) { return !1 }, rayCast: function (a, b, c) { var d = b.p2.x - b.p1.x, e = b.p2.y - b.p1.y, g = c.R, r = c.position.x + (g.col1.x * this.m_v1.x + g.col2.x * this.m_v1.y), f = c.position.y + (g.col1.y * this.m_v1.x + g.col2.y * this.m_v1.y), p = c.position.y + (g.col1.y * this.m_v2.x + g.col2.y * this.m_v2.y) - f; c = -(c.position.x + (g.col1.x * this.m_v2.x + g.col2.x * this.m_v2.y) - r); g = 100 * Number.MIN_VALUE; var m = -(d * p + e * c); if (m > g) { r = b.p1.x - r; var h = b.p1.y - f; f = r * p + h * c; if (0 <= f && f <= b.maxFraction * m && (b = -d * h + e * r, -g * m <= b && b <= m * (1 + g))) return a.fraction = f / m, b = Math.sqrt(p * p + c * c), a.normal.x = p / b, a.normal.y = c / b, !0 } return !1 }, computeAABB: function (a, b) { var c = b.R, d = b.position.x + (c.col1.x * this.m_v1.x + c.col2.x * this.m_v1.y), e = b.position.y + (c.col1.y * this.m_v1.x + c.col2.y * this.m_v1.y), g = b.position.x + (c.col1.x * this.m_v2.x + c.col2.x * this.m_v2.y); b = b.position.y + (c.col1.y * this.m_v2.x + c.col2.y * this.m_v2.y); d < g ? (a.lowerBound.x = d, a.upperBound.x = g) : (a.lowerBound.x = g, a.upperBound.x = d); e < b ? (a.lowerBound.y = e, a.upperBound.y = b) : (a.lowerBound.y = b, a.upperBound.y = e) }, computeMass: function (a, b) { a.mass = 0; b = a.center; var c = this.m_v1; b.x = c.x; b.y = c.y; a.I = 0 }, computeSubmergedArea: function (a, b, c, d) { var e = new M(a.x * b, a.y * b), g = O.mulX(c, this.m_v1, !0); c = O.mulX(c, this.m_v2, !0); var r = O.dot(a, g) - b; a = O.dot(a, c) - b; if (0 < r) { if (0 < a) return 0; g.x = -a / (r - a) * g.x + r / (r - a) * c.x; g.y = -a / (r - a) * g.y + r / (r - a) * c.y } else 0 < a && (c.x = -a / (r - a) * g.x + r / (r - a) * c.x, c.y = -a / (r - a) * g.y + r / (r - a) * c.y); d.x = (e.x + g.x + c.x) / 3; d.y = (e.y + g.y + c.y) / 3; return .5 * ((g.x - e.x) * (c.y - e.y) - (g.y - e.y) * (c.x - e.x)) }, getLength: function () { return this.m_length }, getVertex1: function () { return this.m_v1 }, getVertex2: function () { return this.m_v2 }, getCoreVertex1: function () { return this.m_coreV1 }, getCoreVertex2: function () { return this.m_coreV2 }, getNormalVector: function () { return this.m_normal }, getDirectionVector: function () { return this.m_direction }, getCorner1Vector: function () { return this.m_cornerDir1 }, getCorner2Vector: function () { return this.m_cornerDir2 }, corner1IsConvex: function () { return this.m_cornerConvex1 }, corner2IsConvex: function () { return this.m_cornerConvex2 }, getFirstVertex: function (a) { var b = a.R; return new M(a.position.x + (b.col1.x * this.m_coreV1.x + b.col2.x * this.m_coreV1.y), a.position.y + (b.col1.y * this.m_coreV1.x + b.col2.y * this.m_coreV1.y)) }, getNextEdge: function () { return this.m_nextEdge }, getPrevEdge: function () { return this.m_prevEdge }, s_supportVec: null, support: function (a, b, c) { var d = a.R, e = a.position.x + (d.col1.x * this.m_coreV1.x + d.col2.x * this.m_coreV1.y), g = a.position.y + (d.col1.y * this.m_coreV1.x + d.col2.y * this.m_coreV1.y), r = a.position.x + (d.col1.x * this.m_coreV2.x + d.col2.x * this.m_coreV2.y); a = a.position.y + (d.col1.y * this.m_coreV2.x + d.col2.y * this.m_coreV2.y); e * b + g * c > r * b + a * c ? (this.s_supportVec.x = e, this.s_supportVec.y = g) : (this.s_supportVec.x = r, this.s_supportVec.y = a); return this.s_supportVec }, copy: function () { var a = new xg(this.m_v1, this.m_v2); a.set(this); var b = w.__cast(a, xg), c = b.m_v0, d = this.m_v0; c.x = d.x; c.y = d.y; c = b.m_v3; d = this.m_v3; c.x = d.x; c.y = d.y; b.m_hasVertex0 = this.m_hasVertex0; b.m_hasVertex3 = this.m_hasVertex3; return a }, setPrevEdge: function (a, b, c, d) { this.m_prevEdge = a; this.m_coreV1 = b; this.m_cornerDir1 = c; this.m_cornerConvex1 = d }, setNextEdge: function (a, b, c, d) { this.m_nextEdge = a; this.m_coreV2 = b; this.m_cornerDir2 = c; this.m_cornerConvex2 = d }, m_v1: null, m_v2: null, m_v0: null, m_v3: null, m_hasVertex0: null, m_hasVertex3: null, m_coreV1: null, m_coreV2: null, m_length: null, m_normal: null, m_direction: null, m_cornerDir1: null, m_cornerDir2: null, m_cornerConvex1: null, m_cornerConvex2: null, m_nextEdge: null, m_prevEdge: null, __class__: xg }); var sj = function () { this.mass = 0; this.center = new M(0, 0); this.I = 0 }; k["box2D.collision.shapes.B2MassData"] = sj; sj.__name__ = "box2D.collision.shapes.B2MassData"; sj.prototype = {mass: null, center: null, I: null, __class__: sj}; var Jb = function () { $b.call(this); this.m_type = 1; this.m_centroid = new M; this.m_vertices = []; this.m_normals = [] }; k["box2D.collision.shapes.B2PolygonShape"] = Jb; Jb.__name__ = "box2D.collision.shapes.B2PolygonShape"; Jb.asArray = function (a, b) { var c = new Jb; c.setAsArray(a, b); return c }; Jb.asVector = function (a, b) { var c = new Jb; c.setAsVector(a, b); return c }; Jb.asBox = function (a, b) { var c = new Jb; c.setAsBox(a, b); return c }; Jb.asOrientedBox = function (a, b, c, d) { null == d && (d = 0); var e = new Jb; e.setAsOrientedBox(a, b, c, d); return e }; Jb.asEdge = function (a, b) { var c = new Jb; c.setAsEdge(a, b); return c }; Jb.computeCentroid = function (a, b) { for (var c = new M, d = 0, e = 0; e < b;) { var g = e++, r = a[g]; g = g + 1 < b ? a[g + 1 | 0] : a[0]; var f = .5 * ((r.x - 0) * (g.y - 0) - (r.y - 0) * (g.x - 0)); d += f; c.x += .3333333333333333 * f * (0 + r.x + g.x); c.y += .3333333333333333 * f * (0 + r.y + g.y) } c.x *= 1 / d; c.y *= 1 / d; return c }; Jb.computeOBB = function (a, b, c) { for (var d, e = [], g = 0, r = c; g < r;) d = g++, e[d] = b[d]; e[c] = e[0]; b = Number.MAX_VALUE; g = 1; for (r = c + 1; g < r;) { d = g++; var f = e[d - 1 | 0], p = e[d].x - f.x, m = e[d].y - f.y; d = Math.sqrt(p * p + m * m); p /= d; m /= d; for (var h = -m, n = p, yb = d = Number.MAX_VALUE, k = -Number.MAX_VALUE, l = -Number.MAX_VALUE, ub = 0, t = c; ub < t;) { var q = ub++, ja = e[q].x - f.x, w = e[q].y - f.y; q = p * ja + m * w; ja = h * ja + n * w; q < d && (d = q); ja < yb && (yb = ja); q > k && (k = q); ja > l && (l = ja) } ub = (k - d) * (l - yb); ub < .95 * b && (b = ub, a.R.col1.x = p, a.R.col1.y = m, a.R.col2.x = h, a.R.col2.y = n, p = .5 * (d + k), m = .5 * (yb + l), h = a.R, a.center.x = f.x + (h.col1.x * p + h.col2.x * m), a.center.y = f.y + (h.col1.y * p + h.col2.y * m), a.extents.x = .5 * (k - d), a.extents.y = .5 * (l - yb)) } }; Jb.__super__ = $b; Jb.prototype = u($b.prototype, { copy: function () { var a = new Jb; a.set(this); return a }, set: function (a) { $b.prototype.set.call(this, a); if (a instanceof Jb) { a = w.__cast(a, Jb); var b = this.m_centroid, c = a.m_centroid; b.x = c.x; b.y = c.y; this.m_vertexCount = a.m_vertexCount; this.reserve(this.m_vertexCount); for (var d = 0, e = this.m_vertexCount; d < e;) { var g = d++; b = this.m_vertices[g]; c = a.m_vertices[g]; b.x = c.x; b.y = c.y; b = this.m_normals[g]; g = a.m_normals[g]; b.x = g.x; b.y = g.y } } }, setAsArray: function (a, b) { null == b && (b = 0); for (var c = [], d = 0; d < a.length;) { var e = a[d]; ++d; c.push(e) } this.setAsVector(c, b) }, setAsVector: function (a, b) { null == b && (b = 0); 0 == b && (b = a.length); Y.b2Assert(2 <= b); this.m_vertexCount = b; this.reserve(b); for (var c = 0, d = this.m_vertexCount; c < d;) { b = c++; var e = this.m_vertices[b], g = a[b]; e.x = g.x; e.y = g.y } c = 0; for (d = this.m_vertexCount; c < d;) b = c++, a = O.subtractVVPooled(this.m_vertices[b + 1 < this.m_vertexCount ? b + 1 : 0], this.m_vertices[b]), Y.b2Assert(a.lengthSquared() > Number.MIN_VALUE), e = this.m_normals[b], g = O.crossVF(a, 1, !0), e.x = g.x, e.y = g.y, this.m_normals[b].normalize(); this.m_centroid = Jb.computeCentroid(this.m_vertices, this.m_vertexCount) }, setAsBox: function (a, b) { this.m_vertexCount = 4; this.reserve(4); var c = this.m_vertices[0], d = -a, e = -b; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_vertices[1]; d = a; e = -b; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_vertices[2]; d = a; e = b; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_vertices[3]; d = -a; e = b; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_normals[0]; d = 0; e = -1; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_normals[1]; d = 1; e = 0; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_normals[2]; d = 0; e = 1; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_normals[3]; d = -1; e = 0; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = this.m_centroid; c.x = 0; c.y = 0 }, setAsOrientedBox: function (a, b, c, d) { null == d && (d = 0); this.m_vertexCount = 4; this.reserve(4); var e = this.m_vertices[0], g = -a, r = -b; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_vertices[1]; g = a; r = -b; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_vertices[2]; g = a; r = b; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_vertices[3]; g = -a; r = b; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_normals[0]; g = 0; r = -1; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_normals[1]; g = 1; r = 0; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_normals[2]; g = 0; r = 1; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = this.m_normals[3]; g = -1; r = 0; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; this.m_centroid = c; a = new af; a.position = c; a.R.set(d); c = 0; for (d = this.m_vertexCount; c < d;) b = c++, this.m_vertices[b] = O.mulX(a, this.m_vertices[b]), this.m_normals[b] = O.mulMV(a.R, this.m_normals[b]) }, setAsEdge: function (a, b) { this.m_vertexCount = 2; this.reserve(2); var c = this.m_vertices[0]; c.x = a.x; c.y = a.y; c = this.m_vertices[1]; c.x = b.x; c.y = b.y; this.m_centroid.x = .5 * (a.x + b.x); this.m_centroid.y = .5 * (a.y + b.y); this.m_normals[0] = O.crossVF(O.subtractVV(b, a), 1); this.m_normals[0].normalize(); this.m_normals[1].x = -this.m_normals[0].x; this.m_normals[1].y = -this.m_normals[0].y }, testPoint: function (a, b) { var c = a.R; var d = b.x - a.position.x; a = b.y - a.position.y; b = d * c.col1.x + a * c.col1.y; for (var e = d * c.col2.x + a * c.col2.y, g = 0, r = this.m_vertexCount; g < r;) { var f = g++; c = this.m_vertices[f]; d = b - c.x; a = e - c.y; c = this.m_normals[f]; if (0 < c.x * d + c.y * a) return !1 } return !0 }, rayCast: function (a, b, c) { var d = 0, e = b.maxFraction, g = b.p1.x - c.position.x, r = b.p1.y - c.position.y, f = c.R, p = g * f.col1.x + r * f.col1.y, m = g * f.col2.x + r * f.col2.y; g = b.p2.x - c.position.x; r = b.p2.y - c.position.y; f = c.R; b = g * f.col1.x + r * f.col1.y - p; f = g * f.col2.x + r * f.col2.y - m; for (var h = -1, n = 0, yb = this.m_vertexCount; n < yb;) { var k = n++; var l = this.m_vertices[k]; g = l.x - p; r = l.y - m; l = this.m_normals[k]; g = l.x * g + l.y * r; l = l.x * b + l.y * f; if (0 == l) { if (0 > g) return !1 } else 0 > l && g < d * l ? (d = g / l, h = k) : 0 < l && g < e * l && (e = g / l); if (e < d - Number.MIN_VALUE) return !1 } return 0 <= h ? (a.fraction = d, f = c.R, l = this.m_normals[h], a.normal.x = f.col1.x * l.x + f.col2.x * l.y, a.normal.y = f.col1.y * l.x + f.col2.y * l.y, !0) : !1 }, computeAABB: function (a, b) { for (var c = b.R, d = this.m_vertices[0], e = b.position.x + (c.col1.x * d.x + c.col2.x * d.y), g = b.position.y + (c.col1.y * d.x + c.col2.y * d.y), r = e, f = g, p = 1, m = this.m_vertexCount; p < m;) { var h = p++; d = this.m_vertices[h]; h = b.position.x + (c.col1.x * d.x + c.col2.x * d.y); d = b.position.y + (c.col1.y * d.x + c.col2.y * d.y); e < h || (e = h); g < d || (g = d); r > h || (r = h); f > d || (f = d) } a.lowerBound.x = e - this.m_radius; a.lowerBound.y = g - this.m_radius; a.upperBound.x = r + this.m_radius; a.upperBound.y = f + this.m_radius }, computeMass: function (a, b) { if (2 == this.m_vertexCount) a.center.x = .5 * (this.m_vertices[0].x + this.m_vertices[1].x), a.center.y = .5 * (this.m_vertices[0].y + this.m_vertices[1].y), a.mass = 0, a.I = 0; else { for (var c = 0, d = 0, e = 0, g = 0, r = 0, f = this.m_vertexCount; r < f;) { var p = r++, m = this.m_vertices[p], h = p + 1 < this.m_vertexCount ? this.m_vertices[p + 1 | 0] : this.m_vertices[0], n = m.x - 0, l = m.y - 0, k = h.x - 0, tc = h.y - 0; p = n * tc - l * k; var ub = .5 * p; e += ub; c += .3333333333333333 * ub * (0 + m.x + h.x); d += .3333333333333333 * ub * (0 + m.y + h.y); m = n; g += p * (.3333333333333333 * (.25 * (m * m + k * m + k * k) + (0 * m + 0 * k)) + .3333333333333333 * (.25 * (l * l + tc * l + tc * tc) + (0 * l + 0 * tc))) } a.mass = b * e; r = a.center; c *= 1 / e; d *= 1 / e; null == d && (d = 0); null == c && (c = 0); r.x = c; r.y = d; a.I = b * g } }, computeSubmergedArea: function (a, b, c, d) { var e = O.mulTMV(c.R, a, !0), g = b - O.dot(a, c.position), r = [], f = 0, p = -1; b = -1; for (var m = !1, h = 0, n = this.m_vertexCount; h < n;) { a = h++; r[a] = O.dot(e, this.m_vertices[a]) - g; var l = r[a] < -Number.MIN_VALUE; 0 < a && (l ? m || (p = a - 1, ++f) : m && (b = a - 1, ++f)); m = l } switch (f) { case 0: return m ? (a = new sj, this.computeMass(a, 1), c = O.mulX(c, a.center), d.x = c.x, d.y = c.y, a.mass) : 0; case 1: -1 == p ? p = this.m_vertexCount - 1 : b = this.m_vertexCount - 1 } a = (p + 1) % this.m_vertexCount; e = (b + 1) % this.m_vertexCount; g = (0 - r[p]) / (r[a] - r[p]); r = (0 - r[b]) / (r[e] - r[b]); p = new M(this.m_vertices[p].x * (1 - g) + this.m_vertices[a].x * g, this.m_vertices[p].y * (1 - g) + this.m_vertices[a].y * g); r = new M(this.m_vertices[b].x * (1 - r) + this.m_vertices[e].x * r, this.m_vertices[b].y * (1 - r) + this.m_vertices[e].y * r); b = 0; g = new M; for (f = this.m_vertices[a]; a != e;) a = (a + 1) % this.m_vertexCount, m = a == e ? r : this.m_vertices[a], h = .5 * ((f.x - p.x) * (m.y - p.y) - (f.y - p.y) * (m.x - p.x)), b += h, g.x += h * (p.x + f.x + m.x) / 3, g.y += h * (p.y + f.y + m.y) / 3, f = m; g.multiply(1 / b); c = O.mulX(c, g); d.x = c.x; d.y = c.y; return b }, getVertexCount: function () { return this.m_vertexCount }, getVertices: function () { return this.m_vertices }, getNormals: function () { return this.m_normals }, getSupport: function (a) { for (var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, d = 1, e = this.m_vertexCount; d < e;) { var g = d++, r = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; r > c && (b = g, c = r) } return b }, getSupportVertex: function (a) { for (var b = 0, c = this.m_vertices[0].x * a.x + this.m_vertices[0].y * a.y, d = 1, e = this.m_vertexCount; d < e;) { var g = d++, r = this.m_vertices[g].x * a.x + this.m_vertices[g].y * a.y; r > c && (b = g, c = r) } return this.m_vertices[b] }, validate: function () { return !1 }, reserve: function (a) { for (var b = this.m_vertices.length; b < a;) { var c = b++; this.m_vertices[c] = new M; this.m_normals[c] = new M } }, m_centroid: null, m_vertices: null, m_normals: null, m_vertexCount: null, __class__: Jb }); var xk = function (a, b, c) { this._r = 255 * O.clamp(a, 0, 1) | 0; this._g = 255 * O.clamp(b, 0, 1) | 0; this._b = 255 * O.clamp(c, 0, 1) | 0 }; k["box2D.common.B2Color"] = xk; xk.__name__ = "box2D.common.B2Color"; xk.prototype = { set: function (a, b, c) { this._r = 255 * O.clamp(a, 0, 1) | 0; this._g = 255 * O.clamp(b, 0, 1) | 0; this._b = 255 * O.clamp(c, 0, 1) | 0 }, r: null, g: null, b: null, color: null, set_r: function (a) { return this._r = 255 * O.clamp(a, 0, 1) | 0 }, set_g: function (a) { return this._g = 255 * O.clamp(a, 0, 1) | 0 }, set_b: function (a) { return this._b = 255 * O.clamp(a, 0, 1) | 0 }, get_color: function () { return this._r << 16 | this._g << 8 | this._b }, _r: null, _g: null, _b: null, __class__: xk, __properties__: {get_color: "get_color", set_b: "set_b", set_g: "set_g", set_r: "set_r"} }; var Y = function () { }; k["box2D.common.B2Settings"] = Y; Y.__name__ = "box2D.common.B2Settings"; Y.b2MixFriction = function (a, b) { return Math.sqrt(a * b) }; Y.b2MixRestitution = function (a, b) { return a > b ? a : b }; Y.b2Assert = function (a) { if (!a) throw I.thrown("Assertion Failed"); }; var Kh = function (a, b, c) { this.col1 = new bf; this.col2 = new bf; this.col3 = new bf; null == a && null == b && null == c ? (this.col1.setZero(), this.col2.setZero(), this.col3.setZero()) : (this.col1.setV(a), this.col2.setV(b), this.col3.setV(c)) }; k["box2D.common.math.B2Mat33"] = Kh; Kh.__name__ = "box2D.common.math.B2Mat33"; Kh.prototype = { setVVV: function (a, b, c) { this.col1.setV(a); this.col2.setV(b); this.col3.setV(c) }, copy: function () { return new Kh(this.col1, this.col2, this.col3) }, setM: function (a) { this.col1.setV(a.col1); this.col2.setV(a.col2); this.col3.setV(a.col3) }, addM: function (a) { this.col1.x += a.col1.x; this.col1.y += a.col1.y; this.col1.z += a.col1.z; this.col2.x += a.col2.x; this.col2.y += a.col2.y; this.col2.z += a.col2.z; this.col3.x += a.col3.x; this.col3.y += a.col3.y; this.col3.z += a.col3.z }, setIdentity: function () { this.col1.x = 1; this.col2.x = 0; this.col3.x = 0; this.col1.y = 0; this.col2.y = 1; this.col3.y = 0; this.col1.z = 0; this.col2.z = 0; this.col3.z = 1 }, setZero: function () { this.col1.x = 0; this.col2.x = 0; this.col3.x = 0; this.col1.y = 0; this.col2.y = 0; this.col3.y = 0; this.col1.z = 0; this.col2.z = 0; this.col3.z = 0 }, solve22: function (a, b, c) { var d = this.col1.x, e = this.col2.x, g = this.col1.y, r = this.col2.y, f = d * r - e * g; 0 != f && (f = 1 / f); a.x = f * (r * b - e * c); a.y = f * (d * c - g * b); return a }, solve33: function (a, b, c, d) { var e = this.col1.x, g = this.col1.y, r = this.col1.z, f = this.col2.x, p = this.col2.y, m = this.col2.z, h = this.col3.x, n = this.col3.y, l = this.col3.z, k = e * (p * l - m * n) + g * (m * h - f * l) + r * (f * n - p * h); 0 != k && (k = 1 / k); a.x = k * (b * (p * l - m * n) + c * (m * h - f * l) + d * (f * n - p * h)); a.y = k * (e * (c * l - d * n) + g * (d * h - b * l) + r * (b * n - c * h)); a.z = k * (e * (p * d - m * c) + g * (m * b - f * d) + r * (f * c - p * b)); return a }, col1: null, col2: null, col3: null, __class__: Kh }; var O = function () { }; k["box2D.common.math.B2Math"] = O; O.__name__ = "box2D.common.math.B2Math"; O.__properties__ = {get_MIN_VALUE: "get_MIN_VALUE", get_MAX_VALUE: "get_MAX_VALUE"}; O.isValid = function (a) { return isNaN(a) || -Infinity == a || Infinity == a ? !1 : !0 }; O.dot = function (a, b) { return a.x * b.x + a.y * b.y }; O.crossVV = function (a, b) { return a.x * b.y - a.y * b.x }; O.crossVF = function (a, b, c) { null == c && (c = !1); if (c) { c = M.getFromPool(); var d = b * a.y; a = -b * a.x; null == a && (a = 0); null == d && (d = 0); c.x = d; c.y = a } else c = new M(b * a.y, -b * a.x); return c }; O.crossFV = function (a, b, c) { null == c && (c = !1); if (c) { c = M.getFromPool(); var d = -a * b.y; a *= b.x; null == a && (a = 0); null == d && (d = 0); c.x = d; c.y = a } else c = new M(-a * b.y, a * b.x); return c }; O.mulMV = function (a, b, c) { null == c && (c = !1); if (c) { c = M.getFromPool(); var d = a.col1.x * b.x + a.col2.x * b.y; a = a.col1.y * b.x + a.col2.y * b.y; null == a && (a = 0); null == d && (d = 0); c.x = d; c.y = a } else c = new M(a.col1.x * b.x + a.col2.x * b.y, a.col1.y * b.x + a.col2.y * b.y); return c }; O.mulTMV = function (a, b, c) { null == c && (c = !1); if (c) { c = M.getFromPool(); var d = O.dot(b, a.col1); a = O.dot(b, a.col2); null == a && (a = 0); null == d && (d = 0); c.x = d; c.y = a } else c = new M(O.dot(b, a.col1), O.dot(b, a.col2)); return c }; O.mulX = function (a, b, c) { null == c && (c = !1); b = O.mulMV(a.R, b, c); b.x += a.position.x; b.y += a.position.y; return b }; O.mulXT = function (a, b, c) { b = O.subtractVVPooled(b, a.position); c = b.x * a.R.col1.x + b.y * a.R.col1.y; b.y = b.x * a.R.col2.x + b.y * a.R.col2.y; b.x = c; return b }; O.addVV = function (a, b) { return new M(a.x + b.x, a.y + b.y) }; O.subtractVV = function (a, b) { return new M(a.x - b.x, a.y - b.y) }; O.subtractVVPooled = function (a, b) { var c = M.getFromPool(), d = a.x - b.x; a = a.y - b.y; null == a && (a = 0); null == d && (d = 0); c.x = d; c.y = a; return c }; O.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a) }; O.distanceSquared = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return c * c + a * a }; O.mulFV = function (a, b) { return new M(a * b.x, a * b.y) }; O.addMM = function (a, b) { return Ec.fromVV(O.addVV(a.col1, b.col1), O.addVV(a.col2, b.col2)) }; O.mulMM = function (a, b) { return Ec.fromVV(O.mulMV(a, b.col1), O.mulMV(a, b.col2)) }; O.mulTMM = function (a, b) { var c = new M(O.dot(a.col1, b.col1), O.dot(a.col2, b.col1)); a = new M(O.dot(a.col1, b.col2), O.dot(a.col2, b.col2)); return Ec.fromVV(c, a) }; O.abs = function (a) { return 0 < a ? a : -a }; O.absV = function (a) { return new M(O.abs(a.x), O.abs(a.y)) }; O.absM = function (a) { return Ec.fromVV(O.absV(a.col1), O.absV(a.col2)) }; O.min = function (a, b) { return a < b ? a : b }; O.minV = function (a, b) { return new M(O.min(a.x, b.x), O.min(a.y, b.y)) }; O.max = function (a, b) { return a > b ? a : b }; O.maxV = function (a, b) { return new M(O.max(a.x, b.x), O.max(a.y, b.y)) }; O.clamp = function (a, b, c) { return a < b ? b : a > c ? c : a }; O.clampV = function (a, b, c) { return O.maxV(b, O.minV(a, c)) }; O.swap = function (a, b) { var c = a[0]; a[0] = b[0]; b[0] = c }; O.random = function () { return 2 * Math.random() - 1 }; O.randomRange = function (a, b) { return (b - a) * Math.random() + a }; O.nextPowerOfTwo = function (a) { a |= a >> 1 & 2147483647; a |= a >> 2 & 1073741823; a |= a >> 4 & 268435455; a |= a >> 8 & 16777215; return (a | a >> 16 & 65535) + 1 }; O.isPowerOfTwo = function (a) { return 0 < a && 0 == (a & a - 1) }; O.get_MAX_VALUE = function () { return Number.MAX_VALUE }; O.get_MIN_VALUE = function () { return Number.MIN_VALUE }; var oh = function () { this.localCenter = new M; this.c0 = new M; this.c = new M }; k["box2D.common.math.B2Sweep"] = oh; oh.__name__ = "box2D.common.math.B2Sweep"; oh.prototype = { set: function (a) { var b = this.localCenter, c = a.localCenter; b.x = c.x; b.y = c.y; b = this.c0; c = a.c0; b.x = c.x; b.y = c.y; b = this.c; c = a.c; b.x = c.x; b.y = c.y; this.a0 = a.a0; this.a = a.a; this.t0 = a.t0 }, copy: function () { var a = new oh, b = a.localCenter, c = this.localCenter; b.x = c.x; b.y = c.y; b = a.c0; c = this.c0; b.x = c.x; b.y = c.y; b = a.c; c = this.c; b.x = c.x; b.y = c.y; a.a0 = this.a0; a.a = this.a; a.t0 = this.t0; return a }, getTransform: function (a, b) { a.position.x = (1 - b) * this.c0.x + b * this.c.x; a.position.y = (1 - b) * this.c0.y + b * this.c.y; a.R.set((1 - b) * this.a0 + b * this.a); b = a.R; a.position.x -= b.col1.x * this.localCenter.x + b.col2.x * this.localCenter.y; a.position.y -= b.col1.y * this.localCenter.x + b.col2.y * this.localCenter.y }, advance: function (a) { if (this.t0 < a && 1 - this.t0 > Number.MIN_VALUE) { var b = (a - this.t0) / (1 - this.t0); this.c0.x = (1 - b) * this.c0.x + b * this.c.x; this.c0.y = (1 - b) * this.c0.y + b * this.c.y; this.a0 = (1 - b) * this.a0 + b * this.a; this.t0 = a } }, localCenter: null, c0: null, c: null, a0: null, a: null, t0: null, __class__: oh }; var bf = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.z = c }; k["box2D.common.math.B2Vec3"] = bf; bf.__name__ = "box2D.common.math.B2Vec3"; bf.prototype = { setZero: function () { this.x = this.y = this.z = 0 }, set: function (a, b, c) { this.x = a; this.y = b; this.z = c }, setV: function (a) { this.x = a.x; this.y = a.y; this.z = a.z }, getNegative: function () { return new bf(-this.x, -this.y, -this.z) }, negativeSelf: function () { this.x = -this.x; this.y = -this.y; this.z = -this.z }, copy: function () { return new bf(this.x, this.y, this.z) }, add: function (a) { this.x += a.x; this.y += a.y; this.z += a.z }, subtract: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z }, multiply: function (a) { this.x *= a; this.y *= a; this.z *= a }, x: null, y: null, z: null, __class__: bf }; var pa = function (a, b) { this.m_xf = new af; this.m_sweep = new oh; this.m_linearVelocity = new M; this.m_force = new M; this.m_flags = 0; a.bullet && (this.m_flags |= pa.e_bulletFlag); a.fixedRotation && (this.m_flags |= pa.e_fixedRotationFlag); a.allowSleep && (this.m_flags |= pa.e_allowSleepFlag); a.awake && (this.m_flags |= pa.e_awakeFlag); a.active && (this.m_flags |= pa.e_activeFlag); a.ignoreGravity && (this.m_flags |= pa.e_ignoreGravityFlag); this.m_world = b; b = this.m_xf.position; var c = a.position; b.x = c.x; b.y = c.y; this.m_xf.R.set(a.angle); b = this.m_sweep.localCenter; b.x = 0; b.y = 0; this.m_sweep.t0 = 1; this.m_sweep.a0 = this.m_sweep.a = a.angle; b = this.m_xf.R; c = this.m_sweep.localCenter; this.m_sweep.c.x = b.col1.x * c.x + b.col2.x * c.y; this.m_sweep.c.y = b.col1.y * c.x + b.col2.y * c.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; b = this.m_sweep.c0; c = this.m_sweep.c; b.x = c.x; b.y = c.y; this.m_contactList = this.m_controllerList = this.m_jointList = null; this.m_controllerCount = 0; this.m_next = this.m_prev = null; b = this.m_linearVelocity; c = a.linearVelocity; b.x = c.x; b.y = c.y; this.m_angularVelocity = a.angularVelocity; this.m_linearDamping = a.linearDamping; this.m_angularDamping = a.angularDamping; b = this.m_force; var d = c = 0; null == d && (d = 0); null == c && (c = 0); b.x = c; b.y = d; this.m_sleepTime = this.m_torque = 0; this.m_type = a.type; this.m_invMass = this.m_type == pa.b2_dynamicBody ? this.m_mass = 1 : this.m_mass = 0; this.m_invI = this.m_I = 0; this.m_inertiaScale = a.inertiaScale; this.m_userData = a.userData; this.m_fixtureList = null; this.m_fixtureCount = 0; this.groupID = a.groupID; this.origin = new M; this.size = new M }; k["box2D.dynamics.B2Body"] = pa; pa.__name__ = "box2D.dynamics.B2Body"; pa.prototype = { connectEdges: function (a, b, c) { var d = Math.atan2(b.getDirectionVector().y, b.getDirectionVector().x); c = O.mulFV(Math.tan(.5 * (d - c)), b.getDirectionVector()); c = O.subtractVV(c, b.getNormalVector()); c = O.mulFV(Y.b2_toiSlop, c); c = O.addVV(c, b.getVertex1()); var e = O.addVV(a.getDirectionVector(), b.getDirectionVector()); e.normalize(); var g = 0 < O.dot(a.getDirectionVector(), b.getNormalVector()); a.setNextEdge(b, c, e, g); b.setPrevEdge(a, c, e, g); return d }, createFixture: function (a) { if (1 == this.m_world.isLocked()) return null; var b = new Kf; b.create(this, this.m_xf, a); 0 != (this.m_flags & pa.e_activeFlag) && b.createProxy(this.m_world.m_contactManager.m_broadPhase, this.m_xf); b.m_next = this.m_fixtureList; this.m_fixtureList = b; ++this.m_fixtureCount; b.m_body = this; 0 < b.m_density && this.resetMassData(); this.m_world.m_flags |= ic.e_newFixture; return b }, createFixture2: function (a, b) { null == b && (b = 0); var c = new Lf; c.shape = a; c.density = b; return this.createFixture(c) }, DestroyFixture: function (a) { if (1 != this.m_world.isLocked()) { for (var b = this.m_fixtureList, c = null; null != b;) { if (b == a) { null != c ? c.m_next = a.m_next : this.m_fixtureList = a.m_next; break } c = b; b = b.m_next } for (b = this.m_contactList; null != b;) { c = b.contact; b = b.next; var d = c.getFixtureA(), e = c.getFixtureB(); a != d && a != e || this.m_world.m_contactManager.destroy(c) } 0 != (this.m_flags & pa.e_activeFlag) && a.destroyProxy(this.m_world.m_contactManager.m_broadPhase); a.destroy(); a.m_body = null; a.m_next = null; --this.m_fixtureCount; this.resetMassData() } }, setPositionAndAngle: function (a, b) { if (1 != this.m_world.isLocked()) { this.m_xf.R.set(b); var c = this.m_xf.position; c.x = a.x; c.y = a.y; c = this.m_xf.R; a = this.m_sweep.localCenter; this.m_sweep.c.x = c.col1.x * a.x + c.col2.x * a.y; this.m_sweep.c.y = c.col1.y * a.x + c.col2.y * a.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; c = this.m_sweep.c0; a = this.m_sweep.c; c.x = a.x; c.y = a.y; this.m_sweep.a0 = this.m_sweep.a = b; b = this.m_world.m_contactManager.m_broadPhase; for (c = this.m_fixtureList; null != c;) c.synchronize(b, this.m_xf, this.m_xf), c = c.m_next; this.m_world.m_contactManager.findNewContacts() } }, setPositionFast: function (a) { if (1 != this.m_world.isLocked()) { var b = this.m_xf.position; b.x = a.x; b.y = a.y; b = this.m_xf.R; a = this.m_sweep.localCenter; this.m_sweep.c.x = b.col1.x * a.x + b.col2.x * a.y; this.m_sweep.c.y = b.col1.y * a.x + b.col2.y * a.y; this.m_sweep.c.x += this.m_xf.position.x; this.m_sweep.c.y += this.m_xf.position.y; b = this.m_sweep.c0; a = this.m_sweep.c; b.x = a.x; b.y = a.y } }, setTransform: function (a) { this.setPositionAndAngle(a.position, a.getAngle()) }, getTransform: function () { return this.m_xf }, getPosition: function () { return this.m_xf.position }, setPosition: function (a) { this.setPositionAndAngle(a, this.getAngle()) }, getAngle: function () { return this.m_sweep.a }, setAngle: function (a) { this.setPositionAndAngle(this.getPosition(), a) }, getWorldCenter: function () { return this.m_sweep.c }, getLocalCenter: function () { return this.m_sweep.localCenter }, setLinearVelocity: function (a) { if (this.m_type != pa.b2_staticBody) { var b = this.m_linearVelocity; b.x = a.x; b.y = a.y } }, getLinearVelocity: function () { return this.m_linearVelocity }, setAngularVelocity: function (a) { this.m_type != pa.b2_staticBody && (this.m_angularVelocity = a) }, getAngularVelocity: function () { return this.m_angularVelocity }, getDefinition: function () { var a = new pi; a.type = this.getType(); a.allowSleep = (this.m_flags & pa.e_allowSleepFlag) == pa.e_allowSleepFlag; a.angle = this.getAngle(); a.angularDamping = this.m_angularDamping; a.angularVelocity = this.m_angularVelocity; a.fixedRotation = (this.m_flags & pa.e_fixedRotationFlag) == pa.e_fixedRotationFlag; a.bullet = (this.m_flags & pa.e_bulletFlag) == pa.e_bulletFlag; a.awake = (this.m_flags & pa.e_awakeFlag) == pa.e_awakeFlag; a.linearDamping = this.m_linearDamping; var b = a.linearVelocity, c = this.getLinearVelocity(); b.x = c.x; b.y = c.y; a.position = this.getPosition(); a.userData = this.getUserData(); return a }, applyForce: function (a, b) { this.m_type == pa.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), this.m_force.x += a.x, this.m_force.y += a.y, this.m_torque += (b.x - this.m_sweep.c.x) * a.y - (b.y - this.m_sweep.c.y) * a.x) }, applyTorque: function (a) { this.m_type == pa.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), this.m_torque += a) }, applyImpulse: function (a, b) { this.m_type == pa.b2_dynamicBody && (0 == this.isAwake() && this.setAwake(!0), this.m_linearVelocity.x += this.m_invMass * a.x, this.m_linearVelocity.y += this.m_invMass * a.y, this.m_angularVelocity += this.m_invI * ((b.x - this.m_sweep.c.x) * a.y - (b.y - this.m_sweep.c.y) * a.x)) }, split: function (a) { for (var b = this.getLinearVelocity().copy(), c = this.getAngularVelocity(), d = this.getWorldCenter(), e = this.m_world.createBody(this.getDefinition()), g = null, r = this.m_fixtureList; null != r;) if (a(r)) { var f = r.m_next; null != g ? g.m_next = f : this.m_fixtureList = f; this.m_fixtureCount--; r.m_next = e.m_fixtureList; e.m_fixtureList = r; e.m_fixtureCount++; r.m_body = e; r = f } else g = r, r = r.m_next; this.resetMassData(); e.resetMassData(); g = this.getWorldCenter(); a = e.getWorldCenter(); g = O.addVV(b, O.crossFV(c, O.subtractVV(g, d))); b = O.addVV(b, O.crossFV(c, O.subtractVV(a, d))); this.setLinearVelocity(g); e.setLinearVelocity(b); this.setAngularVelocity(c); e.setAngularVelocity(c); this.synchronizeFixtures(); e.synchronizeFixtures(); return e }, merge: function (a) { for (var b = a.m_fixtureList; null != b;) { var c = b.m_next; a.m_fixtureCount--; b.m_next = this.m_fixtureList; this.m_fixtureList = b; this.m_fixtureCount++; b.m_body = a; b = c } this.m_fixtureCount = 0; this.getWorldCenter(); a.getWorldCenter(); this.getLinearVelocity().copy(); a.getLinearVelocity().copy(); this.getAngularVelocity(); a.getAngularVelocity(); this.resetMassData(); this.synchronizeFixtures() }, getMass: function () { return this.m_mass }, getInertia: function () { return this.m_I }, getMassData: function (a) { a.mass = this.m_mass; a.I = this.m_I; a = a.center; var b = this.m_sweep.localCenter; a.x = b.x; a.y = b.y }, setMassData: function (a) { Y.b2Assert(0 == this.m_world.isLocked()); if (1 != this.m_world.isLocked() && this.m_type == pa.b2_dynamicBody) { this.m_invI = this.m_I = this.m_invMass = 0; this.m_mass = a.mass; 0 >= this.m_mass && (this.m_mass = 1); this.m_invMass = 1 / this.m_mass; 0 < a.I && 0 == (this.m_flags & pa.e_fixedRotationFlag) && (this.m_I = a.I - this.m_mass * (a.center.x * a.center.x + a.center.y * a.center.y), this.m_invI = 1 / this.m_I); var b = this.m_sweep.c.copy(), c = this.m_sweep.localCenter; a = a.center; c.x = a.x; c.y = a.y; c = this.m_sweep.c0; a = O.mulX(this.m_xf, this.m_sweep.localCenter); c.x = a.x; c.y = a.y; c = this.m_sweep.c; a = this.m_sweep.c0; c.x = a.x; c.y = a.y; this.m_linearVelocity.x += this.m_angularVelocity * -(this.m_sweep.c.y - b.y); this.m_linearVelocity.y += this.m_angularVelocity * (this.m_sweep.c.x - b.x) } }, resetMassData: function () { this.m_invI = this.m_I = this.m_invMass = this.m_mass = 0; var a = this.m_sweep.localCenter; a.x = 0; a.y = 0; if (this.m_type != pa.b2_staticBody && this.m_type != pa.b2_kinematicBody) { var b = M.make(0, 0); for (a = this.m_fixtureList; null != a;) if (0 != a.m_density) { var c = a.getMassData(); this.m_mass += c.mass; b.x += c.center.x * c.mass; b.y += c.center.y * c.mass; this.m_I += c.I; a = a.m_next } 0 < this.m_mass ? (this.m_invMass = 1 / this.m_mass, b.x *= this.m_invMass, b.y *= this.m_invMass) : this.m_invMass = this.m_mass = 1; 0 < this.m_I && 0 == (this.m_flags & pa.e_fixedRotationFlag) ? (this.m_I -= this.m_mass * (b.x * b.x + b.y * b.y), this.m_I *= this.m_inertiaScale, Y.b2Assert(0 < this.m_I), this.m_invI = 1 / this.m_I) : this.m_invI = this.m_I = 0; c = this.m_sweep.c.copy(); a = this.m_sweep.localCenter; a.x = b.x; a.y = b.y; a = this.m_sweep.c0; b = O.mulX(this.m_xf, this.m_sweep.localCenter); a.x = b.x; a.y = b.y; a = this.m_sweep.c; b = this.m_sweep.c0; a.x = b.x; a.y = b.y; this.m_linearVelocity.x += this.m_angularVelocity * -(this.m_sweep.c.y - c.y); this.m_linearVelocity.y += this.m_angularVelocity * (this.m_sweep.c.x - c.x) } }, getWorldPoint: function (a) { var b = this.m_xf.R; a = new M(b.col1.x * a.x + b.col2.x * a.y, b.col1.y * a.x + b.col2.y * a.y); a.x += this.m_xf.position.x; a.y += this.m_xf.position.y; return a }, getWorldVector: function (a) { return O.mulMV(this.m_xf.R, a) }, getLocalPoint: function (a) { return O.mulXT(this.m_xf, a) }, getLocalVector: function (a) { return O.mulTMV(this.m_xf.R, a) }, getLinearVelocityFromWorldPoint: function (a) { return new M(this.m_linearVelocity.x - this.m_angularVelocity * (a.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (a.x - this.m_sweep.c.x)) }, getLinearVelocityFromLocalPoint: function (a) { var b = this.m_xf.R; a = new M(b.col1.x * a.x + b.col2.x * a.y, b.col1.y * a.x + b.col2.y * a.y); a.x += this.m_xf.position.x; a.y += this.m_xf.position.y; return new M(this.m_linearVelocity.x - this.m_angularVelocity * (a.y - this.m_sweep.c.y), this.m_linearVelocity.y + this.m_angularVelocity * (a.x - this.m_sweep.c.x)) }, getLinearDamping: function () { return this.m_linearDamping }, setLinearDamping: function (a) { this.m_linearDamping = a }, getAngularDamping: function () { return this.m_angularDamping }, setAngularDamping: function (a) { this.m_angularDamping = a }, setType: function (a) { if (this.m_type != a) for (this.m_type = a, this.resetMassData(), this.m_type == pa.b2_staticBody && (a = this.m_linearVelocity, a.x = 0, this.m_angularVelocity = a.y = 0), this.setAwake(!0), a = this.m_force, a.x = 0, this.m_torque = a.y = 0, a = this.m_contactList; null != a;) a.contact.flagForFiltering(), a = a.next }, getType: function () { return this.m_type }, setBullet: function (a) { this.m_flags = a ? this.m_flags | pa.e_bulletFlag : this.m_flags & ~pa.e_bulletFlag }, isBullet: function () { return (this.m_flags & pa.e_bulletFlag) == pa.e_bulletFlag }, setSleepingAllowed: function (a) { a ? this.m_flags |= pa.e_allowSleepFlag : (this.m_flags &= ~pa.e_allowSleepFlag, this.setAwake(!0)) }, setAwake: function (a) { a ? (this.m_flags |= pa.e_awakeFlag, this.m_sleepTime = 0) : (this.m_flags &= ~pa.e_awakeFlag, this.m_sleepTime = 0, a = this.m_linearVelocity, a.x = 0, this.m_angularVelocity = a.y = 0, a = this.m_force, a.x = 0, this.m_torque = a.y = 0) }, isAwake: function () { return (this.m_flags & pa.e_awakeFlag) == pa.e_awakeFlag }, setFixedRotation: function (a) { this.m_flags = a ? this.m_flags | pa.e_fixedRotationFlag : this.m_flags & ~pa.e_fixedRotationFlag; this.resetMassData() }, isFixedRotation: function () { return (this.m_flags & pa.e_fixedRotationFlag) == pa.e_fixedRotationFlag }, setActive: function (a) { if (a != this.isActive()) { var b; if (a) for (this.m_flags |= pa.e_activeFlag, a = this.m_world.m_contactManager.m_broadPhase, b = this.m_fixtureList; null != b;) b.createProxy(a, this.m_xf), b = b.m_next; else { this.m_flags &= ~pa.e_activeFlag; a = this.m_world.m_contactManager.m_broadPhase; for (b = this.m_fixtureList; null != b;) b.destroyProxy(a), b = b.m_next; for (a = this.m_contactList; null != a;) b = a, a = a.next, this.m_world.m_contactManager.destroy(b.contact); this.m_contactList = null } } }, isActive: function () { return (this.m_flags & pa.e_activeFlag) == pa.e_activeFlag }, isSleepingAllowed: function () { return (this.m_flags & pa.e_allowSleepFlag) == pa.e_allowSleepFlag }, getFixtureList: function () { return this.m_fixtureList }, getJointList: function () { return this.m_jointList }, getControllerList: function () { return this.m_controllerList }, getContactList: function () { return this.m_contactList }, getNext: function () { return this.m_next }, getUserData: function () { return this.m_userData }, setUserData: function (a) { this.m_userData = a }, getWorld: function () { return this.m_world }, setFriction: function (a) { for (var b = this.m_fixtureList; null != b;) b.m_friction = a, b = b.m_next }, setBounciness: function (a) { for (var b = this.m_fixtureList; null != b;) b.m_restitution = a, b = b.m_next }, setPaused: function (a) { this.m_flags = a ? this.m_flags | pa.e_pausedFlag : this.m_flags & ~pa.e_pausedFlag }, isPaused: function () { return (this.m_flags & pa.e_pausedFlag) == pa.e_pausedFlag }, setIgnoreGravity: function (a) { this.m_flags = a ? this.m_flags | pa.e_ignoreGravityFlag : this.m_flags & ~pa.e_ignoreGravityFlag }, isIgnoringGravity: function () { return (this.m_flags & pa.e_ignoreGravityFlag) == pa.e_ignoreGravityFlag }, setAlwaysActive: function (a) { this.m_flags = a ? this.m_flags | pa.e_alwaysActiveFlag : this.m_flags & ~pa.e_alwaysActiveFlag }, isAlwaysActive: function () { return (this.m_flags & pa.e_alwaysActiveFlag) == pa.e_alwaysActiveFlag }, synchronizeFixtures: function () { var a = pa.s_xf1; a.R.set(this.m_sweep.a0); var b = a.R, c = this.m_sweep.localCenter; a.position.x = this.m_sweep.c0.x - (b.col1.x * c.x + b.col2.x * c.y); a.position.y = this.m_sweep.c0.y - (b.col1.y * c.x + b.col2.y * c.y); b = this.m_world.m_contactManager.m_broadPhase; for (c = this.m_fixtureList; null != c;) c.synchronize(b, a, this.m_xf), c = c.m_next }, synchronizeTransform: function () { this.m_xf.R.set(this.m_sweep.a); var a = this.m_xf.R, b = this.m_sweep.localCenter; this.m_xf.position.x = this.m_sweep.c.x - (a.col1.x * b.x + a.col2.x * b.y); this.m_xf.position.y = this.m_sweep.c.y - (a.col1.y * b.x + a.col2.y * b.y) }, shouldCollide: function (a) { if (this.m_type != pa.b2_dynamicBody && a.m_type != pa.b2_dynamicBody) return !1; for (var b = this.m_jointList; null != b;) { if (b.other == a && 0 == b.joint.m_collideConnected) return !1; b = b.next } return !0 }, advance: function (a) { this.m_sweep.advance(a); a = this.m_sweep.c; var b = this.m_sweep.c0; a.x = b.x; a.y = b.y; this.m_sweep.a = this.m_sweep.a0; this.synchronizeTransform() }, m_flags: null, m_type: null, m_islandIndex: null, m_xf: null, m_sweep: null, m_linearVelocity: null, m_angularVelocity: null, m_force: null, m_torque: null, m_world: null, m_prev: null, m_next: null, m_fixtureList: null, m_fixtureCount: null, m_controllerList: null, m_controllerCount: null, m_jointList: null, m_contactList: null, m_mass: null, m_invMass: null, m_I: null, m_invI: null, m_inertiaScale: null, m_linearDamping: null, m_angularDamping: null, m_sleepTime: null, m_userData: null, groupID: null, origin: null, size: null, __class__: pa }; var pi = function () { this.position = new M; this.linearVelocity = new M; this.userData = null; this.angularDamping = this.linearDamping = this.angularVelocity = this.angle = 0; this.awake = this.allowSleep = !0; this.bullet = this.fixedRotation = !1; this.type = pa.b2_staticBody; this.active = !0; this.inertiaScale = 1; this.groupID = 3 }; k["box2D.dynamics.B2BodyDef"] = pi; pi.__name__ = "box2D.dynamics.B2BodyDef"; pi.prototype = { type: null, position: null, angle: null, linearVelocity: null, angularVelocity: null, linearDamping: null, angularDamping: null, allowSleep: null, awake: null, fixedRotation: null, bullet: null, active: null, userData: null, inertiaScale: null, groupID: null, ignoreGravity: null, friction: null, bounciness: null, mass: null, aMass: null, __class__: pi }; var tj = function () { }; k["box2D.dynamics.B2ContactFilter"] = tj; tj.__name__ = "box2D.dynamics.B2ContactFilter"; tj.prototype = { shouldCollide: function (a, b) { var c = a.m_body.groupID, d = b.m_body.groupID; a = a.groupID; b = b.groupID; -1E3 != a && (c = a); -1E3 != b && (d = b); return -1 == c || -1 == d ? !1 : -2 == c || -2 == d ? 1 == c || 1 == d ? !1 : !0 : zb.collisionMap[c][d] }, rayCollide: function (a, b) { return null == a ? !0 : this.shouldCollide(w.__cast(a, Kf), b) }, __class__: tj }; var En = function () { this.normalImpulses = []; this.tangentImpulses = [] }; k["box2D.dynamics.B2ContactImpulse"] = En; En.__name__ = "box2D.dynamics.B2ContactImpulse"; En.prototype = { normalImpulses: null, tangentImpulses: null, __class__: En }; var Qg = function () { }; k["box2D.dynamics.B2ContactListener"] = Qg; Qg.__name__ = "box2D.dynamics.B2ContactListener"; Qg.prototype = { beginContact: function (a) { 2147483647 < Qg.KEY_LOCK && (Qg.KEY_LOCK = -2147483648); a.key = Qg.KEY_LOCK++; var b = a.getFixtureA().getUserData(), c = a.getFixtureB().getUserData(), d = b instanceof ud, e = c instanceof ud; !d || e || c instanceof Rg ? !e || d || b instanceof Rg ? (null != b.contacts && (b.contacts.set(a.key, a), b.contactCount++), null != c.contacts && (c.contacts.set(a.key, a), c.contactCount++)) : (w.__cast(c, ud).addActor(b), null != b.regionContacts && b.regionContacts.set(a.key, a)) : (w.__cast(b, ud).addActor(c), null != c.regionContacts && c.regionContacts.set(a.key, a)) }, endContact: function (a) { var b = a.getFixtureA().getUserData(), c = a.getFixtureB().getUserData(), d = b instanceof ud, e = c instanceof ud; if (d && !e) { d = !1; null != c.regionContacts && c.regionContacts.unset(a.key); for (a = c.regionContacts.iterator(); a.hasNext();) { e = a.next(); if (e.getFixtureA().getUserData() instanceof ud && e.getFixtureA().getUserData() == b) { d = !0; break } if (e.getFixtureB().getUserData() instanceof ud && e.getFixtureB().getUserData() == b) { d = !0; break } } d && !c.recycled || w.__cast(b, ud).removeActor(c) } else if (e && !d) { d = !1; null != b.regionContacts && b.regionContacts.unset(a.key); for (a = b.regionContacts.iterator(); a.hasNext();) { e = a.next(); if (e.getFixtureA().getUserData() instanceof ud && e.getFixtureA().getUserData() == c) { d = !0; break } if (e.getFixtureB().getUserData() instanceof ud && e.getFixtureB().getUserData() == c) { d = !0; break } } d && !b.recycled || w.__cast(c, ud).removeActor(b) } else { if (null != b.collisions) { d = b.collisions; e = a.key; var g = d.mH, r = g.mHash[73856093 * e & g.mMask]; if (-1 == r) e = -2147483648; else if (g = g.mData, g[r] == e) e = g[r + 1]; else { var f = -2147483648; for (r = g[r + 2]; -1 != r;) { if (g[r] == e) { f = g[r + 1]; break } r = g[r + 2] } e = f } g = -2147483648 == e ? null : d.mVals[e]; if (null != g) for (b.collisions.unset(a.key), b.collisionsCount--; 0 < g.points.length;) Ud.free(g.points.pop()) } null != b.contacts && b.contacts.unset(a.key) && b.contactCount--; if (null != c.collisions) { d = c.collisions; e = a.key; g = d.mH; r = g.mHash[73856093 * e & g.mMask]; if (-1 == r) e = -2147483648; else if (g = g.mData, g[r] == e) e = g[r + 1]; else { f = -2147483648; for (r = g[r + 2]; -1 != r;) { if (g[r] == e) { f = g[r + 1]; break } r = g[r + 2] } e = f } g = -2147483648 == e ? null : d.mVals[e]; if (null != g) for (c.collisions.unset(a.key), c.collisionsCount--; 0 < g.points.length;) Ud.free(g.points.pop()) } null != c.contacts && c.contacts.unset(a.key) && c.contactCount-- } }, preSolve: function (a, b) { Ac.preSolve(a, b) }, postSolve: function (a, b) { }, __class__: Qg }; var yk = function () { this.m_world = null; this.m_contactCount = 0; this.m_contactFilter = tj.b2_defaultFilter; this.m_contactListener = Qg.b2_defaultListener; this.m_contactFactory = new Fn(this.m_allocator); this.m_broadPhase = new vk }; k["box2D.dynamics.B2ContactManager"] = yk; yk.__name__ = "box2D.dynamics.B2ContactManager"; yk.prototype = { addPair: function (a, b) { var c = a.getBody(), d = b.getBody(); if (c != d) { for (var e = d.getContactList(); null != e;) { if (e.other == c) { var g = e.contact.getFixtureA(), r = e.contact.getFixtureB(); if (g == a && r == b || g == b && r == a) return } e = e.next } 0 != d.shouldCollide(c) && 0 != this.m_contactFilter.shouldCollide(a, b) && (e = this.m_contactFactory.create(a, b), a = e.getFixtureA(), b = e.getFixtureB(), c = a.m_body, d = b.m_body, e.m_prev = null, e.m_next = this.m_world.m_contactList, null != this.m_world.m_contactList && (this.m_world.m_contactList.m_prev = e), this.m_world.m_contactList = e, e.m_nodeA.contact = e, e.m_nodeA.other = d, e.m_nodeA.prev = null, e.m_nodeA.next = c.m_contactList, null != c.m_contactList && (c.m_contactList.prev = e.m_nodeA), c.m_contactList = e.m_nodeA, e.m_nodeB.contact = e, e.m_nodeB.other = c, e.m_nodeB.prev = null, e.m_nodeB.next = d.m_contactList, null != d.m_contactList && (d.m_contactList.prev = e.m_nodeB), d.m_contactList = e.m_nodeB, ++this.m_world.m_contactCount) } }, findNewContacts: function () { this.m_broadPhase.updatePairs(this) }, destroy: function (a) { var b = a.getFixtureA(), c = a.getFixtureB(); b = b.getBody(); c = c.getBody(); a.isTouching() && this.m_contactListener.endContact(a); null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_world.m_contactList && (this.m_world.m_contactList = a.m_next); null != a.m_nodeA.prev && (a.m_nodeA.prev.next = a.m_nodeA.next); null != a.m_nodeA.next && (a.m_nodeA.next.prev = a.m_nodeA.prev); a.m_nodeA == b.m_contactList && (b.m_contactList = a.m_nodeA.next); null != a.m_nodeB.prev && (a.m_nodeB.prev.next = a.m_nodeB.next); null != a.m_nodeB.next && (a.m_nodeB.next.prev = a.m_nodeB.prev); a.m_nodeB == c.m_contactList && (c.m_contactList = a.m_nodeB.next); this.m_contactFactory.destroy(a); --this.m_contactCount }, collide: function () { for (var a = this.m_world.m_contactList; null != a;) { var b = a.getFixtureA(), c = a.getFixtureB(), d = b.getBody(), e = c.getBody(); if (0 == d.isAwake() && 0 == e.isAwake()) a = a.getNext(); else { if (0 != (a.m_flags & cb.e_filterFlag)) { if (0 == e.shouldCollide(d)) { b = a; a = b.getNext(); this.destroy(b); continue } if (0 == this.m_contactFilter.shouldCollide(b, c)) { b = a; a = b.getNext(); this.destroy(b); continue } a.m_flags &= ~cb.e_filterFlag } 0 == this.m_broadPhase.testOverlap(b.m_proxy, c.m_proxy) ? (b = a, a = b.getNext(), this.destroy(b)) : (a.update(this.m_contactListener), a = a.getNext()) } } }, m_world: null, m_broadPhase: null, m_contactList: null, m_contactCount: null, m_contactFilter: null, m_contactListener: null, m_contactFactory: null, m_allocator: null, __class__: yk }; var Le = function () { this.m_xformScale = this.m_fillAlpha = this.m_alpha = this.m_lineThickness = this.m_drawScale = 1; this.m_drawFlags = 0 }; k["box2D.dynamics.B2DebugDraw"] = Le; Le.__name__ = "box2D.dynamics.B2DebugDraw"; Le.prototype = { setFlags: function (a) { this.m_drawFlags = a }, getFlags: function () { return this.m_drawFlags }, appendFlags: function (a) { this.m_drawFlags |= a }, clearFlags: function (a) { this.m_drawFlags &= ~a }, setSprite: function (a) { this.m_sprite = a }, getSprite: function () { return this.m_sprite }, setDrawScale: function (a) { this.m_drawScale = a }, getDrawScale: function () { return this.m_drawScale }, setLineThickness: function (a) { this.m_lineThickness = a }, getLineThickness: function () { return this.m_lineThickness }, setAlpha: function (a) { this.m_alpha = a }, getAlpha: function () { return this.m_alpha }, setFillAlpha: function (a) { this.m_fillAlpha = a }, getFillAlpha: function () { return this.m_fillAlpha }, setXFormScale: function (a) { this.m_xformScale = a }, getXFormScale: function () { return this.m_xformScale }, drawPolygon: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); for (c = 0; c < b;) { var d = c++; this.m_sprite.get_graphics().lineTo(a[d].x * this.m_drawScale, a[d].y * this.m_drawScale) } this.m_sprite.get_graphics().lineTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale) }, drawSolidPolygon: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); this.m_sprite.get_graphics().beginFill(c.get_color(), this.m_fillAlpha); for (c = 0; c < b;) { var d = c++; this.m_sprite.get_graphics().lineTo(a[d].x * this.m_drawScale, a[d].y * this.m_drawScale) } this.m_sprite.get_graphics().lineTo(a[0].x * this.m_drawScale, a[0].y * this.m_drawScale); this.m_sprite.get_graphics().endFill() }, drawCircle: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().drawCircle(a.x * this.m_drawScale, a.y * this.m_drawScale, b * this.m_drawScale) }, drawSolidCircle: function (a, b, c, d) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, d.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(0, 0); this.m_sprite.get_graphics().beginFill(d.get_color(), this.m_fillAlpha); this.m_sprite.get_graphics().drawCircle(a.x * this.m_drawScale, a.y * this.m_drawScale, b * this.m_drawScale); this.m_sprite.get_graphics().endFill(); this.m_sprite.get_graphics().moveTo(a.x * this.m_drawScale, a.y * this.m_drawScale); this.m_sprite.get_graphics().lineTo((a.x + c.x * b) * this.m_drawScale, (a.y + c.y * b) * this.m_drawScale) }, drawSegment: function (a, b, c) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, c.get_color(), this.m_alpha); this.m_sprite.get_graphics().moveTo(a.x * this.m_drawScale, a.y * this.m_drawScale); this.m_sprite.get_graphics().lineTo(b.x * this.m_drawScale, b.y * this.m_drawScale) }, drawTransform: function (a) { this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, 16711680, this.m_alpha); this.m_sprite.get_graphics().moveTo(a.position.x * this.m_drawScale, a.position.y * this.m_drawScale); this.m_sprite.get_graphics().lineTo((a.position.x + this.m_xformScale * a.R.col1.x) * this.m_drawScale, (a.position.y + this.m_xformScale * a.R.col1.y) * this.m_drawScale); this.m_sprite.get_graphics().lineStyle(this.m_lineThickness, 65280, this.m_alpha); this.m_sprite.get_graphics().moveTo(a.position.x * this.m_drawScale, a.position.y * this.m_drawScale); this.m_sprite.get_graphics().lineTo((a.position.x + this.m_xformScale * a.R.col2.x) * this.m_drawScale, (a.position.y + this.m_xformScale * a.R.col2.y) * this.m_drawScale) }, m_drawFlags: null, m_sprite: null, m_drawScale: null, m_lineThickness: null, m_alpha: null, m_fillAlpha: null, m_xformScale: null, __class__: Le }; var gr = function () { }; k["box2D.dynamics.B2DestructionListener"] = gr; gr.__name__ = "box2D.dynamics.B2DestructionListener"; gr.prototype = { sayGoodbyeJoint: function (a) { }, sayGoodbyeFixture: function (a) { }, __class__: gr }; var uj = function () { this.categoryBits = 1; this.maskBits = 65535; this.groupIndex = 0 }; k["box2D.dynamics.B2FilterData"] = uj; uj.__name__ = "box2D.dynamics.B2FilterData"; uj.prototype = { copy: function () { var a = new uj; a.categoryBits = this.categoryBits; a.maskBits = this.maskBits; a.groupIndex = this.groupIndex; return a }, categoryBits: null, maskBits: null, groupIndex: null, __class__: uj }; var Kf = function () { this.m_filter = new uj; this.m_aabb = new fa; this.m_shape = this.m_next = this.m_body = this.m_userData = null; this.m_restitution = this.m_friction = this.m_density = 0; this.groupID = 3 }; k["box2D.dynamics.B2Fixture"] = Kf; Kf.__name__ = "box2D.dynamics.B2Fixture"; Kf.prototype = { getType: function () { return this.m_shape.getType() }, getShape: function () { return this.m_shape }, setSensor: function (a) { if (this.m_isSensor != a && (this.m_isSensor = a, null != this.m_body)) for (a = this.m_body.getContactList(); null != a;) { var b = a.contact, c = b.getFixtureA(), d = b.getFixtureB(); c != this && d != this || b.setSensor(c.isSensor() || d.isSensor()); a = a.next } }, isSensor: function () { return this.m_isSensor }, setFilterData: function (a) { this.m_filter = a.copy(); if (null == this.m_body) for (a = this.m_body.getContactList(); null != a;) { var b = a.contact, c = b.getFixtureA(), d = b.getFixtureB(); c != this && d != this || b.flagForFiltering(); a = a.next } }, getFilterData: function () { return this.m_filter.copy() }, getBody: function () { return this.m_body }, getNext: function () { return this.m_next }, getUserData: function () { return this.m_userData }, SetUserData: function (a) { this.m_userData = a }, testPoint: function (a) { return this.m_shape.testPoint(this.m_body.getTransform(), a) }, rayCast: function (a, b) { return this.m_shape.rayCast(a, b, this.m_body.getTransform()) }, getMassData: function (a) { null == a && (a = new sj); this.m_shape.computeMass(a, this.m_density); return a }, setDensity: function (a) { this.m_density = a }, getDensity: function () { return this.m_density }, getFriction: function () { return this.m_friction }, setFriction: function (a) { this.m_friction = a }, getRestitution: function () { return this.m_restitution }, setRestitution: function (a) { this.m_restitution = a }, getAABB: function () { return this.m_aabb }, create: function (a, b, c) { this.m_userData = c.userData; this.m_friction = c.friction; this.m_restitution = c.restitution; this.m_body = a; this.m_next = null; this.m_filter = c.filter.copy(); this.m_isSensor = c.isSensor; this.m_shape = c.shape.copy(); this.m_density = c.density; this.groupID = c.groupID }, destroy: function () { this.m_shape = null }, createProxy: function (a, b) { this.m_shape.computeAABB(this.m_aabb, b); this.m_proxy = a.createProxy(this.m_aabb, this) }, destroyProxy: function (a) { null != this.m_proxy && (a.destroyProxy(this.m_proxy), this.m_proxy = null) }, synchronize: function (a, b, c) { null != this.m_proxy && (this.m_shape.computeAABB(Kf.tempAABB1, b), this.m_shape.computeAABB(Kf.tempAABB2, c), this.m_aabb.combine(Kf.tempAABB1, Kf.tempAABB2), b = O.subtractVVPooled(c.position, b.position), a.moveProxy(this.m_proxy, this.m_aabb, b)) }, m_massData: null, m_aabb: null, m_density: null, m_next: null, m_body: null, m_shape: null, m_friction: null, m_restitution: null, m_proxy: null, m_filter: null, m_isSensor: null, m_userData: null, groupID: null, __class__: Kf }; var Lf = function () { this.filter = new uj; this.userData = this.shape = null; this.friction = .2; this.density = this.restitution = 0; this.filter.categoryBits = 1; this.filter.maskBits = 65535; this.filter.groupIndex = 0; this.isSensor = !1; this.groupID = 3 }; k["box2D.dynamics.B2FixtureDef"] = Lf; Lf.__name__ = "box2D.dynamics.B2FixtureDef"; Lf.prototype = { shape: null, userData: null, friction: null, restitution: null, density: null, isSensor: null, filter: null, groupID: null, __class__: Lf }; var Lh = function () { this.m_bodies = []; this.m_contacts = []; this.m_joints = [] }; k["box2D.dynamics.B2Island"] = Lh; Lh.__name__ = "box2D.dynamics.B2Island"; Lh.prototype = { initialize: function (a, b, c, d, e, g) { this.m_bodyCapacity = a; this.m_contactCapacity = b; this.m_jointCapacity = c; this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0; this.m_allocator = d; this.m_listener = e; this.m_contactSolver = g; d = this.m_bodies.length; for (e = a; d < e;) a = d++, this.m_bodies[a] = null; d = this.m_contacts.length; for (e = b; d < e;) a = d++, this.m_contacts[a] = null; d = this.m_joints.length; for (e = c; d < e;) a = d++, this.m_joints[a] = null }, clear: function () { this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0 }, solve: function (a, b, c) { for (var d, e, g = 0, r = this.m_bodyCount; g < r;) d = g++, d = this.m_bodies[d], d.getType() == pa.b2_dynamicBody && (d.isIgnoringGravity() ? (d.m_linearVelocity.x += a.dt * d.m_invMass * d.m_force.x, d.m_linearVelocity.y += a.dt * d.m_invMass * d.m_force.y) : (d.m_linearVelocity.x += a.dt * (b.x + d.m_invMass * d.m_force.x), d.m_linearVelocity.y += a.dt * (b.y + d.m_invMass * d.m_force.y)), d.m_angularVelocity += a.dt * d.m_invI * d.m_torque, d.m_linearVelocity.multiply(O.clamp(1 - a.dt * d.m_linearDamping, 0, 1)), d.m_angularVelocity *= O.clamp(1 - a.dt * d.m_angularDamping, 0, 1)); this.m_contactSolver.initialize(a, this.m_contacts, this.m_contactCount, this.m_allocator); b = this.m_contactSolver; b.initVelocityConstraints(a); g = 0; for (r = this.m_jointCount; g < r;) d = g++, e = this.m_joints[d], e.initVelocityConstraints(a); g = 0; for (r = a.velocityIterations; g < r;) { g++; d = 0; for (var f = this.m_jointCount; d < f;) e = d++, e = this.m_joints[e], e.solveVelocityConstraints(a); b.solveVelocityConstraints() } g = 0; for (r = this.m_jointCount; g < r;) d = g++, e = this.m_joints[d], e.finalizeVelocityConstraints(); b.finalizeVelocityConstraints(); g = 0; for (r = this.m_bodyCount; g < r;) if (d = g++, d = this.m_bodies[d], d.getType() != pa.b2_staticBody) { f = a.dt * d.m_linearVelocity.x; var p = a.dt * d.m_linearVelocity.y; f * f + p * p > Y.b2_maxTranslationSquared && (d.m_linearVelocity.normalize(), d.m_linearVelocity.x = d.m_linearVelocity.x * Y.b2_maxTranslation * a.inv_dt, d.m_linearVelocity.y = d.m_linearVelocity.y * Y.b2_maxTranslation * a.inv_dt); f = a.dt * d.m_angularVelocity; f * f > Y.b2_maxRotationSquared && (d.m_angularVelocity = 0 > d.m_angularVelocity ? -Y.b2_maxRotation * a.inv_dt : Y.b2_maxRotation * a.inv_dt); f = d.m_sweep.c0; p = d.m_sweep.c; f.x = p.x; f.y = p.y; d.m_sweep.a0 = d.m_sweep.a; d.m_sweep.c.x += a.dt * d.m_linearVelocity.x; d.m_sweep.c.y += a.dt * d.m_linearVelocity.y; d.m_sweep.a += a.dt * d.m_angularVelocity; d.synchronizeTransform() } g = 0; for (r = a.positionIterations; g < r;) { g++; p = b.solvePositionConstraints(Y.b2_contactBaumgarte); var m = !0; d = 0; for (f = this.m_jointCount; d < f;) e = d++, e = this.m_joints[e], e = e.solvePositionConstraints(Y.b2_contactBaumgarte), m = m && e; if (p && m) break } this.report(b.m_constraints); if (c) { c = Number.MAX_VALUE; b = Y.b2_linearSleepTolerance * Y.b2_linearSleepTolerance; f = Y.b2_angularSleepTolerance * Y.b2_angularSleepTolerance; g = 0; for (r = this.m_bodyCount; g < r;) d = g++, d = this.m_bodies[d], d.getType() != pa.b2_staticBody && (0 == (d.m_flags & pa.e_allowSleepFlag) && (c = d.m_sleepTime = 0), 0 == (d.m_flags & pa.e_allowSleepFlag) || d.m_angularVelocity * d.m_angularVelocity > f || O.dot(d.m_linearVelocity, d.m_linearVelocity) > b ? c = d.m_sleepTime = 0 : (d.m_sleepTime += a.dt, c = O.min(c, d.m_sleepTime))); if (c >= Y.b2_timeToSleep) for (g = 0, r = this.m_bodyCount; g < r;) d = g++, d = this.m_bodies[d], d.setAwake(!1) } }, solveTOI: function (a) { this.m_contactSolver.initialize(a, this.m_contacts, this.m_contactCount, this.m_allocator); for (var b = this.m_contactSolver, c = 0, d = this.m_jointCount; c < d;) { var e = c++; this.m_joints[e].initVelocityConstraints(a) } c = 0; for (d = a.velocityIterations; c < d;) { c++; b.solveVelocityConstraints(); e = 0; for (var g = this.m_jointCount; e < g;) { var r = e++; this.m_joints[r].solveVelocityConstraints(a) } } c = 0; for (d = this.m_bodyCount; c < d;) e = c++, e = this.m_bodies[e], e.getType() != pa.b2_staticBody && (g = a.dt * e.m_linearVelocity.x, r = a.dt * e.m_linearVelocity.y, g * g + r * r > Y.b2_maxTranslationSquared && (e.m_linearVelocity.normalize(), e.m_linearVelocity.x = e.m_linearVelocity.x * Y.b2_maxTranslation * a.inv_dt, e.m_linearVelocity.y = e.m_linearVelocity.y * Y.b2_maxTranslation * a.inv_dt), g = a.dt * e.m_angularVelocity, g * g > Y.b2_maxRotationSquared && (e.m_angularVelocity = 0 > e.m_angularVelocity ? -Y.b2_maxRotation * a.inv_dt : Y.b2_maxRotation * a.inv_dt), g = e.m_sweep.c0, r = e.m_sweep.c, g.x = r.x, g.y = r.y, e.m_sweep.a0 = e.m_sweep.a, e.m_sweep.c.x += a.dt * e.m_linearVelocity.x, e.m_sweep.c.y += a.dt * e.m_linearVelocity.y, e.m_sweep.a += a.dt * e.m_angularVelocity, e.synchronizeTransform()); c = 0; for (d = a.positionIterations; c < d;) { c++; a = b.solvePositionConstraints(.75); var f = !0; e = 0; for (g = this.m_jointCount; e < g;) r = e++, r = this.m_joints[r].solvePositionConstraints(Y.b2_contactBaumgarte), f = f && r; if (a && f) break } this.report(b.m_constraints) }, report: function (a) { if (null != this.m_listener) for (var b = 0, c = this.m_contactCount; b < c;) { var d = b++, e = this.m_contacts[d]; d = a[d]; for (var g = 0, r = d.pointCount; g < r;) { var f = g++; Lh.s_impulse.normalImpulses[f] = d.points[f].normalImpulse; Lh.s_impulse.tangentImpulses[f] = d.points[f].tangentImpulse } this.m_listener.postSolve(e, Lh.s_impulse) } }, addBody: function (a) { a.m_islandIndex = this.m_bodyCount; this.m_bodies[this.m_bodyCount++] = a }, addContact: function (a) { this.m_contacts[this.m_contactCount++] = a }, addJoint: function (a) { this.m_joints[this.m_jointCount++] = a }, m_allocator: null, m_listener: null, m_contactSolver: null, m_bodies: null, m_contacts: null, m_joints: null, m_bodyCount: null, m_jointCount: null, m_contactCount: null, m_bodyCapacity: null, m_contactCapacity: null, m_jointCapacity: null, __class__: Lh }; var vj = function () { }; k["box2D.dynamics.B2TimeStep"] = vj; vj.__name__ = "box2D.dynamics.B2TimeStep"; vj.prototype = { set: function (a) { this.dt = a.dt; this.inv_dt = a.inv_dt; this.positionIterations = a.positionIterations; this.velocityIterations = a.velocityIterations; this.warmStarting = a.warmStarting }, dt: null, inv_dt: null, dtRatio: null, velocityIterations: null, positionIterations: null, warmStarting: null, __class__: vj }; var ic = function (a, b) { this.pointQueryCallback = new zk; this.shapeQueryCallback = new Ak; this.aabbQueryCallback = new Bk; this.s_stack = []; this.m_contactManager = new yk; this.m_contactSolver = new Me; this.m_island = new Lh; this.m_controllerList = this.m_jointList = this.m_contactList = this.m_bodyList = this.m_debugDraw = this.m_destructionListener = null; this.m_controllerCount = this.m_jointCount = this.m_contactCount = this.m_bodyCount = 0; ic.m_warmStarting = !0; ic.m_continuousPhysics = !1; this.m_allowSleep = b; this.m_gravity = a; this.m_flags = this.m_inv_dt0 = 0; this.m_contactManager.m_world = this; a = new pi; this.m_groundBody = this.createBody(a) }; k["box2D.dynamics.B2World"] = ic; ic.__name__ = "box2D.dynamics.B2World"; ic.prototype = { setDestructionListener: function (a) { this.m_destructionListener = a }, setContactFilter: function (a) { this.m_contactManager.m_contactFilter = a }, setContactListener: function (a) { this.m_contactManager.m_contactListener = a }, setDebugDraw: function (a) { this.m_debugDraw = a }, setBroadPhase: function (a) { var b = this.m_contactManager.m_broadPhase; this.m_contactManager.m_broadPhase = a; for (var c = this.m_bodyList; null != c;) { for (var d = c.m_fixtureList; null != d;) d.m_proxy = a.createProxy(b.getFatAABB(d.m_proxy), d), d = d.m_next; c = c.m_next } }, validate: function () { this.m_contactManager.m_broadPhase.validate() }, getProxyCount: function () { return this.m_contactManager.m_broadPhase.getProxyCount() }, createBody: function (a) { if (1 == this.isLocked()) return null; a = new pa(a, this); a.m_prev = null; a.m_next = this.m_bodyList; null != this.m_bodyList && (this.m_bodyList.m_prev = a); this.m_bodyList = a; ++this.m_bodyCount; return a }, destroyBody: function (a) { if (1 != this.isLocked()) { for (var b = a.m_jointList; null != b;) { var c = b; b = b.next; null != this.m_destructionListener && this.m_destructionListener.sayGoodbyeJoint(c.joint); this.destroyJoint(c.joint) } for (b = a.m_controllerList; null != b;) c = b, b = b.nextController, c.controller.removeBody(a); for (b = a.m_contactList; null != b;) c = b, b = b.next, this.m_contactManager.destroy(c.contact); a.m_contactList = null; for (b = a.m_fixtureList; null != b;) c = b, b = b.m_next, null != this.m_destructionListener && this.m_destructionListener.sayGoodbyeFixture(c), c.destroyProxy(this.m_contactManager.m_broadPhase), c.destroy(); a.m_fixtureList = null; a.m_fixtureCount = 0; null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_bodyList && (this.m_bodyList = a.m_next); --this.m_bodyCount } }, createJoint: function (a) { var b = Yb.create(a, null); b.m_prev = null; b.m_next = this.m_jointList; null != this.m_jointList && (this.m_jointList.m_prev = b); this.m_jointList = b; ++this.m_jointCount; b.m_edgeA.joint = b; b.m_edgeA.other = b.m_bodyB; b.m_edgeA.prev = null; b.m_edgeA.next = b.m_bodyA.m_jointList; null != b.m_bodyA.m_jointList && (b.m_bodyA.m_jointList.prev = b.m_edgeA); b.m_bodyA.m_jointList = b.m_edgeA; b.m_edgeB.joint = b; b.m_edgeB.other = b.m_bodyA; b.m_edgeB.prev = null; b.m_edgeB.next = b.m_bodyB.m_jointList; null != b.m_bodyB.m_jointList && (b.m_bodyB.m_jointList.prev = b.m_edgeB); b.m_bodyB.m_jointList = b.m_edgeB; var c = a.bodyA, d = a.bodyB; if (0 == a.collideConnected) for (a = d.getContactList(); null != a;) a.other == c && a.contact.flagForFiltering(), a = a.next; return b }, destroyJoint: function (a) { var b = a.m_collideConnected; null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); a == this.m_jointList && (this.m_jointList = a.m_next); var c = a.m_bodyA, d = a.m_bodyB; c.setAwake(!0); d.setAwake(!0); null != a.m_edgeA.prev && (a.m_edgeA.prev.next = a.m_edgeA.next); null != a.m_edgeA.next && (a.m_edgeA.next.prev = a.m_edgeA.prev); a.m_edgeA == c.m_jointList && (c.m_jointList = a.m_edgeA.next); a.m_edgeA.prev = null; a.m_edgeA.next = null; null != a.m_edgeB.prev && (a.m_edgeB.prev.next = a.m_edgeB.next); null != a.m_edgeB.next && (a.m_edgeB.next.prev = a.m_edgeB.prev); a.m_edgeB == d.m_jointList && (d.m_jointList = a.m_edgeB.next); a.m_edgeB.prev = null; a.m_edgeB.next = null; Yb.destroy(a, null); --this.m_jointCount; if (0 == b) for (a = d.getContactList(); null != a;) a.other == c && a.contact.flagForFiltering(), a = a.next }, addController: function (a) { a.m_next = this.m_controllerList; a.m_prev = null; this.m_controllerList = a; a.m_world = this; this.m_controllerCount++; return a }, removeController: function (a) { null != a.m_prev && (a.m_prev.m_next = a.m_next); null != a.m_next && (a.m_next.m_prev = a.m_prev); this.m_controllerList == a && (this.m_controllerList = a.m_next); this.m_controllerCount-- }, createController: function (a) { if (a.m_world != this) throw I.thrown("Controller can only be a member of one world"); a.m_next = this.m_controllerList; a.m_prev = null; null != this.m_controllerList && (this.m_controllerList.m_prev = a); this.m_controllerList = a; ++this.m_controllerCount; a.m_world = this; return a }, destroyController: function (a) { a.clear(); null != a.m_next && (a.m_next.m_prev = a.m_prev); null != a.m_prev && (a.m_prev.m_next = a.m_next); a == this.m_controllerList && (this.m_controllerList = a.m_next); --this.m_controllerCount }, setWarmStarting: function (a) { ic.m_warmStarting = a }, setContinuousPhysics: function (a) { ic.m_continuousPhysics = a }, getBodyCount: function () { return this.m_bodyCount }, getJointCount: function () { return this.m_jointCount }, getContactCount: function () { return this.m_contactCount }, setGravity: function (a) { this.m_gravity = a }, getGravity: function () { return this.m_gravity }, getGroundBody: function () { return this.m_groundBody }, step: function (a, b, c) { M.freePool(); 0 != (this.m_flags & ic.e_newFixture) && (this.m_contactManager.findNewContacts(), this.m_flags &= ~ic.e_newFixture); this.m_flags |= ic.e_locked; var d = ic.s_timestep2; d.dt = a; d.velocityIterations = b; d.positionIterations = c; d.inv_dt = 0 < a ? 1 / a : 0; d.dtRatio = this.m_inv_dt0 * a; d.warmStarting = ic.m_warmStarting; this.m_contactManager.collide(); 0 < d.dt && this.solve(d); ic.m_continuousPhysics && 0 < d.dt && this.solveTOI(d); 0 < d.dt && (this.m_inv_dt0 = d.inv_dt); this.m_flags &= ~ic.e_locked }, clearForces: function () { for (var a = this.m_bodyList; null != a;) { var b = a.m_force; b.x = 0; b.y = 0; a.m_torque = 0; a = a.m_next } }, drawDebugData: function () { if (null != this.m_debugDraw) { this.m_debugDraw.m_sprite.get_graphics().clear(); var a = this.m_debugDraw.getFlags(), b, c; new M; new M; new M; new fa; new fa; new M; new M; new M; new M; var d = new xk(0, 0, 0); if (0 != (a & Le.e_shapeBit)) for (b = this.m_bodyList; null != b;) { var e = b.m_xf; for (c = b.getFixtureList(); null != c;) { var g = c.getShape(); 0 == b.isActive() ? d.set(.5, .5, .3) : b.getType() == pa.b2_staticBody ? d.set(.5, .9, .5) : b.getType() == pa.b2_kinematicBody ? d.set(.5, .5, .9) : 0 == b.isAwake() ? d.set(.6, .6, .6) : d.set(.9, .7, .7); this.drawShape(g, e, d); c = c.m_next } b = b.m_next } if (0 != (a & Le.e_jointBit)) for (b = this.m_jointList; null != b;) this.drawJoint(b), b = b.m_next; if (0 != (a & Le.e_controllerBit)) for (b = this.m_controllerList; null != b;) b.draw(this.m_debugDraw), b = b.m_next; if (0 != (a & Le.e_pairBit)) for (d.set(.3, .9, .9), b = this.m_contactManager.m_contactList; null != b;) g = b.getFixtureA(), c = b.getFixtureB(), g = g.getAABB().getCenter(), c = c.getAABB().getCenter(), this.m_debugDraw.drawSegment(g, c, d), b = b.getNext(); if (0 != (a & Le.e_aabbBit)) for (g = this.m_contactManager.m_broadPhase, e = [new M, new M, new M, new M], b = this.m_bodyList; null != b;) { if (0 != b.isActive()) for (c = b.getFixtureList(); null != c;) { var r = g.getFatAABB(c.m_proxy), f = e[0], p = r.lowerBound.x, m = r.lowerBound.y; null == m && (m = 0); null == p && (p = 0); f.x = p; f.y = m; f = e[1]; p = r.upperBound.x; m = r.lowerBound.y; null == m && (m = 0); null == p && (p = 0); f.x = p; f.y = m; f = e[2]; p = r.upperBound.x; m = r.upperBound.y; null == m && (m = 0); null == p && (p = 0); f.x = p; f.y = m; f = e[3]; p = r.lowerBound.x; r = r.upperBound.y; null == r && (r = 0); null == p && (p = 0); f.x = p; f.y = r; this.m_debugDraw.drawPolygon(e, 4, d); c = c.getNext() } b = b.getNext() } if (0 != (a & Le.e_centerOfMassBit)) for (b = this.m_bodyList; null != b;) e = ic.s_xf, e.R = b.m_xf.R, e.position = b.getWorldCenter(), this.m_debugDraw.drawTransform(e), b = b.m_next } }, queryAABB: function (a, b) { this.aabbQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.aabbQueryCallback.callbackMethod = a; this.m_contactManager.m_broadPhase.query(this.aabbQueryCallback, b) }, queryShape: function (a, b, c) { this.shapeQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.shapeQueryCallback.callbackMethod = a; null == c && (c = new af, c.setIdentity()); this.shapeQueryCallback.transform = c; a = new fa; b.computeAABB(a, c); this.shapeQueryCallback.shape = b; this.m_contactManager.m_broadPhase.query(this.shapeQueryCallback, a) }, queryPoint: function (a, b) { this.pointQueryCallback.broadPhase = this.m_contactManager.m_broadPhase; this.pointQueryCallback.callbackMethod = a; this.pointQueryCallback.p = b; a = new fa; var c = a.lowerBound, d = b.x - Y.b2_linearSlop, e = b.y - Y.b2_linearSlop; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; c = a.upperBound; d = b.x + Y.b2_linearSlop; e = b.y + Y.b2_linearSlop; null == e && (e = 0); null == d && (d = 0); c.x = d; c.y = e; this.m_contactManager.m_broadPhase.query(this.pointQueryCallback, a) }, rayCast: function (a, b, c) { var d = this.m_contactManager.m_broadPhase, e = new Cn, g = new tk(b, c); d.rayCast(function (g, f) { f = d.getUserData(f); f = w.__cast(f, Kf); if (f.rayCast(e, g)) { g = e.fraction; var r = new M((1 - g) * b.x + g * c.x, (1 - g) * b.y + g * c.y); return a(f, r, e.normal, g) } return g.maxFraction }, g) }, rayCastOne: function (a, b) { var c; this.rayCast(function (a, b, g, r) { c = a; return r }, a, b); return c }, rayCastAll: function (a, b) { var c = []; this.rayCast(function (a, b, g, r) { c[c.length] = a; return 1 }, a, b); return c }, getBodyList: function () { return this.m_bodyList }, getJointList: function () { return this.m_jointList }, getContactList: function () { return this.m_contactList }, isLocked: function () { return 0 < (this.m_flags & ic.e_locked) }, s_stack: null, solve: function (a) { for (var b = this.m_controllerList; null != b;) b.step(a), b = b.m_next; b = this.m_island; b.initialize(this.m_bodyCount, this.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener, this.m_contactSolver); for (var c = this.m_bodyList; null != c;) c.m_flags &= ~pa.e_islandFlag, c = c.m_next; for (var d = this.m_contactList; null != d;) d.m_flags &= ~cb.e_islandFlag, d = d.m_next; for (d = this.m_jointList; null != d;) d.m_islandFlag = !1, d = d.m_next; d = this.s_stack; for (var e = this.m_bodyList; null != e;) { if (0 == (e.m_flags & pa.e_islandFlag) && (!e.isActive() && !e.isAlwaysActive() && e.m_xf.position.x + e.origin.x + e.size.x >= this.m_aabb.lowerBound.x && e.m_xf.position.y + e.origin.y + e.size.y >= this.m_aabb.lowerBound.y && e.m_xf.position.x + e.origin.x <= this.m_aabb.upperBound.x && e.m_xf.position.y + e.origin.y <= this.m_aabb.upperBound.y && (e.setActive(!0), e.setAwake(!0)), 0 != e.isAwake() && 0 != e.isActive() && !e.isPaused() && e.getType() != pa.b2_staticBody)) if (e.isActive() && !e.isAlwaysActive() && (e.m_xf.position.x + e.origin.x + e.size.x < this.m_aabb.lowerBound.x || e.m_xf.position.y + e.origin.y + e.size.y < this.m_aabb.lowerBound.y || e.m_xf.position.x + e.origin.x > this.m_aabb.upperBound.x || e.m_xf.position.y + e.origin.y > this.m_aabb.upperBound.y)) e.setAwake(!1), e.setActive(!1); else { b.clear(); var g = 0; d[g++] = e; for (e.m_flags |= pa.e_islandFlag; 0 < g;) if (c = d[--g], b.addBody(c), 0 == c.isAwake() && c.setAwake(!0), c.getType() != pa.b2_staticBody) { for (var r, f = c.m_contactList; null != f;) 0 == (f.contact.m_flags & cb.e_islandFlag) && 1 != f.contact.isSensor() && 0 != f.contact.isEnabled() && 0 != f.contact.isTouching() && (b.addContact(f.contact), f.contact.m_flags |= cb.e_islandFlag, r = f.other, 0 == (r.m_flags & pa.e_islandFlag) && (d[g++] = r, r.m_flags |= pa.e_islandFlag)), f = f.next; for (c = c.m_jointList; null != c;) 1 != c.joint.m_islandFlag && (r = c.other, 0 != r.isActive() && (b.addJoint(c.joint), c.joint.m_islandFlag = !0, 0 == (r.m_flags & pa.e_islandFlag) && (d[g++] = r, r.m_flags |= pa.e_islandFlag))), c = c.next } b.solve(a, this.m_gravity, this.m_allowSleep); g = 0; for (r = b.m_bodyCount; g < r;) c = g++, c = b.m_bodies[c], c.getType() == pa.b2_staticBody && (c.m_flags &= ~pa.e_islandFlag) } e = e.m_next } g = 0; for (r = d.length; g < r;) { c = g++; if (null == d[c]) break; d[c] = null } for (c = this.m_bodyList; null != c;) 0 != c.isAwake() && 0 != c.isActive() && c.getType() != pa.b2_staticBody && c.synchronizeFixtures(), c = c.m_next; this.m_contactManager.findNewContacts() }, solveTOI: function (a) { var b, c = this.m_island; c.initialize(this.m_bodyCount, Y.b2_maxTOIContactsPerIsland, Y.b2_maxTOIJointsPerIsland, null, this.m_contactManager.m_contactListener, this.m_contactSolver); for (var d = ic.s_queue, e = this.m_bodyList; null != e;) e.m_flags &= ~pa.e_islandFlag, e.m_sweep.t0 = 0, e = e.m_next; for (b = this.m_contactList; null != b;) b.m_flags &= ~(cb.e_toiFlag | cb.e_islandFlag), b = b.m_next; for (e = this.m_jointList; null != e;) e.m_islandFlag = !1, e = e.m_next; for (; ;) { e = null; var g = 1; for (b = this.m_contactList; null != b;) { if (1 != b.isSensor() && 0 != b.isEnabled() && 0 != b.isContinuous()) { if (0 != (b.m_flags & cb.e_toiFlag)) var r = b.m_toi; else { r = b.m_fixtureA; var f = b.m_fixtureB; r = r.m_body; f = f.m_body; if (!(r.getType() == pa.b2_dynamicBody && 0 != r.isAwake() || f.getType() == pa.b2_dynamicBody && 0 != f.isAwake())) { b = b.m_next; continue } var p = r.m_sweep.t0; r.m_sweep.t0 < f.m_sweep.t0 ? (p = f.m_sweep.t0, r.m_sweep.advance(p)) : f.m_sweep.t0 < r.m_sweep.t0 && (p = r.m_sweep.t0, f.m_sweep.advance(p)); r = b.computeTOI(r.m_sweep, f.m_sweep); Y.b2Assert(0 <= r && 1 >= r); 0 < r && 1 > r && (r = (1 - r) * p + r, 1 < r && (r = 1)); b.m_toi = r; b.m_flags |= cb.e_toiFlag } Number.MIN_VALUE < r && r < g && (e = b, g = r) } b = b.m_next } if (null == e || 1 - 100 * Number.MIN_VALUE < g) break; r = e.m_fixtureA; f = e.m_fixtureB; r = r.m_body; f = f.m_body; ic.s_backupA.set(r.m_sweep); ic.s_backupB.set(f.m_sweep); r.advance(g); f.advance(g); e.update(this.m_contactManager.m_contactListener); e.m_flags &= ~cb.e_toiFlag; if (1 == e.isSensor() || 0 == e.isEnabled()) r.m_sweep.set(ic.s_backupA), f.m_sweep.set(ic.s_backupB), r.synchronizeTransform(), f.synchronizeTransform(); else if (0 != e.isTouching()) { b = r; b.getType() != pa.b2_dynamicBody && (b = f); c.clear(); f = r = 0; d[r + f++] = b; for (b.m_flags |= pa.e_islandFlag; 0 < f;) if (e = d[r++], --f, c.addBody(e), 0 == e.isAwake() && e.setAwake(!0), e.getType() == pa.b2_dynamicBody) { for (b = e.m_contactList; null != b && c.m_contactCount != c.m_contactCapacity;) 0 == (b.contact.m_flags & cb.e_islandFlag) && 1 != b.contact.isSensor() && 0 != b.contact.isEnabled() && 0 != b.contact.isTouching() && (c.addContact(b.contact), b.contact.m_flags |= cb.e_islandFlag, p = b.other, 0 == (p.m_flags & pa.e_islandFlag) && (p.getType() != pa.b2_staticBody && (p.advance(g), p.setAwake(!0)), d[r + f] = p, ++f, p.m_flags |= pa.e_islandFlag)), b = b.next; for (b = e.m_jointList; null != b;) c.m_jointCount != c.m_jointCapacity && 1 != b.joint.m_islandFlag && (p = b.other, 0 != p.isActive() && (c.addJoint(b.joint), b.joint.m_islandFlag = !0, 0 == (p.m_flags & pa.e_islandFlag) && (p.getType() != pa.b2_staticBody && (p.advance(g), p.setAwake(!0)), d[r + f] = p, ++f, p.m_flags |= pa.e_islandFlag))), b = b.next } b = ic.s_timestep; b.warmStarting = !1; b.dt = (1 - g) * a.dt; b.inv_dt = 1 / b.dt; b.dtRatio = 0; b.velocityIterations = a.velocityIterations; b.positionIterations = a.positionIterations; c.solveTOI(b); g = 0; for (r = c.m_bodyCount; g < r;) if (b = g++, e = c.m_bodies[b], e.m_flags &= ~pa.e_islandFlag, 0 != e.isAwake() && e.getType() == pa.b2_dynamicBody) for (e.synchronizeFixtures(), b = e.m_contactList; null != b;) b.contact.m_flags &= ~cb.e_toiFlag, b = b.next; g = 0; for (e = c.m_contactCount; g < e;) b = g++, b = c.m_contacts[b], b.m_flags &= ~(cb.e_toiFlag | cb.e_islandFlag); g = 0; for (b = c.m_jointCount; g < b;) e = g++, e = c.m_joints[e], e.m_islandFlag = !1; this.m_contactManager.findNewContacts() } } }, drawJoint: function (a) { var b = a.getBodyA(), c = a.getBodyB(), d = b.m_xf.position, e = c.m_xf.position, g = a.getAnchorA(), r = a.getAnchorB(), f = ic.s_jointColor; switch (a.m_type) { case 3: this.m_debugDraw.drawSegment(g, r, f); break; case 4: b = w.__cast(a, yg); a = b.getGroundAnchorA(); b = b.getGroundAnchorB(); this.m_debugDraw.drawSegment(a, g, f); this.m_debugDraw.drawSegment(b, r, f); this.m_debugDraw.drawSegment(a, b, f); break; case 5: this.m_debugDraw.drawSegment(g, r, f); break; default: b != this.m_groundBody && this.m_debugDraw.drawSegment(d, g, f), this.m_debugDraw.drawSegment(g, r, f), c != this.m_groundBody && this.m_debugDraw.drawSegment(e, r, f) } }, drawShape: function (a, b, c) { switch (a.m_type) { case 0: a = w.__cast(a, Qc); var d = O.mulX(b, a.m_p); this.m_debugDraw.drawSolidCircle(d, a.m_radius, b.R.col1, c); break; case 1: d = w.__cast(a, Jb); a = d.getVertexCount(); for (var e = d.getVertices(), g = [], r = 0; r < a;) d = r++, g[d] = O.mulX(b, e[d]); this.m_debugDraw.drawSolidPolygon(g, a, c); break; case 2: a = w.__cast(a, xg), this.m_debugDraw.drawSegment(O.mulX(b, a.getVertex1()), O.mulX(b, a.getVertex2()), c) } }, m_aabb: null, setScreenBounds: function (a) { this.m_aabb = a }, getScreenBounds: function () { return this.m_aabb }, m_flags: null, m_contactManager: null, m_contactSolver: null, m_island: null, m_bodyList: null, m_jointList: null, m_contactList: null, m_bodyCount: null, m_contactCount: null, m_jointCount: null, m_controllerList: null, m_controllerCount: null, m_gravity: null, m_allowSleep: null, m_groundBody: null, m_destructionListener: null, m_debugDraw: null, m_inv_dt0: null, aabbQueryCallback: null, shapeQueryCallback: null, pointQueryCallback: null, __class__: ic }; var Bk = function () { }; k["box2D.dynamics.AABBQueryCallback"] = Bk; Bk.__name__ = "box2D.dynamics.AABBQueryCallback"; Bk.__interfaces__ = [Ae]; Bk.prototype = { broadPhase: null, callbackMethod: null, queryCallback: function (a) { return this.callbackMethod(this.broadPhase.getUserData(a)) }, __class__: Bk }; var Ak = function () { }; k["box2D.dynamics.ShapeQueryCallback"] = Ak; Ak.__name__ = "box2D.dynamics.ShapeQueryCallback"; Ak.__interfaces__ = [Ae]; Ak.prototype = { broadPhase: null, shape: null, transform: null, callbackMethod: null, queryCallback: function (a) { a = this.broadPhase.getUserData(a); return $b.testOverlap(this.shape, this.transform, a.getShape(), a.getBody().getTransform()) ? this.callbackMethod(a) : !0 }, __class__: Ak }; var zk = function () { }; k["box2D.dynamics.PointQueryCallback"] = zk; zk.__name__ = "box2D.dynamics.PointQueryCallback"; zk.__interfaces__ = [Ae]; zk.prototype = { broadPhase: null, callbackMethod: null, p: null, queryCallback: function (a) { a = this.broadPhase.getUserData(a); return a.testPoint(this.p) ? this.callbackMethod(a) : !0 }, __class__: zk }; var cb = function () { this.m_nodeA = new Ck; this.m_nodeB = new Ck; this.m_manifold = new nh; this.m_oldManifold = new nh }; k["box2D.dynamics.contacts.B2Contact"] = cb; cb.__name__ = "box2D.dynamics.contacts.B2Contact"; cb.prototype = { getManifold: function () { return this.m_manifold }, getWorldManifold: function (a) { var b = this.m_fixtureA.getBody(), c = this.m_fixtureB.getBody(), d = this.m_fixtureA.getShape(), e = this.m_fixtureB.getShape(); a.initialize(this.m_manifold, b.getTransform(), d.m_radius, c.getTransform(), e.m_radius) }, isTouching: function () { return (this.m_flags & cb.e_touchingFlag) == cb.e_touchingFlag }, isContinuous: function () { return (this.m_flags & cb.e_continuousFlag) == cb.e_continuousFlag }, setSensor: function (a) { this.m_flags = a ? this.m_flags | cb.e_sensorFlag : this.m_flags & ~cb.e_sensorFlag }, isSensor: function () { return (this.m_flags & cb.e_sensorFlag) == cb.e_sensorFlag }, setEnabled: function (a) { this.m_flags = a ? this.m_flags | cb.e_enabledFlag : this.m_flags & ~cb.e_enabledFlag }, isEnabled: function () { return (this.m_flags & cb.e_enabledFlag) == cb.e_enabledFlag }, getNext: function () { return this.m_next }, getFixtureA: function () { return this.m_fixtureA }, getFixtureB: function () { return this.m_fixtureB }, flagForFiltering: function () { this.m_flags |= cb.e_filterFlag }, reset: function (a, b) { this.m_flags = cb.e_enabledFlag; if (null == a || null == b) this.m_fixtureB = this.m_fixtureA = null; else { if (a.isSensor() || b.isSensor()) this.m_flags |= cb.e_sensorFlag; var c = a.getBody(), d = b.getBody(); if (c.getType() != pa.b2_dynamicBody || c.isBullet() || d.getType() != pa.b2_dynamicBody || d.isBullet()) this.m_flags |= cb.e_continuousFlag; this.m_fixtureA = a; this.m_fixtureB = b; this.m_manifold.m_pointCount = 0; this.m_next = this.m_prev = null; this.m_nodeA.contact = null; this.m_nodeA.prev = null; this.m_nodeA.next = null; this.m_nodeA.other = null; this.m_nodeB.contact = null; this.m_nodeB.prev = null; this.m_nodeB.next = null; this.m_nodeB.other = null } }, update: function (a) { var b = this.m_oldManifold; this.m_oldManifold = this.m_manifold; this.m_manifold = b; this.m_flags |= cb.e_enabledFlag; var c = !1; b = (this.m_flags & cb.e_touchingFlag) == cb.e_touchingFlag; var d = this.m_fixtureA.m_body, e = this.m_fixtureB.m_body, g = this.m_fixtureA.m_aabb.testOverlap(this.m_fixtureB.m_aabb); if (0 != (this.m_flags & cb.e_sensorFlag)) g && (c = this.m_fixtureA.getShape(), g = this.m_fixtureB.getShape(), d = d.getTransform(), e = e.getTransform(), c = $b.testOverlap(c, d, g, e)), this.m_manifold.m_pointCount = 0; else { d.getType() != pa.b2_dynamicBody || d.isBullet() || e.getType() != pa.b2_dynamicBody || e.isBullet() ? this.m_flags |= cb.e_continuousFlag : this.m_flags &= ~cb.e_continuousFlag; if (g) { this.evaluate(); c = 0 < this.m_manifold.m_pointCount; g = 0; for (var r = this.m_manifold.m_pointCount; g < r;) { var f = g++; f = this.m_manifold.m_points[f]; f.m_normalImpulse = 0; f.m_tangentImpulse = 0; for (var p = f.m_id, m = 0, h = this.m_oldManifold.m_pointCount; m < h;) { var n = m++; n = this.m_oldManifold.m_points[n]; if (n.m_id.get_key() == p.get_key()) { f.m_normalImpulse = n.m_normalImpulse; f.m_tangentImpulse = n.m_tangentImpulse; break } } } } else this.m_manifold.m_pointCount = 0; c != b && (d.setAwake(!0), e.setAwake(!0)) } this.m_flags = c ? this.m_flags | cb.e_touchingFlag : this.m_flags & ~cb.e_touchingFlag; 0 == b && 1 == c && a.beginContact(this); 1 == b && 0 == c && a.endContact(this); 0 == (this.m_flags & cb.e_sensorFlag) && a.preSolve(this, this.m_oldManifold) }, evaluate: function () { }, computeTOI: function (a, b) { cb.s_input.proxyA.set(this.m_fixtureA.getShape()); cb.s_input.proxyB.set(this.m_fixtureB.getShape()); cb.s_input.sweepA = a; cb.s_input.sweepB = b; cb.s_input.tolerance = Y.b2_linearSlop; return Ob.timeOfImpact(cb.s_input) }, m_flags: null, m_prev: null, m_next: null, m_nodeA: null, m_nodeB: null, m_fixtureA: null, m_fixtureB: null, m_manifold: null, m_oldManifold: null, m_toi: null, key: null, __class__: cb }; var ph = function () { cb.call(this) }; k["box2D.dynamics.contacts.B2CircleContact"] = ph; ph.__name__ = "box2D.dynamics.contacts.B2CircleContact"; ph.create = function (a) { return new ph }; ph.destroy = function (a, b) { }; ph.__super__ = cb; ph.prototype = u(cb.prototype, { reset: function (a, b) { cb.prototype.reset.call(this, a, b) }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); N.collideCircles(this.m_manifold, w.__cast(this.m_fixtureA.getShape(), Qc), a.m_xf, w.__cast(this.m_fixtureB.getShape(), Qc), b.m_xf) }, __class__: ph }); var Hn = function () { this.localPlaneNormal = new M; this.localPoint = new M; this.normal = new M; this.normalMass = new Ec; this.K = new Ec; this.points = []; for (var a = 0, b = Y.b2_maxManifoldPoints; a < b;) { var c = a++; this.points[c] = new Gn } }; k["box2D.dynamics.contacts.B2ContactConstraint"] = Hn; Hn.__name__ = "box2D.dynamics.contacts.B2ContactConstraint"; Hn.prototype = { points: null, localPlaneNormal: null, localPoint: null, normal: null, normalMass: null, K: null, bodyA: null, bodyB: null, type: null, radius: null, friction: null, restitution: null, pointCount: null, manifold: null, __class__: Hn }; var Gn = function () { this.localPoint = new M; this.rA = new M; this.rB = new M }; k["box2D.dynamics.contacts.B2ContactConstraintPoint"] = Gn; Gn.__name__ = "box2D.dynamics.contacts.B2ContactConstraintPoint"; Gn.prototype = { localPoint: null, rA: null, rB: null, normalImpulse: null, tangentImpulse: null, normalMass: null, tangentMass: null, equalizedMass: null, velocityBias: null, __class__: Gn }; var Ck = function () { }; k["box2D.dynamics.contacts.B2ContactEdge"] = Ck; Ck.__name__ = "box2D.dynamics.contacts.B2ContactEdge"; Ck.prototype = {other: null, contact: null, prev: null, next: null, __class__: Ck}; var Fn = function (a) { this.m_allocator = a; this.initializeRegisters() }; k["box2D.dynamics.contacts.B2ContactFactory"] = Fn; Fn.__name__ = "box2D.dynamics.contacts.B2ContactFactory"; Fn.prototype = { addType: function (a, b, c, d) { this.m_registers[c][d].createFcn = a; this.m_registers[c][d].destroyFcn = b; this.m_registers[c][d].primary = c }, initializeRegisters: function () { this.m_registers = []; this.m_registers[0] = []; this.m_registers[0][0] = null; this.m_registers[0][1] = null; this.m_registers[0][2] = null; this.m_registers[1] = []; this.m_registers[1][0] = null; this.m_registers[1][1] = null; this.m_registers[1][2] = null; this.m_registers[2] = []; this.m_registers[2][0] = null; this.m_registers[2][1] = null; this.m_registers[2][2] = null; null == this.m_registers[0][0] && (this.m_registers[0][0] = new dg); null == this.m_registers[0][1] && (this.m_registers[0][1] = new dg, this.m_registers[1][0] = this.m_registers[0][1]); null == this.m_registers[0][2] && (this.m_registers[0][2] = new dg, this.m_registers[2][0] = this.m_registers[0][2]); null == this.m_registers[1][0] && (this.m_registers[1][0] = new dg, this.m_registers[0][1] = this.m_registers[1][0]); null == this.m_registers[1][1] && (this.m_registers[1][1] = new dg); null == this.m_registers[1][2] && (this.m_registers[1][2] = new dg, this.m_registers[2][1] = this.m_registers[1][2]); null == this.m_registers[2][0] && (this.m_registers[2][0] = new dg, this.m_registers[0][2] = this.m_registers[2][0]); null == this.m_registers[2][1] && (this.m_registers[2][1] = new dg, this.m_registers[1][2] = this.m_registers[2][1]); null == this.m_registers[2][2] && (this.m_registers[2][2] = new dg); this.addType(ph.create, ph.destroy, 0, 0); this.addType(qh.create, qh.destroy, 1, 0); this.addType(rh.create, rh.destroy, 1, 1); this.addType(Ta.create, Ta.destroy, 2, 0); this.addType(F.create, F.destroy, 1, 2) }, create: function (a, b) { var c = a.getType(), d = b.getType(); d = this.m_registers[c][d]; if (null != d.pool) { var e = d.pool; d.pool = e.m_next; d.poolCount--; d.primary == c ? e.reset(a, b) : e.reset(b, a); return e } e = d.createFcn; return null != e ? (d.primary == c ? (e = e(this.m_allocator), e.reset(a, b)) : (e = e(this.m_allocator), e.reset(b, a)), e) : null }, destroy: function (a) { 0 < a.m_manifold.m_pointCount && (a.m_fixtureA.m_body.setAwake(!0), a.m_fixtureB.m_body.setAwake(!0)); var b = a.m_fixtureA.getType(), c = a.m_fixtureB.getType(); b = this.m_registers[b][c]; b.poolCount++; a.m_next = b.pool; b.pool = a; b = b.destroyFcn; b(a, this.m_allocator) }, m_registers: null, m_allocator: null, __class__: Fn }; var dg = function () { }; k["box2D.dynamics.contacts.B2ContactRegister"] = dg; dg.__name__ = "box2D.dynamics.contacts.B2ContactRegister"; dg.prototype = { createFcn: null, destroyFcn: null, primary: null, pool: null, poolCount: null, __class__: dg }; var wj = function () { this.m_normal = new M; this.m_separations = []; this.m_points = []; for (var a = 0, b = Y.b2_maxManifoldPoints; a < b;) { var c = a++; this.m_points[c] = new M } }; k["box2D.dynamics.contacts.B2PositionSolverManifold"] = wj; wj.__name__ = "box2D.dynamics.contacts.B2PositionSolverManifold"; wj.prototype = { initialize: function (a) { Y.b2Assert(0 < a.pointCount); switch (a.type) { case 1: var b = a.bodyA.m_xf.R; var c = a.localPoint; var d = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); var e = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyB.m_xf.R; c = a.points[0].localPoint; var g = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); b = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); var r = g - d; c = b - e; var f = r * r + c * c; f > Number.MIN_VALUE * Number.MIN_VALUE ? (f = Math.sqrt(f), this.m_normal.x = r / f, this.m_normal.y = c / f) : (this.m_normal.x = 1, this.m_normal.y = 0); this.m_points[0].x = .5 * (d + g); this.m_points[0].y = .5 * (e + b); this.m_separations[0] = r * this.m_normal.x + c * this.m_normal.y - a.radius; break; case 2: b = a.bodyA.m_xf.R; c = a.localPlaneNormal; this.m_normal.x = b.col1.x * c.x + b.col2.x * c.y; this.m_normal.y = b.col1.y * c.x + b.col2.y * c.y; b = a.bodyA.m_xf.R; c = a.localPoint; d = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); e = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyB.m_xf.R; g = 0; for (r = a.pointCount; g < r;) { var p = g++; c = a.points[p].localPoint; f = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); c = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); this.m_separations[p] = (f - d) * this.m_normal.x + (c - e) * this.m_normal.y - a.radius; this.m_points[p].x = f; this.m_points[p].y = c } break; case 4: b = a.bodyB.m_xf.R; c = a.localPlaneNormal; this.m_normal.x = b.col1.x * c.x + b.col2.x * c.y; this.m_normal.y = b.col1.y * c.x + b.col2.y * c.y; b = a.bodyB.m_xf.R; c = a.localPoint; d = a.bodyB.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y); e = a.bodyB.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y); b = a.bodyA.m_xf.R; g = 0; for (r = a.pointCount; g < r;) p = g++, c = a.points[p].localPoint, f = a.bodyA.m_xf.position.x + (b.col1.x * c.x + b.col2.x * c.y), c = a.bodyA.m_xf.position.y + (b.col1.y * c.x + b.col2.y * c.y), this.m_separations[p] = (f - d) * this.m_normal.x + (c - e) * this.m_normal.y - a.radius, p = this.m_points[p], null == c && (c = 0), null == f && (f = 0), p.x = f, p.y = c; this.m_normal.x *= -1; this.m_normal.y *= -1 } }, m_normal: null, m_points: null, m_separations: null, __class__: wj }; var Me = function () { this.m_step = new vj; this.m_constraints = [] }; k["box2D.dynamics.contacts.B2ContactSolver"] = Me; Me.__name__ = "box2D.dynamics.contacts.B2ContactSolver"; Me.prototype = { initialize: function (a, b, c, d) { this.m_step.set(a); this.m_allocator = d; for (this.m_constraintCount = c; this.m_constraints.length < this.m_constraintCount;) this.m_constraints[this.m_constraints.length] = new Hn; for (a = 0; a < c;) { d = a++; var e = b[d]; var g = e.m_fixtureA, r = e.m_fixtureB, f = g.m_shape.m_radius, p = r.m_shape.m_radius, m = g.m_body, h = r.m_body; e = e.getManifold(); var n = Y.b2MixFriction(g.getFriction(), r.getFriction()), l = Y.b2MixRestitution(g.getRestitution(), r.getRestitution()), k = m.m_linearVelocity.x, tc = m.m_linearVelocity.y, ub = h.m_linearVelocity.x, t = h.m_linearVelocity.y, q = m.m_angularVelocity, ja = h.m_angularVelocity; Y.b2Assert(0 < e.m_pointCount); Me.s_worldManifold.initialize(e, m.m_xf, f, h.m_xf, p); g = Me.s_worldManifold.m_normal.x; r = Me.s_worldManifold.m_normal.y; d = this.m_constraints[d]; d.bodyA = m; d.bodyB = h; d.manifold = e; d.normal.x = g; d.normal.y = r; d.pointCount = e.m_pointCount; d.friction = n; d.restitution = l; d.localPlaneNormal.x = e.m_localPlaneNormal.x; d.localPlaneNormal.y = e.m_localPlaneNormal.y; d.localPoint.x = e.m_localPoint.x; d.localPoint.y = e.m_localPoint.y; d.radius = f + p; d.type = e.m_type; f = 0; for (p = d.pointCount; f < p;) { var w = f++, u = e.m_points[w]; n = d.points[w]; n.normalImpulse = u.m_normalImpulse; n.tangentImpulse = u.m_tangentImpulse; l = n.localPoint; u = u.m_localPoint; l.x = u.x; l.y = u.y; l = n.rA.x = Me.s_worldManifold.m_points[w].x - m.m_sweep.c.x; u = n.rA.y = Me.s_worldManifold.m_points[w].y - m.m_sweep.c.y; var N = n.rB.x = Me.s_worldManifold.m_points[w].x - h.m_sweep.c.x; w = n.rB.y = Me.s_worldManifold.m_points[w].y - h.m_sweep.c.y; var x = l * r - u * g, A = N * r - w * g; x *= x; A *= A; n.normalMass = 1 / (m.m_invMass + h.m_invMass + m.m_invI * x + h.m_invI * A); var J = m.m_mass * m.m_invMass + h.m_mass * h.m_invMass; J += m.m_mass * m.m_invI * x + h.m_mass * h.m_invI * A; n.equalizedMass = 1 / J; A = r; J = -g; x = l * J - u * A; A = N * J - w * A; x *= x; A *= A; n.tangentMass = 1 / (m.m_invMass + h.m_invMass + m.m_invI * x + h.m_invI * A); n.velocityBias = 0; l = d.normal.x * (ub + -ja * w - k - -q * u) + d.normal.y * (t + ja * N - tc - q * l); l < -Y.b2_velocityThreshold && (n.velocityBias += -d.restitution * l) } 2 == d.pointCount && (t = d.points[0], ub = d.points[1], e = m.m_invMass, m = m.m_invI, k = h.m_invMass, h = h.m_invI, tc = t.rA.x * r - t.rA.y * g, t = t.rB.x * r - t.rB.y * g, q = ub.rA.x * r - ub.rA.y * g, ub = ub.rB.x * r - ub.rB.y * g, r = e + k + m * tc * tc + h * t * t, g = e + k + m * q * q + h * ub * ub, h = e + k + m * tc * q + h * t * ub, r * r < 100 * (r * g - h * h) ? (m = d.K.col1, e = h, null == e && (e = 0), null == r && (r = 0), m.x = r, m.y = e, r = d.K.col2, null == g && (g = 0), null == h && (h = 0), r.x = h, r.y = g, d.K.getInverse(d.normalMass)) : d.pointCount = 1) } }, initVelocityConstraints: function (a) { for (var b = 0, c = this.m_constraintCount; b < c;) { var d = b++; d = this.m_constraints[d]; var e = d.bodyA, g = d.bodyB, r = e.m_invMass, f = e.m_invI, p = g.m_invMass, m = g.m_invI, h = d.normal.x, n = d.normal.y, l = n, k = -h; if (a.warmStarting) { var tc = d.pointCount; for (var t = 0; t < tc;) { var q = t++; q = d.points[q]; q.normalImpulse *= a.dtRatio; q.tangentImpulse *= a.dtRatio; var da = q.normalImpulse * h + q.tangentImpulse * l, ja = q.normalImpulse * n + q.tangentImpulse * k; e.m_angularVelocity -= f * (q.rA.x * ja - q.rA.y * da); e.m_linearVelocity.x -= r * da; e.m_linearVelocity.y -= r * ja; g.m_angularVelocity += m * (q.rB.x * ja - q.rB.y * da); g.m_linearVelocity.x += p * da; g.m_linearVelocity.y += p * ja } } else for (tc = d.pointCount, e = 0, g = tc; e < g;) r = e++, r = d.points[r], r.normalImpulse = 0, r.tangentImpulse = 0 } }, solveVelocityConstraints: function () { for (var a, b, c, d, e, g, r, f, p, m, h = 0, n = this.m_constraintCount; h < n;) { var l = h++; d = this.m_constraints[l]; l = d.bodyA; var k = d.bodyB, tc = l.m_angularVelocity, t = k.m_angularVelocity, q = l.m_linearVelocity, da = k.m_linearVelocity, ja = l.m_invMass, w = l.m_invI, u = k.m_invMass, N = k.m_invI; f = d.normal.x; var x = p = d.normal.y, A = -f; m = d.friction; r = 0; for (g = d.pointCount; r < g;) a = r++, a = d.points[a], b = da.x - t * a.rB.y - q.x + tc * a.rA.y, c = da.y + t * a.rB.x - q.y - tc * a.rA.x, b = b * x + c * A, b = a.tangentMass * -b, c = m * a.normalImpulse, c = O.clamp(a.tangentImpulse + b, -c, c), b = c - a.tangentImpulse, e = b * x, b *= A, q.x -= ja * e, q.y -= ja * b, tc -= w * (a.rA.x * b - a.rA.y * e), da.x += u * e, da.y += u * b, t += N * (a.rB.x * b - a.rB.y * e), a.tangentImpulse = c; if (1 == d.pointCount) a = d.points[0], b = da.x + -t * a.rB.y - q.x - -tc * a.rA.y, c = da.y + t * a.rB.x - q.y - tc * a.rA.x, d = b * f + c * p, b = -a.normalMass * (d - a.velocityBias), c = a.normalImpulse + b, 0 < c || (c = 0), b = c - a.normalImpulse, e = b * f, b *= p, q.x -= ja * e, q.y -= ja * b, tc -= w * (a.rA.x * b - a.rA.y * e), da.x += u * e, da.y += u * b, t += N * (a.rB.x * b - a.rB.y * e), a.normalImpulse = c; else { a = d.points[0]; x = d.points[1]; g = a.normalImpulse; r = x.normalImpulse; e = (da.x - t * a.rB.y - q.x + tc * a.rA.y) * f + (da.y + t * a.rB.x - q.y - tc * a.rA.x) * p; var J = (da.x - t * x.rB.y - q.x + tc * x.rA.y) * f + (da.y + t * x.rB.x - q.y - tc * x.rA.x) * p; b = e - a.velocityBias; c = J - x.velocityBias; m = d.K; b -= m.col1.x * g + m.col2.x * r; for (c -= m.col1.y * g + m.col2.y * r; ;) { m = d.normalMass; A = -(m.col1.x * b + m.col2.x * c); m = -(m.col1.y * b + m.col2.y * c); if (0 <= A && 0 <= m) { g = A - g; r = m - r; d = g * f; g *= p; f *= r; p *= r; q.x -= ja * (d + f); q.y -= ja * (g + p); tc -= w * (a.rA.x * g - a.rA.y * d + x.rA.x * p - x.rA.y * f); da.x += u * (d + f); da.y += u * (g + p); t += N * (a.rB.x * g - a.rB.y * d + x.rB.x * p - x.rB.y * f); a.normalImpulse = A; x.normalImpulse = m; break } A = -a.normalMass * b; m = 0; J = d.K.col1.y * A + c; if (0 <= A && 0 <= J) { g = A - g; r = m - r; d = g * f; g *= p; f *= r; p *= r; q.x -= ja * (d + f); q.y -= ja * (g + p); tc -= w * (a.rA.x * g - a.rA.y * d + x.rA.x * p - x.rA.y * f); da.x += u * (d + f); da.y += u * (g + p); t += N * (a.rB.x * g - a.rB.y * d + x.rB.x * p - x.rB.y * f); a.normalImpulse = A; x.normalImpulse = m; break } A = 0; m = -x.normalMass * c; e = d.K.col2.x * m + b; if (0 <= m && 0 <= e) { g = A - g; r = m - r; d = g * f; g *= p; f *= r; p *= r; q.x -= ja * (d + f); q.y -= ja * (g + p); tc -= w * (a.rA.x * g - a.rA.y * d + x.rA.x * p - x.rA.y * f); da.x += u * (d + f); da.y += u * (g + p); t += N * (a.rB.x * g - a.rB.y * d + x.rB.x * p - x.rB.y * f); a.normalImpulse = A; x.normalImpulse = m; break } m = A = 0; e = b; J = c; if (0 <= e && 0 <= J) { g = A - g; r = m - r; d = g * f; g *= p; f *= r; p *= r; q.x -= ja * (d + f); q.y -= ja * (g + p); tc -= w * (a.rA.x * g - a.rA.y * d + x.rA.x * p - x.rA.y * f); da.x += u * (d + f); da.y += u * (g + p); t += N * (a.rB.x * g - a.rB.y * d + x.rB.x * p - x.rB.y * f); a.normalImpulse = A; x.normalImpulse = m; break } break } } l.m_angularVelocity = tc; k.m_angularVelocity = t } }, finalizeVelocityConstraints: function () { for (var a = 0, b = this.m_constraintCount; a < b;) { var c = a++; c = this.m_constraints[c]; for (var d = c.manifold, e = 0, g = c.pointCount; e < g;) { var r = e++, f = d.m_points[r]; r = c.points[r]; f.m_normalImpulse = r.normalImpulse; f.m_tangentImpulse = r.tangentImpulse } } }, solvePositionConstraints: function (a) { for (var b = 0, c = 0, d = this.m_constraintCount; c < d;) { var e = c++; e = this.m_constraints[e]; var g = e.bodyA, r = e.bodyB, f = g.m_mass * g.m_invMass, p = g.m_mass * g.m_invI, m = r.m_mass * r.m_invMass, h = r.m_mass * r.m_invI; Me.s_psm.initialize(e); for (var n = Me.s_psm.m_normal, l = 0, k = e.pointCount; l < k;) { var tc = l++, t = e.points[tc], q = Me.s_psm.m_points[tc], da = Me.s_psm.m_separations[tc]; tc = q.x - g.m_sweep.c.x; var ja = q.y - g.m_sweep.c.y, u = q.x - r.m_sweep.c.x; q = q.y - r.m_sweep.c.y; b < da || (b = da); da = O.clamp(a * (da + Y.b2_linearSlop), -Y.b2_maxLinearCorrection, 0); da *= -t.equalizedMass; t = da * n.x; da *= n.y; g.m_sweep.c.x -= f * t; g.m_sweep.c.y -= f * da; g.m_sweep.a -= p * (tc * da - ja * t); g.synchronizeTransform(); r.m_sweep.c.x += m * t; r.m_sweep.c.y += m * da; r.m_sweep.a += h * (u * da - q * t); r.synchronizeTransform() } } return b > -1.5 * Y.b2_linearSlop }, m_step: null, m_allocator: null, m_constraints: null, m_constraintCount: null, __class__: Me }; var Ta = function () { cb.call(this) }; k["box2D.dynamics.contacts.B2EdgeAndCircleContact"] = Ta; Ta.__name__ = "box2D.dynamics.contacts.B2EdgeAndCircleContact"; Ta.create = function (a) { return new Ta }; Ta.destroy = function (a, b) { }; Ta.__super__ = cb; Ta.prototype = u(cb.prototype, { m_v0: null, m_v1: null, m_v2: null, m_v3: null, reset: function (a, b) { cb.prototype.reset.call(this, a, b) }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); this.b2CollideEdgeAndCircle(this.m_manifold, w.__cast(this.m_fixtureA.getShape(), xg), a.m_xf, w.__cast(this.m_fixtureB.getShape(), Qc), b.m_xf) }, b2CollideEdgeAndCircle: function (a, b, c, d, e) { a.m_pointCount = 0; this.multiplyTransformVector(e, d.m_p, Ta.temp1); e = Ta.q; var g = O.mulXT(c, Ta.temp1); e.x = g.x; e.y = g.y; this.m_v0 = b.m_v0; this.m_v1 = b.m_v1; this.m_v2 = b.m_v2; this.m_v3 = b.m_v3; e = Ta.e; g = this.m_v2.x - this.m_v1.x; var r = this.m_v2.y - this.m_v1.y; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = Ta.temp1; g = this.m_v2.x - Ta.q.x; r = this.m_v2.y - Ta.q.y; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; var f = O.dot(Ta.e, Ta.temp1); e = Ta.temp1; g = Ta.q.x - this.m_v1.x; r = Ta.q.y - this.m_v1.y; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; g = O.dot(Ta.e, Ta.temp1); c = b.m_radius + d.m_radius; if (0 >= g) { if (e = Ta.p, f = this.m_v1, e.x = f.x, e.y = f.y, e = Ta.temp1, g = Ta.q.x - Ta.p.x, r = Ta.q.y - Ta.p.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, e = O.dot(Ta.temp1, Ta.temp1), !(e > c * c)) { if (b.m_hasVertex0 && (e = Ta.temp1, g = this.m_v1.x - this.m_v0.x, r = this.m_v1.y - this.m_v0.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, e = Ta.temp2, g = this.m_v1.x - Ta.q.x, r = this.m_v1.y - Ta.q.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, 0 < O.dot(Ta.temp1, Ta.temp2))) return; a.m_pointCount = 1; a.m_type = 1; e = a.m_localPlaneNormal; e.x = 0; e.y = 0; e = a.m_localPoint; f = Ta.p; e.x = f.x; e.y = f.y; a.m_points[0].m_id.set_key(0); a.m_points[0].m_id.indexA = 0; a.m_points[0].m_id.indexB = 0; a.m_points[0].m_id.typeA = Xb.VERTEX; a.m_points[0].m_id.typeB = Xb.VERTEX; e = a.m_points[0].m_localPoint; f = d.m_p; e.x = f.x; e.y = f.y } } else if (0 >= f) { if (e = Ta.p, f = this.m_v2, e.x = f.x, e.y = f.y, e = Ta.temp1, g = Ta.q.x - Ta.p.x, r = Ta.q.y - Ta.p.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, e = O.dot(Ta.temp1, Ta.temp1), !(e > c * c)) { if (b.m_hasVertex3 && (e = Ta.temp1, g = this.m_v3.x - this.m_v2.x, r = this.m_v3.y - this.m_v2.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, e = Ta.temp2, g = Ta.q.x - this.m_v2.x, r = Ta.q.y - this.m_v2.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, 0 < O.dot(Ta.temp1, Ta.temp2))) return; a.m_pointCount = 1; a.m_type = 1; e = a.m_localPlaneNormal; e.x = 0; e.y = 0; e = a.m_localPoint; f = Ta.p; e.x = f.x; e.y = f.y; a.m_points[0].m_id.set_key(0); a.m_points[0].m_id.indexA = 1; a.m_points[0].m_id.indexB = 0; a.m_points[0].m_id.typeA = Xb.VERTEX; a.m_points[0].m_id.typeB = Xb.VERTEX; e = a.m_points[0].m_localPoint; f = d.m_p; e.x = f.x; e.y = f.y } } else b = O.dot(Ta.e, Ta.e), Y.b2Assert(0 < b), Ta.p.x = 1 / b * (this.m_v1.x * f + this.m_v2.x * g), Ta.p.y = 1 / b * (this.m_v1.y * f + this.m_v2.y * g), Ta.temp1.x = Ta.q.x - Ta.p.x, Ta.temp1.y = Ta.q.y - Ta.p.y, e = O.dot(Ta.temp1, Ta.temp1), e > c * c || (e = Ta.temp1, g = -Ta.e.y, r = Ta.e.x, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, e = Ta.temp2, g = Ta.q.x - this.m_v1.x, r = Ta.q.y - this.m_v1.y, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, 0 > O.dot(Ta.temp1, Ta.temp2) && (e = Ta.temp1, e.x = -e.x, e.y = -e.y), Ta.temp1.normalize(), a.m_pointCount = 1, a.m_type = 2, e = a.m_localPlaneNormal, g = Ta.temp1, e.x = g.x, e.y = g.y, e = a.m_localPoint, g = this.m_v1, e.x = g.x, e.y = g.y, a.m_points[0].m_id.set_key(0), a.m_points[0].m_id.indexA = 0, a.m_points[0].m_id.indexB = 0, a.m_points[0].m_id.typeA = Xb.FACE, a.m_points[0].m_id.typeB = Xb.VERTEX, e = a.m_points[0].m_localPoint, g = d.m_p, e.x = g.x, e.y = g.y) }, multiplyTransformsInverse: function (a, b, c) { this.multiplyRotationsInverse(a.R, b.R, Ta.mat); var d = Ta.temp2; b = b.position; d.x = b.x; d.y = b.y; Ta.temp2.subtract(a.position); this.multiplyRotationVectorInverse(a.R, Ta.temp2, c.position); d = c.R.col1; b = Ta.mat.col1; d.x = b.x; d.y = b.y; d = c.R.col2; b = Ta.mat.col2; d.x = b.x; d.y = b.y }, multiplyRotationsInverse: function (a, b, c) { c.col1.x = a.col1.x * b.col1.x + a.col1.y * b.col1.y; c.col1.y = a.col2.x * b.col1.x + a.col2.y * b.col1.y; c.col2.x = a.col1.x * b.col2.x + a.col1.y * b.col2.y; c.col2.y = a.col2.x * b.col2.x + a.col2.y * b.col2.y }, multiplyRotationVector: function (a, b, c) { c.x = a.col1.x * b.x + a.col2.x * b.y; c.y = a.col1.y * b.x + a.col2.y * b.y }, multiplyRotationVectorInverse: function (a, b, c) { c.x = a.col1.x * b.x + a.col1.y * b.y; c.y = a.col2.x * b.x + a.col2.y * b.y }, multiplyTransformVector: function (a, b, c) { c.x = a.R.col1.x * b.x + a.R.col2.x * b.y + a.position.x; c.y = a.R.col1.y * b.x + a.R.col2.y * b.y + a.position.y }, __class__: Ta }); var qh = function () { cb.call(this) }; k["box2D.dynamics.contacts.B2PolyAndCircleContact"] = qh; qh.__name__ = "box2D.dynamics.contacts.B2PolyAndCircleContact"; qh.create = function (a) { return new qh }; qh.destroy = function (a, b) { }; qh.__super__ = cb; qh.prototype = u(cb.prototype, { reset: function (a, b) { cb.prototype.reset.call(this, a, b); Y.b2Assert(1 == a.getType()); Y.b2Assert(0 == b.getType()) }, evaluate: function () { var a = this.m_fixtureA.m_body, b = this.m_fixtureB.m_body; N.collidePolygonAndCircle(this.m_manifold, w.__cast(this.m_fixtureA.getShape(), Jb), a.m_xf, w.__cast(this.m_fixtureB.getShape(), Qc), b.m_xf) }, __class__: qh }); var sh = function () { this.v = new M; this.id = new Xb }; k["box2D.dynamics.contacts.ClipVertex"] = sh; sh.__name__ = "box2D.dynamics.contacts.ClipVertex"; sh.prototype = { v: null, id: null, set: function (a) { var b = this.v, c = a.v; b.x = c.x; b.y = c.y; this.id.set(a.id) }, __class__: sh }; var Dk = function () { }; k["box2D.dynamics.contacts.EPAxis"] = Dk; Dk.__name__ = "box2D.dynamics.contacts.EPAxis"; Dk.prototype = {type: null, index: null, separation: null, __class__: Dk}; var In = function () { this.vertices = []; this.normals = []; for (var a = 0; 32 > a;) a++, this.vertices.push(new M), this.normals.push(new M) }; k["box2D.dynamics.contacts.TempPolygon"] = In; In.__name__ = "box2D.dynamics.contacts.TempPolygon"; In.prototype = {vertices: null, normals: null, count: null, __class__: In}; var Jn = function () { this.v1 = new M; this.v2 = new M; this.normal = new M; this.sideNormal1 = new M; this.sideNormal2 = new M }; k["box2D.dynamics.contacts.ReferenceFace"] = Jn; Jn.__name__ = "box2D.dynamics.contacts.ReferenceFace"; Jn.prototype = { i1: null, i2: null, v1: null, v2: null, normal: null, sideNormal1: null, sideNormal2: null, sideOffset1: null, sideOffset2: null, __class__: Jn }; var F = function () { cb.call(this) }; k["box2D.dynamics.contacts.B2PolyAndEdgeContact"] = F; F.__name__ = "box2D.dynamics.contacts.B2PolyAndEdgeContact"; F.create = function (a) { return new F }; F.destroy = function (a, b) { }; F.clipSegmentToLine = function (a, b, c, d, e) { var g = 0, r = O.dot(c, b[0].v) - d; c = O.dot(c, b[1].v) - d; 0 >= r && a[g++].set(b[0]); 0 >= c && a[g++].set(b[1]); 0 > r * c && (r /= r - c, c = a[g].v, d = b[1].v, c.x = d.x, c.y = d.y, a[g].v.subtract(b[0].v), a[g].v.multiply(r), a[g].v.add(b[0].v), a[g].id.indexA = e, a[g].id.indexB = b[0].id.indexB, a[g].id.typeA = Xb.VERTEX, a[g].id.typeB = Xb.FACE, ++g); return g }; F.__super__ = cb; F.prototype = u(cb.prototype, { m_v0: null, m_v1: null, m_v2: null, m_v3: null, m_front: null, m_radius: null, reset: function (a, b) { a.getShape() instanceof Jb ? (cb.prototype.reset.call(this, b, a), Y.b2Assert(1 == a.getType()), Y.b2Assert(2 == b.getType())) : (cb.prototype.reset.call(this, a, b), Y.b2Assert(2 == a.getType()), Y.b2Assert(1 == b.getType())) }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); this.b2CollidePolyAndEdge(this.m_manifold, w.__cast(this.m_fixtureA.getShape(), xg), a.m_xf, w.__cast(this.m_fixtureB.getShape(), Jb), b.m_xf) }, b2CollidePolyAndEdge: function (a, b, c, d, e) { this.multiplyTransformsInverse(c, e, F.m_xf); this.multiplyTransformVector(F.m_xf, d.m_centroid, F.temp); e = F.m_centroidB; var g = F.temp; e.x = g.x; e.y = g.y; this.m_v0 = b.m_v0; this.m_v1 = b.m_v1; this.m_v2 = b.m_v2; this.m_v3 = b.m_v3; c = b.m_hasVertex0; b = b.m_hasVertex3; e = F.edge1; g = this.m_v2; e.x = g.x; e.y = g.y; F.edge1.subtract(this.m_v1); F.edge1.normalize(); e = F.m_normal1; g = F.edge1.y; var r = -F.edge1.x; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = F.temp; g = F.m_centroidB; e.x = g.x; e.y = g.y; F.temp.subtract(this.m_v1); var f = O.dot(F.m_normal1, F.temp), p = 0, m = 0, h = !1, n = !1; c && (e = F.edge0, g = this.m_v1, e.x = g.x, e.y = g.y, F.edge0.subtract(this.m_v0), F.edge0.normalize(), e = F.m_normal0, g = F.edge0.y, r = -F.edge0.x, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, h = 0 <= O.crossVV(F.edge0, F.edge1), e = F.temp, g = F.m_centroidB, e.x = g.x, e.y = g.y, F.temp.subtract(this.m_v0), p = O.dot(F.m_normal0, F.temp)); b && (e = F.edge2, g = this.m_v3, e.x = g.x, e.y = g.y, F.edge2.subtract(this.m_v2), F.edge2.normalize(), e = F.m_normal2, g = F.edge2.y, r = -F.edge2.x, null == r && (r = 0), null == g && (g = 0), e.x = g, e.y = r, n = 0 < O.crossVV(F.edge1, F.edge2), e = F.temp, g = F.m_centroidB, e.x = g.x, e.y = g.y, F.temp.subtract(this.m_v2), m = O.dot(F.m_normal2, F.temp)); c && b ? h && n ? (this.m_front = 0 <= p || 0 <= f || 0 <= m) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal0, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal2, e.x = g.x, e.y = g.y) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : h ? (this.m_front = 0 <= p || 0 <= f && 0 <= m) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal0, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal2, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : n ? (this.m_front = 0 <= m || 0 <= p && 0 <= f) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal2, e.x = g.x, e.y = g.y) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal0, e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : (this.m_front = 0 <= p && 0 <= f && 0 <= m) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal2, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal0, e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : c ? (h ? ((this.m_front = 0 <= p || 0 <= f) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal0) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1), e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal1) : (this.m_front = 0 <= p && 0 <= f) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal1) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal0), e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : b ? (n ? (this.m_front = 0 <= f || 0 <= m) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal2) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal1) : ((this.m_front = 0 <= f && 0 <= m) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal2), e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal1), e.x = g.x, e.y = g.y) : (this.m_front = 0 <= f) ? (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_lowerLimit, e.x = -e.x, e.y = -e.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, e.x = -e.x, e.y = -e.y) : (e = F.m_normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_normal, e.x = -e.x, e.y = -e.y, e = F.m_lowerLimit, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.m_upperLimit, g = F.m_normal1, e.x = g.x, e.y = g.y); F.m_polygonB.count = d.m_vertexCount; b = 0; for (r = d.m_vertexCount; b < r;) f = b++, this.multiplyTransformVector(F.m_xf, d.m_vertices[f], F.temp), e = F.m_polygonB.vertices[f], g = F.temp, e.x = g.x, e.y = g.y, this.multiplyRotationVector(F.m_xf.R, d.m_normals[f], F.temp), g = F.m_polygonB.normals[f], p = F.temp, g.x = p.x, g.y = p.y; this.m_radius = 2 * Y.b2_polygonRadius; a.m_pointCount = 0; this.computeEdgeSeparation(F.edgeAxis); if (!(F.edgeAxis.type == Mf.UNKNOWN || F.edgeAxis.separation > this.m_radius || (this.computePolygonSeparation(F.polygonAxis), F.polygonAxis.type != Mf.UNKNOWN && F.polygonAxis.separation > this.m_radius))) { c = F.polygonAxis.type == Mf.UNKNOWN ? F.edgeAxis : F.polygonAxis.separation > .98 * F.edgeAxis.separation + .001 ? F.polygonAxis : F.edgeAxis; if (c.type == Mf.EDGE_A) { a.m_type = 2; e = 0; g = O.dot(F.m_normal, F.m_polygonB.normals[0]); b = 1; for (r = F.m_polygonB.count; b < r;) f = b++, p = O.dot(F.m_normal, F.m_polygonB.normals[f]), p < g && (g = p, e = f); b = e; r = b + 1 < F.m_polygonB.count ? b + 1 : 0; e = F.ie[0].v; g = F.m_polygonB.vertices[b]; e.x = g.x; e.y = g.y; F.ie[0].id.indexA = 0; F.ie[0].id.indexB = b; F.ie[0].id.typeA = Xb.FACE; F.ie[0].id.typeB = Xb.VERTEX; e = F.ie[1].v; g = F.m_polygonB.vertices[r]; e.x = g.x; e.y = g.y; F.ie[1].id.indexA = 0; F.ie[1].id.indexB = r; F.ie[1].id.typeA = Xb.FACE; F.ie[1].id.typeB = Xb.VERTEX; this.m_front ? (F.rf.i1 = 0, F.rf.i2 = 1, e = F.rf.v1, g = this.m_v1, e.x = g.x, e.y = g.y, e = F.rf.v2, g = this.m_v2, e.x = g.x, e.y = g.y, e = F.rf.normal, g = F.m_normal1, e.x = g.x, e.y = g.y) : (F.rf.i1 = 1, F.rf.i2 = 0, e = F.rf.v1, g = this.m_v2, e.x = g.x, e.y = g.y, e = F.rf.v2, g = this.m_v1, e.x = g.x, e.y = g.y, e = F.rf.normal, g = F.m_normal1, e.x = g.x, e.y = g.y, e = F.rf.normal, e.x = -e.x, e.y = -e.y) } else a.m_type = 4, e = F.ie[0].v, g = this.m_v1, e.x = g.x, e.y = g.y, F.ie[0].id.indexA = 0, F.ie[0].id.indexB = c.index, F.ie[0].id.typeA = Xb.VERTEX, F.ie[0].id.typeB = Xb.FACE, e = F.ie[1].v, g = this.m_v2, e.x = g.x, e.y = g.y, F.ie[1].id.indexA = 0, F.ie[1].id.indexB = c.index, F.ie[1].id.typeA = Xb.VERTEX, F.ie[1].id.typeB = Xb.FACE, F.rf.i1 = c.index, F.rf.i2 = F.rf.i1 + 1 < F.m_polygonB.count ? F.rf.i1 + 1 : 0, e = F.rf.v1, g = F.m_polygonB.vertices[F.rf.i1], e.x = g.x, e.y = g.y, e = F.rf.v2, g = F.m_polygonB.vertices[F.rf.i2], e.x = g.x, e.y = g.y, e = F.rf.normal, g = F.m_polygonB.normals[F.rf.i1], e.x = g.x, e.y = g.y; e = F.rf.sideNormal1; g = F.rf.normal.y; r = -F.rf.normal.x; null == r && (r = 0); null == g && (g = 0); e.x = g; e.y = r; e = F.rf.sideNormal2; g = F.rf.sideNormal1; e.x = g.x; e.y = g.y; e = F.rf.sideNormal2; e.x = -e.x; e.y = -e.y; F.rf.sideOffset1 = O.dot(F.rf.sideNormal1, F.rf.v1); F.rf.sideOffset2 = O.dot(F.rf.sideNormal2, F.rf.v2); e = F.clipSegmentToLine(F.clipPoints1, F.ie, F.rf.sideNormal1, F.rf.sideOffset1, F.rf.i1); if (!(e < Y.b2_maxManifoldPoints || (e = F.clipSegmentToLine(F.clipPoints2, F.clipPoints1, F.rf.sideNormal2, F.rf.sideOffset2, F.rf.i2), e < Y.b2_maxManifoldPoints))) { c.type == Mf.EDGE_A ? (e = a.m_localPlaneNormal, g = F.rf.normal, e.x = g.x, e.y = g.y, e = a.m_localPoint, g = F.rf.v1) : (e = a.m_localPlaneNormal, g = d.m_normals[F.rf.i1], e.x = g.x, e.y = g.y, e = a.m_localPoint, g = d.m_vertices[F.rf.i1]); e.x = g.x; e.y = g.y; b = d = 0; for (r = Y.b2_maxManifoldPoints; b < r;) f = b++, e = F.temp, g = F.clipPoints2[f].v, e.x = g.x, e.y = g.y, F.temp.subtract(F.rf.v1), O.dot(F.rf.normal, F.temp) <= this.m_radius && (e = a.m_points[d], c.type == Mf.EDGE_A ? (g = e.m_localPoint, p = O.mulXT(F.m_xf, F.clipPoints2[f].v), g.x = p.x, g.y = p.y, e.m_id.set(F.clipPoints2[f].id)) : (g = e.m_localPoint, p = F.clipPoints2[f].v, g.x = p.x, g.y = p.y, e.m_id.typeA = F.clipPoints2[f].id.typeB, e.m_id.typeB = F.clipPoints2[f].id.typeA, e.m_id.indexA = F.clipPoints2[f].id.indexB, e.m_id.indexB = F.clipPoints2[f].id.indexA), ++d); a.m_pointCount = d } } }, computeEdgeSeparation: function (a) { a.type = Mf.EDGE_A; a.index = this.m_front ? 0 : 1; a.separation = Number.MAX_VALUE; for (var b = 0, c = F.m_polygonB.count; b < c;) { var d = b++, e = F.temp; d = F.m_polygonB.vertices[d]; e.x = d.x; e.y = d.y; F.temp.subtract(this.m_v1); e = O.dot(F.m_normal, F.temp); e < a.separation && (a.separation = e) } }, computePolygonSeparation: function (a) { a.type = Mf.UNKNOWN; a.index = -1; a.separation = -Number.MAX_VALUE; var b = F.perp, c = -F.m_normal.y, d = F.m_normal.x; null == d && (d = 0); null == c && (c = 0); b.x = c; b.y = d; c = 0; for (d = F.m_polygonB.count; c < d;) { var e = c++; b = F.n; var g = F.m_polygonB.normals[e]; b.x = g.x; b.y = g.y; b = F.n; b.x = -b.x; b.y = -b.y; b = F.temp; g = F.m_polygonB.vertices[e]; b.x = g.x; b.y = g.y; F.temp.subtract(this.m_v1); b = O.dot(F.n, F.temp); g = F.temp; var r = F.m_polygonB.vertices[e]; g.x = r.x; g.y = r.y; F.temp.subtract(this.m_v2); g = O.dot(F.n, F.temp); b = Math.min(b, g); if (b > this.m_radius) { a.type = Mf.EDGE_B; a.index = e; a.separation = b; break } 0 <= O.dot(F.n, F.perp) ? (g = F.temp, r = F.n, g.x = r.x, g.y = r.y, F.temp.subtract(F.m_upperLimit)) : (g = F.temp, r = F.n, g.x = r.x, g.y = r.y, F.temp.subtract(F.m_lowerLimit)); !(O.dot(F.temp, F.m_normal) < -Y.b2_angularSlop) && b > a.separation && (a.type = Mf.EDGE_B, a.index = e, a.separation = b) } }, multiplyTransformsInverse: function (a, b, c) { this.multiplyRotationsInverse(a.R, b.R, F.mat); var d = F.temp2; b = b.position; d.x = b.x; d.y = b.y; F.temp2.subtract(a.position); this.multiplyRotationVectorInverse(a.R, F.temp2, c.position); d = c.R.col1; b = F.mat.col1; d.x = b.x; d.y = b.y; d = c.R.col2; b = F.mat.col2; d.x = b.x; d.y = b.y }, multiplyRotationsInverse: function (a, b, c) { c.col1.x = a.col1.x * b.col1.x + a.col1.y * b.col1.y; c.col1.y = a.col2.x * b.col1.x + a.col2.y * b.col1.y; c.col2.x = a.col1.x * b.col2.x + a.col1.y * b.col2.y; c.col2.y = a.col2.x * b.col2.x + a.col2.y * b.col2.y }, multiplyRotationVector: function (a, b, c) { c.x = a.col1.x * b.x + a.col2.x * b.y; c.y = a.col1.y * b.x + a.col2.y * b.y }, multiplyRotationVectorInverse: function (a, b, c) { c.x = a.col1.x * b.x + a.col1.y * b.y; c.y = a.col2.x * b.x + a.col2.y * b.y }, multiplyTransformVector: function (a, b, c) { c.x = a.R.col1.x * b.x + a.R.col2.x * b.y + a.position.x; c.y = a.R.col1.y * b.x + a.R.col2.y * b.y + a.position.y }, __class__: F }); var Mf = A["box2D.dynamics.contacts.Type"] = { __ename__: "box2D.dynamics.contacts.Type", __constructs__: null, UNKNOWN: {_hx_name: "UNKNOWN", _hx_index: 0, __enum__: "box2D.dynamics.contacts.Type", toString: t}, EDGE_A: {_hx_name: "EDGE_A", _hx_index: 1, __enum__: "box2D.dynamics.contacts.Type", toString: t}, EDGE_B: {_hx_name: "EDGE_B", _hx_index: 2, __enum__: "box2D.dynamics.contacts.Type", toString: t} }; Mf.__constructs__ = [Mf.UNKNOWN, Mf.EDGE_A, Mf.EDGE_B]; var rh = function () { cb.call(this) }; k["box2D.dynamics.contacts.B2PolygonContact"] = rh; rh.__name__ = "box2D.dynamics.contacts.B2PolygonContact"; rh.create = function (a) { return new rh }; rh.destroy = function (a, b) { }; rh.__super__ = cb; rh.prototype = u(cb.prototype, { reset: function (a, b) { cb.prototype.reset.call(this, a, b) }, evaluate: function () { var a = this.m_fixtureA.getBody(), b = this.m_fixtureB.getBody(); N.collidePolygons(this.m_manifold, w.__cast(this.m_fixtureA.getShape(), Jb), a.m_xf, w.__cast(this.m_fixtureB.getShape(), Jb), b.m_xf) }, __class__: rh }); var hr = function () { }; k["box2D.dynamics.controllers.B2Controller"] = hr; hr.__name__ = "box2D.dynamics.controllers.B2Controller"; hr.prototype = { step: function (a) { }, draw: function (a) { }, addBody: function (a) { var b = new Kn; b.controller = this; b.body = a; b.nextBody = this.m_bodyList; b.prevBody = null; this.m_bodyList = b; null != b.nextBody && (b.nextBody.prevBody = b); this.m_bodyCount++; b.nextController = a.m_controllerList; b.prevController = null; a.m_controllerList = b; null != b.nextController && (b.nextController.prevController = b); a.m_controllerCount++ }, removeBody: function (a) { for (var b = a.m_controllerList; null != b && b.controller != this;) b = b.nextController; null != b.prevBody && (b.prevBody.nextBody = b.nextBody); null != b.nextBody && (b.nextBody.prevBody = b.prevBody); null != b.nextController && (b.nextController.prevController = b.prevController); null != b.prevController && (b.prevController.nextController = b.nextController); this.m_bodyList == b && (this.m_bodyList = b.nextBody); a.m_controllerList == b && (a.m_controllerList = b.nextController); a.m_controllerCount--; this.m_bodyCount-- }, clear: function () { for (; null != this.m_bodyList;) this.removeBody(this.m_bodyList.body) }, getNext: function () { return this.m_next }, getWorld: function () { return this.m_world }, getBodyList: function () { return this.m_bodyList }, m_next: null, m_prev: null, m_bodyList: null, m_bodyCount: null, m_world: null, __class__: hr }; var Kn = function () { }; k["box2D.dynamics.controllers.B2ControllerEdge"] = Kn; Kn.__name__ = "box2D.dynamics.controllers.B2ControllerEdge"; Kn.prototype = { controller: null, body: null, prevBody: null, nextBody: null, prevController: null, nextController: null, __class__: Kn }; var Yb = function (a) { this.m_edgeA = new Ek; this.m_edgeB = new Ek; this.m_localCenterA = new M; this.m_localCenterB = new M; Y.b2Assert(a.bodyA != a.bodyB); this.m_type = a.type; this.m_next = this.m_prev = null; this.m_bodyA = a.bodyA; this.m_bodyB = a.bodyB; this.m_collideConnected = a.collideConnected; this.m_islandFlag = !1; this.m_userData = a.userData }; k["box2D.dynamics.joints.B2Joint"] = Yb; Yb.__name__ = "box2D.dynamics.joints.B2Joint"; Yb.create = function (a, b) { b = null; 3 == a.type ? b = new qi(w.__cast(a, Mh)) : 5 == a.type ? b = new Fk(w.__cast(a, Gk)) : 2 == a.type ? b = new ri(w.__cast(a, Hk)) : 1 == a.type ? b = new eg(w.__cast(a, Nh)) : 4 == a.type ? b = new yg(w.__cast(a, Ik)) : 6 == a.type ? b = new Jk(w.__cast(a, Kk)) : 7 == a.type ? b = new xj(w.__cast(a, Oh)) : 8 == a.type ? b = new Lk(w.__cast(a, Mk)) : 9 == a.type && (b = new Nk(w.__cast(a, Ok))); return b }; Yb.destroy = function (a, b) { }; Yb.prototype = { getType: function () { return this.m_type }, getAnchorA: function () { return null }, getAnchorB: function () { return null }, getReactionForce: function (a) { return null }, getReactionTorque: function (a) { return 0 }, getBodyA: function () { return this.m_bodyA }, getBodyB: function () { return this.m_bodyB }, getNext: function () { return this.m_next }, getUserData: function () { return this.m_userData }, setUserData: function (a) { this.m_userData = a }, isActive: function () { return this.m_bodyA.isActive() ? this.m_bodyB.isActive() : !1 }, initVelocityConstraints: function (a) { }, solveVelocityConstraints: function (a) { }, finalizeVelocityConstraints: function () { }, solvePositionConstraints: function (a) { return !1 }, m_type: null, m_prev: null, m_next: null, m_edgeA: null, m_edgeB: null, m_bodyA: null, m_bodyB: null, m_islandFlag: null, m_collideConnected: null, m_userData: null, m_localCenterA: null, m_localCenterB: null, m_invMassA: null, m_invMassB: null, m_invIA: null, m_invIB: null, ID: null, __class__: Yb }; var qi = function (a) { Yb.call(this, a); this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_u = new M; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_length = a.length; this.m_frequencyHz = a.frequencyHz; this.m_dampingRatio = a.dampingRatio; this.m_bias = this.m_gamma = this.m_impulse = 0 }; k["box2D.dynamics.joints.B2DistanceJoint"] = qi; qi.__name__ = "box2D.dynamics.joints.B2DistanceJoint"; qi.__super__ = Yb; qi.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * this.m_impulse * this.m_u.x, a * this.m_impulse * this.m_u.y) }, getReactionTorque: function (a) { return 0 }, getLength: function () { return this.m_length }, setLength: function (a) { this.m_length = a }, getFrequency: function () { return this.m_frequencyHz }, setFrequency: function (a) { this.m_frequencyHz = a }, getDampingRatio: function () { return this.m_dampingRatio }, setDampingRatio: function (a) { this.m_dampingRatio = a }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_xf.R, e = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, r = d.col1.x * e + d.col2.x * g; g = d.col1.y * e + d.col2.y * g; e = r; d = c.m_xf.R; var f = this.m_localAnchor2.x - c.m_sweep.localCenter.x, p = this.m_localAnchor2.y - c.m_sweep.localCenter.y; r = d.col1.x * f + d.col2.x * p; p = d.col1.y * f + d.col2.y * p; f = r; this.m_u.x = c.m_sweep.c.x + f - b.m_sweep.c.x - e; this.m_u.y = c.m_sweep.c.y + p - b.m_sweep.c.y - g; d = Math.sqrt(this.m_u.x * this.m_u.x + this.m_u.y * this.m_u.y); d > Y.b2_linearSlop ? this.m_u.multiply(1 / d) : (r = this.m_u, r.x = 0, r.y = 0); r = e * this.m_u.y - g * this.m_u.x; var m = f * this.m_u.y - p * this.m_u.x; r = b.m_invMass + b.m_invI * r * r + c.m_invMass + c.m_invI * m * m; this.m_mass = 0 != r ? 1 / r : 0; if (0 < this.m_frequencyHz) { d -= this.m_length; m = 2 * Math.PI * this.m_frequencyHz; var h = this.m_mass * m * m; this.m_gamma = a.dt * (2 * this.m_mass * this.m_dampingRatio * m + a.dt * h); this.m_gamma = 0 != this.m_gamma ? 1 / this.m_gamma : 0; this.m_bias = d * a.dt * h * this.m_gamma; this.m_mass = r + this.m_gamma; this.m_mass = 0 != this.m_mass ? 1 / this.m_mass : 0 } a.warmStarting ? (this.m_impulse *= a.dtRatio, a = this.m_impulse * this.m_u.x, d = this.m_impulse * this.m_u.y, b.m_linearVelocity.x -= b.m_invMass * a, b.m_linearVelocity.y -= b.m_invMass * d, b.m_angularVelocity -= b.m_invI * (e * d - g * a), c.m_linearVelocity.x += c.m_invMass * a, c.m_linearVelocity.y += c.m_invMass * d, c.m_angularVelocity += c.m_invI * (f * d - p * a)) : this.m_impulse = 0 }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchor1.x - a.m_sweep.localCenter.x, e = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchor2.x - b.m_sweep.localCenter.x, f = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; g = -this.m_mass * (this.m_u.x * (b.m_linearVelocity.x + -b.m_angularVelocity * f - (a.m_linearVelocity.x + -a.m_angularVelocity * e)) + this.m_u.y * (b.m_linearVelocity.y + b.m_angularVelocity * r - (a.m_linearVelocity.y + a.m_angularVelocity * d)) + this.m_bias + this.m_gamma * this.m_impulse); this.m_impulse += g; c = g * this.m_u.x; g *= this.m_u.y; a.m_linearVelocity.x -= a.m_invMass * c; a.m_linearVelocity.y -= a.m_invMass * g; a.m_angularVelocity -= a.m_invI * (d * g - e * c); b.m_linearVelocity.x += b.m_invMass * c; b.m_linearVelocity.y += b.m_invMass * g; b.m_angularVelocity += b.m_invI * (r * g - f * c) }, solvePositionConstraints: function (a) { if (0 < this.m_frequencyHz) return !0; a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchor1.x - a.m_sweep.localCenter.x, e = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchor2.x - b.m_sweep.localCenter.x, f = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; var p = b.m_sweep.c.x + r - a.m_sweep.c.x - d, m = b.m_sweep.c.y + f - a.m_sweep.c.y - e; c = Math.sqrt(p * p + m * m); p /= c; m /= c; c -= this.m_length; c = O.clamp(c, -Y.b2_maxLinearCorrection, Y.b2_maxLinearCorrection); g = -this.m_mass * c; var h = this.m_u; null == m && (m = 0); null == p && (p = 0); h.x = p; h.y = m; m = g * this.m_u.x; g *= this.m_u.y; a.m_sweep.c.x -= a.m_invMass * m; a.m_sweep.c.y -= a.m_invMass * g; a.m_sweep.a -= a.m_invI * (d * g - e * m); b.m_sweep.c.x += b.m_invMass * m; b.m_sweep.c.y += b.m_invMass * g; b.m_sweep.a += b.m_invI * (r * g - f * m); a.synchronizeTransform(); b.synchronizeTransform(); return O.abs(c) < Y.b2_linearSlop }, m_localAnchor1: null, m_localAnchor2: null, m_u: null, m_frequencyHz: null, m_dampingRatio: null, m_gamma: null, m_bias: null, m_impulse: null, m_mass: null, m_length: null, __class__: qi }); var $c = function () { this.type = 0; this.bodyB = this.bodyA = this.userData = null; this.collideConnected = !1 }; k["box2D.dynamics.joints.B2JointDef"] = $c; $c.__name__ = "box2D.dynamics.joints.B2JointDef"; $c.prototype = { type: null, userData: null, bodyA: null, bodyB: null, collideConnected: null, ID: null, actor1: null, actor2: null, __class__: $c }; var Mh = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.type = 3; this.length = 1; this.dampingRatio = this.frequencyHz = 0 }; k["box2D.dynamics.joints.B2DistanceJointDef"] = Mh; Mh.__name__ = "box2D.dynamics.joints.B2DistanceJointDef"; Mh.__super__ = $c; Mh.prototype = u($c.prototype, { initialize: function (a, b, c, d) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(d); a.x = b.x; a.y = b.y; a = d.x - c.x; c = d.y - c.y; this.length = Math.sqrt(a * a + c * c); this.dampingRatio = this.frequencyHz = 0 }, localAnchorA: null, localAnchorB: null, length: null, frequencyHz: null, dampingRatio: null, __class__: Mh }); var Nk = function (a) { Yb.call(this, a); this.m_localAnchorA = new M; this.m_localAnchorB = new M; this.m_linearMass = new Ec; this.m_linearImpulse = new M; var b = this.m_localAnchorA, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchorB; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_linearMass.setZero(); this.m_angularMass = 0; b = this.m_linearImpulse; b.x = 0; this.m_angularImpulse = b.y = 0; this.m_maxForce = a.maxForce; this.m_maxTorque = a.maxTorque }; k["box2D.dynamics.joints.B2FrictionJoint"] = Nk; Nk.__name__ = "box2D.dynamics.joints.B2FrictionJoint"; Nk.__super__ = Yb; Nk.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchorA) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchorB) }, getReactionForce: function (a) { return new M(a * this.m_linearImpulse.x, a * this.m_linearImpulse.y) }, getReactionTorque: function (a) { return a * this.m_angularImpulse }, setMaxForce: function (a) { this.m_maxForce = a }, getMaxForce: function () { return this.m_maxForce }, setMaxTorque: function (a) { this.m_maxTorque = a }, getMaxTorque: function () { return this.m_maxTorque }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_xf.R, e = this.m_localAnchorA.x - b.m_sweep.localCenter.x, g = this.m_localAnchorA.y - b.m_sweep.localCenter.y, r = d.col1.x * e + d.col2.x * g; g = d.col1.y * e + d.col2.y * g; e = r; d = c.m_xf.R; var f = this.m_localAnchorB.x - c.m_sweep.localCenter.x, p = this.m_localAnchorB.y - c.m_sweep.localCenter.y; r = d.col1.x * f + d.col2.x * p; p = d.col1.y * f + d.col2.y * p; f = r; d = b.m_invMass; r = c.m_invMass; var m = b.m_invI, h = c.m_invI, n = new Ec; n.col1.x = d + r; n.col2.x = 0; n.col1.y = 0; n.col2.y = d + r; n.col1.x += m * g * g; n.col2.x += -m * e * g; n.col1.y += -m * e * g; n.col2.y += m * e * e; n.col1.x += h * p * p; n.col2.x += -h * f * p; n.col1.y += -h * f * p; n.col2.y += h * f * f; n.getInverse(this.m_linearMass); this.m_angularMass = m + h; 0 < this.m_angularMass && (this.m_angularMass = 1 / this.m_angularMass); a.warmStarting ? (this.m_linearImpulse.x *= a.dtRatio, this.m_linearImpulse.y *= a.dtRatio, this.m_angularImpulse *= a.dtRatio, a = this.m_linearImpulse, b.m_linearVelocity.x -= d * a.x, b.m_linearVelocity.y -= d * a.y, b.m_angularVelocity -= m * (e * a.y - g * a.x + this.m_angularImpulse), c.m_linearVelocity.x += r * a.x, c.m_linearVelocity.y += r * a.y, c.m_angularVelocity += h * (f * a.y - p * a.x + this.m_angularImpulse)) : (b = this.m_linearImpulse, b.x = 0, this.m_angularImpulse = b.y = 0) }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_linearVelocity, e = b.m_angularVelocity, g = c.m_linearVelocity, r = c.m_angularVelocity, f = b.m_invMass, p = c.m_invMass, m = b.m_invI, h = c.m_invI, n = b.m_xf.R, l = this.m_localAnchorA.x - b.m_sweep.localCenter.x, k = this.m_localAnchorA.y - b.m_sweep.localCenter.y, t = n.col1.x * l + n.col2.x * k; k = n.col1.y * l + n.col2.y * k; l = t; n = c.m_xf.R; var q = this.m_localAnchorB.x - c.m_sweep.localCenter.x, Sb = this.m_localAnchorB.y - c.m_sweep.localCenter.y; t = n.col1.x * q + n.col2.x * Sb; Sb = n.col1.y * q + n.col2.y * Sb; q = t; t = -this.m_angularMass * (r - e); var da = this.m_angularImpulse; n = a.dt * this.m_maxTorque; this.m_angularImpulse = O.clamp(this.m_angularImpulse + t, -n, n); t = this.m_angularImpulse - da; e -= m * t; r += h * t; n = O.mulMV(this.m_linearMass, new M(-(g.x - r * Sb - d.x + e * k), -(g.y + r * q - d.y - e * l))); t = this.m_linearImpulse.copy(); this.m_linearImpulse.add(n); n = a.dt * this.m_maxForce; this.m_linearImpulse.lengthSquared() > n * n && (this.m_linearImpulse.normalize(), this.m_linearImpulse.multiply(n)); n = O.subtractVV(this.m_linearImpulse, t); d.x -= f * n.x; d.y -= f * n.y; e -= m * (l * n.y - k * n.x); g.x += p * n.x; g.y += p * n.y; r += h * (q * n.y - Sb * n.x); b.m_angularVelocity = e; c.m_angularVelocity = r }, solvePositionConstraints: function (a) { return !0 }, m_localAnchorA: null, m_localAnchorB: null, m_linearMass: null, m_angularMass: null, m_linearImpulse: null, m_angularImpulse: null, m_maxForce: null, m_maxTorque: null, __class__: Nk }); var Ok = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.type = 9; this.maxTorque = this.maxForce = 0 }; k["box2D.dynamics.joints.B2FrictionJointDef"] = Ok; Ok.__name__ = "box2D.dynamics.joints.B2FrictionJointDef"; Ok.__super__ = $c; Ok.prototype = u($c.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(c); a.x = b.x; a.y = b.y }, localAnchorA: null, localAnchorB: null, maxForce: null, maxTorque: null, __class__: Ok }); var Jk = function (a) { Yb.call(this, a); this.m_groundAnchor1 = new M; this.m_groundAnchor2 = new M; this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_J = new Ln; var b = a.joint1.m_type, c = a.joint2.m_type; this.m_prismatic2 = this.m_revolute2 = this.m_prismatic1 = this.m_revolute1 = null; this.m_ground1 = a.joint1.getBodyA(); this.m_bodyA = a.joint1.getBodyB(); if (1 == b) { this.m_revolute1 = w.__cast(a.joint1, eg); var d = this.m_groundAnchor1, e = this.m_revolute1.m_localAnchor1; d.x = e.x; d.y = e.y; d = this.m_localAnchor1; e = this.m_revolute1.m_localAnchor2; d.x = e.x; d.y = e.y; b = this.m_revolute1.getJointAngle() } else this.m_prismatic1 = w.__cast(a.joint1, ri), d = this.m_groundAnchor1, e = this.m_prismatic1.m_localAnchor1, d.x = e.x, d.y = e.y, d = this.m_localAnchor1, e = this.m_prismatic1.m_localAnchor2, d.x = e.x, d.y = e.y, b = this.m_prismatic1.getJointTranslation(); this.m_ground2 = a.joint2.getBodyA(); this.m_bodyB = a.joint2.getBodyB(); 1 == c ? (this.m_revolute2 = w.__cast(a.joint2, eg), d = this.m_groundAnchor2, e = this.m_revolute2.m_localAnchor1, d.x = e.x, d.y = e.y, d = this.m_localAnchor2, e = this.m_revolute2.m_localAnchor2, d.x = e.x, d.y = e.y, c = this.m_revolute2.getJointAngle()) : (this.m_prismatic2 = w.__cast(a.joint2, ri), d = this.m_groundAnchor2, e = this.m_prismatic2.m_localAnchor1, d.x = e.x, d.y = e.y, d = this.m_localAnchor2, e = this.m_prismatic2.m_localAnchor2, d.x = e.x, d.y = e.y, c = this.m_prismatic2.getJointTranslation()); this.m_ratio = a.ratio; this.m_constant = b + this.m_ratio * c; this.m_impulse = 0 }; k["box2D.dynamics.joints.B2GearJoint"] = Jk; Jk.__name__ = "box2D.dynamics.joints.B2GearJoint"; Jk.__super__ = Yb; Jk.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * this.m_impulse * this.m_J.linearB.x, a * this.m_impulse * this.m_J.linearB.y) }, getReactionTorque: function (a) { var b = this.m_bodyB.m_xf.R, c = this.m_localAnchor1.x - this.m_bodyB.m_sweep.localCenter.x, d = this.m_localAnchor1.y - this.m_bodyB.m_sweep.localCenter.y, e = b.col1.x * c + b.col2.x * d; d = b.col1.y * c + b.col2.y * d; return a * (this.m_impulse * this.m_J.angularB - e * this.m_impulse * this.m_J.linearB.y + d * this.m_impulse * this.m_J.linearB.x) }, getRatio: function () { return this.m_ratio }, setRatio: function (a) { this.m_ratio = a }, initVelocityConstraints: function (a) { var b = this.m_ground1, c = this.m_ground2, d = this.m_bodyA, e = this.m_bodyB, g = 0; this.m_J.setZero(); if (null != this.m_revolute1) this.m_J.angularA = -1, g += d.m_invI; else { var r = b.m_xf.R; var f = this.m_prismatic1.m_localXAxis1; b = r.col1.x * f.x + r.col2.x * f.y; f = r.col1.y * f.x + r.col2.y * f.y; r = d.m_xf.R; var p = this.m_localAnchor1.x - d.m_sweep.localCenter.x; var m = this.m_localAnchor1.y - d.m_sweep.localCenter.y; var h = r.col1.x * p + r.col2.x * m; m = r.col1.y * p + r.col2.y * m; r = h * f - m * b; p = this.m_J.linearA; b = -b; f = -f; null == f && (f = 0); null == b && (b = 0); p.x = b; p.y = f; this.m_J.angularA = -r; g += d.m_invMass + d.m_invI * r * r } null != this.m_revolute2 ? (this.m_J.angularB = -this.m_ratio, g += this.m_ratio * this.m_ratio * e.m_invI) : (r = c.m_xf.R, f = this.m_prismatic2.m_localXAxis1, b = r.col1.x * f.x + r.col2.x * f.y, f = r.col1.y * f.x + r.col2.y * f.y, r = e.m_xf.R, p = this.m_localAnchor2.x - e.m_sweep.localCenter.x, m = this.m_localAnchor2.y - e.m_sweep.localCenter.y, h = r.col1.x * p + r.col2.x * m, m = r.col1.y * p + r.col2.y * m, r = h * f - m * b, p = this.m_J.linearB, b *= -this.m_ratio, f *= -this.m_ratio, null == f && (f = 0), null == b && (b = 0), p.x = b, p.y = f, this.m_J.angularB = -this.m_ratio * r, g += this.m_ratio * this.m_ratio * (e.m_invMass + e.m_invI * r * r)); this.m_mass = 0 < g ? 1 / g : 0; a.warmStarting ? (d.m_linearVelocity.x += d.m_invMass * this.m_impulse * this.m_J.linearA.x, d.m_linearVelocity.y += d.m_invMass * this.m_impulse * this.m_J.linearA.y, d.m_angularVelocity += d.m_invI * this.m_impulse * this.m_J.angularA, e.m_linearVelocity.x += e.m_invMass * this.m_impulse * this.m_J.linearB.x, e.m_linearVelocity.y += e.m_invMass * this.m_impulse * this.m_J.linearB.y, e.m_angularVelocity += e.m_invI * this.m_impulse * this.m_J.angularB) : this.m_impulse = 0 }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = this.m_J.compute(a.m_linearVelocity, a.m_angularVelocity, b.m_linearVelocity, b.m_angularVelocity); c *= -this.m_mass; this.m_impulse += c; a.m_linearVelocity.x += a.m_invMass * c * this.m_J.linearA.x; a.m_linearVelocity.y += a.m_invMass * c * this.m_J.linearA.y; a.m_angularVelocity += a.m_invI * c * this.m_J.angularA; b.m_linearVelocity.x += b.m_invMass * c * this.m_J.linearB.x; b.m_linearVelocity.y += b.m_invMass * c * this.m_J.linearB.y; b.m_angularVelocity += b.m_invI * c * this.m_J.angularB }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB; var c = null != this.m_revolute1 ? this.m_revolute1.getJointAngle() : this.m_prismatic1.getJointTranslation(); var d = null != this.m_revolute2 ? this.m_revolute2.getJointAngle() : this.m_prismatic2.getJointTranslation(); c = -this.m_mass * (this.m_constant - (c + this.m_ratio * d)); a.m_sweep.c.x += a.m_invMass * c * this.m_J.linearA.x; a.m_sweep.c.y += a.m_invMass * c * this.m_J.linearA.y; a.m_sweep.a += a.m_invI * c * this.m_J.angularA; b.m_sweep.c.x += b.m_invMass * c * this.m_J.linearB.x; b.m_sweep.c.y += b.m_invMass * c * this.m_J.linearB.y; b.m_sweep.a += b.m_invI * c * this.m_J.angularB; a.synchronizeTransform(); b.synchronizeTransform(); return 0 < Y.b2_linearSlop }, m_ground1: null, m_ground2: null, m_revolute1: null, m_prismatic1: null, m_revolute2: null, m_prismatic2: null, m_groundAnchor1: null, m_groundAnchor2: null, m_localAnchor1: null, m_localAnchor2: null, m_J: null, m_constant: null, m_ratio: null, m_mass: null, m_impulse: null, __class__: Jk }); var Kk = function () { $c.call(this); this.type = 6; this.joint2 = this.joint1 = null; this.ratio = 1 }; k["box2D.dynamics.joints.B2GearJointDef"] = Kk; Kk.__name__ = "box2D.dynamics.joints.B2GearJointDef"; Kk.__super__ = $c; Kk.prototype = u($c.prototype, { joint1: null, joint2: null, ratio: null, __class__: Kk }); var Ln = function () { this.linearA = new M; this.linearB = new M }; k["box2D.dynamics.joints.B2Jacobian"] = Ln; Ln.__name__ = "box2D.dynamics.joints.B2Jacobian"; Ln.prototype = { linearA: null, angularA: null, linearB: null, angularB: null, setZero: function () { var a = this.linearA; a.x = 0; this.angularA = a.y = 0; a = this.linearB; a.x = 0; this.angularB = a.y = 0 }, set: function (a, b, c, d) { var e = this.linearA; e.x = a.x; e.y = a.y; this.angularA = b; e = this.linearB; e.x = c.x; e.y = c.y; this.angularB = d }, compute: function (a, b, c, d) { return this.linearA.x * a.x + this.linearA.y * a.y + this.angularA * b + (this.linearB.x * c.x + this.linearB.y * c.y) + this.angularB * d }, __class__: Ln }; var Ek = function () { }; k["box2D.dynamics.joints.B2JointEdge"] = Ek; Ek.__name__ = "box2D.dynamics.joints.B2JointEdge"; Ek.prototype = {other: null, joint: null, prev: null, next: null, __class__: Ek}; var xj = function (a) { Yb.call(this, a); this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_localXAxis1 = new M; this.m_localYAxis1 = new M; this.m_axis = new M; this.m_perp = new M; this.m_K = new Ec; this.m_impulse = new M; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; b = this.m_localXAxis1; c = a.localAxisA; b.x = c.x; b.y = c.y; this.m_localYAxis1.x = -this.m_localXAxis1.y; this.m_localYAxis1.y = this.m_localXAxis1.x; b = this.m_impulse; b.x = 0; this.m_motorImpulse = this.m_motorMass = b.y = 0; this.m_lowerTranslation = a.lowerTranslation; this.m_upperTranslation = a.upperTranslation; this.m_maxMotorForce = a.maxMotorForce; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0; b = this.m_axis; b.x = 0; b.y = 0; b = this.m_perp; b.x = 0; b.y = 0 }; k["box2D.dynamics.joints.B2LineJoint"] = xj; xj.__name__ = "box2D.dynamics.joints.B2LineJoint"; xj.__super__ = Yb; xj.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x), a * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y)) }, getReactionTorque: function (a) { return a * this.m_impulse.y }, getJointTranslation: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.getWorldPoint(this.m_localAnchor1), d = b.getWorldPoint(this.m_localAnchor2); b = d.x - c.x; c = d.y - c.y; a = a.getWorldVector(this.m_localXAxis1); return a.x * b + a.y * c }, getJointSpeed: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchor1.x - a.m_sweep.localCenter.x, e = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchor2.x - b.m_sweep.localCenter.x, f = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; c = b.m_sweep.c.x + r - (a.m_sweep.c.x + d); g = b.m_sweep.c.y + f - (a.m_sweep.c.y + e); var p = a.getWorldVector(this.m_localXAxis1), m = a.m_linearVelocity, h = b.m_linearVelocity; a = a.m_angularVelocity; b = b.m_angularVelocity; return c * -a * p.y + g * a * p.x + (p.x * (h.x + -b * f - m.x - -a * e) + p.y * (h.y + b * r - m.y - a * d)) }, isLimitEnabled: function () { return this.m_enableLimit }, enableLimit: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableLimit = a }, getLowerLimit: function () { return this.m_lowerTranslation }, getUpperLimit: function () { return this.m_upperTranslation }, setLimits: function (a, b) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_lowerTranslation = a; this.m_upperTranslation = b }, isMotorEnabled: function () { return this.m_enableMotor }, enableMotor: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableMotor = a }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a }, getMotorSpeed: function () { return this.m_motorSpeed }, setMaxMotorForce: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_maxMotorForce = a }, getMaxMotorForce: function () { return this.m_maxMotorForce }, getMotorForce: function () { return this.m_motorImpulse }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = this.m_localCenterA, e = b.getLocalCenter(); d.x = e.x; d.y = e.y; d = this.m_localCenterB; e = c.getLocalCenter(); d.x = e.x; d.y = e.y; var g = b.getTransform(); c.getTransform(); var r = b.m_xf.R, f = this.m_localAnchor1.x - this.m_localCenterA.x, p = this.m_localAnchor1.y - this.m_localCenterA.y, m = r.col1.x * f + r.col2.x * p; p = r.col1.y * f + r.col2.y * p; f = m; r = c.m_xf.R; var h = this.m_localAnchor2.x - this.m_localCenterB.x, n = this.m_localAnchor2.y - this.m_localCenterB.y; m = r.col1.x * h + r.col2.x * n; n = r.col1.y * h + r.col2.y * n; h = m; r = c.m_sweep.c.x + h - b.m_sweep.c.x - f; m = c.m_sweep.c.y + n - b.m_sweep.c.y - p; this.m_invMassA = b.m_invMass; this.m_invMassB = c.m_invMass; this.m_invIA = b.m_invI; this.m_invIB = c.m_invI; d = this.m_axis; e = O.mulMV(g.R, this.m_localXAxis1); d.x = e.x; d.y = e.y; this.m_a1 = (r + f) * this.m_axis.y - (m + p) * this.m_axis.x; this.m_a2 = h * this.m_axis.y - n * this.m_axis.x; this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2; this.m_motorMass = this.m_motorMass > Number.MIN_VALUE ? 1 / this.m_motorMass : 0; d = this.m_perp; e = O.mulMV(g.R, this.m_localYAxis1); d.x = e.x; d.y = e.y; this.m_s1 = (r + f) * this.m_perp.y - (m + p) * this.m_perp.x; this.m_s2 = h * this.m_perp.y - n * this.m_perp.x; g = this.m_invMassA; f = this.m_invMassB; p = this.m_invIA; h = this.m_invIB; this.m_K.col1.x = g + f + p * this.m_s1 * this.m_s1 + h * this.m_s2 * this.m_s2; this.m_K.col1.y = p * this.m_s1 * this.m_a1 + h * this.m_s2 * this.m_a2; this.m_K.col2.x = this.m_K.col1.y; this.m_K.col2.y = g + f + p * this.m_a1 * this.m_a1 + h * this.m_a2 * this.m_a2; this.m_enableLimit ? (r = this.m_axis.x * r + this.m_axis.y * m, O.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * Y.b2_linearSlop ? this.m_limitState = 3 : r <= this.m_lowerTranslation ? 1 != this.m_limitState && (this.m_limitState = 1, this.m_impulse.y = 0) : r >= this.m_upperTranslation ? 2 != this.m_limitState && (this.m_limitState = 2, this.m_impulse.y = 0) : (this.m_limitState = 0, this.m_impulse.y = 0)) : this.m_limitState = 0; 0 == this.m_enableMotor && (this.m_motorImpulse = 0); a.warmStarting ? (this.m_impulse.x *= a.dtRatio, this.m_impulse.y *= a.dtRatio, this.m_motorImpulse *= a.dtRatio, a = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.x, r = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.y) * this.m_axis.y, m = this.m_impulse.x * this.m_s1 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a1, g = this.m_impulse.x * this.m_s2 + (this.m_motorImpulse + this.m_impulse.y) * this.m_a2, b.m_linearVelocity.x -= this.m_invMassA * a, b.m_linearVelocity.y -= this.m_invMassA * r, b.m_angularVelocity -= this.m_invIA * m, c.m_linearVelocity.x += this.m_invMassB * a, c.m_linearVelocity.y += this.m_invMassB * r, c.m_angularVelocity += this.m_invIB * g) : (d = this.m_impulse, d.x = 0, this.m_motorImpulse = d.y = 0) }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_linearVelocity, e = b.m_angularVelocity, g = c.m_linearVelocity, r = c.m_angularVelocity; if (this.m_enableMotor && 3 != this.m_limitState) { var f = this.m_motorMass * (this.m_motorSpeed - (this.m_axis.x * (g.x - d.x) + this.m_axis.y * (g.y - d.y) + this.m_a2 * r - this.m_a1 * e)); var p = this.m_motorImpulse; a = a.dt * this.m_maxMotorForce; this.m_motorImpulse = O.clamp(this.m_motorImpulse + f, -a, a); f = this.m_motorImpulse - p; p = f * this.m_axis.x; a = f * this.m_axis.y; var m = f * this.m_a1; f *= this.m_a2; d.x -= this.m_invMassA * p; d.y -= this.m_invMassA * a; e -= this.m_invIA * m; g.x += this.m_invMassB * p; g.y += this.m_invMassB * a; r += this.m_invIB * f } a = this.m_perp.x * (g.x - d.x) + this.m_perp.y * (g.y - d.y) + this.m_s2 * r - this.m_s1 * e; this.m_enableLimit && 0 != this.m_limitState ? (m = this.m_axis.x * (g.x - d.x) + this.m_axis.y * (g.y - d.y) + this.m_a2 * r - this.m_a1 * e, p = this.m_impulse.copy(), f = this.m_K.solve(new M, -a, -m), this.m_impulse.add(f), 1 == this.m_limitState ? this.m_impulse.y = O.max(this.m_impulse.y, 0) : 2 == this.m_limitState && (this.m_impulse.y = O.min(this.m_impulse.y, 0)), a = -a - (this.m_impulse.y - p.y) * this.m_K.col2.x, this.m_impulse.x = 0 != this.m_K.col1.x ? a / this.m_K.col1.x + p.x : p.x, f.x = this.m_impulse.x - p.x, f.y = this.m_impulse.y - p.y, p = f.x * this.m_perp.x + f.y * this.m_axis.x, a = f.x * this.m_perp.y + f.y * this.m_axis.y, m = f.x * this.m_s1 + f.y * this.m_a1, f = f.x * this.m_s2 + f.y * this.m_a2) : (f = 0 != this.m_K.col1.x ? -a / this.m_K.col1.x : 0, this.m_impulse.x += f, p = f * this.m_perp.x, a = f * this.m_perp.y, m = f * this.m_s1, f *= this.m_s2); d.x -= this.m_invMassA * p; d.y -= this.m_invMassA * a; e -= this.m_invIA * m; g.x += this.m_invMassB * p; g.y += this.m_invMassB * a; r += this.m_invIB * f; p = b.m_linearVelocity; p.x = d.x; p.y = d.y; b.m_angularVelocity = e; p = c.m_linearVelocity; p.x = g.x; p.y = g.y; c.m_angularVelocity = r }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_sweep.c, d = a.m_sweep.a, e = b.m_sweep.c, g = b.m_sweep.a, r = 0; var f = !1; var p = 0, m = Ec.fromAngle(d); var h = Ec.fromAngle(g); var n = m, l = this.m_localAnchor1.x - this.m_localCenterA.x; var k = this.m_localAnchor1.y - this.m_localCenterA.y; var t = n.col1.x * l + n.col2.x * k; k = n.col1.y * l + n.col2.y * k; l = t; n = h; h = this.m_localAnchor2.x - this.m_localCenterB.x; var q = this.m_localAnchor2.y - this.m_localCenterB.y; t = n.col1.x * h + n.col2.x * q; q = n.col1.y * h + n.col2.y * q; h = t; n = e.x + h - c.x - l; t = e.y + q - c.y - k; if (this.m_enableLimit) { this.m_axis = O.mulMV(m, this.m_localXAxis1); this.m_a1 = (n + l) * this.m_axis.y - (t + k) * this.m_axis.x; this.m_a2 = h * this.m_axis.y - q * this.m_axis.x; var Sb = this.m_axis.x * n + this.m_axis.y * t; O.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * Y.b2_linearSlop ? (p = O.clamp(Sb, -Y.b2_maxLinearCorrection, Y.b2_maxLinearCorrection), r = O.abs(Sb), f = !0) : Sb <= this.m_lowerTranslation ? (p = O.clamp(Sb - this.m_lowerTranslation + Y.b2_linearSlop, -Y.b2_maxLinearCorrection, 0), r = this.m_lowerTranslation - Sb, f = !0) : Sb >= this.m_upperTranslation && (p = O.clamp(Sb - this.m_upperTranslation + Y.b2_linearSlop, 0, Y.b2_maxLinearCorrection), r = Sb - this.m_upperTranslation, f = !0) } this.m_perp = O.mulMV(m, this.m_localYAxis1); this.m_s1 = (n + l) * this.m_perp.y - (t + k) * this.m_perp.x; this.m_s2 = h * this.m_perp.y - q * this.m_perp.x; m = new M; l = this.m_perp.x * n + this.m_perp.y * t; r = O.max(r, O.abs(l)); f ? (f = this.m_invMassA, k = this.m_invMassB, h = this.m_invIA, q = this.m_invIB, this.m_K.col1.x = f + k + h * this.m_s1 * this.m_s1 + q * this.m_s2 * this.m_s2, this.m_K.col1.y = h * this.m_s1 * this.m_a1 + q * this.m_s2 * this.m_a2, this.m_K.col2.x = this.m_K.col1.y, this.m_K.col2.y = f + k + h * this.m_a1 * this.m_a1 + q * this.m_a2 * this.m_a2, this.m_K.solve(m, -l, -p)) : (f = this.m_invMassA, k = this.m_invMassB, h = this.m_invIA, q = this.m_invIB, p = f + k + h * this.m_s1 * this.m_s1 + q * this.m_s2 * this.m_s2, m.x = 0 != p ? -l / p : 0, m.y = 0); p = m.x * this.m_perp.x + m.y * this.m_axis.x; f = m.x * this.m_perp.y + m.y * this.m_axis.y; l = m.x * this.m_s1 + m.y * this.m_a1; m = m.x * this.m_s2 + m.y * this.m_a2; c.x -= this.m_invMassA * p; c.y -= this.m_invMassA * f; d -= this.m_invIA * l; e.x += this.m_invMassB * p; e.y += this.m_invMassB * f; g += this.m_invIB * m; a.m_sweep.a = d; b.m_sweep.a = g; a.synchronizeTransform(); b.synchronizeTransform(); return r <= Y.b2_linearSlop ? 0 <= Y.b2_angularSlop : !1 }, m_localAnchor1: null, m_localAnchor2: null, m_localXAxis1: null, m_localYAxis1: null, m_axis: null, m_perp: null, m_s1: null, m_s2: null, m_a1: null, m_a2: null, m_K: null, m_impulse: null, m_motorMass: null, m_motorImpulse: null, m_lowerTranslation: null, m_upperTranslation: null, m_maxMotorForce: null, m_motorSpeed: null, m_enableLimit: null, m_enableMotor: null, m_limitState: null, __class__: xj }); var Oh = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.localAxisA = new M; this.type = 7; var a = this.localAxisA, b = 1, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.enableLimit = !1; this.upperTranslation = this.lowerTranslation = 0; this.enableMotor = !1; this.motorSpeed = this.maxMotorForce = 0 }; k["box2D.dynamics.joints.B2LineJointDef"] = Oh; Oh.__name__ = "box2D.dynamics.joints.B2LineJointDef"; Oh.__super__ = $c; Oh.prototype = u($c.prototype, { initialize: function (a, b, c, d) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.localAxisA = this.bodyA.getLocalVector(d) }, localAnchorA: null, localAnchorB: null, localAxisA: null, enableLimit: null, lowerTranslation: null, upperTranslation: null, enableMotor: null, maxMotorForce: null, motorSpeed: null, __class__: Oh }); var Fk = function (a) { Yb.call(this, a); this.K = new Ec; this.K1 = new Ec; this.K2 = new Ec; this.m_localAnchor = new M; this.m_target = new M; this.m_impulse = new M; this.m_mass = new Ec; this.m_C = new M; var b = this.m_target, c = a.target; b.x = c.x; b.y = c.y; b = this.m_target.x - this.m_bodyB.m_xf.position.x; c = this.m_target.y - this.m_bodyB.m_xf.position.y; var d = this.m_bodyB.m_xf.R; this.m_localAnchor.x = b * d.col1.x + c * d.col1.y; this.m_localAnchor.y = b * d.col2.x + c * d.col2.y; this.m_maxForce = a.maxForce; b = this.m_impulse; b.x = 0; b.y = 0; this.m_frequencyHz = a.frequencyHz; this.m_dampingRatio = a.dampingRatio; this.m_gamma = this.m_beta = 0 }; k["box2D.dynamics.joints.B2MouseJoint"] = Fk; Fk.__name__ = "box2D.dynamics.joints.B2MouseJoint"; Fk.__super__ = Yb; Fk.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_target }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor) }, getReactionForce: function (a) { return new M(a * this.m_impulse.x, a * this.m_impulse.y) }, getReactionTorque: function (a) { return 0 }, getTarget: function () { return this.m_target }, setTarget: function (a) { 0 == this.m_bodyB.isAwake() && this.m_bodyB.setAwake(!0); this.m_target = a }, getMaxForce: function () { return this.m_maxForce }, setMaxForce: function (a) { this.m_maxForce = a }, getFrequency: function () { return this.m_frequencyHz }, setFrequency: function (a) { this.m_frequencyHz = a }, getDampingRatio: function () { return this.m_dampingRatio }, setDampingRatio: function (a) { this.m_dampingRatio = a }, K: null, K1: null, K2: null, initVelocityConstraints: function (a) { var b = this.m_bodyB, c = b.getMass(), d = 2 * Math.PI * this.m_frequencyHz, e = c * d * d; this.m_gamma = a.dt * (2 * c * this.m_dampingRatio * d + a.dt * e); this.m_gamma = 0 != this.m_gamma ? 1 / this.m_gamma : 0; this.m_beta = a.dt * e * this.m_gamma; e = b.m_xf.R; c = this.m_localAnchor.x - b.m_sweep.localCenter.x; d = this.m_localAnchor.y - b.m_sweep.localCenter.y; var g = e.col1.x * c + e.col2.x * d; d = e.col1.y * c + e.col2.y * d; c = g; e = b.m_invMass; g = b.m_invI; this.K1.col1.x = e; this.K1.col2.x = 0; this.K1.col1.y = 0; this.K1.col2.y = e; this.K2.col1.x = g * d * d; this.K2.col2.x = -g * c * d; this.K2.col1.y = -g * c * d; this.K2.col2.y = g * c * c; this.K.setM(this.K1); this.K.addM(this.K2); this.K.col1.x += this.m_gamma; this.K.col2.y += this.m_gamma; this.K.getInverse(this.m_mass); this.m_C.x = b.m_sweep.c.x + c - this.m_target.x; this.m_C.y = b.m_sweep.c.y + d - this.m_target.y; b.m_angularVelocity *= .98; this.m_impulse.x *= a.dtRatio; this.m_impulse.y *= a.dtRatio; b.m_linearVelocity.x += e * this.m_impulse.x; b.m_linearVelocity.y += e * this.m_impulse.y; b.m_angularVelocity += g * (c * this.m_impulse.y - d * this.m_impulse.x) }, solveVelocityConstraints: function (a) { var b = this.m_bodyB, c = b.m_xf.R, d = this.m_localAnchor.x - b.m_sweep.localCenter.x, e = this.m_localAnchor.y - b.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; g = b.m_linearVelocity.x + -b.m_angularVelocity * e; var r = b.m_linearVelocity.y + b.m_angularVelocity * d; c = this.m_mass; g = g + this.m_beta * this.m_C.x + this.m_gamma * this.m_impulse.x; var f = r + this.m_beta * this.m_C.y + this.m_gamma * this.m_impulse.y; r = -(c.col1.x * g + c.col2.x * f); f = -(c.col1.y * g + c.col2.y * f); c = this.m_impulse.x; g = this.m_impulse.y; this.m_impulse.x += r; this.m_impulse.y += f; a = a.dt * this.m_maxForce; this.m_impulse.lengthSquared() > a * a && this.m_impulse.multiply(a / this.m_impulse.length()); r = this.m_impulse.x - c; f = this.m_impulse.y - g; b.m_linearVelocity.x += b.m_invMass * r; b.m_linearVelocity.y += b.m_invMass * f; b.m_angularVelocity += b.m_invI * (d * f - e * r) }, solvePositionConstraints: function (a) { return !0 }, m_localAnchor: null, m_target: null, m_impulse: null, m_mass: null, m_C: null, m_maxForce: null, m_frequencyHz: null, m_dampingRatio: null, m_beta: null, m_gamma: null, __class__: Fk }); var Gk = function () { $c.call(this); this.target = new M; this.type = 5; this.maxForce = 0; this.frequencyHz = 5; this.dampingRatio = .7 }; k["box2D.dynamics.joints.B2MouseJointDef"] = Gk; Gk.__name__ = "box2D.dynamics.joints.B2MouseJointDef"; Gk.__super__ = $c; Gk.prototype = u($c.prototype, { target: null, maxForce: null, frequencyHz: null, dampingRatio: null, __class__: Gk }); var ri = function (a) { Yb.call(this, a); this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_localXAxis1 = new M; this.m_localYAxis1 = new M; this.m_axis = new M; this.m_perp = new M; this.m_K = new Kh; this.m_impulse = new bf; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; b = this.m_localXAxis1; c = a.localAxisA; b.x = c.x; b.y = c.y; this.m_localYAxis1.x = -this.m_localXAxis1.y; this.m_localYAxis1.y = this.m_localXAxis1.x; this.m_refAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_motorImpulse = this.m_motorMass = 0; this.m_lowerTranslation = a.lowerTranslation; this.m_upperTranslation = a.upperTranslation; this.m_maxMotorForce = a.maxMotorForce; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0; b = this.m_axis; b.x = 0; b.y = 0; b = this.m_perp; b.x = 0; b.y = 0 }; k["box2D.dynamics.joints.B2PrismaticJoint"] = ri; ri.__name__ = "box2D.dynamics.joints.B2PrismaticJoint"; ri.__super__ = Yb; ri.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x), a * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y)) }, getReactionTorque: function (a) { return a * this.m_impulse.y }, getJointTranslation: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.getWorldPoint(this.m_localAnchor1), d = b.getWorldPoint(this.m_localAnchor2); b = d.x - c.x; c = d.y - c.y; a = a.getWorldVector(this.m_localXAxis1); return a.x * b + a.y * c }, getJointSpeed: function () { var a = this.m_bodyA, b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchor1.x - a.m_sweep.localCenter.x, e = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchor2.x - b.m_sweep.localCenter.x, f = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; c = b.m_sweep.c.x + r - (a.m_sweep.c.x + d); g = b.m_sweep.c.y + f - (a.m_sweep.c.y + e); var p = a.getWorldVector(this.m_localXAxis1), m = a.m_linearVelocity, h = b.m_linearVelocity; a = a.m_angularVelocity; b = b.m_angularVelocity; return c * -a * p.y + g * a * p.x + (p.x * (h.x + -b * f - m.x - -a * e) + p.y * (h.y + b * r - m.y - a * d)) }, isLimitEnabled: function () { return this.m_enableLimit }, enableLimit: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableLimit = a }, getLowerLimit: function () { return this.m_lowerTranslation }, getUpperLimit: function () { return this.m_upperTranslation }, setLimits: function (a, b) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_lowerTranslation = a; this.m_upperTranslation = b }, isMotorEnabled: function () { return this.m_enableMotor }, enableMotor: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_enableMotor = a }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a }, getMotorSpeed: function () { return this.m_motorSpeed }, setMaxMotorForce: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_maxMotorForce = a }, getMotorForce: function () { return this.m_motorImpulse }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = this.m_localCenterA, e = b.getLocalCenter(); d.x = e.x; d.y = e.y; d = this.m_localCenterB; e = c.getLocalCenter(); d.x = e.x; d.y = e.y; var g = b.getTransform(); c.getTransform(); var r = b.m_xf.R, f = this.m_localAnchor1.x - this.m_localCenterA.x, p = this.m_localAnchor1.y - this.m_localCenterA.y, m = r.col1.x * f + r.col2.x * p; p = r.col1.y * f + r.col2.y * p; f = m; r = c.m_xf.R; var h = this.m_localAnchor2.x - this.m_localCenterB.x, n = this.m_localAnchor2.y - this.m_localCenterB.y; m = r.col1.x * h + r.col2.x * n; n = r.col1.y * h + r.col2.y * n; h = m; r = c.m_sweep.c.x + h - b.m_sweep.c.x - f; m = c.m_sweep.c.y + n - b.m_sweep.c.y - p; this.m_invMassA = b.m_invMass; this.m_invMassB = c.m_invMass; this.m_invIA = b.m_invI; this.m_invIB = c.m_invI; d = this.m_axis; e = O.mulMV(g.R, this.m_localXAxis1); d.x = e.x; d.y = e.y; this.m_a1 = (r + f) * this.m_axis.y - (m + p) * this.m_axis.x; this.m_a2 = h * this.m_axis.y - n * this.m_axis.x; this.m_motorMass = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_a1 * this.m_a1 + this.m_invIB * this.m_a2 * this.m_a2; this.m_motorMass > Number.MIN_VALUE && (this.m_motorMass = 1 / this.m_motorMass); d = this.m_perp; e = O.mulMV(g.R, this.m_localYAxis1); d.x = e.x; d.y = e.y; this.m_s1 = (r + f) * this.m_perp.y - (m + p) * this.m_perp.x; this.m_s2 = h * this.m_perp.y - n * this.m_perp.x; g = this.m_invMassA; f = this.m_invMassB; p = this.m_invIA; h = this.m_invIB; this.m_K.col1.x = g + f + p * this.m_s1 * this.m_s1 + h * this.m_s2 * this.m_s2; this.m_K.col1.y = p * this.m_s1 + h * this.m_s2; this.m_K.col1.z = p * this.m_s1 * this.m_a1 + h * this.m_s2 * this.m_a2; this.m_K.col2.x = this.m_K.col1.y; this.m_K.col2.y = p + h; this.m_K.col2.z = p * this.m_a1 + h * this.m_a2; this.m_K.col3.x = this.m_K.col1.z; this.m_K.col3.y = this.m_K.col2.z; this.m_K.col3.z = g + f + p * this.m_a1 * this.m_a1 + h * this.m_a2 * this.m_a2; this.m_enableLimit ? (r = this.m_axis.x * r + this.m_axis.y * m, O.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * Y.b2_linearSlop ? this.m_limitState = 3 : r <= this.m_lowerTranslation ? 1 != this.m_limitState && (this.m_limitState = 1, this.m_impulse.z = 0) : r >= this.m_upperTranslation ? 2 != this.m_limitState && (this.m_limitState = 2, this.m_impulse.z = 0) : (this.m_limitState = 0, this.m_impulse.z = 0)) : this.m_limitState = 0; 0 == this.m_enableMotor && (this.m_motorImpulse = 0); a.warmStarting ? (this.m_impulse.x *= a.dtRatio, this.m_impulse.y *= a.dtRatio, this.m_motorImpulse *= a.dtRatio, a = this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x, r = this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y, m = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1, g = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2, b.m_linearVelocity.x -= this.m_invMassA * a, b.m_linearVelocity.y -= this.m_invMassA * r, b.m_angularVelocity -= this.m_invIA * m, c.m_linearVelocity.x += this.m_invMassB * a, c.m_linearVelocity.y += this.m_invMassB * r, c.m_angularVelocity += this.m_invIB * g) : (this.m_impulse.setZero(), this.m_motorImpulse = 0) }, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_linearVelocity, e = b.m_angularVelocity, g = c.m_linearVelocity, r = c.m_angularVelocity; if (this.m_enableMotor && 3 != this.m_limitState) { var f = this.m_motorMass * (this.m_motorSpeed - (this.m_axis.x * (g.x - d.x) + this.m_axis.y * (g.y - d.y) + this.m_a2 * r - this.m_a1 * e)); var p = this.m_motorImpulse; a = a.dt * this.m_maxMotorForce; this.m_motorImpulse = O.clamp(this.m_motorImpulse + f, -a, a); f = this.m_motorImpulse - p; p = f * this.m_axis.x; a = f * this.m_axis.y; var m = f * this.m_a1; f *= this.m_a2; d.x -= this.m_invMassA * p; d.y -= this.m_invMassA * a; e -= this.m_invIA * m; g.x += this.m_invMassB * p; g.y += this.m_invMassB * a; r += this.m_invIB * f } m = this.m_perp.x * (g.x - d.x) + this.m_perp.y * (g.y - d.y) + this.m_s2 * r - this.m_s1 * e; a = r - e; this.m_enableLimit && 0 != this.m_limitState ? (f = this.m_axis.x * (g.x - d.x) + this.m_axis.y * (g.y - d.y) + this.m_a2 * r - this.m_a1 * e, p = this.m_impulse.copy(), f = this.m_K.solve33(new bf, -m, -a, -f), this.m_impulse.add(f), 1 == this.m_limitState ? this.m_impulse.z = O.max(this.m_impulse.z, 0) : 2 == this.m_limitState && (this.m_impulse.z = O.min(this.m_impulse.z, 0)), m = -m - (this.m_impulse.z - p.z) * this.m_K.col3.x, a = -a - (this.m_impulse.z - p.z) * this.m_K.col3.y, a = this.m_K.solve22(new M, m, a), a.x += p.x, a.y += p.y, this.m_impulse.x = a.x, this.m_impulse.y = a.y, f.x = this.m_impulse.x - p.x, f.y = this.m_impulse.y - p.y, f.z = this.m_impulse.z - p.z, p = f.x * this.m_perp.x + f.z * this.m_axis.x, a = f.x * this.m_perp.y + f.z * this.m_axis.y, m = f.x * this.m_s1 + f.y + f.z * this.m_a1, f = f.x * this.m_s2 + f.y + f.z * this.m_a2) : (f = this.m_K.solve22(new M, -m, -a), this.m_impulse.x += f.x, this.m_impulse.y += f.y, p = f.x * this.m_perp.x, a = f.x * this.m_perp.y, m = f.x * this.m_s1 + f.y, f = f.x * this.m_s2 + f.y); d.x -= this.m_invMassA * p; d.y -= this.m_invMassA * a; e -= this.m_invIA * m; g.x += this.m_invMassB * p; g.y += this.m_invMassB * a; r += this.m_invIB * f; f = b.m_linearVelocity; f.x = d.x; f.y = d.y; b.m_angularVelocity = e; f = c.m_linearVelocity; f.x = g.x; f.y = g.y; c.m_angularVelocity = r }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_sweep.c, d = a.m_sweep.a, e = b.m_sweep.c, g = b.m_sweep.a, r = 0; var f = !1; var p = 0, m = Ec.fromAngle(d), h = Ec.fromAngle(g); var n = m; var l = this.m_localAnchor1.x - this.m_localCenterA.x; var k = this.m_localAnchor1.y - this.m_localCenterA.y; var t = n.col1.x * l + n.col2.x * k; k = n.col1.y * l + n.col2.y * k; l = t; n = h; h = this.m_localAnchor2.x - this.m_localCenterB.x; var q = this.m_localAnchor2.y - this.m_localCenterB.y; t = n.col1.x * h + n.col2.x * q; q = n.col1.y * h + n.col2.y * q; h = t; n = e.x + h - c.x - l; t = e.y + q - c.y - k; if (this.m_enableLimit) { this.m_axis = O.mulMV(m, this.m_localXAxis1); this.m_a1 = (n + l) * this.m_axis.y - (t + k) * this.m_axis.x; this.m_a2 = h * this.m_axis.y - q * this.m_axis.x; var Sb = this.m_axis.x * n + this.m_axis.y * t; O.abs(this.m_upperTranslation - this.m_lowerTranslation) < 2 * Y.b2_linearSlop ? (p = O.clamp(Sb, -Y.b2_maxLinearCorrection, Y.b2_maxLinearCorrection), r = O.abs(Sb), f = !0) : Sb <= this.m_lowerTranslation ? (p = O.clamp(Sb - this.m_lowerTranslation + Y.b2_linearSlop, -Y.b2_maxLinearCorrection, 0), r = this.m_lowerTranslation - Sb, f = !0) : Sb >= this.m_upperTranslation && (p = O.clamp(Sb - this.m_upperTranslation + Y.b2_linearSlop, 0, Y.b2_maxLinearCorrection), r = Sb - this.m_upperTranslation, f = !0) } this.m_perp = O.mulMV(m, this.m_localYAxis1); this.m_s1 = (n + l) * this.m_perp.y - (t + k) * this.m_perp.x; this.m_s2 = h * this.m_perp.y - q * this.m_perp.x; m = new bf; k = this.m_perp.x * n + this.m_perp.y * t; h = g - d - this.m_refAngle; r = O.max(r, O.abs(k)); l = O.abs(h); f ? (f = this.m_invMassA, q = this.m_invMassB, n = this.m_invIA, t = this.m_invIB, this.m_K.col1.x = f + q + n * this.m_s1 * this.m_s1 + t * this.m_s2 * this.m_s2, this.m_K.col1.y = n * this.m_s1 + t * this.m_s2, this.m_K.col1.z = n * this.m_s1 * this.m_a1 + t * this.m_s2 * this.m_a2, this.m_K.col2.x = this.m_K.col1.y, this.m_K.col2.y = n + t, this.m_K.col2.z = n * this.m_a1 + t * this.m_a2, this.m_K.col3.x = this.m_K.col1.z, this.m_K.col3.y = this.m_K.col2.z, this.m_K.col3.z = f + q + n * this.m_a1 * this.m_a1 + t * this.m_a2 * this.m_a2, this.m_K.solve33(m, -k, -h, -p)) : (f = this.m_invMassA, q = this.m_invMassB, n = this.m_invIA, t = this.m_invIB, p = n * this.m_s1 + t * this.m_s2, Sb = n + t, this.m_K.col1.set(f + q + n * this.m_s1 * this.m_s1 + t * this.m_s2 * this.m_s2, p, 0), this.m_K.col2.set(p, Sb, 0), p = this.m_K.solve22(new M, -k, -h), m.x = p.x, m.y = p.y, m.z = 0); p = m.x * this.m_perp.x + m.z * this.m_axis.x; f = m.x * this.m_perp.y + m.z * this.m_axis.y; k = m.x * this.m_s1 + m.y + m.z * this.m_a1; m = m.x * this.m_s2 + m.y + m.z * this.m_a2; c.x -= this.m_invMassA * p; c.y -= this.m_invMassA * f; d -= this.m_invIA * k; e.x += this.m_invMassB * p; e.y += this.m_invMassB * f; g += this.m_invIB * m; a.m_sweep.a = d; b.m_sweep.a = g; a.synchronizeTransform(); b.synchronizeTransform(); return r <= Y.b2_linearSlop ? l <= Y.b2_angularSlop : !1 }, m_localAnchor1: null, m_localAnchor2: null, m_localXAxis1: null, m_localYAxis1: null, m_refAngle: null, m_axis: null, m_perp: null, m_s1: null, m_s2: null, m_a1: null, m_a2: null, m_K: null, m_impulse: null, m_motorMass: null, m_motorImpulse: null, m_lowerTranslation: null, m_upperTranslation: null, m_maxMotorForce: null, m_motorSpeed: null, m_enableLimit: null, m_enableMotor: null, m_limitState: null, __class__: ri }); var Hk = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.localAxisA = new M; this.type = 2; var a = this.localAxisA, b = 1, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.referenceAngle = 0; this.enableLimit = !1; this.upperTranslation = this.lowerTranslation = 0; this.enableMotor = !1; this.motorSpeed = this.maxMotorForce = 0 }; k["box2D.dynamics.joints.B2PrismaticJointDef"] = Hk; Hk.__name__ = "box2D.dynamics.joints.B2PrismaticJointDef"; Hk.__super__ = $c; Hk.prototype = u($c.prototype, { initialize: function (a, b, c, d) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.localAxisA = this.bodyA.getLocalVector(d); this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle() }, localAnchorA: null, localAnchorB: null, localAxisA: null, referenceAngle: null, enableLimit: null, lowerTranslation: null, upperTranslation: null, enableMotor: null, maxMotorForce: null, motorSpeed: null, __class__: Hk }); var yg = function (a) { Yb.call(this, a); this.m_groundAnchor1 = new M; this.m_groundAnchor2 = new M; this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_u1 = new M; this.m_u2 = new M; this.m_ground = this.m_bodyA.m_world.m_groundBody; this.m_groundAnchor1.x = a.groundAnchorA.x - this.m_ground.m_xf.position.x; this.m_groundAnchor1.y = a.groundAnchorA.y - this.m_ground.m_xf.position.y; this.m_groundAnchor2.x = a.groundAnchorB.x - this.m_ground.m_xf.position.x; this.m_groundAnchor2.y = a.groundAnchorB.y - this.m_ground.m_xf.position.y; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_ratio = a.ratio; this.m_constant = a.lengthA + this.m_ratio * a.lengthB; this.m_maxLength1 = O.min(a.maxLengthA, this.m_constant - this.m_ratio * yg.b2_minPulleyLength); this.m_maxLength2 = O.min(a.maxLengthB, (this.m_constant - yg.b2_minPulleyLength) / this.m_ratio); this.m_limitImpulse2 = this.m_limitImpulse1 = this.m_impulse = 0 }; k["box2D.dynamics.joints.B2PulleyJoint"] = yg; yg.__name__ = "box2D.dynamics.joints.B2PulleyJoint"; yg.__super__ = Yb; yg.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * this.m_impulse * this.m_u2.x, a * this.m_impulse * this.m_u2.y) }, getReactionTorque: function (a) { return 0 }, getGroundAnchorA: function () { var a = this.m_ground.m_xf.position.copy(); a.add(this.m_groundAnchor1); return a }, getGroundAnchorB: function () { var a = this.m_ground.m_xf.position.copy(); a.add(this.m_groundAnchor2); return a }, getLength1: function () { var a = this.m_bodyA.getWorldPoint(this.m_localAnchor1), b = a.x - (this.m_ground.m_xf.position.x + this.m_groundAnchor1.x); a = a.y - (this.m_ground.m_xf.position.y + this.m_groundAnchor1.y); return Math.sqrt(b * b + a * a) }, getLength2: function () { var a = this.m_bodyB.getWorldPoint(this.m_localAnchor2), b = a.x - (this.m_ground.m_xf.position.x + this.m_groundAnchor2.x); a = a.y - (this.m_ground.m_xf.position.y + this.m_groundAnchor2.y); return Math.sqrt(b * b + a * a) }, getRatio: function () { return this.m_ratio }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_xf.R, e = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, r = d.col1.x * e + d.col2.x * g; g = d.col1.y * e + d.col2.y * g; e = r; d = c.m_xf.R; var f = this.m_localAnchor2.x - c.m_sweep.localCenter.x, p = this.m_localAnchor2.y - c.m_sweep.localCenter.y; r = d.col1.x * f + d.col2.x * p; p = d.col1.y * f + d.col2.y * p; f = r; r = c.m_sweep.c.x + f; var m = c.m_sweep.c.y + p, h = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x, n = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y; d = this.m_u1; var l = b.m_sweep.c.x + e - (this.m_ground.m_xf.position.x + this.m_groundAnchor1.x), k = b.m_sweep.c.y + g - (this.m_ground.m_xf.position.y + this.m_groundAnchor1.y); null == k && (k = 0); null == l && (l = 0); d.x = l; d.y = k; d = this.m_u2; l = r - h; k = m - n; null == k && (k = 0); null == l && (l = 0); d.x = l; d.y = k; r = this.m_u1.length(); m = this.m_u2.length(); r > Y.b2_linearSlop ? this.m_u1.multiply(1 / r) : (d = this.m_u1, d.x = 0, d.y = 0); m > Y.b2_linearSlop ? this.m_u2.multiply(1 / m) : (d = this.m_u2, d.x = 0, d.y = 0); 0 < this.m_constant - r - this.m_ratio * m ? this.m_impulse = this.m_state = 0 : this.m_state = 2; r < this.m_maxLength1 ? this.m_limitImpulse1 = this.m_limitState1 = 0 : this.m_limitState1 = 2; m < this.m_maxLength2 ? this.m_limitImpulse2 = this.m_limitState2 = 0 : this.m_limitState2 = 2; d = e * this.m_u1.y - g * this.m_u1.x; r = f * this.m_u2.y - p * this.m_u2.x; this.m_limitMass1 = b.m_invMass + b.m_invI * d * d; this.m_limitMass2 = c.m_invMass + c.m_invI * r * r; this.m_pulleyMass = this.m_limitMass1 + this.m_ratio * this.m_ratio * this.m_limitMass2; this.m_limitMass1 = 1 / this.m_limitMass1; this.m_limitMass2 = 1 / this.m_limitMass2; this.m_pulleyMass = 1 / this.m_pulleyMass; a.warmStarting ? (this.m_impulse *= a.dtRatio, this.m_limitImpulse1 *= a.dtRatio, this.m_limitImpulse2 *= a.dtRatio, a = (-this.m_impulse - this.m_limitImpulse1) * this.m_u1.x, d = (-this.m_impulse - this.m_limitImpulse1) * this.m_u1.y, r = (-this.m_ratio * this.m_impulse - this.m_limitImpulse2) * this.m_u2.x, m = (-this.m_ratio * this.m_impulse - this.m_limitImpulse2) * this.m_u2.y, b.m_linearVelocity.x += b.m_invMass * a, b.m_linearVelocity.y += b.m_invMass * d, b.m_angularVelocity += b.m_invI * (e * d - g * a), c.m_linearVelocity.x += c.m_invMass * r, c.m_linearVelocity.y += c.m_invMass * m, c.m_angularVelocity += c.m_invI * (f * m - p * r)) : this.m_limitImpulse2 = this.m_limitImpulse1 = this.m_impulse = 0 }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchor1.x - a.m_sweep.localCenter.x, e = this.m_localAnchor1.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchor2.x - b.m_sweep.localCenter.x, f = this.m_localAnchor2.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; if (2 == this.m_state) { c = a.m_linearVelocity.x + -a.m_angularVelocity * e; g = a.m_linearVelocity.y + a.m_angularVelocity * d; var p = b.m_linearVelocity.x + -b.m_angularVelocity * f; var m = b.m_linearVelocity.y + b.m_angularVelocity * r; c = -(this.m_u1.x * c + this.m_u1.y * g) - this.m_ratio * (this.m_u2.x * p + this.m_u2.y * m); m = this.m_pulleyMass * -c; c = this.m_impulse; this.m_impulse = O.max(0, this.m_impulse + m); m = this.m_impulse - c; c = -m * this.m_u1.x; g = -m * this.m_u1.y; p = -this.m_ratio * m * this.m_u2.x; m = -this.m_ratio * m * this.m_u2.y; a.m_linearVelocity.x += a.m_invMass * c; a.m_linearVelocity.y += a.m_invMass * g; a.m_angularVelocity += a.m_invI * (d * g - e * c); b.m_linearVelocity.x += b.m_invMass * p; b.m_linearVelocity.y += b.m_invMass * m; b.m_angularVelocity += b.m_invI * (r * m - f * p) } 2 == this.m_limitState1 && (c = a.m_linearVelocity.x + -a.m_angularVelocity * e, g = a.m_linearVelocity.y + a.m_angularVelocity * d, c = -(this.m_u1.x * c + this.m_u1.y * g), m = -this.m_limitMass1 * c, c = this.m_limitImpulse1, this.m_limitImpulse1 = O.max(0, this.m_limitImpulse1 + m), m = this.m_limitImpulse1 - c, c = -m * this.m_u1.x, g = -m * this.m_u1.y, a.m_linearVelocity.x += a.m_invMass * c, a.m_linearVelocity.y += a.m_invMass * g, a.m_angularVelocity += a.m_invI * (d * g - e * c)); 2 == this.m_limitState2 && (p = b.m_linearVelocity.x + -b.m_angularVelocity * f, m = b.m_linearVelocity.y + b.m_angularVelocity * r, c = -(this.m_u2.x * p + this.m_u2.y * m), m = -this.m_limitMass2 * c, c = this.m_limitImpulse2, this.m_limitImpulse2 = O.max(0, this.m_limitImpulse2 + m), m = this.m_limitImpulse2 - c, p = -m * this.m_u2.x, m = -m * this.m_u2.y, b.m_linearVelocity.x += b.m_invMass * p, b.m_linearVelocity.y += b.m_invMass * m, b.m_angularVelocity += b.m_invI * (r * m - f * p)) }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = this.m_ground.m_xf.position.x + this.m_groundAnchor1.x, d = this.m_ground.m_xf.position.y + this.m_groundAnchor1.y, e = this.m_ground.m_xf.position.x + this.m_groundAnchor2.x, g = this.m_ground.m_xf.position.y + this.m_groundAnchor2.y, r = 0; if (2 == this.m_state) { var f = a.m_xf.R; var p = this.m_localAnchor1.x - a.m_sweep.localCenter.x; var m = this.m_localAnchor1.y - a.m_sweep.localCenter.y; var h = f.col1.x * p + f.col2.x * m; m = f.col1.y * p + f.col2.y * m; p = h; f = b.m_xf.R; var n = this.m_localAnchor2.x - b.m_sweep.localCenter.x; var l = this.m_localAnchor2.y - b.m_sweep.localCenter.y; h = f.col1.x * n + f.col2.x * l; l = f.col1.y * n + f.col2.y * l; n = h; var k = a.m_sweep.c.x + p; var t = a.m_sweep.c.y + m; h = b.m_sweep.c.x + n; var q = b.m_sweep.c.y + l; f = this.m_u1; k -= c; t -= d; null == t && (t = 0); null == k && (k = 0); f.x = k; f.y = t; f = this.m_u2; k = h - e; t = q - g; null == t && (t = 0); null == k && (k = 0); f.x = k; f.y = t; h = this.m_u1.length(); t = this.m_u2.length(); h > Y.b2_linearSlop ? this.m_u1.multiply(1 / h) : (f = this.m_u1, f.x = 0, f.y = 0); t > Y.b2_linearSlop ? this.m_u2.multiply(1 / t) : (f = this.m_u2, f.x = 0, f.y = 0); f = this.m_constant - h - this.m_ratio * t; r = O.max(r, -f); f = O.clamp(f + Y.b2_linearSlop, -Y.b2_maxLinearCorrection, 0); f *= -this.m_pulleyMass; k = -f * this.m_u1.x; t = -f * this.m_u1.y; h = -this.m_ratio * f * this.m_u2.x; q = -this.m_ratio * f * this.m_u2.y; a.m_sweep.c.x += a.m_invMass * k; a.m_sweep.c.y += a.m_invMass * t; a.m_sweep.a += a.m_invI * (p * t - m * k); b.m_sweep.c.x += b.m_invMass * h; b.m_sweep.c.y += b.m_invMass * q; b.m_sweep.a += b.m_invI * (n * q - l * h); a.synchronizeTransform(); b.synchronizeTransform() } 2 == this.m_limitState1 && (f = a.m_xf.R, p = this.m_localAnchor1.x - a.m_sweep.localCenter.x, m = this.m_localAnchor1.y - a.m_sweep.localCenter.y, h = f.col1.x * p + f.col2.x * m, m = f.col1.y * p + f.col2.y * m, p = h, k = a.m_sweep.c.x + p, t = a.m_sweep.c.y + m, f = this.m_u1, k -= c, t -= d, null == t && (t = 0), null == k && (k = 0), f.x = k, f.y = t, h = this.m_u1.length(), h > Y.b2_linearSlop ? (this.m_u1.x *= 1 / h, this.m_u1.y *= 1 / h) : (f = this.m_u1, f.x = 0, f.y = 0), f = this.m_maxLength1 - h, r = O.max(r, -f), f = O.clamp(f + Y.b2_linearSlop, -Y.b2_maxLinearCorrection, 0), f *= -this.m_limitMass1, k = -f * this.m_u1.x, t = -f * this.m_u1.y, a.m_sweep.c.x += a.m_invMass * k, a.m_sweep.c.y += a.m_invMass * t, a.m_sweep.a += a.m_invI * (p * t - m * k), a.synchronizeTransform()); 2 == this.m_limitState2 && (f = b.m_xf.R, n = this.m_localAnchor2.x - b.m_sweep.localCenter.x, l = this.m_localAnchor2.y - b.m_sweep.localCenter.y, h = f.col1.x * n + f.col2.x * l, l = f.col1.y * n + f.col2.y * l, n = h, h = b.m_sweep.c.x + n, q = b.m_sweep.c.y + l, f = this.m_u2, k = h - e, t = q - g, null == t && (t = 0), null == k && (k = 0), f.x = k, f.y = t, t = this.m_u2.length(), t > Y.b2_linearSlop ? (this.m_u2.x *= 1 / t, this.m_u2.y *= 1 / t) : (f = this.m_u2, f.x = 0, f.y = 0), f = this.m_maxLength2 - t, r = O.max(r, -f), f = O.clamp(f + Y.b2_linearSlop, -Y.b2_maxLinearCorrection, 0), f *= -this.m_limitMass2, h = -f * this.m_u2.x, q = -f * this.m_u2.y, b.m_sweep.c.x += b.m_invMass * h, b.m_sweep.c.y += b.m_invMass * q, b.m_sweep.a += b.m_invI * (n * q - l * h), b.synchronizeTransform()); return r < Y.b2_linearSlop }, m_ground: null, m_groundAnchor1: null, m_groundAnchor2: null, m_localAnchor1: null, m_localAnchor2: null, m_u1: null, m_u2: null, m_constant: null, m_ratio: null, m_maxLength1: null, m_maxLength2: null, m_pulleyMass: null, m_limitMass1: null, m_limitMass2: null, m_impulse: null, m_limitImpulse1: null, m_limitImpulse2: null, m_state: null, m_limitState1: null, m_limitState2: null, __class__: yg }); var Ik = function () { $c.call(this); this.groundAnchorA = new M; this.groundAnchorB = new M; this.localAnchorA = new M; this.localAnchorB = new M; this.type = 4; var a = this.groundAnchorA, b = -1, c = 1; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.groundAnchorB; c = b = 1; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorA; b = -1; c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorB; b = 1; c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.maxLengthB = this.lengthB = this.maxLengthA = this.lengthA = 0; this.ratio = 1; this.collideConnected = !0 }; k["box2D.dynamics.joints.B2PulleyJointDef"] = Ik; Ik.__name__ = "box2D.dynamics.joints.B2PulleyJointDef"; Ik.__super__ = $c; Ik.prototype = u($c.prototype, { initialize: function (a, b, c, d, e, g, r) { this.bodyA = a; this.bodyB = b; a = this.groundAnchorA; a.x = c.x; a.y = c.y; a = this.groundAnchorB; a.x = d.x; a.y = d.y; this.localAnchorA = this.bodyA.getLocalPoint(e); this.localAnchorB = this.bodyB.getLocalPoint(g); a = e.x - c.x; c = e.y - c.y; this.lengthA = Math.sqrt(a * a + c * c); c = g.x - d.x; d = g.y - d.y; this.lengthB = Math.sqrt(c * c + d * d); this.ratio = r; r = this.lengthA + this.ratio * this.lengthB; this.maxLengthA = r - this.ratio * yg.b2_minPulleyLength; this.maxLengthB = (r - yg.b2_minPulleyLength) / this.ratio }, groundAnchorA: null, groundAnchorB: null, localAnchorA: null, localAnchorB: null, lengthA: null, maxLengthA: null, lengthB: null, maxLengthB: null, ratio: null, __class__: Ik }); var eg = function (a) { Yb.call(this, a); this.K = new Ec; this.K1 = new Ec; this.K2 = new Ec; this.K3 = new Ec; this.impulse3 = new bf; this.impulse2 = new M; this.reduced = new M; this.m_localAnchor1 = new M; this.m_localAnchor2 = new M; this.m_impulse = new bf; this.m_mass = new Kh; var b = this.m_localAnchor1, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchor2; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_referenceAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_motorImpulse = 0; this.m_lowerAngle = a.lowerAngle; this.m_upperAngle = a.upperAngle; this.m_maxMotorTorque = a.maxMotorTorque; this.m_motorSpeed = a.motorSpeed; this.m_enableLimit = a.enableLimit; this.m_enableMotor = a.enableMotor; this.m_limitState = 0 }; k["box2D.dynamics.joints.B2RevoluteJoint"] = eg; eg.__name__ = "box2D.dynamics.joints.B2RevoluteJoint"; eg.__super__ = Yb; eg.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchor1) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchor2) }, getReactionForce: function (a) { return new M(a * this.m_impulse.x, a * this.m_impulse.y) }, getReactionTorque: function (a) { return a * this.m_impulse.z }, getJointAngle: function () { return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle }, getJointSpeed: function () { return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity }, isLimitEnabled: function () { return this.m_enableLimit }, enableLimit: function (a) { this.m_enableLimit = a }, getLowerLimit: function () { return this.m_lowerAngle }, getUpperLimit: function () { return this.m_upperAngle }, setLimits: function (a, b) { this.m_lowerAngle = a; this.m_upperAngle = b }, isMotorEnabled: function () { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); return this.m_enableMotor }, enableMotor: function (a) { this.m_enableMotor = a }, setMotorSpeed: function (a) { this.m_bodyA.setAwake(!0); this.m_bodyB.setAwake(!0); this.m_motorSpeed = a }, getMotorSpeed: function () { return this.m_motorSpeed }, setMaxMotorTorque: function (a) { this.m_maxMotorTorque = a }, getMotorTorque: function () { return this.m_maxMotorTorque }, K: null, K1: null, K2: null, K3: null, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_xf.R, e = this.m_localAnchor1.x - b.m_sweep.localCenter.x, g = this.m_localAnchor1.y - b.m_sweep.localCenter.y, r = d.col1.x * e + d.col2.x * g; g = d.col1.y * e + d.col2.y * g; e = r; d = c.m_xf.R; var f = this.m_localAnchor2.x - c.m_sweep.localCenter.x, p = this.m_localAnchor2.y - c.m_sweep.localCenter.y; r = d.col1.x * f + d.col2.x * p; p = d.col1.y * f + d.col2.y * p; f = r; d = b.m_invMass; r = c.m_invMass; var m = b.m_invI, h = c.m_invI; this.m_mass.col1.x = d + r + g * g * m + p * p * h; this.m_mass.col2.x = -g * e * m - p * f * h; this.m_mass.col3.x = -g * m - p * h; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = d + r + e * e * m + f * f * h; this.m_mass.col3.y = e * m + f * h; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = m + h; this.m_motorMass = 1 / (m + h); 0 == this.m_enableMotor && (this.m_motorImpulse = 0); if (this.m_enableLimit) { var n = c.m_sweep.a - b.m_sweep.a - this.m_referenceAngle; O.abs(this.m_upperAngle - this.m_lowerAngle) < 2 * Y.b2_angularSlop ? this.m_limitState = 3 : n <= this.m_lowerAngle ? (1 != this.m_limitState && (this.m_impulse.z = 0), this.m_limitState = 1) : n >= this.m_upperAngle ? (2 != this.m_limitState && (this.m_impulse.z = 0), this.m_limitState = 2) : (this.m_limitState = 0, this.m_impulse.z = 0) } else this.m_limitState = 0; a.warmStarting ? (this.m_impulse.x *= a.dtRatio, this.m_impulse.y *= a.dtRatio, this.m_motorImpulse *= a.dtRatio, a = this.m_impulse.x, n = this.m_impulse.y, b.m_linearVelocity.x -= d * a, b.m_linearVelocity.y -= d * n, b.m_angularVelocity -= m * (e * n - g * a + this.m_motorImpulse + this.m_impulse.z), c.m_linearVelocity.x += r * a, c.m_linearVelocity.y += r * n, c.m_angularVelocity += h * (f * n - p * a + this.m_motorImpulse + this.m_impulse.z)) : (this.m_impulse.setZero(), this.m_motorImpulse = 0) }, impulse3: null, impulse2: null, reduced: null, solveVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_linearVelocity, e = b.m_angularVelocity, g = c.m_linearVelocity, r = c.m_angularVelocity, f = b.m_invMass, p = c.m_invMass, m = b.m_invI, h = c.m_invI; if (this.m_enableMotor && 3 != this.m_limitState) { var n = this.m_motorMass * -(r - e - this.m_motorSpeed); var l = this.m_motorImpulse; a = a.dt * this.m_maxMotorTorque; this.m_motorImpulse = O.clamp(this.m_motorImpulse + n, -a, a); n = this.m_motorImpulse - l; e -= m * n; r += h * n } if (this.m_enableLimit && 0 != this.m_limitState) { var k = b.m_xf.R; n = this.m_localAnchor1.x - b.m_sweep.localCenter.x; l = this.m_localAnchor1.y - b.m_sweep.localCenter.y; var t = k.col1.x * n + k.col2.x * l; l = k.col1.y * n + k.col2.y * l; n = t; k = c.m_xf.R; a = this.m_localAnchor2.x - c.m_sweep.localCenter.x; var q = this.m_localAnchor2.y - c.m_sweep.localCenter.y; t = k.col1.x * a + k.col2.x * q; q = k.col1.y * a + k.col2.y * q; a = t; t = g.x + -r * q - d.x - -e * l; var Sb = g.y + r * a - d.y - e * n; this.m_mass.solve33(this.impulse3, -t, -Sb, -(r - e)); 3 == this.m_limitState ? this.m_impulse.add(this.impulse3) : 1 == this.m_limitState ? (k = this.m_impulse.z + this.impulse3.z, 0 > k && (this.m_mass.solve22(this.reduced, -t, -Sb), this.impulse3.x = this.reduced.x, this.impulse3.y = this.reduced.y, this.impulse3.z = -this.m_impulse.z, this.m_impulse.x += this.reduced.x, this.m_impulse.y += this.reduced.y, this.m_impulse.z = 0)) : 2 == this.m_limitState && (k = this.m_impulse.z + this.impulse3.z, 0 < k && (this.m_mass.solve22(this.reduced, -t, -Sb), this.impulse3.x = this.reduced.x, this.impulse3.y = this.reduced.y, this.impulse3.z = -this.m_impulse.z, this.m_impulse.x += this.reduced.x, this.m_impulse.y += this.reduced.y, this.m_impulse.z = 0)); d.x -= f * this.impulse3.x; d.y -= f * this.impulse3.y; e -= m * (n * this.impulse3.y - l * this.impulse3.x + this.impulse3.z); g.x += p * this.impulse3.x; g.y += p * this.impulse3.y; r += h * (a * this.impulse3.y - q * this.impulse3.x + this.impulse3.z) } else k = b.m_xf.R, n = this.m_localAnchor1.x - b.m_sweep.localCenter.x, l = this.m_localAnchor1.y - b.m_sweep.localCenter.y, t = k.col1.x * n + k.col2.x * l, l = k.col1.y * n + k.col2.y * l, n = t, k = c.m_xf.R, a = this.m_localAnchor2.x - c.m_sweep.localCenter.x, q = this.m_localAnchor2.y - c.m_sweep.localCenter.y, t = k.col1.x * a + k.col2.x * q, q = k.col1.y * a + k.col2.y * q, a = t, this.m_mass.solve22(this.impulse2, -(g.x + -r * q - d.x - -e * l), -(g.y + r * a - d.y - e * n)), this.m_impulse.x += this.impulse2.x, this.m_impulse.y += this.impulse2.y, d.x -= f * this.impulse2.x, d.y -= f * this.impulse2.y, e -= m * (n * this.impulse2.y - l * this.impulse2.x), g.x += p * this.impulse2.x, g.y += p * this.impulse2.y, r += h * (a * this.impulse2.y - q * this.impulse2.x); f = b.m_linearVelocity; f.x = d.x; f.y = d.y; b.m_angularVelocity = e; f = c.m_linearVelocity; f.x = g.x; f.y = g.y; c.m_angularVelocity = r }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = 0; if (this.m_enableLimit && 0 != this.m_limitState) { var d = b.m_sweep.a - a.m_sweep.a - this.m_referenceAngle; var e = 0; 3 == this.m_limitState ? (d = O.clamp(d - this.m_lowerAngle, -Y.b2_maxAngularCorrection, Y.b2_maxAngularCorrection), e = -this.m_motorMass * d, c = O.abs(d)) : 1 == this.m_limitState ? (d -= this.m_lowerAngle, c = -d, d = O.clamp(d + Y.b2_angularSlop, -Y.b2_maxAngularCorrection, 0), e = -this.m_motorMass * d) : 2 == this.m_limitState && (c = d -= this.m_upperAngle, d = O.clamp(d - Y.b2_angularSlop, 0, Y.b2_maxAngularCorrection), e = -this.m_motorMass * d); a.m_sweep.a -= a.m_invI * e; b.m_sweep.a += b.m_invI * e; a.synchronizeTransform(); b.synchronizeTransform() } var g = a.m_xf.R; e = this.m_localAnchor1.x - a.m_sweep.localCenter.x; d = this.m_localAnchor1.y - a.m_sweep.localCenter.y; var r = g.col1.x * e + g.col2.x * d; d = g.col1.y * e + g.col2.y * d; e = r; g = b.m_xf.R; var f = this.m_localAnchor2.x - b.m_sweep.localCenter.x, p = this.m_localAnchor2.y - b.m_sweep.localCenter.y; r = g.col1.x * f + g.col2.x * p; p = g.col1.y * f + g.col2.y * p; f = r; var m = b.m_sweep.c.x + f - a.m_sweep.c.x - e; var h = b.m_sweep.c.y + p - a.m_sweep.c.y - d; var n = m * m + h * h; g = Math.sqrt(n); r = a.m_invMass; var k = b.m_invMass, l = a.m_invI, t = b.m_invI, q = 10 * Y.b2_linearSlop; n > q * q && (n = 1 / (r + k), m = n * -m, h = n * -h, a.m_sweep.c.x -= .5 * r * m, a.m_sweep.c.y -= .5 * r * h, b.m_sweep.c.x += .5 * k * m, b.m_sweep.c.y += .5 * k * h, m = b.m_sweep.c.x + f - a.m_sweep.c.x - e, h = b.m_sweep.c.y + p - a.m_sweep.c.y - d); this.K1.col1.x = r + k; this.K1.col2.x = 0; this.K1.col1.y = 0; this.K1.col2.y = r + k; this.K2.col1.x = l * d * d; this.K2.col2.x = -l * e * d; this.K2.col1.y = -l * e * d; this.K2.col2.y = l * e * e; this.K3.col1.x = t * p * p; this.K3.col2.x = -t * f * p; this.K3.col1.y = -t * f * p; this.K3.col2.y = t * f * f; this.K.setM(this.K1); this.K.addM(this.K2); this.K.addM(this.K3); this.K.solve(eg.tImpulse, -m, -h); m = eg.tImpulse.x; h = eg.tImpulse.y; a.m_sweep.c.x -= a.m_invMass * m; a.m_sweep.c.y -= a.m_invMass * h; a.m_sweep.a -= a.m_invI * (e * h - d * m); b.m_sweep.c.x += b.m_invMass * m; b.m_sweep.c.y += b.m_invMass * h; b.m_sweep.a += b.m_invI * (f * h - p * m); a.synchronizeTransform(); b.synchronizeTransform(); return g <= Y.b2_linearSlop ? c <= Y.b2_angularSlop : !1 }, m_localAnchor1: null, m_localAnchor2: null, m_impulse: null, m_motorImpulse: null, m_mass: null, m_motorMass: null, m_enableMotor: null, m_maxMotorTorque: null, m_motorSpeed: null, m_enableLimit: null, m_referenceAngle: null, m_lowerAngle: null, m_upperAngle: null, m_limitState: null, __class__: eg }); var Nh = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.type = 1; var a = this.localAnchorA, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; a = this.localAnchorB; c = b = 0; null == c && (c = 0); null == b && (b = 0); a.x = b; a.y = c; this.motorSpeed = this.maxMotorTorque = this.upperAngle = this.lowerAngle = this.referenceAngle = 0; this.enableMotor = this.enableLimit = !1 }; k["box2D.dynamics.joints.B2RevoluteJointDef"] = Nh; Nh.__name__ = "box2D.dynamics.joints.B2RevoluteJointDef"; Nh.__super__ = $c; Nh.prototype = u($c.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; this.localAnchorA = this.bodyA.getLocalPoint(c); this.localAnchorB = this.bodyB.getLocalPoint(c); this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle() }, localAnchorA: null, localAnchorB: null, referenceAngle: null, enableLimit: null, lowerAngle: null, upperAngle: null, enableMotor: null, motorSpeed: null, maxMotorTorque: null, __class__: Nh }); var Lk = function (a) { Yb.call(this, a); this.m_localAnchorA = new M; this.m_localAnchorB = new M; this.m_impulse = new bf; this.m_mass = new Kh; var b = this.m_localAnchorA, c = a.localAnchorA; b.x = c.x; b.y = c.y; b = this.m_localAnchorB; c = a.localAnchorB; b.x = c.x; b.y = c.y; this.m_referenceAngle = a.referenceAngle; this.m_impulse.setZero(); this.m_mass = new Kh }; k["box2D.dynamics.joints.B2WeldJoint"] = Lk; Lk.__name__ = "box2D.dynamics.joints.B2WeldJoint"; Lk.__super__ = Yb; Lk.prototype = u(Yb.prototype, { getAnchorA: function () { return this.m_bodyA.getWorldPoint(this.m_localAnchorA) }, getAnchorB: function () { return this.m_bodyB.getWorldPoint(this.m_localAnchorB) }, getReactionForce: function (a) { return new M(a * this.m_impulse.x, a * this.m_impulse.y) }, getReactionTorque: function (a) { return a * this.m_impulse.z }, initVelocityConstraints: function (a) { var b = this.m_bodyA, c = this.m_bodyB, d = b.m_xf.R, e = this.m_localAnchorA.x - b.m_sweep.localCenter.x, g = this.m_localAnchorA.y - b.m_sweep.localCenter.y, r = d.col1.x * e + d.col2.x * g; g = d.col1.y * e + d.col2.y * g; e = r; d = c.m_xf.R; var f = this.m_localAnchorB.x - c.m_sweep.localCenter.x, p = this.m_localAnchorB.y - c.m_sweep.localCenter.y; r = d.col1.x * f + d.col2.x * p; p = d.col1.y * f + d.col2.y * p; f = r; d = b.m_invMass; r = c.m_invMass; var m = b.m_invI, h = c.m_invI; this.m_mass.col1.x = d + r + g * g * m + p * p * h; this.m_mass.col2.x = -g * e * m - p * f * h; this.m_mass.col3.x = -g * m - p * h; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = d + r + e * e * m + f * f * h; this.m_mass.col3.y = e * m + f * h; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = m + h; a.warmStarting ? (this.m_impulse.x *= a.dtRatio, this.m_impulse.y *= a.dtRatio, this.m_impulse.z *= a.dtRatio, b.m_linearVelocity.x -= d * this.m_impulse.x, b.m_linearVelocity.y -= d * this.m_impulse.y, b.m_angularVelocity -= m * (e * this.m_impulse.y - g * this.m_impulse.x + this.m_impulse.z), c.m_linearVelocity.x += r * this.m_impulse.x, c.m_linearVelocity.y += r * this.m_impulse.y, c.m_angularVelocity += h * (f * this.m_impulse.y - p * this.m_impulse.x + this.m_impulse.z)) : this.m_impulse.setZero() }, solveVelocityConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_linearVelocity, d = a.m_angularVelocity, e = b.m_linearVelocity, g = b.m_angularVelocity, r = a.m_invMass, f = b.m_invMass, p = a.m_invI, m = b.m_invI, h = a.m_xf.R, n = this.m_localAnchorA.x - a.m_sweep.localCenter.x, k = this.m_localAnchorA.y - a.m_sweep.localCenter.y, l = h.col1.x * n + h.col2.x * k; k = h.col1.y * n + h.col2.y * k; n = l; h = b.m_xf.R; var t = this.m_localAnchorB.x - b.m_sweep.localCenter.x, q = this.m_localAnchorB.y - b.m_sweep.localCenter.y; l = h.col1.x * t + h.col2.x * q; q = h.col1.y * t + h.col2.y * q; t = l; h = e.x - g * q - c.x + d * k; l = e.y + g * t - c.y - d * n; var Sb = g - d, da = new bf; this.m_mass.solve33(da, -h, -l, -Sb); this.m_impulse.add(da); c.x -= r * da.x; c.y -= r * da.y; d -= p * (n * da.y - k * da.x + da.z); e.x += f * da.x; e.y += f * da.y; g += m * (t * da.y - q * da.x + da.z); a.m_angularVelocity = d; b.m_angularVelocity = g }, solvePositionConstraints: function (a) { a = this.m_bodyA; var b = this.m_bodyB, c = a.m_xf.R, d = this.m_localAnchorA.x - a.m_sweep.localCenter.x, e = this.m_localAnchorA.y - a.m_sweep.localCenter.y, g = c.col1.x * d + c.col2.x * e; e = c.col1.y * d + c.col2.y * e; d = g; c = b.m_xf.R; var r = this.m_localAnchorB.x - b.m_sweep.localCenter.x, f = this.m_localAnchorB.y - b.m_sweep.localCenter.y; g = c.col1.x * r + c.col2.x * f; f = c.col1.y * r + c.col2.y * f; r = g; c = a.m_invMass; g = b.m_invMass; var p = a.m_invI, m = b.m_invI, h = b.m_sweep.c.x + r - a.m_sweep.c.x - d, n = b.m_sweep.c.y + f - a.m_sweep.c.y - e, k = b.m_sweep.a - a.m_sweep.a - this.m_referenceAngle, l = 10 * Y.b2_linearSlop, t = Math.sqrt(h * h + n * n), q = O.abs(k); t > l && (p *= 1, m *= 1); this.m_mass.col1.x = c + g + e * e * p + f * f * m; this.m_mass.col2.x = -e * d * p - f * r * m; this.m_mass.col3.x = -e * p - f * m; this.m_mass.col1.y = this.m_mass.col2.x; this.m_mass.col2.y = c + g + d * d * p + r * r * m; this.m_mass.col3.y = d * p + r * m; this.m_mass.col1.z = this.m_mass.col3.x; this.m_mass.col2.z = this.m_mass.col3.y; this.m_mass.col3.z = p + m; l = new bf; this.m_mass.solve33(l, -h, -n, -k); a.m_sweep.c.x -= c * l.x; a.m_sweep.c.y -= c * l.y; a.m_sweep.a -= p * (d * l.y - e * l.x + l.z); b.m_sweep.c.x += g * l.x; b.m_sweep.c.y += g * l.y; b.m_sweep.a += m * (r * l.y - f * l.x + l.z); a.synchronizeTransform(); b.synchronizeTransform(); return t <= Y.b2_linearSlop ? q <= Y.b2_angularSlop : !1 }, m_localAnchorA: null, m_localAnchorB: null, m_referenceAngle: null, m_impulse: null, m_mass: null, __class__: Lk }); var Mk = function () { $c.call(this); this.localAnchorA = new M; this.localAnchorB = new M; this.type = 8; this.referenceAngle = 0 }; k["box2D.dynamics.joints.B2WeldJointDef"] = Mk; Mk.__name__ = "box2D.dynamics.joints.B2WeldJointDef"; Mk.__super__ = $c; Mk.prototype = u($c.prototype, { initialize: function (a, b, c) { this.bodyA = a; this.bodyB = b; a = this.localAnchorA; b = this.bodyA.getLocalPoint(c); a.x = b.x; a.y = b.y; a = this.localAnchorB; b = this.bodyB.getLocalPoint(c); a.x = b.x; a.y = b.y; this.referenceAngle = this.bodyB.getAngle() - this.bodyA.getAngle() }, localAnchorA: null, localAnchorB: null, referenceAngle: null, __class__: Mk }); var Mn = function () { this.stringMapCloner = new Pk(this, xa); this.intMapCloner = new Pk(this, eb); this.classHandles = new xa; this.classHandles.h.String = q(this, this.returnString); this.classHandles.h.Array = q(this, this.cloneArray); this.classHandles.h["haxe.ds.StringMap"] = (x = this.stringMapCloner, q(x, x.clone)); this.classHandles.h["haxe.ds.IntMap"] = (x = this.intMapCloner, q(x, x.clone)) }; k["cloner.Cloner"] = Mn; Mn.__name__ = "cloner.Cloner"; Mn.prototype = { cache: null, classHandles: null, stringMapCloner: null, intMapCloner: null, depth: null, returnString: function (a) { return a }, clone: function (a) { this.cache = new Oc; this.depth = 0; ++this.depth; a = this.__clone(a); --this.depth; this.cache = null; return a }, _clone: function (a) { ++this.depth; a = this.__clone(a); --this.depth; return a }, __clone: function (a) { if (30 < this.depth) throw I.thrown("deep clone"); if ("string" == typeof a) return a; try { if (null != a.__name__) return a } catch (c) { ra.lastError = c } var b = Ha.typeof(a); switch (b._hx_index) { case 0: return null; case 1: return a; case 2: return a; case 3: return a; case 4: return this.handleAnonymous(a); case 5: return null; case 6: return b = b.c, null == this.cache.h.__keys__[a.__id__] && this.cache.set(a, this.handleClass(b, a)), this.cache.h[a.__id__]; case 7: return a; case 8: return null } }, handleAnonymous: function (a) { for (var b = V.fields(a), c = {}, d = 0, e = b.length; d < e;) { var g = d++; g = b[g]; var r = V.getProperty(a, g); ++this.depth; r = this.__clone(r); --this.depth; c[g] = r } return c }, handleClass: function (a, b) { a = this.classHandles.h[a.__name__]; null == a && (a = q(this, this.cloneClass)); return a(b) }, cloneArray: function (a) { a = a.slice(); for (var b = 0, c = a.length; b < c;) { var d = b++; ++this.depth; var e = this.__clone(a[d]); --this.depth; a[d] = e } return a }, cloneClass: function (a) { for (var b = Object.create(w.getClass(a).prototype), c = V.fields(a), d = 0, e = c.length; d < e;) { var g = d++; g = c[g]; var r = V.getProperty(a, g); ++this.depth; r = this.__clone(r); --this.depth; b[g] = r } return b }, __class__: Mn }; var Pk = function (a, b) { this.cloner = a; this.type = b; this.noArgs = [] }; k["cloner.MapCloner"] = Pk; Pk.__name__ = "cloner.MapCloner"; Pk.prototype = { cloner: null, type: null, noArgs: null, clone: function (a) { for (var b = Ha.createInstance(this.type, this.noArgs), c = a.keys(); c.hasNext();) { var d = c.next(), e = this.cloner, g = a.get(d); ++e.depth; g = e.__clone(g); --e.depth; b.set(d, g) } return b }, __class__: Pk }; var Tg = function (a) { null == a && (a = !0); Ca.call(this); this.alignRight = a; this.start = !0; this.fps = this.mem_max = 0; this.text = new cf; this.text.set_defaultTextFormat(new Sg("_sans", 10, 16777215)); this.text.set_wordWrap(!0); this.text.set_multiline(!0); this.text.set_width(70); this.text.set_height(50); this.text.set_selectable(!1); this.text.mouseEnabled = !1; this.rectangle = new ba(69, 0, 1, 50); this.addEventListener("addedToStage", q(this, this.init), !1, 0, !0); this.addEventListener("removedFromStage", q(this, this.destroy), !1, 0, !0) }; k["com.nmefermmmtools.debug.Stats"] = Tg; Tg.__name__ = "com.nmefermmmtools.debug.Stats"; Tg.__super__ = Ca; Tg.prototype = u(Ca.prototype, { text: null, timer: null, fps: null, ms: null, ms_prev: null, mem: null, mem_max: null, graph: null, rectangle: null, alignRight: null, start: null, fps_graph: null, mem_graph: null, ms_graph: null, mem_max_graph: null, _stage: null, fpsStr: null, memStr: null, memMaxStr: null, msStr: null, init: function (a) { this._stage = Oa.get_current().stage; this.get_graphics().beginFill(51); this.get_graphics().drawRect(0, 0, 70, 50); this.get_graphics().endFill(); this.addChild(this.text); this.graph = new ka(70, 50, !1, 51); this.addEventListener("enterFrame", q(this, this.update)) }, destroy: function (a) { for (this.get_graphics().clear(); 0 < this.get_numChildren();) this.removeChildAt(0); this.graph.dispose(); this.removeEventListener("enterFrame", q(this, this.update)) }, update: function (a) { this.start && this.alignRight && (this.set_x(this._stage.stageWidth - this.get_width()), this.start = !1); this.timer = Oa.getTimer(); this.timer - 1E3 > this.ms_prev ? (this.mem = 9.54E-7 * fg.get_totalMemory(), this.mem_max = this.mem_max > this.mem ? this.mem_max : this.mem, this.fps_graph = 50 - (Math.min(50, this.fps / this._stage.get_frameRate() * 50) | 0), this.mem_graph = 50 - this.normalizeMem(this.mem), this.mem_max_graph = 50 - this.normalizeMem(this.mem_max), this.ms_graph = 50 - (this.timer - this.ms >> 1) | 0, this.graph.scroll(-1, 0), this.get_graphics().clear(), this.get_graphics().beginFill(51), this.get_graphics().drawRect(0, 0, 70, 50), this.get_graphics().endFill(), this.get_graphics().beginBitmapFill(this.graph, new Ja(1, 0, 0, 1, 0, 50)), this.get_graphics().drawRect(0, 50, 70, 50), this.get_graphics().endFill(), this.graph.fillRect(this.rectangle, 51), this.graph.lock(), this.graph.setPixel(69, this.fps_graph, 16776960), this.graph.setPixel(69, this.mem_graph, 65535), this.graph.setPixel(69, this.mem_max_graph, 16711792), this.graph.setPixel(69, this.ms_graph, 65280), this.graph.unlock(), 60 < this.fps && (this.fps = 60), this.fpsStr = "FPS: " + this.fps + " / 60", this.memStr = "MEM: " + Math.round(this.mem), this.memMaxStr = "MAX: " + Math.round(this.mem_max), this.fps = 0, this.ms_prev = this.timer, this.text.set_htmlText("" + this.fpsStr + "
" + this.memStr + "
" + this.memMaxStr + "")) : (this.fps++, this.ms = this.timer) }, normalizeMem: function (a) { return Math.min(50, Math.sqrt(Math.sqrt(5E3 * a))) - 2 | 0 }, __class__: Tg }); var zg = function () { }; k["com.nmefermmmtools.debug.Colors"] = zg; zg.__name__ = "com.nmefermmmtools.debug.Colors"; var Ag = function () { }; k["com.stencyl.APIKeys"] = Ag; Ag.__name__ = "com.stencyl.APIKeys"; var aa = function () { }; k["com.stencyl.Config"] = aa; aa.__name__ = "com.stencyl.Config"; aa.load = function () { var a = X.getConfigText("config/game-config.json"); aa.loadFromString(a) }; aa.loadMap = function (a, b) { for (var c = 0, d = V.fields(a); c < d.length;) { var e = d[c]; ++c; T.startsWith(e, "config-") ? Object.prototype.hasOwnProperty.call(aa.defines.h, K.substr(e, 7, null)) && aa.loadMap(V.field(a, e), b) : b[e] = V.field(a, e) } return b }; aa.loadFromString = function (a, b) { null == b && (b = !0); if (null != aa.data && b) { b = aa.data; aa.data = aa.loadMap(JSON.parse(a), {}); aa.setStaticFields(); for (var c = a = !1, d = 0, e = V.fields(b); d < e.length;) { var g = e[d]; ++d; var r = V.field(b, g), f = V.field(aa.data, g); if (r != f) switch (g) { case "debugDraw": (h.DEBUG_DRAW = aa.debugDraw) || null != h.debugDrawer && null != h.debugDrawer.m_sprite && h.debugDrawer.m_sprite.get_graphics().clear(); break; case "disposeImages": case "physicsMode": c = !0; break; case "antialias": case "forceHiResAssets": case "gameScale": case "scaleMode": case "scales": case "stageHeight": case "stageWidth": a = !0; break; case "keys": L.loadInputConfig(); break; case "releaseMode": case "useGciLogging": ua.setupTracing(!aa.releaseMode); break; case "showConsole": h.engine.setStatsVisible(aa.showConsole) } } c ? ua.reloadGame() : a && h.engine.reloadScreen() } else aa.data = aa.loadMap(JSON.parse(a), {}), aa.setStaticFields() }; aa.setStaticFields = function () { aa.landscape = aa.data.landscape; aa.autorotate = aa.data.autorotate; aa.scaleMode = yj.fromString(aa.data.scaleMode); aa.stageWidth = aa.data.stageWidth; aa.stageHeight = aa.data.stageHeight; aa.initSceneID = aa.data.initSceneID; aa.physicsMode = Nn.fromString(aa.data.physicsMode); aa.gameScale = aa.data.gameScale; aa.forceHiResAssets = aa.data.forceHiResAssets; aa.antialias = aa.data.antialias; aa.pixelsnap = aa.data.pixelsnap; aa.startInFullScreen = aa.data.startInFullScreen; aa.disposeImages = aa.data.disposeImages; aa.adPositionBottom = aa.data.adPositionBottom; aa.testAds = aa.data.testAds; aa.releaseMode = aa.data.releaseMode; aa.showConsole = aa.data.showConsole; aa.debugDraw = aa.data.debugDraw; aa.disableBackButton = aa.data.disableBackButton; aa.useGciLogging = aa.data.useGciLogging; aa.keys = aa.asMap(aa.data.keys); for (var a = aa.data.scales, b = Ld.fromString, c = Array(a.length), d = 0, e = a.length; d < e;) { var g = d++; c[g] = b(a[g]) } aa.scales = ia.array(c); aa.toolsetInterfaceHost = aa.data.toolsetInterfaceHost; aa.toolsetInterfacePort = aa.data.toolsetInterfacePort; aa.projectName = aa.data.projectName; aa.buildConfig = aa.data.buildConfig }; aa.asMap = function (a) { for (var b = new xa, c = 0, d = V.fields(a); c < d.length;) { var e = d[c]; ++c; b.h[e] = V.field(a, e) } return b }; var pc = function () { this.actorTypesLoaded = !1; this.resourceLookup = this.resourceNameLookup = this.behaviorLookup = this.behaviorReader = this.resourceReaderPool = null; if (null == Da.getBytes("assets/data/game.mbs")) throw I.thrown("Data.hx - Could not load game. Check your logs for a possible cause."); }; k["com.stencyl.Data"] = pc; pc.__name__ = "com.stencyl.Data"; pc.get = function () { null == pc.instance && (pc.instance = new pc, pc.instance.loadAll()); return pc.instance }; pc.resetStatics = function () { pc.instance = null }; pc.prototype = { readers: null, gameMbs: null, resourceListMbs: null, sceneListMbs: null, behaviorListMbs: null, resources: null, resourceMap: null, behaviors: null, resourceLookup: null, resourceNameLookup: null, behaviorLookup: null, behaviorReader: null, resourceReaderPool: null, loadAll: function () { this.gameMbs = new Ug(nf.get(), !1, !0); this.gameMbs.readData(Fb.toBytes(Da.getBytes("assets/data/game.mbs"))); this.sceneListMbs = new Ug(nf.get(), !1, !0); this.sceneListMbs.readData(Fb.toBytes(Da.getBytes("assets/data/scenes.mbs"))); this.resourceListMbs = new Ug(nf.get(), !1, !1); this.resourceListMbs.readData(Fb.toBytes(Da.getBytes("assets/data/resources.mbs"))); this.behaviorListMbs = new Ug(nf.get(), !1, !1); this.behaviorListMbs.readData(Fb.toBytes(Da.getBytes("assets/data/behaviors.mbs"))); this.behaviors = new Qk(new eb, q(this, this.loadBehaviorFromMbs)); this.resources = new Qk(new eb, q(this, this.loadResourceFromMbs)); this.resourceMap = new On(new xa, q(this, this.loadResourceFromMbsByName)); this.loadReaders(); this.scanBehaviorMbs(); this.scanResourceMbs() }, readGameMbs: function () { var a = new Ug(nf.get(), !1, !0); a.readData(Fb.toBytes(Da.getBytes("assets/data/game.mbs"))); return a.getRoot() }, loadReaders: function () { this.readers = []; this.readers.push(new Rk); this.readers.push(new Sk); this.readers.push(new Tk); this.readers.push(new Uk); this.readers.push(new Vk); this.readers.push(new Wk) }, scanBehaviorMbs: function () { this.behaviorLookup = new eb; for (var a = this.behaviorListMbs.getRoot(), b = 0, c = a.length(); b < c;) { b++; var d = a.elementAddress; this.behaviorReader = a.getNextObject(); var e = this.behaviorLookup, g = this.behaviorReader.getId(); e.h[g] = d } }, scanResourceMbs: function () { this.resourceLookup = new eb; this.resourceNameLookup = new xa; var a = this.resourceListMbs.getRoot(); this.resourceReaderPool = ie.createObjectPool(this.resourceListMbs); for (var b = new kb(this.resourceListMbs), c = G.INTEGER.getSize(), d = 0, e = a.length(); d < e;) { d++; var g = a.elementAddress, r = this.resourceListMbs.readInt(g + c); a.elementAddress += a.elementSize; b.setAddress(r); r = this.resourceLookup; var f = b.getId(); r.h[f] = g; this.resourceListMbs.readTypecode(g) == yc.MBS_SPRITE ? (g = this.resourceNameLookup, r = "Sprite_" + b.getName(), f = b.getId(), g.h[r] = f) : (g = this.resourceNameLookup, r = b.getName(), f = b.getId(), g.h[r] = f) } }, loadResourceFromMbsByName: function (a) { a = this.resourceNameLookup.h[a]; return null == a ? null : this.loadResourceFromMbs(a) }, loadResourceFromMbs: function (a) { a = this.resourceLookup.h[a]; if (null == a) return null; a = ie.readDynamicUsingPool(this.resourceListMbs, a, this.resourceReaderPool); a = this.readResource(a.getMbsType().getName(), a); null != a && (this.resources.map.h[a.ID] = a, a instanceof si ? this.resourceMap.map.h["Sprite_" + a.name] = a : this.resourceMap.map.h[a.name] = a); return a }, loadAllResourcesOfType: function (a) { var b = this.resourceListMbs.getRoot(), c = new kb(this.resourceListMbs), d = G.INTEGER.getSize(); b.elementAddress = b.getAddress() + 2 * d; for (var e = 0, g = b.length(); e < g;) { e++; var r = b.elementAddress; this.resourceListMbs.readTypecode(r) == a && (r = this.resourceListMbs.readInt(r + d), c.setAddress(r), this.loadResourceFromMbs(c.getId())); b.elementAddress += b.elementSize } }, loadBehaviorFromMbs: function (a) { a = this.behaviorLookup.h[a]; if (null == a) return null; this.behaviorReader.setAddress(a); return ti.readBehavior(this.behaviorReader) }, readResource: function (a, b) { for (var c = 0, d = this.readers; c < d.length;) { var e = d[c]; ++c; if (e.accepts(a)) return e.read(b) } return null }, actorTypesLoaded: null, getAllActorTypes: function () { this.actorTypesLoaded || (this.loadAllResourcesOfType(Ra.MBS_ACTOR_TYPE), this.actorTypesLoaded = !0); for (var a = [], b = this.resources.map.iterator(); b.hasNext();) { var c = b.next(); c instanceof gg && a.push(w.__cast(c, gg)) } return a }, loadAtlas: function (a) { var b = zb.get().atlases.h[a]; if (null != b && !b.active) for (b.active = !0, a = 0, b = b.members; a < b.length;) { var c = b[a]; ++a; c = this.resources.get(c); null != c && c.loadGraphics() } }, unloadAtlas: function (a) { }, reloadScaledResources: function () { for (var a = this.resources.map.iterator(); a.hasNext();) { var b = a.next(); null != b && (b instanceof Ph || b instanceof gg || b.isAtlasActive() && b.reloadGraphics(-1)) } }, __class__: pc }; var kd = function () { var a = this.eventTable = new eb, b = kd.TYPE_ADS, c = []; a.h[b] = c; a = this.eventTable; b = kd.TYPE_PURCHASES; c = []; a.h[b] = c; a = this.eventTable; b = kd.TYPE_GAMECENTER; c = []; a.h[b] = c; a = this.eventTable; b = kd.TYPE_KEYBOARD; c = []; a.h[b] = c }; k["com.stencyl.event.EventMaster"] = kd; kd.__name__ = "com.stencyl.event.EventMaster"; kd.prototype = { eventTable: null, addAdEvent: function (a) { this.eventTable.h[kd.TYPE_ADS].push(a) }, addPurchaseEvent: function (a) { this.eventTable.h[kd.TYPE_PURCHASES].push(a) }, addGameCenterEvent: function (a) { this.eventTable.h[kd.TYPE_GAMECENTER].push(a) }, addKeyboardEvent: function (a) { this.eventTable.h[kd.TYPE_KEYBOARD].push(a) }, clear: function () { this.eventTable.h[kd.TYPE_ADS].length = 0; this.eventTable.h[kd.TYPE_PURCHASES].length = 0; this.eventTable.h[kd.TYPE_GAMECENTER].length = 0; this.eventTable.h[kd.TYPE_KEYBOARD].length = 0 }, __class__: kd }; var h = function (a) { this.isHUDZoomable = this.sceneInitialized = this.keyPollOccurred = this.isFullScreen = this.ignoreResize = !1; this.zoomMultiplier = 1; "opengl" != h.stage.window.context.type && "opengles" != h.stage.window.context.type && "webgl" != h.stage.window.context.type || ld.initialize(); vd.get_isSupported() && (this.shaderLayer = new Ca, this.shaderLayer.set_name("Shader Layer")); a.mouseChildren = !1; a.mouseEnabled = !1; aa.debugDraw && (h.DEBUG_DRAW = !0); h.engine = this; f.engine = this; this.root = a; this.isFullScreen = aa.startInFullScreen; h.screenScaleX = h.unzoomedScaleX = a.get_scaleX(); h.screenScaleY = h.unzoomedScaleY = a.get_scaleY(); h.screenOffsetX = a.get_x() | 0; h.screenOffsetY = a.get_y() | 0; h.NO_PHYSICS = 1 == aa.physicsMode; h.stage.addEventListener("enterFrame", q(this, this.onUpdate)); h.stage.addEventListener("deactivate", q(this, this.onFocusLost)); h.stage.addEventListener("activate", q(this, this.onFocus)); h.stage.addEventListener("resize", q(this, this.onWindowResize)); h.stage.window.onRestore.add(q(this, this.onWindowRestore)); h.stage.window.onMaximize.add(q(this, this.onWindowMaximize)); h.stage.window.onFullscreen.add(q(this, this.onWindowFullScreen)); this.isFullScreen && !h.stage.window.__fullscreen && (h.stage.window.__fullscreen = !0); this.begin(aa.initSceneID) }; k["com.stencyl.Engine"] = h; h.__name__ = "com.stencyl.Engine"; h.resetStatics = function () { h.stage.removeEventListener("enterFrame", (x = h.engine, q(x, x.onUpdate))); h.stage.removeEventListener("deactivate", (x = h.engine, q(x, x.onFocusLost))); h.stage.removeEventListener("activate", (x = h.engine, q(x, x.onFocus))); h.stage.removeEventListener("resize", (x = h.engine, q(x, x.onWindowResize))); h.stage.window.onRestore.remove((x = h.engine, q(x, x.onWindowRestore))); h.stage.window.onMaximize.remove((x = h.engine, q(x, x.onWindowMaximize))); h.stage.window.onFullscreen.remove((x = h.engine, q(x, x.onWindowFullScreen))); null != h.engine.stats && h.stage.removeChild(h.engine.stats); h.NO_PHYSICS = !1; h.DEBUG_DRAW = !1; h.IMG_BASE = ""; h.SCALE = 1; h.checkedWideScreen = !1; h.isStandardIOS = !1; h.isExtendedIOS = !1; h.isIPhone6 = !1; h.isIPhone6Plus = !1; h.isTabletIOS = !1; h.engine = null; h.landscape = !1; h.cameraX = 0; h.cameraY = 0; h.screenScaleX = 0; h.screenScaleY = 0; h.unzoomedScaleX = 0; h.unzoomedScaleY = 0; h.screenOffsetX = 0; h.screenOffsetY = 0; h.screenWidth = 0; h.screenHeight = 0; h.sceneWidth = 0; h.sceneHeight = 0; h.screenWidthHalf = 0; h.screenHeightHalf = 0; h.paused = !1; h.started = !1; h.events = new kd; h.ITERATIONS = 3; h.physicsScale = 10; h.preservePadding = !1; h.paddingLeft = 0; h.paddingRight = 0; h.paddingTop = 0; h.paddingBottom = 0; h.ngID = ""; h.ngKey = ""; h.movieClip = null; h.stage = null; h.STEP_SIZE = 10; h.MS_PER_SEC = 1E3; h.elapsedTime = 0; h.timeScale = 1; h.totalElapsedTime = 0; h.debug = !1; h.debugDrawer = null }; h.initBehaviors = function (a, b, c, d, e) { if (null != b) { var g = b.h; b = g; for (var r = Object.keys(g), f = r.length, p = 0; p < f;) { var m = b[r[p++]]; if (null != m && m.enabled) { var h = pc.get().behaviors.get(m.behaviorID), n = new xa; if (null != h) { if (h.isEvent) { g = h.attributes.h; g = Object.keys(g); for (var l = g.length, k = 0; k < l;) { var t = g[k++], q = h.attributes.h[t]; if (null != q) { var Sb = q.type, da = q.ID; "list" == Sb ? (q = new ui(da, q.fieldName, q.fullName, [], Sb, null, q.hidden), n.h[t] = q) : "map" == Sb && (q = new ui(da, q.fieldName, q.fullName, new xa, Sb, null, q.hidden), n.h[t] = q) } } } g = Object.keys(m.values.h); l = g.length; for (k = 0; k < l;) t = g[k++], q = h.attributes.h[t], null != q && (q = new ui(q.ID, q.fieldName, q.fullName, m.values.h[t], q.type, null, q.hidden), n.h[t] = q); m = new Xk(c, d, h.ID, h.name, h.classname, !0, !1, n, h.type, h.isEvent); a.add(m) } } } e && a.initScripts() } }; h.toPhysicalUnits = function (a) { return a /= h.physicsScale }; h.toPixelUnits = function (a) { return a *= h.physicsScale }; h.vToPhysicalUnits = function (a) { a.x = h.toPhysicalUnits(a.x); a.y = h.toPhysicalUnits(a.y); return a }; h.vToPixelUnits = function (a) { a.x = h.toPixelUnits(a.x); a.y = h.toPixelUnits(a.y); return a }; h.prototype = { zoomMultiplier: null, isHUDZoomable: null, world: null, gravityX: null, gravityY: null, physicalWidth: null, physicalHeight: null, leave: null, enter: null, sceneToEnter: null, shakeTimer: null, shakeIntensity: null, isShaking: null, scene: null, camera: null, sceneInitialized: null, channels: null, tasks: null, regions: null, terrainRegions: null, joints: null, root: null, colorLayer: null, maskLayer: null, master: null, hudLayer: null, transitionLayer: null, debugLayer: null, g: null, groups: null, reverseGroups: null, allActors: null, nextID: null, actorsOfType: null, recycledActorsOfType: null, actorsToCreateInNextScene: null, layers: null, layersByName: null, interactiveLayers: null, backgroundLayers: null, dynamicTiles: null, animatedTiles: null, topLayer: null, bottomLayer: null, middleLayer: null, layersToDraw: null, tileUpdated: null, loadedAtlases: null, atlasesToLoad: null, atlasesToUnload: null, actorsToCreate: null, gameAttributes: null, savableAttributes: null, behaviors: null, lastTime: null, acc: null, mx: null, my: null, collisionPairs: null, disableCollisionList: null, keyPollOccurred: null, whenKeyPressedEvents: null, whenAnyKeyPressed: null, whenAnyKeyReleased: null, whenAnyGamepadPressed: null, whenAnyGamepadReleased: null, whenTypeGroupCreatedEvents: null, whenTypeGroupKilledEvents: null, whenTypeGroupPositionStateChangedEvents: null, whenCollidedEvents: null, whenSoundEndedEvents: null, whenChannelEndedEvents: null, whenUpdated: null, whenDrawing: null, whenMousePressed: null, whenMouseReleased: null, whenMouseMoved: null, whenMouseDragged: null, whenPaused: null, whenFullscreenChanged: null, whenScreenSizeChanged: null, whenGameScaleChanged: null, whenSwiped: null, whenMTStarted: null, whenMTDragged: null, whenMTEnded: null, whenFocusChanged: null, nativeListeners: null, shader: null, shaderLayer: null, shaders: null, isFullScreen: null, ignoreResize: null, stats: null, onKeyDown: function (a) { this.isFullScreen && 27 == a.keyCode && this.setFullScreen(!1) }, onWindowResize: function (a) { !this.isFullScreen || h.stage.window.__fullscreen || h.stage.window.__minimized || this.ignoreResize || this.setFullScreen(!1) }, onWindowRestore: function () { this.isFullScreen && !h.stage.window.__fullscreen && (h.stage.window.__fullscreen = !0) }, onWindowMaximize: function () { this.isFullScreen && !h.stage.window.__fullscreen && (h.stage.window.__fullscreen = !0) }, onWindowFullScreen: function () { this.isFullScreen || this.setFullScreen(!0) }, isInFullScreen: function () { return 1 == Oa.get_current().stage.get_displayState() }, setFullScreen: function (a) { if (this.isFullScreen != a) { this.ignoreResize = !0; this.isFullScreen = a; this.reloadScreen(); if (0 < this.whenFullscreenChanged.length) for (this.whenFullscreenChanged._dispatchIndex = 0; this.whenFullscreenChanged._dispatchIndex < this.whenFullscreenChanged.length;) { try { this.whenFullscreenChanged.listeners[this.whenFullscreenChanged._dispatchIndex]() } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++this.whenFullscreenChanged._dispatchIndex } this.ignoreResize = !1 } }, toggleFullScreen: function () { this.setFullScreen(!this.isFullScreen) }, reloadScreen: function () { var a = h.IMG_BASE, b = h.SCALE, c = h.screenWidth, d = h.screenHeight; this.root.initScreen(this.isFullScreen); h.screenWidth = ua.logicalWidth | 0; h.screenWidthHalf = h.screenWidth / 2 | 0; h.screenHeight = ua.logicalHeight | 0; h.screenHeightHalf = h.screenHeight / 2 | 0; this.setColorBackground(this.scene.colorBackground); c = h.screenWidth != c || h.screenHeight != d; d = b != h.SCALE; a != h.IMG_BASE && pc.get().reloadScaledResources(); if (b != h.SCALE) { null != h.debugDrawer && h.debugDrawer.setDrawScale(10 * h.SCALE); this.g.scaleX = this.g.scaleY = h.SCALE; X.applyToAllChildren(this.root, function (a) { w.__implements(a, th) && w.__cast(a, th).updateScale() }); for (a = this.allActors.iterator(); a.hasNext();) b = a.next(), null == b || b.dead || b.recycled || (b.updateMatrix = !0); for (b = this.recycledActorsOfType.iterator(); b.hasNext();) for (var e = b.next(), g = 0; g < e.length;) a = e[g], ++g, null != a.currAnimation && a.currAnimation.framesUpdated(), a.updateMatrix = !0; a = this.g; a.font = a.defaultFont; a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE); this.moveCamera(this.camera.realX, this.camera.realY) } h.unzoomedScaleX = h.screenScaleX = this.root.get_scaleX(); h.unzoomedScaleY = h.screenScaleY = this.root.get_scaleY(); h.screenOffsetX = this.root.get_x() | 0; h.screenOffsetY = this.root.get_y() | 0; null != this.stats && (this.stats.set_x(h.stage.stageWidth - this.stats.get_width()), this.stats.set_y(0)); this.resetShaders(); if (d && 0 < this.whenGameScaleChanged.length) for (this.whenGameScaleChanged._dispatchIndex = 0; this.whenGameScaleChanged._dispatchIndex < this.whenGameScaleChanged.length;) { try { this.whenGameScaleChanged.listeners[this.whenGameScaleChanged._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenGameScaleChanged._dispatchIndex } if (c && 0 < this.whenScreenSizeChanged.length) for (this.whenScreenSizeChanged._dispatchIndex = 0; this.whenScreenSizeChanged._dispatchIndex < this.whenScreenSizeChanged.length;) { try { this.whenScreenSizeChanged.listeners[this.whenScreenSizeChanged._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenScreenSizeChanged._dispatchIndex } }, addShader: function (a) { if (vd.get_isSupported()) { a = a.basicShader; null != this.shaders && this.clearShaders(); this.shaders = [a.model]; for (a = a.multipassParent; null != a;) this.shaders.splice(0, 0, a.model), a = a.multipassParent; a = 0; for (var b = this.shaders; a < b.length;) { var c = b[a]; ++a; this.shaderLayer.addChild(c) } } }, clearShaders: function () { X.removeAllChildren(this.shaderLayer); h.stage.context3D.setRenderToBackBuffer(); this.shaders = [] }, toggleShadersForHUD: function () { null != this.shaderLayer && null != this.hudLayer && null != this.root && this.root.swapChildren(this.shaderLayer, this.hudLayer) }, resetShaders: function () { if (null != this.shaders) for (var a = 0, b = this.shaders; a < b.length;) { var c = b[a]; ++a; c.rebuild() } }, begin: function (a) { this.loadedAtlases = new eb; this.atlasesToLoad = new eb; this.atlasesToUnload = new eb; L.enable(); L.define("iSHIFT", [16]); L.define("iCTRL", [17]); L.define("iCOMMAND", [15]); h.landscape = aa.landscape; var b = ua.logicalWidth, c = ua.logicalHeight; h.screenWidth = b | 0; h.screenHeight = c | 0; h.screenWidthHalf = b / 2 | 0; h.screenHeightHalf = c / 2 | 0; pc.get(); zb.get().loadScenes(); this.g = new ca; h.started = !0; this.tileUpdated = !1; this.shakeTimer = 0; this.shakeIntensity = .01; this.isShaking = !1; this.enter = this.leave = null; h.cameraX = 0; this.acc = h.cameraY = 0; this.lastTime = Oa.getTimer(); h.sceneWidth = b | 0; h.sceneHeight = c | 0; this.colorLayer = new Se; this.colorLayer.set_name("Color Layer"); this.root.addChild(this.colorLayer); this.master = new Ca; this.master.set_name("Master"); this.root.addChild(this.master); this.hudLayer = new Jc(-1, "__hud__", -1, 0, 0, 1, 10, null); this.hudLayer.set_name("HUD Layer"); this.root.addChild(this.hudLayer); this.transitionLayer = new Ca; this.transitionLayer.set_name("Transition Layer"); this.root.addChild(this.transitionLayer); this.debugLayer = new Ca; this.debugLayer.set_name("Debug Layer"); this.root.addChild(this.debugLayer); vd.get_isSupported() && this.root.addChild(this.shaderLayer); this.root.addChild(this.root.maskLayer); this.actorsToCreateInNextScene = []; this.gameAttributes = new xa; this.savableAttributes = new xa; this.setStatsVisible(aa.showConsole); b = zb.get().gameAttributes.h; b = Object.keys(b); c = b.length; for (var d = 0; d < c;) { var e = b[d++], g = zb.get().gameAttributes.h[e]; this.gameAttributes.h[e] = g } this.channels = []; this.channels.push(new ac(this, 0)); this.channels.push(new ac(this, 1)); this.channels.push(new ac(this, 2)); this.channels.push(new ac(this, 3)); this.channels.push(new ac(this, 4)); this.channels.push(new ac(this, 5)); this.channels.push(new ac(this, 6)); this.channels.push(new ac(this, 7)); this.channels.push(new ac(this, 8)); this.channels.push(new ac(this, 9)); this.channels.push(new ac(this, 10)); this.channels.push(new ac(this, 11)); this.channels.push(new ac(this, 12)); this.channels.push(new ac(this, 13)); this.channels.push(new ac(this, 14)); this.channels.push(new ac(this, 15)); this.channels.push(new ac(this, 16)); this.channels.push(new ac(this, 17)); this.channels.push(new ac(this, 18)); this.channels.push(new ac(this, 19)); this.channels.push(new ac(this, 20)); this.channels.push(new ac(this, 21)); this.channels.push(new ac(this, 22)); this.channels.push(new ac(this, 23)); this.channels.push(new ac(this, 24)); this.channels.push(new ac(this, 25)); this.channels.push(new ac(this, 26)); this.channels.push(new ac(this, 27)); this.channels.push(new ac(this, 28)); this.channels.push(new ac(this, 29)); this.channels.push(new ac(this, 30)); this.channels.push(new ac(this, 31)); this.sceneToEnter = a; this.loadScene(a); this.sceneInitialized = !0 }, setStatsVisible: function (a) { a != (null != this.stats) && (a ? (this.stats = new Tg, h.stage.addChild(this.stats), this.stats.set_x(h.stage.stageWidth - this.stats.get_width()), this.stats.set_y(0)) : (h.stage.removeChild(this.stats), this.stats = null)) }, loadScene: function (a) { this.collisionPairs = new Fe(32); h.preservePadding || (h.paddingTop = 0, h.paddingLeft = 0, h.paddingBottom = 0, h.paddingRight = 0); this.tasks = []; this.scene = zb.get().scenes.h[a]; if (-1 == a || null == this.scene) if (this.scene = zb.get().scenes.h[aa.initSceneID], null == this.scene) { h.stage.removeEventListener("enterFrame", q(this, this.onUpdate)); return } this.scene.load(); a = new eb; if (this.scene.retainsAtlases) for (var b = this.loadedAtlases.iterator(); b.hasNext();) { var c = b.next(); a.h[c] = c } else { for (b = this.loadedAtlases.iterator(); b.hasNext();) c = b.next(), zb.get().atlases.h[c].allScenes && (a.h[c] = c); c = 0; for (var d = this.scene.atlases; c < d.length;) b = d[c], ++c, a.h[b] = b } for (c = this.atlasesToLoad.iterator(); c.hasNext();) d = c.next(), a.h[d] = d; for (c = this.atlasesToUnload.iterator(); c.hasNext();) d = c.next(), a.remove(d); for (c = this.loadedAtlases.iterator(); c.hasNext();) d = c.next(), a.h.hasOwnProperty(d) || (pc.get().unloadAtlas(d), this.loadedAtlases.remove(d)); for (c = a.iterator(); c.hasNext();) d = c.next(), this.loadedAtlases.h.hasOwnProperty(d) || (pc.get().loadAtlas(d), this.loadedAtlases.h[d] = d); this.atlasesToLoad = new eb; this.atlasesToUnload = new eb; h.sceneWidth = this.scene.sceneWidth; h.sceneHeight = this.scene.sceneHeight; this.behaviors = new zj; this.groups = new eb; this.reverseGroups = new xa; c = 0; for (d = zb.get().groups; c < d.length;) a = d[c], ++c, b = new df(a.ID, a.name), this.groups.h[a.ID] = b, this.reverseGroups.h[a.name] = b, b.name = a.name; a = new df(-2, "Regions"); this.groups.h[-2] = a; this.reverseGroups.h.Regions = a; this.disableCollisionList = []; this.actorsOfType = new eb; this.recycledActorsOfType = new eb; this.regions = new Fe(32); this.regions.reuseIterator = !0; this.terrainRegions = new eb; this.joints = new eb; this.dynamicTiles = new xa; this.animatedTiles = []; this.allActors = new Fe(256); this.allActors.reuseIterator = !0; this.nextID = 0; this.whenKeyPressedEvents = new Pn; this.whenAnyKeyPressed = new Kc; this.whenAnyKeyReleased = new Kc; this.whenAnyGamepadPressed = new Kc; this.whenAnyGamepadReleased = new Kc; this.whenTypeGroupCreatedEvents = new Oc; this.whenTypeGroupKilledEvents = new Oc; this.whenTypeGroupPositionStateChangedEvents = new eb; this.whenCollidedEvents = new eb; this.whenSoundEndedEvents = new Oc; this.whenChannelEndedEvents = new eb; this.nativeListeners = []; this.whenUpdated = new Kc; this.whenDrawing = new Kc; this.whenMousePressed = new Kc; this.whenMouseReleased = new Kc; this.whenMouseMoved = new Kc; this.whenMouseDragged = new Kc; this.whenPaused = new Kc; this.whenSwiped = new Kc; this.whenMTStarted = new Kc; this.whenMTDragged = new Kc; this.whenMTEnded = new Kc; this.whenFocusChanged = new Kc; this.whenFullscreenChanged = new Kc; this.whenScreenSizeChanged = new Kc; this.whenGameScaleChanged = new Kc; h.NO_PHYSICS || this.initPhysics(); this.gravityX = this.scene.gravityX; this.gravityY = this.scene.gravityY; this.loadTerrain(); this.loadRegions(); this.loadTerrainRegions(); this.loadActors(); this.loadCamera(); this.loadJoints(); this.loadDeferredActors(); h.initBehaviors(this.behaviors, this.scene.behaviorValues, this, this, !0); this.initActorScripts() }, initPhysics: function () { var a = new M(this.scene.gravityX, this.scene.gravityY); this.world = new ic(a, !1); ic.m_continuousPhysics = !1; ic.m_warmStarting = !0; a = new fa; a.lowerBound.x = 0; a.lowerBound.y = 0; a.upperBound.x = h.screenWidth / h.physicsScale; a.upperBound.y = h.screenHeight / h.physicsScale; this.world.setScreenBounds(a); h.debugDrawer = new Le; h.debugDrawer.setSprite(this.debugLayer); h.debugDrawer.setLineThickness(3); h.debugDrawer.setDrawScale(10 * h.SCALE); h.debugDrawer.setFillAlpha(0); h.debugDrawer.setFlags(Le.e_shapeBit | Le.e_jointBit); this.world.setDebugDraw(h.debugDrawer) }, loadActors: function () { this.actorsToCreate = []; for (var a = this.scene.actors.iterator(); a.hasNext();) { var b = a.next(); this.actorsToCreate.push(this.createActor(b, !0)) } a = 0; for (b = this.interactiveLayers; a < b.length;) { var c = b[a]; ++a; for (var d = 0, e = c.actorContainer.get_numChildren(); d < e;) { var g = d++, r = c.actorContainer.getChildAt(g); for (r = this.scene.actors.h[r.ID]; r.orderInLayer != g;) c.actorContainer.swapChildrenAt(g, r.orderInLayer), r = c.actorContainer.getChildAt(g), r = this.scene.actors.h[r.ID] } } }, loadDeferredActors: function () { for (var a = 0, b = this.actorsToCreateInNextScene; a < b.length;) { var c = b[a]; ++a; f.lastCreatedActor = this.createActorOfType(c.type, c.x, c.y, c.layer) } this.actorsToCreateInNextScene = [] }, initActorScripts: function () { for (var a = 0, b = this.actorsToCreate; a < b.length;) { var c = b[a]; ++a; c.initScripts() } this.actorsToCreate = null }, loadCamera: function () { this.camera = new wb(this, -1, 2, 0, 0, -1, 2, 2, null, null, null, null, !0, !1, !0, !1, null, !0, !1); this.camera.set_name("Camera"); this.camera.isCamera = !0; h.cameraX = 0; h.cameraY = 0 }, loadRegions: function () { this.regions = new Fe(32); this.regions.reuseIterator = !0; for (var a = this.scene.regions.iterator(); a.hasNext();) { var b = a.next(), c = new ud(this, b.x, b.y, b.shapes, b.simpleBounds); c.set_name(b.name); h.NO_PHYSICS || c.setXY(b.x + c.regionWidth / 2, b.y + c.regionHeight / 2); c.ID = b.ID; this.addRegion(c) } }, loadTerrainRegions: function () { this.terrainRegions = new eb; if (!h.NO_PHYSICS) for (var a = this.scene.terrainRegions.iterator(); a.hasNext();) { var b = a.next(), c = new Rg(this, b.x, b.y, b.shapes, b.groupID, b.fillColor); c.set_name(b.name); c.setX(h.toPixelUnits(b.x) + c.regionWidth / 2); c.setY(h.toPixelUnits(b.y) + c.regionHeight / 2); c.ID = b.ID; this.addTerrainRegion(c) } }, loadJoints: function () { if (!h.NO_PHYSICS) for (var a = this.scene.joints.iterator(); a.hasNext();) { var b = a.next(), c = b.actor1, d = b.actor2, e = b.collideConnected; if (3 == b.type) { var g = this.joints; var r = b.ID; b = this.createStickJoint(this.getActor(c).body, this.getActor(d).body, b.ID, e); g.h[r] = b } else if (1 == b.type) { r = w.__cast(b, Nh); g = this.getActor(c).body.getLocalCenter().copy(); g.x = h.toPixelUnits(g.x); g.y = h.toPixelUnits(g.y); c = this.getActor(c).body; d = -1 == d ? this.world.m_groundBody : this.getActor(d).body; var f = this.joints, p = b.ID; b = this.createHingeJoint(c, d, g, b.ID, e, r.enableLimit, r.enableMotor, r.lowerAngle, r.upperAngle, r.maxMotorTorque, -r.motorSpeed); f.h[p] = b } else if (2 == b.type || 7 == b.type) r = w.__cast(b, Oh), g = this.getActor(c).body.getLocalCenter().copy(), g.x = h.toPixelUnits(g.x), g.y = h.toPixelUnits(g.y), c = this.getActor(c).body, d = -1 == d ? this.world.m_groundBody : this.getActor(d).body, g = this.joints, f = b.ID, b = this.createSlidingJoint(c, d, r.localAxisA, b.ID, e, r.enableLimit, r.enableMotor, r.lowerTranslation, r.upperTranslation, r.maxMotorForce, r.motorSpeed), g.h[f] = b } }, loadTerrain: function () { this.initLayers(); for (var a = 0, b = this.scene.wireframes; a < b.length;) { var c = b[a]; ++a; var d = null; h.NO_PHYSICS || (d = new wb(this, 1E8, 1, c.x, c.y, -1, c.width | 0, c.height | 0, null, new xa, null, null, !1, !0, !1, !1, c.shape)); d.set_name("Terrain"); d.typeID = -1; d.set_visible(!1); this.getGroup(1).addChild(d) } }, initLayers: function () { this.setColorBackground(this.scene.colorBackground); this.animatedTiles = this.scene.animatedTiles; if (null != this.animatedTiles) for (var a = 0, b = this.animatedTiles; a < b.length;) { var c = b[a]; ++a; c.currFrame = 0; c.currTime = 0; c.updateSource = !0 } this.layers = this.scene.layers; this.layersToDraw = new eb; this.layersByName = new xa; this.interactiveLayers = []; this.backgroundLayers = []; var d = c = !1, e = 0, g = -1, r = {}; if (0 == this.layers.mSize) { a = new re(0, this.scene, this.scene.sceneWidth / this.scene.tileWidth | 0, this.scene.sceneHeight / this.scene.tileHeight | 0); var f = new Jc(0, "default", 0, 1, 1, 1, 10, a); this.layers.set(f.ID, f) } for (f = this.layers.iterator(); f.hasNext();) a = f.next(), g = Math.max(g, a.order) | 0, r[a.order] = a, this.layersByName.h[a.layerName] = a, a instanceof Jc ? this.interactiveLayers.push(w.__cast(a, Jc)) : a instanceof ae && this.backgroundLayers.push(w.__cast(a, ae)); a = 0; for (b = g + 1; a < b;) { f = a++; var p = g - f; f = r[f]; f.order = p; this.layersToDraw.h[p] = f } a = 0; for (b = g + 1; a < b;) f = a++, f = this.layersToDraw.h[f], f instanceof ae ? (f = w.__cast(f, ae), f.load(), this.master.addChild(f)) : f instanceof Jc && (g = w.__cast(f, Jc), c || (c = !0, this.bottomLayer = g), d || e != Math.floor(this.interactiveLayers.length / 2) || (d = !0, this.middleLayer = g), this.master.addChild(g), this.topLayer = g, g.tiles.mountGrid(), ++e) }, setColorBackground: function (a) { a.draw(this.colorLayer.get_graphics(), 0, 0, h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0) }, optimizePool: function () { for (var a = this.recycledActorsOfType.iterator(); a.hasNext();) { for (var b = a.next(), c = [], d = 0; d < b.length;) { var e = b[d]; ++d; null != e && e.recycled && c.push(e) } for (d = 0; d < c.length;) e = c[d], ++d, K.remove(b, e), this.removeActor(e) } }, cleanup: function () { null != h.debugDrawer && null != h.debugDrawer.m_sprite && h.debugDrawer.m_sprite.get_graphics().clear(); for (var a = 0, b = this.interactiveLayers; a < b.length;) { var c = b[a]; ++a; c.clear() } this.hudLayer.clear(); X.removeAllChildren(this.master); this.behaviors.destroy(); this.camera.destroy(); this.camera = null; if (null != this.world) { a = this.world.getBodyList(); for (b = this.world.getJointList(); null != b;) this.world.destroyJoint(b), b = b.getNext(); for (; null != a;) this.world.destroyBody(a), a = a.getNext() } for (a = this.actorsOfType.iterator(); a.hasNext();) b = a.next(), b.length = 0; for (b = this.recycledActorsOfType.iterator(); b.hasNext();) for (c = b.next(), a = 0; a < c.length;) { var d = c[a]; ++a; d.destroyed || d.destroy() } for (a = this.recycledActorsOfType.iterator(); a.hasNext();) b = a.next(), b.length = 0; for (d = this.allActors.iterator(); d.hasNext();) d.next().destroy(); for (; 0 < ia.count(this.allActors);) for (a = this.allActors.keys(); a.hasNext();) b = a.next(), this.allActors.unset(b); this.scene.unload(); this.nativeListeners = this.whenFocusChanged = this.whenMTEnded = this.whenMTDragged = this.whenMTStarted = this.whenSwiped = this.whenGameScaleChanged = this.whenScreenSizeChanged = this.whenFullscreenChanged = this.whenPaused = this.whenMouseDragged = this.whenMouseMoved = this.whenMouseReleased = this.whenMousePressed = this.whenDrawing = this.whenUpdated = this.whenChannelEndedEvents = this.whenSoundEndedEvents = this.whenCollidedEvents = this.whenTypeGroupPositionStateChangedEvents = this.whenTypeGroupKilledEvents = this.whenTypeGroupCreatedEvents = this.whenAnyGamepadReleased = this.whenAnyGamepadPressed = this.whenAnyKeyReleased = this.whenAnyKeyPressed = this.whenKeyPressedEvents = this.disableCollisionList = this.collisionPairs = this.tasks = this.scene = this.allActors = this.reverseGroups = this.groups = this.joints = this.terrainRegions = this.regions = this.animatedTiles = this.dynamicTiles = this.layersToDraw = this.backgroundLayers = this.interactiveLayers = this.layersByName = this.layers = this.recycledActorsOfType = this.actorsOfType = null; f.lastCreatedActor = null; f.lastCreatedJoint = null; f.lastCreatedRegion = null; f.lastCreatedTerrainRegion = null; L.update(); this.world = null }, switchScene: function (a, b, c) { if (!this.isTransitioning()) { for (var d = zb.get().scenes.iterator(); d.hasNext();) d.next(); null != b && b.isComplete() && b.reset(); if (null == b || 0 == b.duration) b = new sb(0); if (null == c || 0 == c.duration) c = new sb(1); this.leave = b; this.enter = c; this.leave.isComplete() || this.leave.start(); this.sceneToEnter = a } }, enterScene: function () { this.enter.isComplete() || (this.enter.start(), null != this.leave && this.leave.cleanup()); this.leave = null; this.sceneInitialized = !1; this.cleanup(); this.loadScene(this.sceneToEnter); this.sceneInitialized = !0 }, isTransitioning: function () { return null != this.enter && this.enter.isActive() || null != this.leave && this.leave.isActive() ? !0 : !1 }, isTransitioningOut: function () { return null != this.leave && this.leave.isActive() ? !0 : !1 }, createActorInNextScene: function (a, b, c, d) { this.actorsToCreateInNextScene.push(new Qn(a, b, c, d)) }, createActor: function (a, b) { b = w.__cast(pc.get().resources.get(a.actorType.spriteID), si); b = new wb(this, a.elementID, a.groupID, a.x, a.y, a.layerID, -1, -1, b, a.behaviorValues, a.actorType, h.NO_PHYSICS ? null : a.actorType.bodyDef, !1, !1, !1, !1, null, a.actorType.autoScale, a.actorType.ignoreGravity, a.actorType.physicsMode); if (0 != a.angle) if (0 != b.currOffset.x || 0 != b.currOffset.y) { var c = b.currOrigin.x | 0, d = b.currOrigin.y | 0; b.setOriginPoint(b.cacheWidth / 2 | 0, b.cacheHeight / 2 | 0); b.setAngle(a.angle, !1); b.setOriginPoint(c, d) } else b.setAngle(a.angle, !1); if (1 != a.scaleX || 1 != a.scaleY) { var e = b.cacheWidth / 2 | 0, g = b.cacheHeight / 2 | 0; if (b.currOrigin.x != e || b.currOrigin.y != g) c = Math.sin(.01745329251994278 * a.angle), d = Math.cos(.01745329251994278 * a.angle), e = (b.currOrigin.x - e) * a.scaleX - b.currOffset.x, g = (b.currOrigin.y - g) * a.scaleY - b.currOffset.y, b.setX(b.getX(!1) + e * d - g * c), b.setY(b.getY(!1) + e * c + g * d); b.growTo(a.scaleX, a.scaleY, 0) } b.set_name(a.actorType.name); null == this.recycledActorsOfType.h[a.actorType.ID] && (this.recycledActorsOfType.h[a.actorType.ID] = []); c = this.recycledActorsOfType.h[a.actorType.ID]; c.push(b); 2 != a.actorType.physicsMode && (c = this.groups.h[a.groupID], null != c && c.addChild(b)); 1E8 == a.elementID ? (this.nextID++, b.ID = this.nextID, this.allActors.set(b.ID, b)) : (this.allActors.set(b.ID, b), this.nextID = Math.max(b.ID, this.nextID) | 0); b.internalUpdate(0, !1); b.updateDrawingMatrix(); null != a.actorType && -1 != a.actorType.ID && (c = this.actorsOfType.h[a.actorType.ID], null == c && (c = [], this.actorsOfType.h[a.actorType.ID] = c), null != c && c.push(b)); return f.lastCreatedActor = b }, removeActor: function (a) { this.allActors.unset(a.ID); this.removeActorFromLayer(a, a.layer); var b = this.groups, c = a.getGroupID(); b.h[c].removeChild(a); a.destroy(); null != a.type && -1 != a.typeID && (b = this.actorsOfType.h[a.typeID], null != b && K.remove(b, a)) }, removeActorFromLayer: function (a, b) { null != b && a.layer == b && (b == this.hudLayer && (0 == a.physicsMode && a.body.setAlwaysActive(a.alwaysSimulate), a.isHUD = !1, a.cachedLayer = null), b.actorContainer.contains(a) && (b.actorContainer.removeChild(a), a.layer = null)) }, moveActorToLayer: function (a, b) { if (a.layer != b && null != b) { if (null == a.layer || a.layer.scrollFactorX != b.scrollFactorX || a.layer.scrollFactorY != b.scrollFactorY) a.updateMatrix = !0; b == this.hudLayer && (0 == a.physicsMode && a.body.setAlwaysActive(!0), a.isHUD = !0, a.cachedLayer = a.layer); null != a.layer && this.removeActorFromLayer(a, a.layer); b.actorContainer.addChild(a); a.layer = b } }, recycleActor: function (a) { if (null != a && !a.recycled) { var b = h.engine.whenTypeGroupKilledEvents, c = a.getType(), d = b.h[c.__id__]; b = h.engine.whenTypeGroupKilledEvents; c = a.getGroup(); b = b.h[c.__id__]; if (0 < a.whenKilled.length) for (a.whenKilled._dispatchIndex = 0; a.whenKilled._dispatchIndex < a.whenKilled.length;) { try { a.whenKilled.listeners[a.whenKilled._dispatchIndex]() } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++a.whenKilled._dispatchIndex } if (null != d && 0 < d.length) for (d._dispatchIndex = 0; d._dispatchIndex < d.length;) { try { d.listeners[d._dispatchIndex](a) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++d._dispatchIndex } if (null != b && 0 < b.length) for (b._dispatchIndex = 0; b._dispatchIndex < b.length;) { try { b.listeners[b._dispatchIndex](a) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++b._dispatchIndex } a.isHUD && a.unanchorFromScreen(); a.alwaysSimulate && a.makeSometimesSimulate(!1); a.firstMove = !1; a.setXY(1E6, 1E6, !1, !0); a.colX = 1E6; a.colY = 1E6; a.recycled = !0; a.killLeaveScreen = !1; a.lastScreenState = !1; a.lastSceneState = !1; a.cancelTweens(); a.clearFilters(); a.resetBlendMode(); a.set_alpha(1); a.realScaleX = 1; a.realScaleY = 1; a.switchToDefaultAnimation(); a.disableActorDrawing(); a.removeAttachedImages(); if (0 == a.physicsMode && null != a.body) for (d = a.body.getContactList(); null != d;) h.engine.world.m_contactManager.m_contactListener.endContact(d.contact), d = d.next; a.removeAllListeners(); a.resetListeners(); this.removeActorFromLayer(a, a.layer); 0 == a.physicsMode && (a.body.setActive(!1), a.body.setAwake(!1), a.body.setBullet(a.type.bodyDef.bullet), null != a.body.m_prev && (a.body.m_prev.m_next = a.body.m_next), null != a.body.m_next && (a.body.m_next.m_prev = a.body.m_prev), a.body == this.world.m_bodyList && (this.world.m_bodyList = a.body.m_next), a.body.m_prev = null, a.body.m_next = null, --this.world.m_bodyCount); a.xSpeed = 0; a.ySpeed = 0; a.rSpeed = 0; a.continuousCollision = !1; d = 0; for (b = this.tasks; d < b.length;) c = b[d], ++d, c.actor == a && this.removeTask(c); this.allActors.unset(a.ID) } }, getRecycledActorOfType: function (a, b, c, d) { a = this.getRecycledActorOfTypeOnLayer(a, b, c, this.getLayerByOrder(d).ID); h.paused && (a.updateDrawingMatrix(), a.pause()); return a }, getRecycledActorOfTypeOnLayer: function (a, b, c, d) { var e = null; if (null == this.recycledActorsOfType.h[a.ID]) { var g = a.ID; this.recycledActorsOfType.h[g] = [] } g = this.recycledActorsOfType.h[a.ID]; if (null != g) { for (var r = 0; r < g.length;) if (e = g[r], ++r, null != e && e.recycled) { e.createTime = Oa.getTimer(); this.allActors.set(e.ID, e); e.dead = !1; e.dying = !1; e.recycled = !1; e.killLeaveScreen = !1; e.switchToDefaultAnimation(); e.customizedBehaviors ? (e.customizedBehaviors = !1, e.behaviors = new zj, h.initBehaviors(e.behaviors, a.behaviorValues, e, this, !1)) : e.enableAllBehaviors(); 0 == e.physicsMode && (e.body.setActive(!0), e.body.setAwake(!0), e.body.m_prev = null, e.body.m_next = this.world.m_bodyList, null != this.world.m_bodyList && (this.world.m_bodyList.m_prev = e.body), this.world.m_bodyList = e.body, ++this.world.m_bodyCount); e.registry = new xa; e.enableActorDrawing(); e.setXY(b, c, !1, !0); 0 == e.physicsMode && (e.colX = b, e.colY = c); e.setAngle(0, !1); e.setIgnoreGravity(e.defaultGravity); e.set_alpha(1); e.realScaleX = 1; e.realScaleY = 1; null != e.bodyDef && (e.continuousCollision = e.bodyDef.bullet); e.updateDrawingMatrix(!0); this.moveActorToLayer(e, this.getLayerById(d)); e.initScripts(); a = this.whenTypeGroupCreatedEvents.h[a.__id__]; b = this.whenTypeGroupCreatedEvents; g = e.getGroup(); b = b.h[g.__id__]; if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex](e) } catch (v) { if (ra.lastError = v, "string" != typeof I.caught(v).unwrap()) throw v; } ++a._dispatchIndex } if (null != b && 0 < b.length) for (b._dispatchIndex = 0; b._dispatchIndex < b.length;) { try { b.listeners[b._dispatchIndex](e) } catch (v) { if (ra.lastError = v, "string" != typeof I.caught(v).unwrap()) throw v; } ++b._dispatchIndex } return e } e = this.createActorOfType(a, b, c, d) } return e }, createActorOfType: function (a, b, c, d) { if (null == a) return null; b = new Yk(1E8, b | 0, c | 0, 1, 1, d, -1, 0, a.groupID, a.ID, null, !1); b = this.createActor(b, !0); b.initScripts(); a = this.whenTypeGroupCreatedEvents.h[a.__id__]; c = this.whenTypeGroupCreatedEvents; d = b.getGroup(); c = c.h[d.__id__]; if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex](b) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++a._dispatchIndex } if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length;) { try { c.listeners[c._dispatchIndex](b) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++c._dispatchIndex } return b }, getTopLayer: function () { return this.topLayer.ID }, getBottomLayer: function () { return this.bottomLayer.ID }, getMiddleLayer: function () { return this.middleLayer.ID }, update: function (a) { if (null != this.scene) { nb.update(a | 0); if (!h.NO_PHYSICS) { var b = this.world.getScreenBounds(); b.lowerBound.x = (h.cameraX / h.SCALE - h.paddingLeft) / h.physicsScale; b.lowerBound.y = (h.cameraY / h.SCALE - h.paddingTop) / h.physicsScale; b.upperBound.x = b.lowerBound.x + (h.screenWidth + h.paddingRight + h.paddingLeft) / h.physicsScale; b.upperBound.y = b.lowerBound.y + (h.screenHeight + h.paddingBottom + h.paddingTop) / h.physicsScale } b = L.mouseX / h.SCALE | 0; var c = L.mouseY / h.SCALE | 0; if (L.mousePressed && (f.mpx = b, f.mpy = c, 0 < this.whenMousePressed.length)) for (this.whenMousePressed._dispatchIndex = 0; this.whenMousePressed._dispatchIndex < this.whenMousePressed.length;) { try { this.whenMousePressed.listeners[this.whenMousePressed._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenMousePressed._dispatchIndex } if (L.mouseReleased && (f.mrx = b, f.mry = c, 0 < this.whenMouseReleased.length)) for (this.whenMouseReleased._dispatchIndex = 0; this.whenMouseReleased._dispatchIndex < this.whenMouseReleased.length;) { try { this.whenMouseReleased.listeners[this.whenMouseReleased._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenMouseReleased._dispatchIndex } if (this.mx != b || this.my != c) { this.mx = b; this.my = c; if (0 < this.whenMouseMoved.length) for (this.whenMouseMoved._dispatchIndex = 0; this.whenMouseMoved._dispatchIndex < this.whenMouseMoved.length;) { try { this.whenMouseMoved.listeners[this.whenMouseMoved._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenMouseMoved._dispatchIndex } if (L.mouseDown && !L.mousePressed && 0 < this.whenMouseDragged.length) for (this.whenMouseDragged._dispatchIndex = 0; this.whenMouseDragged._dispatchIndex < this.whenMouseDragged.length;) { try { this.whenMouseDragged.listeners[this.whenMouseDragged._dispatchIndex]() } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenMouseDragged._dispatchIndex } } for (var d = 0; d < this.tasks.length;) b = this.tasks[d], b.done || b.update(h.STEP_SIZE), b.done && (K.remove(this.tasks, b), --d), ++d; if (0 < this.whenKeyPressedEvents.keys.length) { b = 0; for (c = this.whenKeyPressedEvents.keys.length; b < c;) { d = b++; var e = this.whenKeyPressedEvents.keys[d]; d = L.pressed(e); var g = L.released(e); if (d || g) if (e = this.whenKeyPressedEvents.map.get(e), 0 < e.length) for (e._dispatchIndex = 0; e._dispatchIndex < e.length;) { try { e.listeners[e._dispatchIndex](d, g) } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++e._dispatchIndex } } this.keyPollOccurred = !0 } if (0 < this.whenUpdated.length) for (this.whenUpdated._dispatchIndex = 0; this.whenUpdated._dispatchIndex < this.whenUpdated.length;) { try { this.whenUpdated.listeners[this.whenUpdated._dispatchIndex](a) } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenUpdated._dispatchIndex } h.NO_PHYSICS || (this.world.step(.01, 3, 3), this.world.clearForces(), h.DEBUG_DRAW && this.world.drawDebugData()); if (0 != this.regions.mSize) for (b = this.regions.iterator(); b.hasNext();) c = b.next(), null != c && c.innerUpdate(a, !0); for (; 0 < this.disableCollisionList.length;) this.disableCollisionList.pop(); if (0 != this.collisionPairs.mSize) for (b = this.collisionPairs.keys(); b.hasNext();) c = b.next(), this.collisionPairs.unset(c); xe.updateAll(a); if (0 != this.allActors.mSize) for (d = this.allActors.iterator(); d.hasNext();) b = d.next(), null == b || b.dead || b.recycled || (c = (0 != b.physicsMode || b.body.isActive()) && b.colX + b.cacheWidth * b.realScaleX >= h.cameraX / h.SCALE - h.paddingLeft && b.colY + b.cacheHeight * b.realScaleY >= h.cameraY / h.SCALE - h.paddingTop && b.colX < h.cameraX / h.SCALE + h.screenWidth + h.paddingRight && b.colY < h.cameraY / h.SCALE + h.screenHeight + h.paddingBottom, b.isOnScreenCache = c || b.isHUD, 0 == b.physicsMode && null != b.body ? b.killLeaveScreen && !c ? this.recycleActor(b) : (b.body.isActive() || b.alwaysSimulate || b.isHUD) && b.innerUpdate(a, !1) : 0 != b.physicsMode && (b.killLeaveScreen && !c ? this.recycleActor(b) : (c || b.alwaysSimulate || b.isHUD) && b.innerUpdate(a, !1)), b.dead && this.disableCollisionList.push(b)); this.keyPollOccurred = !1; b = 0; for (c = this.disableCollisionList.length; b < c;) d = b++, d = this.disableCollisionList[d], null != d && (d.handlesCollisions = !1); b = 0; for (c = this.animatedTiles.length; b < c;) d = b++, d = this.animatedTiles[d], d.update(a), this.tileUpdated = this.tileUpdated || d.updateSource; null != this.leave && this.leave.isActive() ? this.leave.update(a) : null != this.enter && this.enter.isActive() && this.enter.update(a); for (b = this.layers.iterator(); b.hasNext();) b.next().updatePosition(h.cameraX, h.cameraY, a); !h.NO_PHYSICS && h.DEBUG_DRAW && (this.debugLayer.set_x(-h.cameraX), this.debugLayer.set_y(-h.cameraY)); this.isShaking && (this.shakeTimer -= h.STEP_SIZE, 0 >= this.shakeTimer ? this.stopShakingScreen() : (a = -this.shakeIntensity * h.screenHeight + 2 * Math.random() * this.shakeIntensity * h.screenHeight, this.master.set_x((-this.shakeIntensity * h.screenWidth + 2 * Math.random() * this.shakeIntensity * h.screenWidth) * h.SCALE), this.master.set_y(a * h.SCALE))) } }, onUpdate: function (a) { a = Oa.getTimer(); var b = a - this.lastTime; 200 <= b && (b = 200); this.acc += b; h.elapsedTime = b; h.totalElapsedTime += b | 0; null != this.leave ? (this.leave.isComplete() && (this.leave.deactivate(), this.enterScene()), this.postUpdate(a)) : (null != this.enter && this.enter.isComplete() && (this.enter.deactivate(), this.enter.cleanup(), this.enter = null), this.sceneInitialized && this.postUpdate(a)) }, postUpdate: function (a) { for (; this.acc > h.STEP_SIZE;) this.update(h.STEP_SIZE), this.acc -= h.STEP_SIZE, L.update(); this.lastTime = a; if (0 != this.allActors.mSize) for (a = this.allActors.iterator(); a.hasNext();) { var b = a.next(); null == b || 0 == b.physicsMode && null == b.body || (b.dead || b.dying ? this.removeActor(b) : b.updateMatrix || b.resetOrigin ? (b.updateDrawingMatrix(), b.updateMatrix = !1, b.resetOrigin = !1) : b.smoothMove && (b.drawX != b.realX || b.drawY != b.realY) && b.updateDrawingMatrix()) } this.draw() }, onFocus: function (a) { h.inFocus || (h.inFocus = !0, this.focusChanged(!1)) }, onFocusLost: function (a) { h.inFocus && (h.inFocus = !1, this.focusChanged(!0)) }, focusChanged: function (a) { if (null != this.whenFocusChanged && 0 < this.whenFocusChanged.length) for (this.whenFocusChanged._dispatchIndex = 0; this.whenFocusChanged._dispatchIndex < this.whenFocusChanged.length;) { try { this.whenFocusChanged.listeners[this.whenFocusChanged._dispatchIndex](a) } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++this.whenFocusChanged._dispatchIndex } }, handleCollision: function (a, b) { var c = a.typeID, d = b.otherActor.typeID; if (h.NO_PHYSICS) { var e = 1E6 + b.thisActor.groupID; var g = 1E6 + b.otherActor.groupID } else { if (null != b.thisShape) { g = b.thisShape.groupID; if (-1E3 == g) { var r = b.thisShape.getBody(); null != r && (g = r.getUserData().groupID) } e = 1E6 + g } else e = 1E6 + b.thisActor.groupID; null != b.otherShape ? (g = b.otherShape.groupID, -1E3 == g && (r = b.otherShape.getBody(), null != r && (g = r.getUserData().groupID)), g = 1E6 + g) : g = 1E6 + b.otherActor.groupID } if (null != this.collisionPairs) { r = a.ID; var f = this.collisionPairs.mH, p = f.mHash[73856093 * r & f.mMask]; if (-1 == p) r = !1; else { var m = f.mData; if (m[p] == r) r = !0; else { f = !1; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { f = !0; break } p = m[p + 2] } r = f } } r || this.collisionPairs.set(a.ID, new eb); r = b.otherActor.ID; f = this.collisionPairs.mH; p = f.mHash[73856093 * r & f.mMask]; if (-1 == p) r = !1; else if (m = f.mData, m[p] == r) r = !0; else { f = !1; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { f = !0; break } p = m[p + 2] } r = f } r || this.collisionPairs.set(b.otherActor.ID, new eb); f = this.collisionPairs; r = a.ID; m = f.mH; p = m.mHash[73856093 * r & m.mMask]; if (-1 == p) r = -2147483648; else if (m = m.mData, m[p] == r) r = m[p + 1]; else { var l = -2147483648; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { l = m[p + 1]; break } p = m[p + 2] } r = l } if ((-2147483648 == r ? null : f.mVals[r]).h.hasOwnProperty(b.otherActor.ID)) r = !0; else { f = this.collisionPairs; r = b.otherActor.ID; m = f.mH; p = m.mHash[73856093 * r & m.mMask]; if (-1 == p) r = -2147483648; else if (m = m.mData, m[p] == r) r = m[p + 1]; else { l = -2147483648; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { l = m[p + 1]; break } p = m[p + 2] } r = l } r = (-2147483648 == r ? null : f.mVals[r]).h.hasOwnProperty(a.ID) } if (r) return } if (-1 < c || -1 < d) { if (!b.otherCollidedWithTerrain && this.whenCollidedEvents.h.hasOwnProperty(c) && this.whenCollidedEvents.h[c].h.hasOwnProperty(d)) { r = this.whenCollidedEvents.h[c].h[d]; if (0 < r.length) for (r._dispatchIndex = 0; r._dispatchIndex < r.length;) { try { r.listeners[r._dispatchIndex](b) } catch (n) { if (ra.lastError = n, "string" != typeof I.caught(n).unwrap()) throw n; } ++r._dispatchIndex } 0 == r.length && this.whenCollidedEvents.h[c].remove(d) } if (c != d && this.whenCollidedEvents.h.hasOwnProperty(d) && this.whenCollidedEvents.h[d].h.hasOwnProperty(c)) { r = this.whenCollidedEvents.h[d].h[c]; f = b.switchData(Ac.get()); if (0 < r.length) for (r._dispatchIndex = 0; r._dispatchIndex < r.length;) { try { r.listeners[r._dispatchIndex](f) } catch (n) { if (ra.lastError = n, "string" != typeof I.caught(n).unwrap()) throw n; } ++r._dispatchIndex } 0 == r.length && this.whenCollidedEvents.h[d].remove(c) } } if (0 < e && 0 < g) { if (this.whenCollidedEvents.h.hasOwnProperty(e) && this.whenCollidedEvents.h[e].h.hasOwnProperty(g)) { r = this.whenCollidedEvents.h[e].h[g]; if (0 < r.length) for (r._dispatchIndex = 0; r._dispatchIndex < r.length;) { try { r.listeners[r._dispatchIndex](b) } catch (n) { if (ra.lastError = n, "string" != typeof I.caught(n).unwrap()) throw n; } ++r._dispatchIndex } 0 == r.length && this.whenCollidedEvents.h[e].remove(g) } if (e != g && this.whenCollidedEvents.h.hasOwnProperty(g) && this.whenCollidedEvents.h[g].h.hasOwnProperty(e)) { r = this.whenCollidedEvents.h[g].h[e]; f = b.switchData(Ac.get()); if (0 < r.length) for (r._dispatchIndex = 0; r._dispatchIndex < r.length;) { try { r.listeners[r._dispatchIndex](f) } catch (n) { if (ra.lastError = n, "string" != typeof I.caught(n).unwrap()) throw n; } ++r._dispatchIndex } 0 == r.length && this.whenCollidedEvents.h[g].remove(e) } } if (null != this.collisionPairs) { f = this.collisionPairs; r = a.ID; m = f.mH; p = m.mHash[73856093 * r & m.mMask]; if (-1 == p) r = -2147483648; else if (m = m.mData, m[p] == r) r = m[p + 1]; else { l = -2147483648; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { l = m[p + 1]; break } p = m[p + 2] } r = l } (-2147483648 == r ? null : f.mVals[r]).h[b.otherActor.ID] = !1; f = this.collisionPairs; r = b.otherActor.ID; m = f.mH; p = m.mHash[73856093 * r & m.mMask]; if (-1 == p) r = -2147483648; else if (m = m.mData, m[p] == r) r = m[p + 1]; else { l = -2147483648; for (p = m[p + 2]; -1 != p;) { if (m[p] == r) { l = m[p + 1]; break } p = m[p + 2] } r = l } (-2147483648 == r ? null : f.mVals[r]).h[a.ID] = !1 } }, soundFinished: function (a) { var b = w.__cast(this.channels[a], ac); if (null != this.whenSoundEndedEvents) { var c = this.whenSoundEndedEvents.h[b.currentClip.__id__]; b.currentSound = null; if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length;) { try { c.listeners[c._dispatchIndex]() } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } ++c._dispatchIndex } } else b.currentSound = null; if (null != this.whenChannelEndedEvents && (a = this.whenChannelEndedEvents.h[a], null != a && 0 < a.length)) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex]() } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } ++a._dispatchIndex } }, addTask: function (a) { this.tasks.push(a) }, removeTask: function (a) { K.remove(this.tasks, a) }, shakeScreen: function (a, b) { this.shakeTimer = h.MS_PER_SEC * b | 0; this.isShaking = !0; this.shakeIntensity = a }, stopShakingScreen: function () { this.shakeTimer = 0; this.isShaking = !1; this.master.set_x(0); this.master.set_y(0) }, cameraFollow: function (a, b, c) { this.moveCamera(a.colX + a.cacheWidth / 2, a.colY + a.cacheHeight / 2) }, moveCamera: function (a, b) { this.camera.setLocation(a, b); h.cameraX = this.camera.realX - h.screenWidthHalf; h.cameraY = this.camera.realY - h.screenHeightHalf; h.limitCameraToScene && (h.cameraX = Math.max(0, Math.min(h.sceneWidth - h.screenWidth, h.cameraX)), h.cameraY = Math.max(0, Math.min(h.sceneHeight - h.screenHeight, h.cameraY))); h.cameraX *= h.SCALE; h.cameraY *= h.SCALE; 1 != this.zoomMultiplier && this.isHUDZoomable && (this.hudLayer.set_x(-f.getScreenX()), this.hudLayer.set_y(-f.getScreenY())) }, setZoom: function (a, b) { null == b && (b = !0); 0 >= a || this.zoomMultiplier == a || (this.zoomMultiplier = a, this.root.set_scaleX(h.screenScaleX = a * h.unzoomedScaleX), this.root.set_scaleY(h.screenScaleY = a * h.unzoomedScaleY), b && (h.screenWidth = 1 / a * ua.logicalWidth | 0, h.screenWidthHalf = h.screenWidth / 2 | 0, h.screenHeight = 1 / a * ua.logicalHeight | 0, h.screenHeightHalf = h.screenHeight / 2 | 0), this.setColorBackground(this.scene.colorBackground), this.root.set_scrollRect(new ba(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE)), this.moveCamera(this.camera.realX, this.camera.realY), this.isHUDZoomable || (this.hudLayer.set_scaleX(1 / a), this.hudLayer.set_scaleY(1 / a))) }, pause: function () { if (!this.isTransitioning()) { h.paused = !0; if (0 != this.allActors.mSize) for (var a = this.allActors.keys(); a.hasNext();) { var b = a.next(), c = this.allActors, d = c.mH, e = d.mHash[73856093 * b & d.mMask]; if (-1 == e) b = -2147483648; else if (d = d.mData, d[e] == b) b = d[e + 1]; else { var g = -2147483648; for (e = d[e + 2]; -1 != e;) { if (d[e] == b) { g = d[e + 1]; break } e = d[e + 2] } b = g } c = -2147483648 == b ? null : c.mVals[b]; null != c && c.pause() } f.pauseSoundOnChannel(0); f.pauseSoundOnChannel(1); f.pauseSoundOnChannel(2); f.pauseSoundOnChannel(3); f.pauseSoundOnChannel(4); f.pauseSoundOnChannel(5); f.pauseSoundOnChannel(6); f.pauseSoundOnChannel(7); f.pauseSoundOnChannel(8); f.pauseSoundOnChannel(9); f.pauseSoundOnChannel(10); f.pauseSoundOnChannel(11); f.pauseSoundOnChannel(12); f.pauseSoundOnChannel(13); f.pauseSoundOnChannel(14); f.pauseSoundOnChannel(15); f.pauseSoundOnChannel(16); f.pauseSoundOnChannel(17); f.pauseSoundOnChannel(18); f.pauseSoundOnChannel(19); f.pauseSoundOnChannel(20); f.pauseSoundOnChannel(21); f.pauseSoundOnChannel(22); f.pauseSoundOnChannel(23); f.pauseSoundOnChannel(24); f.pauseSoundOnChannel(25); f.pauseSoundOnChannel(26); f.pauseSoundOnChannel(27); f.pauseSoundOnChannel(28); f.pauseSoundOnChannel(29); f.pauseSoundOnChannel(30); f.pauseSoundOnChannel(31); if (0 < this.whenPaused.length) for (this.whenPaused._dispatchIndex = 0; this.whenPaused._dispatchIndex < this.whenPaused.length;) { try { this.whenPaused.listeners[this.whenPaused._dispatchIndex](!0) } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenPaused._dispatchIndex } } }, unpause: function () { h.paused = !1; if (0 != this.allActors.mSize) for (var a = this.allActors.keys(); a.hasNext();) { var b = a.next(), c = this.allActors, d = c.mH, e = d.mHash[73856093 * b & d.mMask]; if (-1 == e) b = -2147483648; else if (d = d.mData, d[e] == b) b = d[e + 1]; else { var g = -2147483648; for (e = d[e + 2]; -1 != e;) { if (d[e] == b) { g = d[e + 1]; break } e = d[e + 2] } b = g } c = -2147483648 == b ? null : c.mVals[b]; null != c && c.unpause() } f.resumeSoundOnChannel(0); f.resumeSoundOnChannel(1); f.resumeSoundOnChannel(2); f.resumeSoundOnChannel(3); f.resumeSoundOnChannel(4); f.resumeSoundOnChannel(5); f.resumeSoundOnChannel(6); f.resumeSoundOnChannel(7); f.resumeSoundOnChannel(8); f.resumeSoundOnChannel(9); f.resumeSoundOnChannel(10); f.resumeSoundOnChannel(11); f.resumeSoundOnChannel(12); f.resumeSoundOnChannel(13); f.resumeSoundOnChannel(14); f.resumeSoundOnChannel(15); f.resumeSoundOnChannel(16); f.resumeSoundOnChannel(17); f.resumeSoundOnChannel(18); f.resumeSoundOnChannel(19); f.resumeSoundOnChannel(20); f.resumeSoundOnChannel(21); f.resumeSoundOnChannel(22); f.resumeSoundOnChannel(23); f.resumeSoundOnChannel(24); f.resumeSoundOnChannel(25); f.resumeSoundOnChannel(26); f.resumeSoundOnChannel(27); f.resumeSoundOnChannel(28); f.resumeSoundOnChannel(29); f.resumeSoundOnChannel(30); f.resumeSoundOnChannel(31); if (0 < this.whenPaused.length) for (this.whenPaused._dispatchIndex = 0; this.whenPaused._dispatchIndex < this.whenPaused.length;) { try { this.whenPaused.listeners[this.whenPaused._dispatchIndex](!1) } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } ++this.whenPaused._dispatchIndex } }, isPaused: function () { return h.paused }, draw: function () { for (var a = 0, b = this.interactiveLayers; a < b.length;) { var c = b[a]; ++a; c.overlay.get_graphics().clear() } this.hudLayer.overlay.get_graphics().clear(); this.g.graphics = this.transitionLayer.get_graphics(); this.g.graphics.clear(); c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 != this.allActors.mSize) for (a = this.allActors.iterator(); a.hasNext();) if (b = a.next(), 0 < b.whenDrawing.length && null != b.layer) { this.g.graphics = b.layer.overlay.get_graphics(); c = this.g; c.drawActor = !0; c.actor = b; if (b.smoothMove) { var d = b.drawY - Math.floor(b.cacheHeight / 2) - b.currOffset.y; c.x = (b.drawX - Math.floor(b.cacheWidth / 2) - b.currOffset.x) * c.scaleX; c.y = d * c.scaleY } else c.x = b.colX * c.scaleX, c.y = b.colY * c.scaleY; c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 < b.whenDrawing.length) for (b.whenDrawing._dispatchIndex = 0; b.whenDrawing._dispatchIndex < b.whenDrawing.length;) { try { b.whenDrawing.listeners[b.whenDrawing._dispatchIndex](this.g, 0, 0) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++b.whenDrawing._dispatchIndex } } a = 0; for (b = this.interactiveLayers; a < b.length;) if (c = b[a], ++a, c.cameraMoved || this.tileUpdated) c.tiles.draw(h.cameraX * c.scrollFactorX | 0, h.cameraY * c.scrollFactorY | 0), c.cameraMoved = !1; this.tileUpdated = !1; this.g.graphics = this.transitionLayer.get_graphics(); c = this.g; c.drawActor = !1; c.actor = null; c.x = 0; c.y = 0; c = this.g; c.alpha = 1; c.strokeSize = 0; c.fillColor = 0; c.strokeColor = 0; c.font = c.defaultFont; if (0 < this.whenDrawing.length) for (this.whenDrawing._dispatchIndex = 0; this.whenDrawing._dispatchIndex < this.whenDrawing.length;) { try { this.whenDrawing.listeners[this.whenDrawing._dispatchIndex](this.g, 0, 0) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++this.whenDrawing._dispatchIndex } ca.visitStringCache(); null != this.leave && this.leave.isActive() ? this.leave.draw(null) : null != this.enter && this.enter.isActive() && this.enter.draw(null); null != this.shaders && 0 < this.shaders.length && this.shaders[0].capture() }, getValue: function (a, b) { return this.behaviors.getAttribute(a, b) }, setValue: function (a, b, c) { this.behaviors.setAttribute(a, b, c) }, say: function (a, b, c) { return this.behaviors.call2(a, b, c) }, shout: function (a, b) { return this.behaviors.call(a, b) }, getActor: function (a) { var b = this.allActors, c = b.mH, d = c.mHash[73856093 * a & c.mMask]; if (-1 == d) a = -2147483648; else if (c = c.mData, c[d] == a) a = c[d + 1]; else { var e = -2147483648; for (d = c[d + 2]; -1 != d;) { if (c[d] == a) { e = c[d + 1]; break } d = c[d + 2] } a = e } return -2147483648 == a ? null : b.mVals[a] }, getActorsOfType: function (a) { return null == a ? [] : null != this.actorsOfType.h[a.ID] ? this.actorsOfType.h[a.ID] : [] }, getRecycledActorsOfType: function (a) { return this.recycledActorsOfType.h[a.ID] }, getLayer: function (a, b) { return 0 == a ? this.getLayerById(z.parseInt(b)) : this.getLayerByName(b) }, getLayerById: function (a, b) { null == b && (b = !0); if (-1 == a) return null; var c = h.engine.layers, d = c.mH, e = d.mHash[73856093 * a & d.mMask]; if (-1 == e) a = -2147483648; else if (d = d.mData, d[e] == a) a = d[e + 1]; else { var g = -2147483648; for (e = d[e + 2]; -1 != e;) { if (d[e] == a) { g = d[e + 1]; break } e = d[e + 2] } a = g } c = -2147483648 == a ? null : c.mVals[a]; null == c && b && (c = this.topLayer); return c }, getLayerByName: function (a, b) { null == b && (b = !0); a = h.engine.layersByName.h[a]; null == a && b && (a = this.topLayer); return a }, getLayerByOrder: function (a) { switch (a) { case 0: return this.topLayer; case 1: return this.middleLayer; case 2: return this.bottomLayer; default: return this.topLayer } }, sendToBack: function (a) { a.isHUD || this.moveActorToLayer(a, this.bottomLayer) }, sendBackward: function (a) { if (!a.isHUD) for (var b = a.layer.order; this.layersToDraw.h.hasOwnProperty(--b);) if (this.layersToDraw.h[b] instanceof Jc) { this.moveActorToLayer(a, this.layersToDraw.h[b]); break } }, bringToFront: function (a) { a.isHUD || this.moveActorToLayer(a, this.topLayer) }, bringForward: function (a) { if (!a.isHUD) for (var b = a.layer.order; this.layersToDraw.h.hasOwnProperty(++b);) if (this.layersToDraw.h[b] instanceof Jc) { this.moveActorToLayer(a, this.layersToDraw.h[b]); break } }, getNumberOfActorsWithinLayer: function (a) { return a instanceof Jc ? w.__cast(a, Jc).actorContainer.get_numChildren() : 0 }, getNumberOfLayers: function () { return this.master.get_numChildren() }, getOrderOfLayer: function (a) { return a.order }, moveLayerToOrder: function (a, b) { 0 > b && (b = 0); b > this.master.get_numChildren() - 1 && (b = this.master.get_numChildren() - 1); a.order != b && (this.master.setChildIndex(a, b), this.refreshLayers()) }, getNextLayerID: function () { for (var a = -1, b = this.layers.iterator(); b.hasNext();) { var c = b.next(); a = Math.max(a, c.ID) | 0 } return a + 1 }, insertLayer: function (a, b) { this.master.addChildAt(a, b); a instanceof ae ? this.backgroundLayers.push(w.__cast(a, ae)) : a instanceof Jc && this.interactiveLayers.push(w.__cast(a, Jc)); this.layers.set(a.ID, a); this.layersByName.h[a.layerName] = a; this.refreshLayers() }, removeLayer: function (a) { this.master.removeChild(a); a instanceof ae ? K.remove(this.backgroundLayers, w.__cast(a, ae)) : a instanceof Jc && K.remove(this.interactiveLayers, w.__cast(a, Jc)); this.layers.unset(a.ID); a = a.layerName; var b = this.layersByName; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; this.refreshLayers() }, refreshLayers: function () { for (var a = !1, b = !1, c = 0, d = 0, e = this.master.get_numChildren(); d < e;) { var g = d++, r = w.__cast(this.master.getChildAt(g), Bg); this.layersToDraw.h[g] = r; r.order = g; r instanceof Jc && (a || (a = !0, this.bottomLayer = r), b || c != Math.floor(this.interactiveLayers.length / 2) || (b = !0, this.middleLayer = r), this.topLayer = r, ++c) } }, getPhysicalWidth: function () { return this.physicalWidth }, getPhysicalHeight: function () { return this.physicalHeight }, enableGlobalSleeping: function () { this.world.m_allowSleep = !0 }, disableGlobalSleeping: function () { this.world.m_allowSleep = !1 }, getGroup: function (a, b) { return -1E3 == a && null != b ? (a = this.groups, b = b.getGroupID(), a.h[b]) : this.groups.h[a] }, getGroupByName: function (a) { a = this.reverseGroups.h[a]; return null == a ? this.groups.h[3] : a }, nextJointID: function () { for (var a = -1, b = this.joints.iterator(); b.hasNext();) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0) } return a + 1 }, addJoint: function (a) { var b = this.nextJointID(); a.ID = b; this.joints.h[b] = a }, getJoint: function (a) { return this.joints.h[a] }, destroyJoint: function (a) { this.joints.remove(a.ID); this.world.destroyJoint(a) }, createStickJoint: function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = 0); null == d && (d = !1); null == c && (c = -1); var r = a.getLocalCenter(), f = b.getLocalCenter(); 0 == a.getType() && (r.x = a.getUserData().getPhysicsWidth() / 2, r.y = a.getUserData().getPhysicsHeight() / 2); 0 == b.getType() && (f.x = b.getUserData().getPhysicsWidth() / 2, f.y = b.getUserData().getPhysicsHeight() / 2); r = a.getWorldPoint(r); f = b.getWorldPoint(f); var p = new Mh; p.initialize(a, b, r, f); p.collideConnected = d; p.dampingRatio = e; p.frequencyHz = g; a = this.world.createJoint(p); -1 == c ? this.addJoint(a) : (this.joints.h[c] = a, a.ID = c); return w.__cast(a, qi) }, createCustomStickJoint: function (a, b, c, d, e, g) { b = new M(b, c); e = new M(e, g); b.x = h.toPhysicalUnits(b.x); b.y = h.toPhysicalUnits(b.y); e.x = h.toPhysicalUnits(e.x); e.y = h.toPhysicalUnits(e.y); b = a.getWorldPoint(b); e = d.getWorldPoint(e); g = new Mh; g.initialize(a, d, b, e); a = this.world.createJoint(g); this.addJoint(a); return w.__cast(a, qi) }, createHingeJoint: function (a, b, c, d, e, g, r, f, p, m, l) { null == l && (l = 0); null == m && (m = 0); null == p && (p = 0); null == f && (f = 0); null == r && (r = !1); null == g && (g = !1); null == e && (e = !1); null == d && (d = -1); null == b && (b = this.world.m_groundBody); null == c && (c = a.getLocalCenter()); var v = new Nh; v.bodyA = a; v.bodyB = b; c.x = h.toPhysicalUnits(c.x); c.y = h.toPhysicalUnits(c.y); v.localAnchorA = c; v.localAnchorB = b.getLocalPoint(a.getWorldPoint(c)); v.collideConnected = e; v.enableLimit = g; v.enableMotor = r; v.lowerAngle = f; v.upperAngle = p; v.maxMotorTorque = m; v.motorSpeed = l; a = this.world.createJoint(v); -1 == d ? this.addJoint(a) : (this.joints.h[d] = a, a.ID = d); return w.__cast(a, eg) }, createSlidingJoint: function (a, b, c, d, e, g, r, f, p, m, l) { null == l && (l = 0); null == m && (m = 0); null == p && (p = 0); null == f && (f = 0); null == r && (r = !1); null == g && (g = !1); null == e && (e = !1); null == d && (d = -1); null == b && (b = this.world.m_groundBody); null == c && (c = new M(1, 0)); c.normalize(); var v = a.getWorldCenter(), k = b.getWorldCenter(); 0 == a.getType() && null != a.getUserData() && (v.x = a.getUserData().getPhysicsWidth() / 2, v.y = a.getUserData().getPhysicsHeight() / 2, v = a.getWorldPoint(v)); 0 == b.getType() && null != b.getUserData() && (k.x = b.getUserData().getPhysicsWidth() / 2, k.y = b.getUserData().getPhysicsHeight() / 2, b.getWorldPoint(k)); k = new Oh; k.initialize(a, b, v, c); k.collideConnected = e; k.enableLimit = g; k.enableMotor = r; k.lowerTranslation = h.toPhysicalUnits(f); k.upperTranslation = h.toPhysicalUnits(p); k.maxMotorForce = m; k.motorSpeed = h.toPhysicalUnits(l); a = this.world.createJoint(k); -1 == d ? this.addJoint(a) : (this.joints.h[d] = a, a.ID = d); return w.__cast(a, xj) }, createRegion: function (a, b, c, d) { null == d && (d = !1); var e = []; e.push(c); c = new ud(this, a, b, e); d && c.setXY(a + c.regionWidth / 2, b + c.regionHeight / 2); this.addRegion(c); return c }, createBoxRegion: function (a, b, c, d) { if (h.NO_PHYSICS) return a = new ud(this, a, b, [], new ba(0, 0, c, d)), this.addRegion(a), a; c = h.toPhysicalUnits(c); d = h.toPhysicalUnits(d); var e = new Jb; e.setAsBox(c / 2, d / 2); return this.createRegion(a, b, e, !0) }, createCircularRegion: function (a, b, c) { if (h.NO_PHYSICS) return a = new ud(this, a, b, [], new ba(0, 0, 2 * c, 2 * c)), this.addRegion(a), a; c = h.toPhysicalUnits(c); var d = new Qc; d.m_radius = c; return this.createRegion(a, b, d, !0) }, addRegion: function (a) { -1 == a.ID && (a.ID = this.nextRegionID()); this.regions.set(a.ID, a); h.NO_PHYSICS && this.groups.h[-2].addChild(a) }, removeRegion: function (a) { a = this.getRegion(a); this.regions.unset(a.ID); a.destroy(); h.NO_PHYSICS && this.groups.h[-2].removeChild(a) }, getRegion: function (a) { var b = this.regions, c = b.mH, d = c.mHash[73856093 * a & c.mMask]; if (-1 == d) a = -2147483648; else if (c = c.mData, c[d] == a) a = c[d + 1]; else { var e = -2147483648; for (d = c[d + 2]; -1 != d;) { if (c[d] == a) { e = c[d + 1]; break } d = c[d + 2] } a = e } return -2147483648 == a ? null : b.mVals[a] }, getRegions: function () { return this.regions }, nextRegionID: function () { for (var a = -1, b = this.regions.iterator(); b.hasNext();) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0) } return a + 1 }, isInRegion: function (a, b) { if (null != b) { var c = this.regions; var d = b.getID(), e = c.mH, g = e.mHash[73856093 * d & e.mMask]; if (-1 == g) d = -2147483648; else if (e = e.mData, e[g] == d) d = e[g + 1]; else { var r = -2147483648; for (g = e[g + 2]; -1 != g;) { if (e[g] == d) { r = e[g + 1]; break } g = e[g + 2] } d = r } c = null != (-2147483648 == d ? null : c.mVals[d]) } else c = !1; return c ? b.containsActor(a) : !1 }, createTerrainRegion: function (a, b, c, d, e) { null == e && (e = 1); null == d && (d = !1); var g = []; g.push(c); c = new Rg(this, a, b, g, e); d && c.setXY(a + c.regionWidth / 2, b + c.regionHeight / 2); this.addTerrainRegion(c); return c }, createBoxTerrainRegion: function (a, b, c, d, e) { null == e && (e = 1); c = h.toPhysicalUnits(c); d = h.toPhysicalUnits(d); var g = new Jb; g.setAsBox(c / 2, d / 2); return this.createTerrainRegion(a, b, g, !0, e) }, createCircularTerrainRegion: function (a, b, c, d) { null == d && (d = 1); c = h.toPhysicalUnits(c); var e = new Qc; e.m_radius = c; return this.createTerrainRegion(a, b, e, !0, d) }, addTerrainRegion: function (a) { -1 == a.ID && (a.ID = this.nextTerrainRegionID()); this.terrainRegions.h[a.ID] = a }, removeTerrainRegion: function (a) { var b = this.getTerrainRegion(a); this.terrainRegions.remove(a); b.destroy() }, getTerrainRegion: function (a) { return this.terrainRegions.h[a] }, getTerrainRegions: function () { return this.terrainRegions }, nextTerrainRegionID: function () { for (var a = -1, b = this.terrainRegions.iterator(); b.hasNext();) { var c = b.next(); null != c && (a = Math.max(a, c.ID) | 0) } return a + 1 }, setGameAttribute: function (a, b) { this.gameAttributes.h[a] = b }, getGameAttribute: function (a) { return this.gameAttributes.h[a] }, restoreGameAttributes: function () { var a = pc.get().readGameMbs(); a = Be.readMap(a.getGameAttributes()); this.gameAttributes.h = Object.create(null); for (var b = Object.keys(a.h), c = b.length, d = 0; d < c;) { var e = b[d++]; this.gameAttributes.h[e] = a.h[e] } }, setOffscreenTolerance: function (a, b, c, d) { h.paddingTop = a; h.paddingLeft = b; h.paddingBottom = c; h.paddingRight = d }, setScrollFactor: function (a, b, c) { this.setLayerScrollFactor(this.getLayerById(a), b, c) }, setLayerScrollFactor: function (a, b, c) { null == c && (c = b); a.scrollFactorX = b; a.scrollFactorY = c }, __class__: h }; var Rn = function (a, b) { this.inputControlMap = a; this.getInputs = b }; k["com.stencyl.InputMethod_Int"] = Rn; Rn.__name__ = "com.stencyl.InputMethod_Int"; Rn.prototype = { inputControlMap: null, getInputs: null, mapInputToControl: function (a, b) { this.inputControlMap.exists(a) || this.inputControlMap.set(a, []); for (var c = this.inputControlMap.get(a), d = 0; d < c.length;) { var e = c[d]; ++d; e != b && (K.remove(this.getInputs(e), a), L.controlStateUpdated(e)) } -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), c.push(b), L.controlStateUpdated(b)) }, unmapInput: function (a) { var b = this.inputControlMap.get(a); if (null != b) for (var c = 0; c < b.length;) { var d = b[c]; ++c; K.remove(this.getInputs(d), a); L.controlStateUpdated(d) } this.inputControlMap.remove(a) }, addInputToControl: function (a, b) { -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), L.controlStateUpdated(b), this.inputControlMap.exists(a) || this.inputControlMap.set(a, []), this.inputControlMap.get(a).push(b)) }, removeInputFromControl: function (a, b) { if (-1 != this.getInputs(b).indexOf(a)) { K.remove(this.getInputs(b), a); L.controlStateUpdated(b); var c = this.inputControlMap.get(a); K.remove(c, b); 0 == c.length && this.inputControlMap.remove(a) } }, getInputsForControl: function (a) { return null != a ? this.getInputs(a) : null }, removeAllInputsFromControl: function (a) { for (var b = this.getInputs(a); 0 < b.length;) { var c = b.pop(), d = this.inputControlMap.get(c); K.remove(d, a); 0 == d.length && this.inputControlMap.remove(c) } L.controlStateUpdated(a) }, __class__: Rn }; var L = function () { }; k["com.stencyl.Input"] = L; L.__name__ = "com.stencyl.Input"; L.resetStatics = function () { h.stage.removeEventListener("keyDown", L.onKeyDown); h.stage.removeEventListener("keyUp", L.onKeyUp); h.stage.removeEventListener("mouseDown", L.onMouseDown); h.stage.removeEventListener("mouseUp", L.onMouseUp); h.stage.removeEventListener("mouseWheel", L.onMouseWheel); h.stage.removeEventListener("rightMouseDown", L.onRightMouseDown); h.stage.removeEventListener("rightMouseUp", L.onRightMouseUp); h.stage.removeEventListener("middleMouseDown", L.onMiddleMouseDown); h.stage.removeEventListener("middleMouseUp", L.onMiddleMouseUp); Ce.get_supportsTouchEvents() && (h.stage.removeEventListener("touchBegin", L.onTouchBegin), h.stage.removeEventListener("touchMove", L.onTouchMove), h.stage.removeEventListener("touchEnd", L.onTouchEnd)); L._roxAgent.detach(); h.engine.root.removeEventListener("rox_gesture_swipe", L.onSwipe); L.mouseX = 0; L.mouseY = 0; L.mouseDown = L.mousePressed = L.mouseReleased = L.mouseWheel = !1; L.rightMouseDown = L.rightMousePressed = L.rightMouseReleased = !1; L.middleMouseDown = L.middleMousePressed = L.middleMouseReleased = !1; L.mouseWheelDelta = 0; L.accelX = L.accelY = L.accelZ = 0; L.multiTouchPoints = null; L.numTouches = 0; L._swipeDirection = 0; L.swipedUp = L.swipedDown = L.swipedRight = L.swipedLeft = !1; L._roxAgent = null; L._enabled = !1; L._key = []; L._keyInput.inputControlMap = new eb; L._controlMap = new xa; L._controlsToReset = [] }; L.define = function (a, b) { if (null == L._controlMap.h[a]) { var c = L._controlMap, d = new Zk(a); c.h[a] = d } else L.unmapControl(a); for (c = 0; c < b.length;) d = b[c], ++c, L.addKeyToControl(d, a) }; L.mapKey = function (a, b) { L._keyInput.mapInputToControl(a, L._controlMap.h[b]) }; L.unmapKey = function (a) { L._keyInput.unmapInput(a) }; L.addKeyToControl = function (a, b) { L._keyInput.addInputToControl(a, L._controlMap.h[b]) }; L.removeKeyFromControl = function (a, b) { L._keyInput.removeInputFromControl(a, L._controlMap.h[b]) }; L.getKeys = function (a) { return L._keyInput.getInputsForControl(L._controlMap.h[a]) }; L.mapJoystickButton = function (a, b) { }; L.unmapJoystickButton = function (a) { }; L.addJoystickButtonToControl = function (a, b) { }; L.removeJoystickButtonFromControl = function (a, b) { }; L.getJoystickButtons = function (a) { return null }; L.unmapControl = function (a) { L._keyInput.removeAllInputsFromControl(L._controlMap.h[a]) }; L.unmapKeyboardFromControl = function (a) { L._keyInput.removeAllInputsFromControl(L._controlMap.h[a]) }; L.unmapJoystickFromControl = function (a) { }; L.setJoySensitivity = function (a) { }; L.saveJoystickConfig = function (a) { }; L.loadJoystickConfig = function (a) { }; L.clearJoystickConfig = function () { }; L.loadInputConfig = function () { for (var a = Object.keys(aa.keys.h), b = a.length, c = 0; c < b;) { for (var d = a[c++], e = aa.keys.h[d], g = [], r = 0; r < e.length;) { var f = e[r]; ++r; g.push(Ma.keyFromName(f)) } e = g; g = new Zk(d); L._controlMap.h[d] = g; for (d = 0; d < e.length;) r = e[d], ++d, L._keyInput.addInputToControl(r, g) } }; L.check = function (a) { a = L._controlMap.h[a]; return null != a ? a.down : !1 }; L.pressed = function (a) { a = L._controlMap.h[a]; return null != a ? a.pressed : !1 }; L.released = function (a) { a = L._controlMap.h[a]; return null != a ? a.released : !1 }; L.getButtonPressure = function (a) { a = L._controlMap.h[a]; return null != a ? a.pressure : 0 }; L.simulateKeyPress = function (a) { L.controlPressed(L._controlMap.h[a], 1) }; L.simulateKeyRelease = function (a) { L.controlReleased(L._controlMap.h[a]) }; L.enableJoystick = function () { }; L.enable = function () { L._enabled || null == h.stage || (h.stage.addEventListener("keyDown", L.onKeyDown, !1, 2), h.stage.addEventListener("keyUp", L.onKeyUp, !1, 2), h.stage.addEventListener("mouseDown", L.onMouseDown, !1, 2), h.stage.addEventListener("mouseUp", L.onMouseUp, !1, 2), h.stage.addEventListener("mouseWheel", L.onMouseWheel, !1, 2), h.stage.addEventListener("rightMouseDown", L.onRightMouseDown, !1, 2), h.stage.addEventListener("rightMouseUp", L.onRightMouseUp, !1, 2), h.stage.addEventListener("middleMouseDown", L.onMiddleMouseDown, !1, 2), h.stage.addEventListener("middleMouseUp", L.onMiddleMouseUp, !1, 2), Ce.get_supportsTouchEvents() && (L.multiTouchPoints = new xa, Ce.inputMode = 2, h.stage.addEventListener("touchBegin", L.onTouchBegin), h.stage.addEventListener("touchMove", L.onTouchMove), h.stage.addEventListener("touchEnd", L.onTouchEnd)), L._roxAgent = new vb(h.engine.root, 2), h.engine.root.addEventListener("rox_gesture_swipe", L.onSwipe), L._swipeDirection = -1, L.swipedLeft = !1, L.swipedRight = !1, L.swipedUp = !1, L.swipedDown = !1, L.mouseX = 0, L.mouseY = 0, L.accelX = 0, L.accelY = 0, L.accelZ = 0, L.numTouches = 0, L._enabled = !0) }; L.update = function () { L.swipedLeft = !1; L.swipedRight = !1; L.swipedUp = !1; L.swipedDown = !1; if (-1 < L._swipeDirection) { switch (L._swipeDirection) { case 0: L.swipedLeft = !0; break; case 1: L.swipedRight = !0; break; case 2: L.swipedUp = !0; break; case 3: L.swipedDown = !0 } if (0 < h.engine.whenSwiped.length) for (h.engine.whenSwiped._dispatchIndex = 0; h.engine.whenSwiped._dispatchIndex < h.engine.whenSwiped.length;) { try { h.engine.whenSwiped.listeners[h.engine.whenSwiped._dispatchIndex]() } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++h.engine.whenSwiped._dispatchIndex } L._swipeDirection = -1 } L.mouseX = (h.stage.get_mouseX() - h.screenOffsetX) / h.screenScaleX; L.mouseY = (h.stage.get_mouseY() - h.screenOffsetY) / h.screenScaleY; for (var a = L._controlsToReset.length; 0 <= --a;) { var b = L._controlsToReset.pop(); b.pressed = !1; b.released = !1 } L.mousePressed && (L.mousePressed = !1); L.mouseReleased && (L.mouseReleased = !1); L.rightMousePressed && (L.rightMousePressed = !1); L.rightMouseReleased && (L.rightMouseReleased = !1); L.middleMousePressed && (L.middleMousePressed = !1); L.middleMouseReleased && (L.middleMouseReleased = !1); L.mouseWheelDelta = 0 }; L.onSwipe = function (a) { a = w.__cast(a.extra, na); Math.abs(a.x) <= Math.abs(a.y) ? L._swipeDirection = 0 >= a.y ? 2 : 3 : Math.abs(a.x) > Math.abs(a.y) && (L._swipeDirection = 0 >= a.x ? 0 : 1) }; L.controlsPressed = function (a, b) { if (null != a) for (var c = 0; c < a.length;) { var d = a[c]; ++c; L.controlPressed(d, b) } }; L.controlsReleased = function (a) { if (null != a) for (var b = 0; b < a.length;) { var c = a[b]; ++b; L.controlReleased(c) } }; L.controlPressed = function (a, b) { if (null != a) if (a.down) a.pressure = b; else if (a.down = !0, a.pressed = !0, a.pressure = b, L._controlsToReset.push(a), h.engine.keyPollOccurred && (a = h.engine.whenKeyPressedEvents.map.get(a.name), null != a && 0 < a.length)) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex](!0, !1) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++a._dispatchIndex } }; L.controlReleased = function (a) { if (null != a && a.down && (a.down = !1, a.released = !0, a.pressure = 0, L._controlsToReset.push(a), h.engine.keyPollOccurred && (a = h.engine.whenKeyPressedEvents.map.get(a.name), null != a && 0 < a.length))) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex](!1, !0) } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++a._dispatchIndex } }; L.controlStateUpdated = function (a) { for (var b = 0, c = 0, d = a.keys; c < d.length;) { var e = d[c]; ++c; L._key[e] && (b = 1) } a.pressure = b; 0 < b && !a.down ? L.controlPressed(a, b) : 0 == b && a.down && L.controlReleased(a) }; L.onKeyDown = function (a) { var b = a.keyCode; if (!(7E3 < b)) { if (!L._key[b] && (L._key[b] = !0, b = L._keyInput.inputControlMap.h[b], null != b)) for (var c = 0; c < b.length;) { var d = b[c]; ++c; L.controlPressed(d, 1) } if (0 < h.engine.whenAnyKeyPressed.length) for (h.engine.whenAnyKeyPressed._dispatchIndex = 0; h.engine.whenAnyKeyPressed._dispatchIndex < h.engine.whenAnyKeyPressed.length;) { try { h.engine.whenAnyKeyPressed.listeners[h.engine.whenAnyKeyPressed._dispatchIndex](a) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++h.engine.whenAnyKeyPressed._dispatchIndex } } }; L.onKeyUp = function (a) { var b = a.keyCode; if (!(7E3 < b)) { if (L._key[b] && (L._key[b] = !1, b = L._keyInput.inputControlMap.h[b], null != b)) for (var c = 0; c < b.length;) { var d = b[c]; ++c; L.controlReleased(d) } if (0 < h.engine.whenAnyKeyReleased.length) for (h.engine.whenAnyKeyReleased._dispatchIndex = 0; h.engine.whenAnyKeyReleased._dispatchIndex < h.engine.whenAnyKeyReleased.length;) { try { h.engine.whenAnyKeyReleased.listeners[h.engine.whenAnyKeyReleased._dispatchIndex](a) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } ++h.engine.whenAnyKeyReleased._dispatchIndex } } }; L.onMouseDown = function (a) { L.mouseX = (h.stage.get_mouseX() - h.screenOffsetX) / h.screenScaleX; L.mouseY = (h.stage.get_mouseY() - h.screenOffsetY) / h.screenScaleY; L.mouseDown || (L.mouseDown = !0, L.mousePressed = !0) }; L.onMouseUp = function (a) { L.mouseX = (h.stage.get_mouseX() - h.screenOffsetX) / h.screenScaleX; L.mouseY = (h.stage.get_mouseY() - h.screenOffsetY) / h.screenScaleY; L.mouseDown = !1; L.mouseReleased = !0 }; L.onRightMouseDown = function (a) { L.rightMouseDown || (L.rightMouseDown = !0, L.rightMousePressed = !0) }; L.onRightMouseUp = function (a) { L.rightMouseDown = !1; L.rightMouseReleased = !0 }; L.onMiddleMouseDown = function (a) { L.middleMouseDown || (L.middleMouseDown = !0, L.middleMousePressed = !0) }; L.onMiddleMouseUp = function (a) { L.middleMouseDown = !1; L.middleMouseReleased = !0 }; L.onMouseWheel = function (a) { L.mouseWheel = !0; L.mouseWheelDelta = a.delta }; L.onTouchBegin = function (a) { if (0 < h.engine.whenMTStarted.length) for (h.engine.whenMTStarted._dispatchIndex = 0; h.engine.whenMTStarted._dispatchIndex < h.engine.whenMTStarted.length;) { try { h.engine.whenMTStarted.listeners[h.engine.whenMTStarted._dispatchIndex](a) } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++h.engine.whenMTStarted._dispatchIndex } L.multiTouchPoints.h[null == a.touchPointID ? "null" : "" + a.touchPointID] = a; L.numTouches++ }; L.onTouchMove = function (a) { if (0 < h.engine.whenMTDragged.length) for (h.engine.whenMTDragged._dispatchIndex = 0; h.engine.whenMTDragged._dispatchIndex < h.engine.whenMTDragged.length;) { try { h.engine.whenMTDragged.listeners[h.engine.whenMTDragged._dispatchIndex](a) } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++h.engine.whenMTDragged._dispatchIndex } L.multiTouchPoints.h[null == a.touchPointID ? "null" : "" + a.touchPointID] = a }; L.onTouchEnd = function (a) { if (0 < h.engine.whenMTEnded.length) for (h.engine.whenMTEnded._dispatchIndex = 0; h.engine.whenMTEnded._dispatchIndex < h.engine.whenMTEnded.length;) { try { h.engine.whenMTEnded.listeners[h.engine.whenMTEnded._dispatchIndex](a) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++h.engine.whenMTEnded._dispatchIndex } a = null == a.touchPointID ? "null" : "" + a.touchPointID; var b = L.multiTouchPoints; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; L.numTouches-- }; var Zk = function (a) { this.pressure = 0; this.name = a; this.keys = [] }; k["com.stencyl.Control"] = Zk; Zk.__name__ = "com.stencyl.Control"; Zk.prototype = { name: null, keys: null, pressed: null, released: null, down: null, pressure: null, __class__: Zk }; var ir = function (a, b) { this.inputControlMap = a; this.getInputs = b }; k["com.stencyl.InputMethod"] = ir; ir.__name__ = "com.stencyl.InputMethod"; ir.prototype = { inputControlMap: null, getInputs: null, mapInputToControl: function (a, b) { this.inputControlMap.exists(a) || this.inputControlMap.set(a, []); for (var c = this.inputControlMap.get(a), d = 0; d < c.length;) { var e = c[d]; ++d; e != b && (K.remove(this.getInputs(e), a), L.controlStateUpdated(e)) } -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), c.push(b), L.controlStateUpdated(b)) }, unmapInput: function (a) { var b = this.inputControlMap.get(a); if (null != b) for (var c = 0; c < b.length;) { var d = b[c]; ++c; K.remove(this.getInputs(d), a); L.controlStateUpdated(d) } this.inputControlMap.remove(a) }, addInputToControl: function (a, b) { -1 == this.getInputs(b).indexOf(a) && (this.getInputs(b).push(a), L.controlStateUpdated(b), this.inputControlMap.exists(a) || this.inputControlMap.set(a, []), this.inputControlMap.get(a).push(b)) }, removeInputFromControl: function (a, b) { if (-1 != this.getInputs(b).indexOf(a)) { K.remove(this.getInputs(b), a); L.controlStateUpdated(b); var c = this.inputControlMap.get(a); K.remove(c, b); 0 == c.length && this.inputControlMap.remove(a) } }, getInputsForControl: function (a) { return null != a ? this.getInputs(a) : null }, removeAllInputsFromControl: function (a) { for (var b = this.getInputs(a); 0 < b.length;) { var c = b.pop(), d = this.inputControlMap.get(c); K.remove(d, a); 0 == d.length && this.inputControlMap.remove(c) } L.controlStateUpdated(a) }, __class__: ir }; var Ma = function () { }; k["com.stencyl.Key"] = Ma; Ma.__name__ = "com.stencyl.Key"; Ma.nameOfKey = function (a) { if (97 <= a && 122 >= a) return String.fromCodePoint(a); if (112 <= a && 126 >= a) return "F" + z.string(a - 111); if (96 <= a && 105 >= a) return "NUMPAD " + z.string(a - 96); switch (a) { case 8: return "BACKSPACE"; case 9: return "TAB"; case 13: return "ENTER"; case 15: return "COMMAND"; case 16: return "SHIFT"; case 17: return "CONTROL"; case 20: return "CAPS LOCK"; case 27: return "ESCAPE"; case 32: return "SPACE"; case 33: return "PAGE UP"; case 34: return "PAGE DOWN"; case 35: return "END"; case 36: return "HOME"; case 37: return "LEFT"; case 38: return "UP"; case 39: return "RIGHT"; case 40: return "DOWN"; case 45: return "INSERT"; case 46: return "DELETE"; case 106: return "NUMPAD MULTIPLY"; case 107: return "NUMPAD ADD"; case 108: return "NUMPAD ENTER"; case 109: return "NUMPAD SUBTRACT"; case 110: return "NUMPAD DECIMAL"; case 111: return "NUMPAD DIVIDE"; default: return String.fromCodePoint(a) } }; Ma.keyFromName = function (a) { return Ma.keyboardNameMap.h[a] }; var na = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b }; k["openfl.geom.Point"] = na; na.__name__ = "openfl.geom.Point"; na.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a) }; na.interpolate = function (a, b, c) { return new na(b.x + c * (a.x - b.x), b.y + c * (a.y - b.y)) }; na.polar = function (a, b) { return new na(a * Math.cos(b), a * Math.sin(b)) }; na.prototype = { x: null, y: null, add: function (a) { return new na(a.x + this.x, a.y + this.y) }, clone: function () { return new na(this.x, this.y) }, copyFrom: function (a) { this.x = a.x; this.y = a.y }, equals: function (a) { return null != a && a.x == this.x ? a.y == this.y : !1 }, normalize: function (a) { if (0 != this.x || 0 != this.y) a /= Math.sqrt(this.x * this.x + this.y * this.y), this.x *= a, this.y *= a }, offset: function (a, b) { this.x += a; this.y += b }, setTo: function (a, b) { this.x = a; this.y = b }, subtract: function (a) { return new na(this.x - a.x, this.y - a.y) }, toString: function () { return "(x=" + this.x + ", y=" + this.y + ")" }, __toLimeVector2: function () { null == na.__limeVector2 && (na.__limeVector2 = new be); var a = na.__limeVector2; a.x = this.x; a.y = this.y; return na.__limeVector2 }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y) }, __class__: na, __properties__: {get_length: "get_length"} }; var ba = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.width = c; this.height = d }; k["openfl.geom.Rectangle"] = ba; ba.__name__ = "openfl.geom.Rectangle"; ba.prototype = { height: null, width: null, x: null, y: null, clone: function () { return new ba(this.x, this.y, this.width, this.height) }, contains: function (a, b) { return a >= this.x && b >= this.y && a < this.get_right() ? b < this.get_bottom() : !1 }, containsPoint: function (a) { return this.contains(a.x, a.y) }, containsRect: function (a) { return 0 >= a.width || 0 >= a.height ? a.x > this.x && a.y > this.y && a.get_right() < this.get_right() ? a.get_bottom() < this.get_bottom() : !1 : a.x >= this.x && a.y >= this.y && a.get_right() <= this.get_right() ? a.get_bottom() <= this.get_bottom() : !1 }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.width = a.width; this.height = a.height }, equals: function (a) { return a == this ? !0 : null != a && this.x == a.x && this.y == a.y && this.width == a.width ? this.height == a.height : !1 }, inflate: function (a, b) { this.x -= a; this.width += 2 * a; this.y -= b; this.height += 2 * b }, inflatePoint: function (a) { this.inflate(a.x, a.y) }, intersection: function (a) { var b = this.x < a.x ? a.x : this.x, c = this.get_right() > a.get_right() ? a.get_right() : this.get_right(); if (c <= b) return new ba; var d = this.y < a.y ? a.y : this.y; a = this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom(); return a <= d ? new ba : new ba(b, d, c - b, a - d) }, intersects: function (a) { var b = this.x < a.x ? a.x : this.x; if ((this.get_right() > a.get_right() ? a.get_right() : this.get_right()) <= b) return !1; b = this.y < a.y ? a.y : this.y; return (this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom()) > b }, isEmpty: function () { return 0 >= this.width ? !0 : 0 >= this.height }, offset: function (a, b) { this.x += a; this.y += b }, offsetPoint: function (a) { this.x += a.x; this.y += a.y }, setEmpty: function () { this.x = this.y = this.width = this.height = 0 }, setTo: function (a, b, c, d) { this.x = a; this.y = b; this.width = c; this.height = d }, toString: function () { return "(x=" + this.x + ", y=" + this.y + ", width=" + this.width + ", height=" + this.height + ")" }, union: function (a) { if (0 == this.width || 0 == this.height) return a.clone(); if (0 == a.width || 0 == a.height) return this.clone(); var b = this.x > a.x ? a.x : this.x, c = this.get_right() < a.get_right() ? a.get_right() : this.get_right(), d = this.y > a.y ? a.y : this.y; a = this.get_bottom() < a.get_bottom() ? a.get_bottom() : this.get_bottom(); return new ba(b, d, c - b, a - d) }, __contract: function (a, b, c, d) { if (0 != this.width || 0 != this.height) { var e = 0, g = 0, r = 0, f = 0; this.x < a && (e = a - this.x); this.y < b && (g = b - this.y); this.get_right() > a + c && (r = a + c - this.get_right()); this.get_bottom() > b + d && (f = b + d - this.get_bottom()); this.x += e; this.y += g; this.width += r - e; this.height += f - g } }, __expand: function (a, b, c, d) { if (0 == this.width && 0 == this.height) this.x = a, this.y = b, this.width = c, this.height = d; else { var e = this.get_right(), g = this.get_bottom(); this.x > a && (this.x = a, this.width = e - a); this.y > b && (this.y = b, this.height = g - b); e < a + c && (this.width = a + c - this.x); g < b + d && (this.height = b + d - this.y) } }, __toLimeRectangle: function () { null == ba.__limeRectangle && (ba.__limeRectangle = new Vd); ba.__limeRectangle.setTo(this.x, this.y, this.width, this.height); return ba.__limeRectangle }, __transform: function (a, b) { var c = b.a * this.x + b.c * this.y, d = c, e = b.b * this.x + b.d * this.y, g = e, r = b.a * (this.x + this.width) + b.c * this.y, f = b.b * (this.x + this.width) + b.d * this.y; r < c && (c = r); f < e && (e = f); r > d && (d = r); f > g && (g = f); r = b.a * (this.x + this.width) + b.c * (this.y + this.height); f = b.b * (this.x + this.width) + b.d * (this.y + this.height); r < c && (c = r); f < e && (e = f); r > d && (d = r); f > g && (g = f); r = b.a * this.x + b.c * (this.y + this.height); f = b.b * this.x + b.d * (this.y + this.height); r < c && (c = r); f < e && (e = f); r > d && (d = r); f > g && (g = f); a.setTo(c + b.tx, e + b.ty, d - c, g - e) }, get_bottom: function () { return this.y + this.height }, set_bottom: function (a) { this.height = a - this.y; return a }, get_bottomRight: function () { return new na(this.x + this.width, this.y + this.height) }, set_bottomRight: function (a) { this.width = a.x - this.x; this.height = a.y - this.y; return a.clone() }, get_left: function () { return this.x }, set_left: function (a) { this.width -= a - this.x; return this.x = a }, get_right: function () { return this.x + this.width }, set_right: function (a) { this.width = a - this.x; return a }, get_size: function () { return new na(this.width, this.height) }, set_size: function (a) { this.width = a.x; this.height = a.y; return a.clone() }, get_top: function () { return this.y }, set_top: function (a) { this.height -= a - this.y; return this.y = a }, get_topLeft: function () { return new na(this.x, this.y) }, set_topLeft: function (a) { this.x = a.x; this.y = a.y; return a.clone() }, __class__: ba, __properties__: { set_topLeft: "set_topLeft", get_topLeft: "get_topLeft", set_top: "set_top", get_top: "get_top", set_size: "set_size", get_size: "get_size", set_right: "set_right", get_right: "get_right", set_left: "set_left", get_left: "get_left", set_bottomRight: "set_bottomRight", get_bottomRight: "get_bottomRight", set_bottom: "set_bottom", get_bottom: "get_bottom" } }; var f = function () { this.checkProperties = this.scriptInit = !1; this.nameMap = new xa; this.propertyChangeEvents = new xa; this.equalityPairs = new Oc; this.attributeTweens = new xa }; k["com.stencyl.behavior.Script"] = f; f.__name__ = "com.stencyl.behavior.Script"; f.resetStatics = function () { f.engine = null; f.lastCreatedActor = null; f.lastCreatedJoint = null; f.lastCreatedRegion = null; f.lastCreatedTerrainRegion = null; f.mpx = 0; f.mpy = 0; f.mrx = 0; f.mry = 0; f.imageApiAutoscale = !0 }; f.sameAs = function (a, b) { return a == b }; f.sameAsAny = function (a, b, c) { return a != b ? a == c : !0 }; f.asBoolean = function (a) { return 1 == a ? !0 : "true" == a ? !0 : !1 }; f.strCompare = function (a, b, c) { return 0 > c ? a < b : a > b }; f.strCompareBefore = function (a, b) { return a < b }; f.strCompareAfter = function (a, b) { return a > b }; f.asNumber = function (a) { return null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)) }; f.hasValue = function (a) { return f.isPrimitive(a) ? !0 : "string" == typeof a ? "" != w.__cast(a, String) : null != a }; f.isPrimitive = function (a) { return "boolean" == typeof a || "number" == typeof a || "number" == typeof a && (a | 0) === a ? !0 : !1 }; f.getDefaultValue = function (a) { return "boolean" == typeof a ? !1 : "number" == typeof a || "number" == typeof a && (a | 0) === a ? 0 : "string" == typeof a ? "" : null }; f.getGroupByName = function (a) { return f.engine.getGroupByName(a) }; f.getLastCreatedRegion = function () { return f.lastCreatedRegion }; f.getAllRegions = function () { for (var a = [], b = f.engine.regions.iterator(); b.hasNext();) { var c = b.next(); null != c && a.push(c) } return a }; f.getRegion = function (a) { return f.engine.getRegion(a) }; f.removeRegion = function (a) { f.engine.removeRegion(a) }; f.createBoxRegion = function (a, b, c, d) { return f.lastCreatedRegion = f.engine.createBoxRegion(a, b, c, d) }; f.createCircularRegion = function (a, b, c) { return f.lastCreatedRegion = f.engine.createCircularRegion(a, b, c) }; f.isInRegion = function (a, b) { return f.engine.isInRegion(a, b) }; f.getActorsInRegion = function (a) { var b = []; for (a = a.getContainedActors().iterator(); a.hasNext();) { var c = a.next(); b.push(f.engine.getActor(c)) } return b }; f.sceneHasBehavior = function (a) { return f.engine.behaviors.hasBehavior(a) }; f.enableBehaviorForScene = function (a) { f.engine.behaviors.enableBehavior(a) }; f.disableBehaviorForScene = function (a) { f.engine.behaviors.disableBehavior(a) }; f.isBehaviorEnabledForScene = function (a) { return f.engine.behaviors.isBehaviorEnabled(a) }; f.getValueForScene = function (a, b) { return f.engine.getValue(a, b) }; f.setValueForScene = function (a, b, c) { f.engine.setValue(a, b, c) }; f.shoutToScene = function (a, b) { return f.engine.shout(a, b) }; f.sayToScene = function (a, b, c) { return f.engine.say(a, b, c) }; f.setGameAttribute = function (a, b) { f.engine.gameAttributes.h[a] = b }; f.getGameAttribute = function (a) { return f.engine.getGameAttribute(a) }; f.setSavable = function (a, b) { f.engine.savableAttributes.h[a] = b }; f.runLater = function (a, b, c) { a = new $k(b, a | 0, !1, c); f.engine.addTask(a); return a }; f.runPeriodically = function (a, b, c) { a = new $k(b, a | 0, !0, c); f.engine.addTask(a); return a }; f.getStepSize = function () { return h.STEP_SIZE }; f.getScene = function () { return f.engine.scene }; f.getCurrentScene = function () { return f.getScene().ID }; f.getIDForScene = function (a) { for (var b = zb.get().scenes.iterator(); b.hasNext();) { var c = b.next(); if (a == c.name) return c.ID } return 0 }; f.getCurrentSceneName = function () { return f.getScene().name }; f.getSceneWidth = function () { return f.getScene().sceneWidth }; f.getSceneHeight = function () { return f.getScene().sceneHeight }; f.getTileWidth = function () { return f.getScene().tileWidth }; f.getTileHeight = function () { return f.getScene().tileHeight }; f.reloadCurrentScene = function (a, b) { f.engine.switchScene(f.getCurrentScene(), a, b) }; f.switchScene = function (a, b, c) { f.engine.switchScene(a, b, c) }; f.createPixelizeOut = function (a, b) { return new Aj(a, 1, 15) }; f.createPixelizeIn = function (a, b) { return new Aj(a, 15, 1) }; f.createBubblesOut = function (a, b) { null == b && (b = -16777216); return new Bj(sb.OUT, a, 50, b) }; f.createBubblesIn = function (a, b) { null == b && (b = -16777216); return new Bj(sb.IN, a, 50, b) }; f.createBlindsOut = function (a, b) { null == b && (b = -16777216); return new Cj(sb.OUT, a, 10, b) }; f.createBlindsIn = function (a, b) { null == b && (b = -16777216); return new Cj(sb.IN, a, 10, b) }; f.createRectangleOut = function (a, b) { null == b && (b = -16777216); return new Dj(sb.OUT, a, b) }; f.createRectangleIn = function (a, b) { null == b && (b = -16777216); return new Dj(sb.IN, a, b) }; f.createSlideTransition = function (a, b) { return new Ue(f.engine.master, f.engine.colorLayer, a, b) }; f.createSlideUpTransition = function (a) { return f.createSlideTransition(a, Ue.SLIDE_UP) }; f.createSlideDownTransition = function (a) { return f.createSlideTransition(a, Ue.SLIDE_DOWN) }; f.createSlideLeftTransition = function (a) { return f.createSlideTransition(a, Ue.SLIDE_LEFT) }; f.createSlideRightTransition = function (a) { return f.createSlideTransition(a, Ue.SLIDE_RIGHT) }; f.createCrossfadeTransition = function (a) { return new al(f.engine.root, a) }; f.createFadeOut = function (a, b) { null == b && (b = -16777216); return new bl(a, b) }; f.createFadeIn = function (a, b) { null == b && (b = -16777216); return new cl(a, b) }; f.createCircleOut = function (a, b) { null == b && (b = -16777216); return new Ej(sb.OUT, a, b) }; f.createCircleIn = function (a, b) { null == b && (b = -16777216); return new Ej(sb.IN, a, b) }; f.setBlendModeForLayer = function (a, b) { a.set_blendMode(b); a instanceof Jc && w.__cast(a, Jc).tiles.set_blendMode(b) }; f.showTileLayer = function (a) { a.set_alpha(1) }; f.hideTileLayer = function (a) { a.set_alpha(0) }; f.fadeTileLayerTo = function (a, b, c, d) { null == a.alphaTween && (a.alphaTween = (new ce).doOnUpdate(function () { a.set_alpha(a.alphaTween.value) })); a.alphaTween.tween(a.get_alpha(), b, d, 1E3 * c | 0) }; f.getTileLayerOpacity = function (a) { return 100 * a.get_alpha() }; f.setDrawingLayer = function (a) { a instanceof Jc && (h.engine.g.graphics = a.overlay.get_graphics()) }; f.setDrawingLayerToActorLayer = function (a) { null != a && (h.engine.g.graphics = a.layer.overlay.get_graphics()) }; f.setDrawingLayerToSceneLayer = function () { h.engine.g.graphics = h.engine.transitionLayer.get_graphics() }; f.getScreenX = function () { return h.cameraX / h.SCALE }; f.getScreenY = function () { return h.cameraY / h.SCALE }; f.getScreenXCenter = function () { return h.cameraX / h.SCALE + h.screenWidth / 2 }; f.getScreenYCenter = function () { return h.cameraY / h.SCALE + h.screenHeight / 2 }; f.getCamera = function () { return f.engine.camera }; f.isCtrlDown = function () { return L.check("iCTRL") ? !0 : L.check("iCOMMAND") }; f.isShiftDown = function () { return L.check("iSHIFT") }; f.simulateKeyPress = function (a) { L.simulateKeyPress(a) }; f.simulateKeyRelease = function (a) { L.simulateKeyRelease(a) }; f.isKeyDown = function (a) { return L.check(a) }; f.isKeyPressed = function (a) { return L.pressed(a) }; f.isKeyReleased = function (a) { return L.released(a) }; f.isMouseDown = function () { return L.mouseDown }; f.isMousePressed = function () { return L.mousePressed }; f.isMouseReleased = function () { return L.mouseReleased }; f.getMouseX = function () { return L.mouseX / h.SCALE }; f.getMouseY = function () { return L.mouseY / h.SCALE }; f.getMouseWorldX = function () { return L.mouseX / h.SCALE + h.cameraX }; f.getMouseWorldY = function () { return L.mouseY / h.SCALE + h.cameraY }; f.getMousePressedX = function () { return f.mpx }; f.getMousePressedY = function () { return f.mpy }; f.getMouseReleasedX = function () { return f.mrx }; f.getMouseReleasedY = function () { return f.mry }; f.showCursor = function () { ve.show() }; f.hideCursor = function () { ve.hide() }; f.charFromCharCode = function (a) { return 32 > a || 126 < a && 160 > a ? "" : String.fromCodePoint(a) }; f.getLastCreatedActor = function () { return f.lastCreatedActor }; f.createActor = function (a, b, c, d) { a = f.engine.createActorOfType(a, b, c, d); return f.lastCreatedActor = a }; f.createRecycledActor = function (a, b, c, d) { a = f.engine.getRecycledActorOfType(a, b, c, d); return f.lastCreatedActor = a }; f.createRecycledActorOnLayer = function (a, b, c, d) { a = f.engine.getRecycledActorOfTypeOnLayer(a, b, c, d.ID); return f.lastCreatedActor = a }; f.recycleActor = function (a) { f.engine.recycleActor(a) }; f.createActorInNextScene = function (a, b, c, d) { f.engine.createActorInNextScene(a, b, c, d) }; f.getActorTypeByName = function (a) { return pc.get().resourceMap.get(a) }; f.getActorType = function (a) { return pc.get().resources.get(a) }; f.getAllActorTypes = function () { return pc.get().getAllActorTypes() }; f.getActorsOfType = function (a) { return f.engine.getActorsOfType(a) }; f.getActor = function (a) { return f.engine.getActor(a) }; f.getActorGroup = function (a) { return f.engine.getGroup(a) }; f.setGravity = function (a, b) { f.engine.gravityX = a; f.engine.gravityY = b; null != f.engine.world && f.engine.world.setGravity(new M(a, b)) }; f.getGravity = function () { return null == f.engine.world ? (f.dummyVec.x = f.engine.gravityX, f.dummyVec.y = f.engine.gravityY, f.dummyVec) : f.engine.world.getGravity() }; f.enableContinuousCollisions = function () { ic.m_continuousPhysics = !0 }; f.toPhysicalUnits = function (a) { return h.toPhysicalUnits(a) }; f.toPixelUnits = function (a) { return h.toPixelUnits(a) }; f.makeActorNotPassThroughTerrain = function (a) { h.NO_PHYSICS ? null != a && 1 == a.physicsMode && (a.continuousCollision = !0) : (ic.m_continuousPhysics = !0, null != a && 0 == a.physicsMode && a.body.setBullet(!0)) }; f.makeActorPassThroughTerrain = function (a) { if (h.NO_PHYSICS) null != a && 1 == a.physicsMode && (a.continuousCollision = !1); else if (null != a && 0 == a.physicsMode) { a.body.setBullet(!1); a = !1; for (var b = f.engine.allActors.iterator(); b.hasNext();) { var c = b.next(); if (null != c.body && c.body.isBullet()) { a = !0; break } } a || (ic.m_continuousPhysics = !1) } }; f.mute = function () { }; f.unmute = function () { }; f.getSound = function (a) { return pc.get().resources.get(a) }; f.getSoundByName = function (a) { return pc.get().resourceMap.get(a) }; f.playSound = function (a) { if (null != a) for (var b = 0; 32 > b;) { var c = b++; c = f.engine.channels[c]; if (null == c.currentSound) { c.playSound(a); c.setVolume(1); c.setPanning(0); break } } }; f.loopSound = function (a) { if (null != a) for (var b = 0; 32 > b;) { var c = b++; c = f.engine.channels[c]; if (null == c.currentSound) { c.loopSound(a); c.setVolume(1); c.setPanning(0); break } } }; f.playSoundOnChannel = function (a, b) { b = f.engine.channels[b]; b.playSound(a); b.setVolume(1); b.setPanning(0) }; f.loopSoundOnChannel = function (a, b) { b = f.engine.channels[b]; b.loopSound(a); b.setVolume(1); b.setPanning(0) }; f.stopSoundOnChannel = function (a) { f.engine.channels[a].stopSound() }; f.pauseSoundOnChannel = function (a) { f.engine.channels[a].setPause(!0) }; f.resumeSoundOnChannel = function (a) { f.engine.channels[a].setPause(!1) }; f.setVolumeForChannel = function (a, b) { f.engine.channels[b].setVolume(a) }; f.setPanningForChannel = function (a, b) { f.engine.channels[b].setPanning(a) }; f.stopAllSounds = function () { for (var a = 0; 32 > a;) { var b = a++; f.engine.channels[b].stopSound() } }; f.setVolumeForAllSounds = function (a) { ac.masterVolume = a; for (a = 0; 32 > a;) { var b = a++; b = f.engine.channels[b]; b.setVolume(b.volume) } }; f.fadeInSoundOnChannel = function (a, b) { f.engine.channels[a].fadeInSound(b) }; f.fadeOutSoundOnChannel = function (a, b) { f.engine.channels[a].fadeOutSound(b) }; f.fadeSoundOnChannel = function (a, b, c) { f.engine.channels[a].fadeSound(b, c / 100) }; f.fadeInForAllSounds = function (a) { for (var b = 0; 32 > b;) { var c = b++; f.engine.channels[c].fadeInSound(a) } }; f.fadeOutForAllSounds = function (a) { for (var b = 0; 32 > b;) { var c = b++; f.engine.channels[c].fadeOutSound(a) } }; f.fadeForAllSounds = function (a, b) { for (var c = 0; 32 > c;) { var d = c++; f.engine.channels[d].fadeSound(a, b / 100) } }; f.getPositionForChannel = function (a) { a = f.engine.channels[a]; return null != a && null != a.currentSound ? a.paused ? a.position : a.currentSound.get_position() : 0 }; f.setPositionForChannel = function (a, b) { a = f.engine.channels[a]; null != a && null != a.currentSound && (a.paused ? a.position = b : a.looping ? a.loopSound(a.currentClip, b) : a.playSound(a.currentClip, b)) }; f.getSoundLengthForChannel = function (a) { a = f.engine.channels[a]; return null != a && null != a.currentSource ? a.currentSource.get_length() : 0 }; f.getSoundLength = function (a) { return null != a && null != a.src ? a.src.get_length() : 0 }; f.setColorBackground = function (a, b) { null == b && (b = -2); f.engine.colorLayer.get_graphics().clear(); a != Nf.TRANSPARENT && (b == Nf.TRANSPARENT ? f.engine.setColorBackground(new Nf(a)) : f.engine.setColorBackground(new vi(a, b))) }; f.setScrollSpeedForBackground = function (a, b, c) { if (null == a) { a = 0; for (var d = h.engine.backgroundLayers; a < d.length;) { var e = d[a]; ++a; e.setScrollSpeed(b, c) } } else a instanceof ae && w.__cast(a, ae).setScrollSpeed(b, c) }; f.setScrollFactorForLayer = function (a, b, c) { a instanceof ae ? w.__cast(a, ae).setScrollFactor(b, c) : a instanceof Jc && (a.scrollFactorX = b, a.scrollFactorY = c) }; f.changeBackground = function (a, b) { b = pc.get().resourceMap.get(b); null != b && a instanceof ae && w.__cast(a, ae).reload(b.ID) }; f.changeBackgroundImage = function (a, b) { null != b && a instanceof ae && w.__cast(a, ae).setImage(b) }; f.addBackground = function (a, b, c) { a = pc.get().resourceMap.get(a); b = new ae(f.engine.getNextLayerID(), b, c, 0, 0, 1, 10, a.ID, !1); b.load(); f.engine.insertLayer(b, c) }; f.addBackgroundFromImage = function (a, b, c, d) { c = new ae(f.engine.getNextLayerID(), c, d, 0, 0, 1, 10, -1, !1); c.loadFromImg(a, b); f.engine.insertLayer(c, d) }; f.addTileLayer = function (a, b) { var c = f.engine.scene.sceneWidth / f.engine.scene.tileWidth | 0, d = f.engine.scene.sceneHeight / f.engine.scene.tileHeight | 0, e = f.engine.getNextLayerID(); c = new re(e, f.engine.scene, c, d); c.set_name(a); a = new Jc(e, a, b, 1, 1, 1, 10, c); f.engine.insertLayer(a, b) }; f.newImage = function (a, b) { return f.imageApiAutoscale ? new ka(a * h.SCALE | 0, b * h.SCALE | 0, !0, 0) : new ka(a, b, !0, 0) }; f.captureScreenshot = function () { var a = new ka(f.getStageWidth() | 0, f.getStageHeight() | 0); a.draw(Oa.get_current().stage, null, null, null, null, aa.antialias); return a }; f.getImageForActor = function (a) { return a.getCurrentImage() }; f.getExternalImage = function (a) { return Da.getBitmapData("assets/data/" + a, !1) }; f.loadImageFromURL = function (a, b) { var c = new Fj; c.contentLoaderInfo.addEventListener("complete", function (a) { a = w.__cast(w.__cast(a.currentTarget, hg).content, dd).get_bitmapData(); b(a) }); c.load(new Vg(a)) }; f.getSubImage = function (a, b, c, d, e) { f.imageApiAutoscale && (b = b * h.SCALE | 0, c = c * h.SCALE | 0, d = d * h.SCALE | 0, e = e * h.SCALE | 0); if (null != a && 0 <= b && 0 <= c && 0 < d && 0 < e && b < a.width && c < a.height) { var g = new ka(d, e); f.dummyRect.x = b; f.dummyRect.y = c; f.dummyRect.width = d; f.dummyRect.height = e; f.dummyPoint.x = 0; f.dummyPoint.y = 0; g.copyPixels(a, f.dummyRect, f.dummyPoint); return g } return new ka(1, 1) }; f.setOrderForImage = function (a, b) { null != a && null != a.parent && 0 <= b && b < a.parent.get_numChildren() && a.parent.setChildIndex(a, b) }; f.getOrderForImage = function (a) { return null != a && null != a.parent ? a.parent.getChildIndex(a) : -1 }; f.bringImageBack = function (a) { null != a && null != a.parent && f.setOrderForImage(a, a.parent.getChildIndex(a) - 1) }; f.bringImageForward = function (a) { null != a && null != a.parent && f.setOrderForImage(a, a.parent.getChildIndex(a) + 1) }; f.bringImageToBack = function (a) { null != a && null != a.parent && f.setOrderForImage(a, 0) }; f.bringImageToFront = function (a) { null != a && null != a.parent && f.setOrderForImage(a, a.parent.get_numChildren() - 1) }; f.attachImageToActor = function (a, b, c, d, e) { null == e && (e = 1); null != a && (null != a.parent && f.removeImage(a), 2 == e ? (b.addChild(a), b.setChildIndex(a, 0)) : b.addChild(a), a.cacheParentAnchor = b.cacheAnchor, a.set_imgX(c), a.set_imgY(d), a.set_smoothing(aa.antialias), b.attachedImages.push(a)) }; f.attachImageToHUD = function (a, b, c) { null != a && (null != a.parent && f.removeImage(a), f.engine.hudLayer.addChild(a), f.engine.hudLayer.attachedImages.push(a), a.set_imgX(b), a.set_imgY(c), a.set_smoothing(aa.antialias)) }; f.attachImageToLayer = function (a, b, c, d, e) { null == e && (e = 1); null != a && (null != a.parent && f.removeImage(a), 2 == e ? b.addChildAt(a, 0) : b.addChild(a), -1 == b.attachedImages.indexOf(a) && b.attachedImages.push(a), a.set_imgX(c), a.set_imgY(d), a.set_smoothing(aa.antialias)) }; f.removeImage = function (a) { null != a && (a.parent instanceof wb ? K.remove(w.__cast(a.parent, wb).attachedImages, a) : a.parent instanceof Jc && K.remove(w.__cast(a.parent, Jc).attachedImages, a), a.parent.removeChild(a)) }; f.resizeImage = function (a, b, c, d) { null == d && (d = !0); null == c && (c = 1); null == b && (b = 1); var e = new Ja; e.scale(b, c); b = new ka(a.width * b | 0, a.height * c | 0, !0, 0); b.draw(a, e, null, null, null, d); return b }; f.drawImageOnImage = function (a, b, c, d, e) { f.imageApiAutoscale && (c = c * h.SCALE | 0, d = d * h.SCALE | 0); if (null != a && null != b) if (f.dummyPoint.x = c, f.dummyPoint.y = d, 10 == e) b.copyPixels(a, a.rect, f.dummyPoint, null, null, !0); else { var g = new Ja; g.identity(); g.translate(c, d); b.draw(a, g, null, e) } }; f.drawTextOnImage = function (a, b, c, d, e) { f.imageApiAutoscale && (c = c * h.SCALE | 0, d = d * h.SCALE | 0); null != a && e.font.renderToImg(a, b, 0, 1, c, d, e.fontScale, 0, !1) }; f.clearImagePartially = function (a, b, c, d, e) { f.imageApiAutoscale && (b = b * h.SCALE | 0, c = c * h.SCALE | 0, d = d * h.SCALE | 0, e = e * h.SCALE | 0); null != a && (f.dummyRect.x = b, f.dummyRect.y = c, f.dummyRect.width = d, f.dummyRect.height = e, a.fillRect(f.dummyRect, 0)) }; f.clearImage = function (a) { null != a && a.fillRect(a.rect, 0) }; f.clearImageUsingMask = function (a, b, c, d) { f.imageApiAutoscale && (c = c * h.SCALE | 0, d = d * h.SCALE | 0); var e = b.width, g = b.height, r = 0, v = 0; 0 > c ? (e = c > a.width - e ? a.width : e + c, r -= c, c = 0) : c > a.width - e && (e -= c - (a.width - e), c = a.width - e); 0 > d ? (g = d > a.height - g ? a.height : g + d, v -= d, d = 0) : d > a.height - g && (g -= d - (a.height - g), d = a.height - g); if (!(0 >= e || 0 >= g)) { r = new ba(r, v, e, g); b = b.getPixels(r); c = new ba(c, d, e, g); d = a.getPixels(c); r = 0; for (e *= g; r < e;) { g = r++; b.position = 4 * g; d.position = 4 * g; v = b.readUnsignedByte(); var p = d.readUnsignedByte(); v = (256 - v) * p >> 8; d.position = 4 * g; d.writeByte(v) } b.position = 0; d.position = 0; a.setPixels(c, d) } }; f.retainImageUsingMask = function (a, b, c, d) { f.imageApiAutoscale && (c = c * h.SCALE | 0, d = d * h.SCALE | 0); f.dummyPoint.x = c; f.dummyPoint.y = d; a.copyChannel(b, b.rect, f.dummyPoint, 8, 8) }; f.fillImage = function (a, b) { null != a && a.fillRect(a.rect, -16777216 | b) }; f.filterImage = function (a, b) { null != a && (f.dummyPoint.x = 0, f.dummyPoint.y = 0, a.applyFilter(a, a.rect, f.dummyPoint, b)) }; f.imageSetPixel = function (a, b, c, d) { if (null != a) if (f.imageApiAutoscale && 1 != h.SCALE) { var e = (b + 1) * h.SCALE | 0, g = (c + 1) * h.SCALE | 0; b = b * h.SCALE | 0; for (c = c * h.SCALE | 0; b < e;) for (var r = b++, v = c, p = g; v < p;) { var m = v++; a.setPixel32(r, m, d | -16777216) } } else a.setPixel32(b, c, d | -16777216) }; f.imageGetPixel = function (a, b, c) { return null != a ? (f.imageApiAutoscale && (b = b * h.SCALE | 0, c = c * h.SCALE | 0), a.getPixel(b, c)) : 0 }; f.imageSwapColor = function (a, b, c) { null != a && (f.dummyPoint.x = 0, f.dummyPoint.y = 0, a.threshold(a, a.rect, f.dummyPoint, "==", -16777216 | b, -16777216 | c, -1, !0)) }; f.flipImageHorizontal = function (a) { var b = new Ja; b.scale(-1, 1); b.translate(a.width, 0); var c = new ka(a.width, a.height, !0, 0); c.draw(a, b); f.dummyPoint.x = 0; f.dummyPoint.y = 0; a.copyPixels(c, c.rect, f.dummyPoint) }; f.flipImageVertical = function (a) { var b = new Ja; b.scale(1, -1); b.translate(0, a.height); var c = new ka(a.width, a.height, !0, 0); c.draw(a, b); f.dummyPoint.x = 0; f.dummyPoint.y = 0; a.copyPixels(c, c.rect, f.dummyPoint) }; f.setXForImage = function (a, b) { null != a && a.set_imgX(b) }; f.setYForImage = function (a, b) { null != a && a.set_imgY(b) }; f.fadeImageTo = function (a, b, c, d) { null == c && (c = 1); a.get_tweenProps().alpha.tween(a.get_alpha(), b, d, 1E3 * c | 0) }; f.setOriginForImage = function (a, b, c) { a.setOrigin(b, c) }; f.growImageTo = function (a, b, c, d, e) { null == d && (d = 1); null == c && (c = 1); null == b && (b = 1); a.get_tweenProps().scaleXY.tween(a.get_scaleX(), b, a.get_scaleY(), c, e, 1E3 * d | 0) }; f.spinImageTo = function (a, b, c, d) { null == c && (c = 1); a.get_tweenProps().angle.tween(a.get_rotation(), b, d, 1E3 * c | 0) }; f.moveImageTo = function (a, b, c, d, e) { null == d && (d = 1); a.get_tweenProps().xy.tween(a.get_imgX(), b, a.get_imgY(), c, e, 1E3 * d | 0) }; f.spinImageBy = function (a, b, c, d) { null == c && (c = 1); f.spinImageTo(a, a.get_rotation() + b, c, d) }; f.moveImageBy = function (a, b, c, d, e) { null == d && (d = 1); f.moveImageTo(a, a.get_imgX() + b, a.get_imgY() + c, d, e) }; f.setFilterForImage = function (a, b) { null != a && a.img.set_filters(a.get_filters().concat([b])) }; f.clearFiltersForImage = function (a) { null != a && a.img.set_filters([]) }; f.imageToText = function (a) { var b = a.getPixels(a.rect); return a.width + ";" + a.height + ";" + f.toBase64(lb.ofData(Fb.toArrayBuffer(b))) }; f.imageFromText = function (a) { var b = a.split(";"); a = z.parseInt(b[0]); var c = z.parseInt(b[1]), d = f.fromBase64(b[2]); b = new uc(0); for (var e = 0, g = d.length; e < g;) { var r = e++; b.writeByte(d.b[r]) } b.position = 0; b.__endian = 0; a = new ka(a, c, !0, 0); a.setPixels(a.rect, b); return a }; f.toBase64 = function (a) { var b = lb.ofString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); a = (new Gj(b)).encodeBytes(a).toString(); b = a.length % 4; 1 < b && (a += "="); 2 == b && (a += "="); return a }; f.fromBase64 = function (a) { var b = -1; "=" == a.charAt(a.length - 2) ? b = 2 : "=" == a.charAt(a.length - 1) && (b = 1); -1 != b && (a = K.substr(a, 0, a.length - b)); b = lb.ofString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); return (new Gj(b)).decodeBytes(lb.ofString(a)) }; f.startShakingScreen = function (a, b) { null == b && (b = .5); null == a && (a = .05); f.engine.shakeScreen(a, b) }; f.stopShakingScreen = function () { f.engine.stopShakingScreen() }; f.getTopLayer = function () { return f.engine.getTopLayer() }; f.getBottomLayer = function () { return f.engine.getBottomLayer() }; f.getMiddleLayer = function () { return f.engine.getMiddleLayer() }; f.getTileLayerAt = function (a) { return null != a && a instanceof Jc ? w.__cast(a, Jc).tiles : null }; f.getTilesetIDByName = function (a) { a = pc.get().resourceMap.get(a); return a instanceof wf ? a.ID : -1 }; f.setTileAt = function (a, b, c, d, e) { if (null != c && c instanceof Jc) { f.removeTileAt(a, b, c); var g = w.__cast(c, Jc).tiles; d = pc.get().resources.get(d).tiles[e]; g.setTileAt(a, b, d); null == d || null == d.pixels || X.contains(f.engine.animatedTiles, d) || 1 < d.durations.length && f.engine.animatedTiles.push(d); if (null != d && -1 != d.collisionID) { d = zb.get().shapes.h[d.collisionID]; g = d.getVertices(); d = d.getVertexCount(); g = Jb.asArray(g, d); d = 0; for (e = g.getVertices(); d < e.length;) { var r = e[d]; ++d; r.x *= f.engine.scene.tileWidth / 32; r.y *= f.engine.scene.tileHeight / 32 } d = b * f.engine.scene.tileWidth; e = a * f.engine.scene.tileHeight; h.NO_PHYSICS || null == g ? null != g && f.getTileLayerAt(c).grid.setTile(b, a) : f.createDynamicTile(g, d, e, c.ID, f.engine.scene.tileWidth, f.engine.scene.tileHeight) } f.engine.tileUpdated = !0 } }; f.tileExistsAt = function (a, b, c) { return null != f.getTileAt(a, b, c) }; f.tileCollisionAt = function (a, b, c) { if (null == c) { c = 0; for (var d = f.engine.interactiveLayers; c < d.length;) { var e = d[c]; ++c; e = e.tiles.getTileAt(a, b); if (null != e && -1 != e.collisionID) return !0 } return !1 } e = f.getTileAt(a, b, c); return null == e || -1 == e.collisionID ? !1 : !0 }; f.getTilePosition = function (a, b) { var c = f.engine.scene.tileHeight, d = f.engine.scene.tileWidth; return 0 == a ? Math.floor(b / d) : Math.floor(b / c) }; f.getTileIDAt = function (a, b, c) { a = f.getTileAt(a, b, c); return null == a ? -1 : a.tileID }; f.getTileColIDAt = function (a, b, c) { a = f.getTileAt(a, b, c); return null == a ? -1 : a.collisionID }; f.getTileDataAt = function (a, b, c) { a = f.getTileAt(a, b, c); return null == a ? "" : a.metadata }; f.getTilesetIDAt = function (a, b, c) { a = f.getTileAt(a, b, c); return null == a ? -1 : a.parent.ID }; f.getTileAt = function (a, b, c) { c = f.getTileLayerAt(c); return null == c ? null : c.getTileAt(a, b) }; f.removeTileAt = function (a, b, c) { if (null != c && c instanceof Jc) { var d = w.__cast(c, Jc).tiles, e = f.getTileAt(a, b, c); null != e && (h.NO_PHYSICS || -1 == e.collisionID ? -1 != e.collisionID && (c = b, e = a, null == e && (e = 0), null == c && (c = 0), d.grid.setTile(c, e, !1)) : (c = "ID-" + b * f.engine.scene.tileWidth + "-" + a * f.engine.scene.tileHeight + "-" + c.ID, e = f.engine.dynamicTiles.h[c], null != e && (f.engine.removeActor(e), e = f.engine.dynamicTiles, Object.prototype.hasOwnProperty.call(e.h, c) && delete e.h[c])), d.setTileAt(a, b, null), f.engine.tileUpdated = !0) } }; f.getTileForCollision = function (a, b) { if (a.thisCollidedWithTile || a.otherCollidedWithTile) { var c = Math.round(h.toPixelUnits(b.normalX)), d = Math.round(h.toPixelUnits(b.normalY)), e = Math.round(h.toPixelUnits(b.x)); b = Math.round(h.toPixelUnits(b.y)); a.thisCollidedWithTile && (c = -c, d = -d); 0 > c && 0 == e % f.engine.scene.tileWidth && --e; 0 > d && 0 == b % f.engine.scene.tileHeight && --b; e = f.getTilePosition(0, e); b = f.getTilePosition(1, b); a = 0; for (c = f.engine.interactiveLayers; a < c.length;) if (d = c[a], ++a, d = d.tiles.getTileAt(b, e), null != d && -1 != d.collisionID) return d } return null }; f.getTileDataForCollision = function (a, b) { a = f.getTileForCollision(a, b); return null != a ? a.metadata : "" }; f.getTilePositionForCollision = function (a, b, c) { if (b.thisCollidedWithTile || b.otherCollidedWithTile) { var d = Math.round(h.toPixelUnits(c.normalX)), e = Math.round(h.toPixelUnits(c.normalY)), g = Math.round(h.toPixelUnits(c.x)); c = Math.round(h.toPixelUnits(c.y)); b.thisCollidedWithTile && (d = -d, e = -e); 0 > d && 0 == g % f.engine.scene.tileWidth && --g; 0 > e && 0 == c % f.engine.scene.tileHeight && --c; g = f.getTilePosition(0, g); c = f.getTilePosition(1, c); return 0 == a ? g : c } return -1 }; f.createDynamicTile = function (a, b, c, d, e, g) { a = new wb(f.engine, 1E8, 1, b, c, d, e, g, null, null, null, null, !1, !0, !1, !1, a, !1, !1); a.set_name("Terrain"); a.set_visible(!1); f.engine.dynamicTiles.h["ID-" + b + "-" + c + "-" + d] = a }; f.getFont = function (a) { return pc.get().resources.get(a) }; f.pause = function () { f.engine.pause() }; f.unpause = function () { f.engine.unpause() }; f.toggleFullScreen = function () { h.engine.toggleFullScreen() }; f.pauseAll = function () { h.paused = !0 }; f.unpauseAll = function () { h.paused = !1 }; f.getScreenWidth = function () { return h.screenWidth }; f.getScreenHeight = function () { return h.screenHeight }; f.getStageWidth = function () { return h.stage.stageWidth }; f.getStageHeight = function () { return h.stage.stageHeight }; f.setOffscreenTolerance = function (a, b, c, d) { h.paddingTop = a; h.paddingLeft = b; h.paddingBottom = c; h.paddingRight = d }; f.isTransitioning = function () { return f.engine.isTransitioning() }; f.setTimeScale = function (a) { h.timeScale = a }; f.randomFloat = function () { return Math.random() }; f.randomFloatBetween = function (a, b) { return a <= b ? a + Math.random() * (b - a) : b + Math.random() * (a - b) }; f.randomInt = function (a, b) { return a <= b ? a + Math.floor(Math.random() * (b - a + 1)) : b + Math.floor(Math.random() * (a - b + 1)) }; f.saveGame = function (a, b) { a = qd.getLocal(a, zd.current.meta.h.localSavePath); for (var c = Object.keys(f.engine.gameAttributes.h), d = c.length, e = 0; e < d;) { var g = c[e++]; 0 != f.engine.savableAttributes.h[g] && X.saveToSharedObject(a, g, f.engine.gameAttributes.h[g]) } X.flushSharedObject(a, b) }; f.loadGame = function (a, b) { a = qd.getLocal(a, zd.current.meta.h.localSavePath); for (var c = 0, d = V.fields(a.data); c < d.length;) { var e = d[c]; ++c; var g = f.engine.gameAttributes, r = X.loadFromSharedObject(a, e); g.h[e] = r } null != b && b(!0) }; f.saveData = function (a, b, c, d) { a = qd.getLocal(a, zd.current.meta.h.localSavePath); X.saveToSharedObject(a, b, c); X.flushSharedObject(a, d) }; f.loadData = function (a, b, c) { a = qd.getLocal(a, zd.current.meta.h.localSavePath); b = X.loadFromSharedObject(a, b); null != c && c(!0); return b }; f.checkData = function (a, b) { a = qd.getLocal(a, zd.current.meta.h.localSavePath); return null != V.field(a.data, b) }; f.defaultURLHandler = function (a) { new uh(a.target) }; f.openURLInBrowser = function (a) { Oa.getURL(new Vg(a)) }; f.visitURL = function (a, b) { null == b && (b = f.defaultURLHandler); try { var c = new Vg(a); c.method = "GET"; (new uh(c)).addEventListener("complete", b) } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } }; f.postToURL = function (a, b, c) { null == c && (c = f.defaultURLHandler); a = new Vg(a); a.method = "POST"; null != b && (a.data = $r._new(b)); try { var d = new uh(a); d.addEventListener("complete", c); f.runLater(500, function (a) { d.close() }) } catch (e) { if (ra.lastError = e, "string" != typeof I.caught(e).unwrap()) throw e; } }; f.convertToPseudoUnicode = function (a) { var b = ""; try { for (var c = 0, d = 0, e = a.length; d < e;) { c = d; var g = a.charCodeAt(d); d += 55296 <= g && 56319 >= g ? 2 : 1; var r = ig.codePointAt(a, c), f = r; if (128 > f) { var p = 65535 >= r ? String.fromCodePoint(r) : String.fromCodePoint((r >> 10) + 55232) + String.fromCodePoint(r & 1023 | 56320); b += p } else b += "~x" + T.hex(f, 4) } } catch (m) { return ra.lastError = m, a } return b }; f.simpleTweet = function (a, b) { f.openURLInBrowser("http://twitter.com/home?status=" + encodeURIComponent(a + " " + b)) }; f.newgroundsShowAd = function () { }; f.newgroundsSetMedalPosition = function (a, b) { }; f.newgroundsUnlockMedal = function (a) { }; f.newgroundsSubmitScore = function (a, b) { }; f.newgroundsShowScore = function (a) { }; f.newgroundsHelper = function (a) { }; f.kongregateInitAPI = function () { }; f.kongregateSubmitStat = function (a, b) { }; f.kongregateIsGuest = function () { return !0 }; f.kongregateGetUsername = function () { return "Guest" }; f.kongregateGetUserID = function () { return 0 }; f.loadAtlas = function (a) { f.engine.atlasesToLoad.h[a] = a }; f.unloadAtlas = function (a) { f.engine.atlasesToUnload.h[a] = a }; f.atlasIsLoaded = function (a) { a = zb.get().atlases.h[a]; return null != a ? a.active : !1 }; f.initGooglePlayGames = function () { }; f.stopGooglePlayGames = function () { }; f.getGPGConnectionInfo = function (a) { return !1 }; f.showGPGAchievements = function () { }; f.showGPGLeaderboards = function () { }; f.showGPGLeaderboard = function (a) { }; f.showGPGQuests = function () { }; f.unlockGPGAchievement = function (a) { }; f.incrementGPGAchievement = function (a, b) { }; f.submitGPGScore = function (a, b) { }; f.updateGPGEvent = function (a, b) { }; f.getCompletedGPGQuests = function () { return [] }; f.gameCenterInitialize = function () { }; f.gameCenterIsAuthenticated = function () { return !1 }; f.gameCenterGetPlayerName = function () { return "None" }; f.gameCenterGetPlayerID = function () { return "None" }; f.gameCenterShowLeaderboard = function (a) { }; f.gameCenterShowAchievements = function () { }; f.gameCenterSubmitScore = function (a, b) { }; f.gameCenterSubmitAchievement = function (a, b) { }; f.gameCenterResetAchievements = function () { }; f.gameCenterShowBanner = function (a, b) { }; f.purchasesAreInitialized = function () { return !1 }; f.purchasesRestore = function () { }; f.purchasesBuy = function (a) { }; f.purchasesHasBought = function (a) { return !1 }; f.purchasesGetTitle = function (a) { return "" }; f.purchasesGetDescription = function (a) { return "" }; f.purchasesGetPrice = function (a) { return "" }; f.purchasesRequestProductInfo = function (a) { }; f.purchasesUse = function (a) { }; f.purchasesGetQuantity = function (a) { return 0 }; f.showAlert = function (a, b) { }; f.vibrate = function (a) { }; f.showKeyboard = function () { }; f.hideKeyboard = function () { }; f.setKeyboardText = function (a) { }; f.setIconBadgeNumber = function (a) { }; f.enableDebugDrawing = function () { h.DEBUG_DRAW = !0; h.NO_PHYSICS || h.debugDrawer.m_sprite.get_graphics().clear() }; f.disableDebugDrawing = function () { h.DEBUG_DRAW = !1; h.NO_PHYSICS || h.debugDrawer.m_sprite.get_graphics().clear() }; f.gameURL = function () { return "" }; f.exitGame = function () { }; f.createGrayscaleFilter = function () { var a = []; a = a.concat([.5, .5, .5, 0, 0]); a = a.concat([.5, .5, .5, 0, 0]); a = a.concat([.5, .5, .5, 0, 0]); a = a.concat([0, 0, 0, 1, 0]); return new jg(a) }; f.createSepiaFilter = function () { var a = []; a = a.concat([.34, .33, .33, 0, 30]); a = a.concat([.33, .34, .33, 0, 20]); a = a.concat([.33, .33, .34, 0, 0]); a = a.concat([0, 0, 0, 1, 0]); return new jg(a) }; f.createNegativeFilter = function () { var a = []; a = a.concat([-1, 0, 0, 0, 255]); a = a.concat([0, -1, 0, 0, 255]); a = a.concat([0, 0, -1, 0, 255]); a = a.concat([0, 0, 0, 1, 0]); return new jg(a) }; f.createTintFilter = function (a, b) { null == b && (b = 1); var c = new bb; c.colorize(a, b); return c.getFilter() }; f.createHueFilter = function (a) { var b = new bb; b.adjustHue(a); b.adjustSaturation(1); return b.getFilter() }; f.createSaturationFilter = function (a) { var b = new bb; b.adjustSaturation(a / 100); return b.getFilter() }; f.createBrightnessFilter = function (a) { var b = new bb; b.adjustBrightness(a / 100); return b.getFilter() }; f.prototype = { wrapper: null, propertyChangeEvents: null, equalityPairs: null, checkProperties: null, nameMap: null, attributeTweens: null, scriptInit: null, toInternalName: function (a) { if (null == this.nameMap) return a; var b = this.nameMap.h[a]; return null == b ? a : b }, forwardMessage: function (a) { }, clearListeners: function () { this.propertyChangeEvents = new xa }, internalGetGroup: function (a, b, c) { if (h.NO_PHYSICS) return b = w.__cast(c, Ac), a == b.actorA ? f.engine.getGroup(b.groupA) : f.engine.getGroup(b.groupB); b = w.__cast(b, Kf); if (null == b) return w.__cast(a, wb).getGroup(); a = b.groupID; return -1E3 == a && (b = b.getBody(), null != b) ? f.engine.getGroup(b.getUserData().groupID) : f.engine.getGroup(a) }, init: function () { }, addMobileKeyboardListener: function (a, b) { a = new wi(kd.TYPE_KEYBOARD, a, b); f.engine.nativeListeners.push(a) }, addMobileAdListener: function (a, b) { a = new wi(kd.TYPE_ADS, a, b); f.engine.nativeListeners.push(a) }, addGameCenterListener: function (a, b) { a = new wi(kd.TYPE_GAMECENTER, a, b); f.engine.nativeListeners.push(a) }, addPurchaseListener: function (a, b) { a = new wi(kd.TYPE_PURCHASES, a, b); f.engine.nativeListeners.push(a) }, addListener: function (a, b) { a.add(b); this instanceof P && w.__cast(this, P).actor.registerListener(a, b) }, addListenerWithKey: function (a, b, c) { a.exists(b) || a.set(b, new Kc); a = a.get(b); a.add(c); this instanceof P && w.__cast(this, P).actor.registerListener(a, c) }, addListenerWithKey2: function (a, b, c, d) { if (!a.h.hasOwnProperty(b)) { var e = new eb; a.h[b] = e } if (!a.h[b].h.hasOwnProperty(c)) { var g = a.h[b]; e = new Kc; g.h[c] = e } a = a.h[b].h[c]; a.add(d); this instanceof P && w.__cast(this, P).actor.registerListener(a, d) }, addWhenCreatedListener: function (a, b) { null != a && this.addListener(a.whenCreated, function () { b(null) }) }, addWhenKilledListener: function (a, b) { null != a && this.addListener(a.whenKilled, function () { b(null) }) }, addWhenUpdatedListener: function (a, b) { var c = this instanceof P; null == a && c && (a = w.__cast(this, P).actor); null != a ? (c = function (a) { b(a, null) }, this.addListener(a.whenUpdated, c)) : (c = function (a) { b(a, null) }, this.addListener(f.engine.whenUpdated, c)) }, addWhenDrawingListener: function (a, b) { var c = this instanceof P; null == a && c && (a = w.__cast(this, P).actor); null != a ? (c = function (a, c, g) { b(a, c, g, null) }, this.addListener(a.whenDrawing, c)) : (c = function (a, c, g) { b(a, c, g, null) }, this.addListener(f.engine.whenDrawing, c)) }, addActorEntersRegionListener: function (a, b) { null != a && this.addListener(a.whenActorEntered, function (a) { b(a, null) }) }, addActorExitsRegionListener: function (a, b) { null != a && this.addListener(a.whenActorExited, function (a) { b(a, null) }) }, addActorPositionListener: function (a, b) { null != a && this.addListener(a.whenPositionStateChanged, function (a, d, e, g) { b(a, d, e, g, null) }) }, addActorTypeGroupPositionListener: function (a, b) { this.addListenerWithKey(f.engine.whenTypeGroupPositionStateChangedEvents, a, function (a, d, e, g, r) { b(a, d, e, g, r, null) }) }, addSwipeListener: function (a) { this.addListener(f.engine.whenSwiped, function () { a(null) }) }, addMultiTouchStartListener: function (a) { this.addListener(f.engine.whenMTStarted, function (b) { a(b, null) }) }, addMultiTouchMoveListener: function (a) { this.addListener(f.engine.whenMTDragged, function (b) { a(b, null) }) }, addMultiTouchEndListener: function (a) { this.addListener(f.engine.whenMTEnded, function (b) { a(b, null) }) }, addKeyStateListener: function (a, b) { this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent(a), function (a, d) { b(a, d, null) }) }, addAnyKeyPressedListener: function (a) { this.addListener(f.engine.whenAnyKeyPressed, function (b) { a(b, null) }) }, addAnyKeyReleasedListener: function (a) { this.addListener(f.engine.whenAnyKeyReleased, function (b) { a(b, null) }) }, addAnyGamepadPressedListener: function (a) { this.addListener(f.engine.whenAnyGamepadPressed, function (b) { a(b, null) }) }, addAnyGamepadReleasedListener: function (a) { this.addListener(f.engine.whenAnyGamepadReleased, function (b) { a(b, null) }) }, addMousePressedListener: function (a) { this.addListener(f.engine.whenMousePressed, function () { a(null) }) }, addMouseReleasedListener: function (a) { this.addListener(f.engine.whenMouseReleased, function () { a(null) }) }, addMouseMovedListener: function (a) { this.addListener(f.engine.whenMouseMoved, function () { a(null) }) }, addMouseDraggedListener: function (a) { this.addListener(f.engine.whenMouseDragged, function () { a(null) }) }, addMouseOverActorListener: function (a, b) { null != a && this.addListener(a.whenMousedOver, function (a) { b(a, null) }) }, addPropertyChangeListener: function (a, b, c) { var d = function () { c(null, null) }; this.addListenerWithKey(this.propertyChangeEvents, a, d); null != b && this.addListenerWithKey(this.propertyChangeEvents, b, d); this.checkProperties = !0 }, propertyChanged: function (a) { if (this.checkProperties && (a = this.propertyChangeEvents.h[a], null != a && 0 < a.length)) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex]() } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } ++a._dispatchIndex } }, addCollisionListener: function (a, b) { null != a && this.addListener(a.whenCollided, function (a) { b(a, null) }) }, addSceneCollisionListener: function (a, b, c) { this.addListenerWithKey2(f.engine.whenCollidedEvents, a, b, function (a) { c(a, null) }) }, addWhenTypeGroupCreatedListener: function (a, b) { this.addListenerWithKey(f.engine.whenTypeGroupCreatedEvents, a, function (a) { b(a, null) }) }, addWhenTypeGroupKilledListener: function (a, b) { this.addListenerWithKey(f.engine.whenTypeGroupKilledEvents, a, function (a) { b(a, null) }) }, addSoundListener: function (a, b) { a instanceof Ph ? this.addListenerWithKey(f.engine.whenSoundEndedEvents, a, function () { b(null) }) : this.addListenerWithKey(f.engine.whenChannelEndedEvents, a, function () { b(null) }) }, addFocusChangeListener: function (a) { this.addListener(f.engine.whenFocusChanged, function (b) { a(b, null) }) }, addPauseListener: function (a) { this.addListener(f.engine.whenPaused, function (b) { a(b, null) }) }, addFullscreenListener: function (a) { this.addListener(f.engine.whenFullscreenChanged, function () { a(null) }) }, addGameScaleListener: function (a) { this.addListener(f.engine.whenGameScaleChanged, function () { a(null) }) }, addScreenSizeListener: function (a) { this.addListener(f.engine.whenScreenSizeChanged, function () { a(null) }) }, disableThisBehavior: function () { f.engine.behaviors.disableBehavior(this.wrapper.name) }, tweenNumber: function (a, b, c, d) { null == c && (c = 1); var e = this, g = this.attributeTweens.h[a]; null == g && (g = new ce, g.doOnUpdate(function () { e[a] = g.value }), this.attributeTweens.h[a] = g); g.tween(V.field(this, a), b, d, 1E3 * c | 0) }, abortTweenNumber: function (a) { a = this.attributeTweens.h[a]; null != a && nb.cancel(a) }, pauseTweens: function () { for (var a = this.attributeTweens.h, b = Object.keys(a), c = b.length, d = 0; d < c;) a[b[d++]].paused = !0 }, unpauseTweens: function () { for (var a = this.attributeTweens.h, b = Object.keys(a), c = b.length, d = 0; d < c;) a[b[d++]].paused = !1 }, __class__: f }; var P = function (a) { f.call(this); this.actor = a }; k["com.stencyl.behavior.ActorScript"] = P; P.__name__ = "com.stencyl.behavior.ActorScript"; P.__super__ = f; P.prototype = u(f.prototype, { actor: null, getValue: function (a, b) { return this.actor.getValue(a, b) }, setValue: function (a, b, c) { this.actor.setValue(a, b, c) }, shout: function (a, b) { return this.actor.shout(a, b) }, disableThisBehavior: function () { this.actor.disableBehavior(this.wrapper.name) }, __class__: P }); var ui = function (a, b, c, d, e, g, r) { this.ID = a; this.fieldName = b; this.fullName = c; this.type = e; this.value = d; this.realValue = null; this.hidden = r }; k["com.stencyl.behavior.Attribute"] = ui; ui.__name__ = "com.stencyl.behavior.Attribute"; ui.prototype = { ID: null, fieldName: null, fullName: null, type: null, defaultValue: null, value: null, realValue: null, hidden: null, getRealValue: function () { null == this.realValue && ("int" == this.type ? this.realValue = this.value : "float" == this.type || "number" == this.type ? this.realValue = this.value : "bool" == this.type || "boolean" == this.type ? this.realValue = this.value : "color" == this.type ? this.realValue = this.value : "sound" == this.type || "actortype" == this.type || "font" == this.type ? (this.realValue = -1 == this.value ? null : pc.get().resources.get(this.value), "font" != this.type || this.realValue instanceof Re || (this.realValue = null), "sound" != this.type || this.realValue instanceof Ph || (this.realValue = null), "actortype" != this.type || this.realValue instanceof gg || (this.realValue = null)) : "actorgroup" == this.type ? this.realValue = this.value : "control" == this.type ? this.realValue = this.value : "animation" == this.type ? this.realValue = this.value : "game-attribute" == this.type ? this.realValue = this.value : "scene" == this.type ? this.realValue = zb.get().scenes.h[this.value] : "text" == this.type ? this.realValue = this.value : "list" == this.type ? (this.realValue = this.value, null == this.value && (this.realValue = [])) : "map" == this.type ? (this.realValue = this.value, null == this.value && (this.realValue = new xa)) : null != this.value && "actor" == this.type ? this.realValue = this.value : null != this.value && "joint" == this.type ? this.realValue = this.value : null != this.value && "region" == this.type && (this.realValue = this.value)); return this.realValue }, __class__: ui }; var Xk = function (a, b, c, d, e, g, r, f, p, m) { this.isEvent = m; this.parent = a; this.engine = b; this.classname = e; if (null != b) try { this.cls = k[e] } catch (Ke) { if (ra.lastError = Ke, "string" != typeof I.caught(Ke).unwrap()) throw Ke; } this.enabled = g; this.drawable = r; this.ID = c; this.name = d; this.type = p; this.attributes = f }; k["com.stencyl.behavior.Behavior"] = Xk; Xk.__name__ = "com.stencyl.behavior.Behavior"; Xk.prototype = { parent: null, engine: null, enabled: null, drawable: null, isEvent: null, ID: null, name: null, type: null, classname: null, cls: null, script: null, attributes: null, initScript: function (a) { null == a && (a = !1); if (null == this.cls) this.script = new Md; else { if ("actor" == this.type) { if (w.getClass(this.parent) == h) { this.script = new Md; return } this.script = Ha.createInstance(this.cls, [0, this.parent, null]) } else { if (w.getClass(this.parent) == wb) { this.script = new Md; return } this.script = Ha.createInstance(this.cls, [0, null]) } this.script.wrapper = this; this.initAttributes(); if (!a) try { this.script.init(), this.script.scriptInit = !0 } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } } }, initAttributes: function () { for (var a = this.attributes.h, b = Object.keys(a), c = b.length, d = 0; d < c;) { var e = a[b[d++]]; try { if (!(e.hidden || "actor" == e.type && "actor" == e.fieldName && this.script instanceof P)) { var g = this.script.toInternalName(e.fieldName); if ("actor" == e.type || "joint" == e.type || "region" == e.type) { var r = e.getRealValue(); "actor" == e.type ? this.script[g] = this.engine.getActor(r) : "joint" != e.type && "region" == e.type && (this.script[g] = this.engine.getRegion(r)) } else if ("actorgroup" == e.type) { var f = e.getRealValue(); this.script[g] = this.engine.getGroup(f) } else { var p = e.getRealValue(); if ("list" == e.type) { e = null; if (null != p) { e = w.__cast(p, Array); for (var m = [], h = 0; h < e.length;) { var n = e[h]; ++h; m.push(n) } e = m } else e = []; this.script[g] = e } else if ("map" == e.type) { e = null; if (null != p) { m = p; e = new xa; for (var l = m.keys(); l.hasNext();) { var k = l.next(), t = m.get(k); e.h[k] = t } } else e = new xa; this.script[g] = e } else this.script[g] = p } } } catch (ub) { if (ra.lastError = ub, "string" != typeof I.caught(ub).unwrap()) throw ub; } } }, __class__: Xk }; var Hj = function (a, b) { this.behaviorID = a; this.values = b; this.enabled = !0 }; k["com.stencyl.behavior.BehaviorInstance"] = Hj; Hj.__name__ = "com.stencyl.behavior.BehaviorInstance"; Hj.prototype = {behaviorID: null, values: null, enabled: null, __class__: Hj}; var zj = function () { this.behaviors = []; this.cache = new xa }; k["com.stencyl.behavior.BehaviorManager"] = zj; zj.__name__ = "com.stencyl.behavior.BehaviorManager"; zj.prototype = { behaviors: null, cache: null, destroy: function () { this.cache = this.behaviors = null }, add: function (a) { this.cache.h[a.name] = a; this.behaviors.push(a) }, hasBehavior: function (a) { return null == this.cache ? !1 : null != this.cache.h[a] }, enableBehavior: function (a) { if (this.hasBehavior(a)) { a = this.cache.h[a]; if (null != a.script && !a.script.scriptInit) try { a.script.init(), a.script.scriptInit = !0 } catch (b) { if (ra.lastError = b, "string" != typeof I.caught(b).unwrap()) throw b; } a.enabled = !0 } }, disableBehavior: function (a) { this.hasBehavior(a) && (this.cache.h[a].enabled = !1) }, isBehaviorEnabled: function (a) { return this.hasBehavior(a) ? this.cache.h[a].enabled : !1 }, initScripts: function () { for (var a = 0, b = this.behaviors.length; a < b;) { var c = a++; c = this.behaviors[c]; c.initScript(!c.enabled) } }, getAttribute: function (a, b) { a = this.cache.h[a]; if (null != a && null != a.script) { b = a.script.toInternalName(b); var c = V.field(a.script, b); null != c || vh.hasField(a.script.wrapper.classname, b); return c } return null }, setAttribute: function (a, b, c) { a = this.cache.h[a]; null != a && null != a.script && vh.hasField(a.script.wrapper.classname, b) && (a.script[b] = c, a.script.propertyChanged(b)) }, call: function (a, b) { if (null == this.cache) return null; for (var c = null, d = 0, e = this.behaviors.length; d < e;) { var g = d++; g = this.behaviors[g]; if (g.enabled && null != g.script) try { var r = V.field(g.script, a); null != r ? c = r.apply(g.script, b) : g.script.forwardMessage(a) } catch (v) { if (ra.lastError = v, "string" == typeof I.caught(v).unwrap()) g.script.forwardMessage(a); else throw v; } } return c }, call2: function (a, b, c) { if (null == this.cache) return null; var d = null; a = this.cache.h[a]; if (null != a) { if (!a.enabled || null == a.script) return d; try { var e = V.field(a.script, b); null != e ? d = e.apply(a.script, c) : a.script.forwardMessage(b) } catch (g) { if (ra.lastError = g, "string" == typeof I.caught(g).unwrap()) a.script.forwardMessage(b); else throw g; } } return d }, __class__: zj }; var vh = function () { }; k["com.stencyl.behavior.ReflectionHelper"] = vh; vh.__name__ = "com.stencyl.behavior.ReflectionHelper"; vh.getFieldMap = function (a) { var b = vh.fieldMaps.h[a]; if (null == b) try { for (var c = Ha.getInstanceFields(k[a]), d = new xa, e = 0; e < c.length;) { var g = c[e]; ++e; d.h[g] = !0 } b = d; vh.fieldMaps.h[a] = b } catch (r) { if (ra.lastError = r, "string" != typeof I.caught(r).unwrap()) throw r; } return b }; vh.hasField = function (a, b) { a = vh.getFieldMap(a); return null == a ? !1 : Object.prototype.hasOwnProperty.call(a.h, b) }; var Md = function () { f.call(this) }; k["com.stencyl.behavior.SceneScript"] = Md; Md.__name__ = "com.stencyl.behavior.SceneScript"; Md.__super__ = f; Md.prototype = u(f.prototype, {__class__: Md}); var $k = function (a, b, c, d) { this.toExecute = a; this.interval = b; this.repeats = c; this.actor = d; this.done = !1; this.timer = b }; k["com.stencyl.behavior.TimedTask"] = $k; $k.__name__ = "com.stencyl.behavior.TimedTask"; $k.prototype = { toExecute: null, interval: null, repeats: null, actor: null, timer: null, done: null, actorCreateTime: null, update: function (a) { null == this.actor || this.actor.isAlive() ? null == this.actor && h.engine.isPaused() || null != this.actor && this.actor.isPaused() || (this.timer -= a, 0 >= this.timer && (this.toExecute(this), this.done = !this.repeats, this.repeats && (this.timer += this.interval))) : this.done = !0 }, __class__: $k }; var Kc = function () { this._dispatchIndex = -1; this.listeners = []; this.length = 0 }; k["com.stencyl.event.Event"] = Kc; Kc.__name__ = "com.stencyl.event.Event"; Kc.prototype = { listeners: null, length: null, _dispatchIndex: null, add: function (a) { this.listeners.push(a); ++this.length }, has: function (a) { for (var b = 0, c = this.listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.listeners.length; 0 <= --b;) V.compareMethods(this.listeners[b], a) && (this.listeners.splice(b, 1), --this.length, this._dispatchIndex >= b && --this._dispatchIndex) }, removeAll: function () { this.listeners.splice(0, this.length); this._dispatchIndex = this.length = 0 }, __class__: Kc }; var as = function () { }; k["com.stencyl.event.EventDispatcher"] = as; as.__name__ = "com.stencyl.event.EventDispatcher"; var Pn = function () { this.keys = []; this.map = new xa }; k["com.stencyl.event.EventMap_String_func_Bool_Bool_Void"] = Pn; Pn.__name__ = "com.stencyl.event.EventMap_String_func_Bool_Bool_Void"; Pn.prototype = { keys: null, map: null, hasEvents: function () { return 0 < this.keys.length }, getOrCreateEvent: function (a) { var b = this.map.get(a); null == b && (b = new Kc, this.map.set(a, b), this.keys.push(a)); return b }, getEvent: function (a) { return this.map.get(a) }, __class__: Pn }; var wi = function (a, b, c) { this.metaType = a; this.type = b; this.fn = c }; k["com.stencyl.event.NativeListener"] = wi; wi.__name__ = "com.stencyl.event.NativeListener"; wi.prototype = { metaType: null, type: null, fn: null, checkEvents: function (a) { a = a.eventTable.h[this.metaType]; if (null != a) for (var b = 0; b < a.length;) { var c = a[b]; ++b; c.type == this.type && (this.metaType == kd.TYPE_ADS ? this.fn() : this.metaType == kd.TYPE_PURCHASES ? this.fn(c.data1) : this.metaType == kd.TYPE_GAMECENTER ? this.fn(c.data1) : this.metaType == kd.TYPE_KEYBOARD && this.fn(c.data1)) } }, __class__: wi }; var Xc = function (a, b) { null == b && (b = ""); this.type = a; this.data1 = b }; k["com.stencyl.event.StencylEvent"] = Xc; Xc.__name__ = "com.stencyl.event.StencylEvent"; Xc.prototype = {type: null, data1: null, __class__: Xc}; var vb = function (a, b) { null == b && (b = 2); this.swipeTimeout = .1; this.longPressDelay = 1; var c = this; if (!vb.initialized) { vb.initialized = !0; var d = Oa.get_current().stage; vb.moveToleSqr = .008 * (new na(d.stageWidth, d.stageHeight)).get_length(); vb.moveToleSqr *= vb.moveToleSqr; Ce.get_supportsTouchEvents() && (Ce.inputMode = 2) } this.owner = a; this.mode = b; a = Ce.get_supportsTouchEvents(); this.owner.mouseEnabled = !0; this.listenEvents = 1 == this.mode ? a ? vb.touchEvents : vb.mouseEvents : a ? vb.geTouchEvents : vb.geMouseEvents; this.handler = 1 == this.mode ? a ? q(this, this.convertTouch) : q(this, this.convertMouse) : a ? q(this, this.onTouch) : q(this, this.onMouse); a = 0; for (b = this.listenEvents; a < b.length;) d = b[a], ++a, this.owner.addEventListener(d, this.handler); 3 == this.mode && Oa.get_current().stage.addEventListener("resize", function (a) { c.overlay = null }); this.touchList = new E; this.setReady() }; k["com.stencyl.gestures.RoxGestureAgent"] = vb; vb.__name__ = "com.stencyl.gestures.RoxGestureAgent"; vb.__properties__ = {get_multitouchSupported: "get_multitouchSupported"}; vb.init = function () { if (!vb.initialized) { vb.initialized = !0; var a = Oa.get_current().stage; vb.moveToleSqr = .008 * (new na(a.stageWidth, a.stageHeight)).get_length(); vb.moveToleSqr *= vb.moveToleSqr; Ce.get_supportsTouchEvents() && (Ce.inputMode = 2) } }; vb.localOffset = function (a, b) { var c = a.parent.localToGlobal(new na(a.get_x(), a.get_y())); c.offset(b.x, b.y); c = a.parent.globalToLocal(c); c.offset(-a.get_x(), -a.get_y()); return c }; vb.get_multitouchSupported = function () { return Ce.get_supportsTouchEvents() ? 1 < Ce.maxTouchPoints : !1 }; vb.initTypeMap = function () { for (var a = new xa, b = 0, c = vb.MAP.length >> 1; b < c;) { var d = b++; a.h[vb.MAP[d << 1]] = vb.MAP[(d << 1) + 1] } return a }; vb.prototype = { mode: null, longPressDelay: null, swipeTimeout: null, owner: null, touch0: null, touch1: null, touchList: null, listenEvents: null, handler: null, longPressTimer: null, tweener: null, overlay: null, state: null, detach: function () { null != this.tweener && (nb.cancel(this.tweener), this.tweener = null); this.setReady(); for (var a = 0, b = this.listenEvents; a < b.length;) { var c = b[a]; ++a; this.owner.removeEventListener(c, this.handler) } this.overlay = this.owner = null }, getHandler: function (a) { null == a && (a = 3); var b = q(this, this.handleEvent), c = a; return function (a) { b(c, a) } }, startTweenXY: function (a, b, c, d) { var e = this; this.tweener = new Of; this.tweener.tween(a.get_x(), c, a.get_y(), d, Wa.linear, 1E3 * b | 0).doOnUpdate(function () { a.set_x(e.tweener.value1); a.set_y(e.tweener.value2) }) }, stopTween: function () { null != this.tweener && (nb.cancel(this.tweener), this.tweener = null) }, handleEvent: function (a, b) { var c = b.target; if (c == this.owner) switch (b.type) { case "rox_gesture_pan": b = b.extra; var d = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); d.offset(b.x, b.y); d = c.parent.globalToLocal(d); d.offset(-c.get_x(), -c.get_y()); b = d; 0 != (a & 1) && c.set_x(c.get_x() + b.x); 0 != (a & 2) && c.set_y(c.get_y() + b.y); break; case "rox_gesture_pinch": d = b.extra; var e = c.parent.localToGlobal(new na(c.get_x(), c.get_y())), g = e.x - b.stageX; e = e.y - b.stageY; a = Math.atan2(e, g); g = (new na(g, e)).get_length(); g = na.polar(g * d, a); g.offset(b.stageX, b.stageY); g = c.parent.globalToLocal(g); c.set_scaleX(c.get_scaleX() * d); c.set_scaleY(c.get_scaleY() * d); c.set_x(g.x); c.set_y(g.y); break; case "rox_gesture_rotation": a = b.extra; e = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); g = e.x - b.stageX; e = e.y - b.stageY; d = Math.atan2(e, g); g = (new na(g, e)).get_length(); g = na.polar(g, d + a); g.offset(b.stageX, b.stageY); g = c.parent.globalToLocal(g); c.set_rotation(c.get_rotation() + vb.R2D * a); c.set_x(g.x); c.set_y(g.y); break; case "rox_gesture_swipe": b = new na(2 * b.extra.x, 2 * b.extra.y); d = c.parent.localToGlobal(new na(c.get_x(), c.get_y())); d.offset(b.x, b.y); d = c.parent.globalToLocal(d); d.offset(-c.get_x(), -c.get_y()); b = d; a = c.get_x() + b.x; b = c.get_y() + b.y; var r = this; this.tweener = new Of; this.tweener.tween(c.get_x(), a, c.get_y(), b, Wa.linear, 2E3).doOnUpdate(function () { c.set_x(r.tweener.value1); c.set_y(r.tweener.value2) }) } }, convertTouch: function (a) { this.owner.dispatchEvent(new ad(vb.typeMap.h[a.type], a.bubbles, a.cancelable, a.localX, a.localY, a.stageX, a.stageY, a.touchPointID, this)) }, convertMouse: function (a) { var b = a.type; ("mouseDown" == b || "mouseUp" == b || "click" == b || a.buttonDown) && this.owner.dispatchEvent(new ad(vb.typeMap.h[b], a.bubbles, a.cancelable, a.localX, a.localY, a.stageX, a.stageY, 0, this)) }, onTouch: function (a) { var b = a.touchPointID, c = null == this.touch0 || this.touch0.tid == b; (c || null != this.touch1 && this.touch1.tid == b || null != this.touch0 && null == this.touch1 && this.touch0.tid != b) && this.handleTouch(vb.typeMap.h[a.type], a, c, b) }, onMouse: function (a) { var b = a.type; ("mouseDown" == b || "mouseUp" == b || a.buttonDown) && this.handleTouch(vb.typeMap.h[b], a, !0, 0) }, handleTouch: function (a, b, c, d) { var e = new Sn(this.owner, b, d); d = c ? this.touch0 : this.touch1; if ("rox_touch_move" == a && null != d) { var g = d.sx - e.sx; var r = d.sy - e.sy; g = g * g + r * r < vb.moveToleSqr } else g = !1; if (g) return !1; d = !0; switch (this.state) { case 0: if (c && "rox_touch_begin" == a) { this.state = 1; this.touch0 = e; var f = q(this, this.sendLongPress); g = function () { f(e) }; this.longPressTimer = nb.timer(1E3 * this.longPressDelay | 0).doOnComplete(g); null != this.tweener && (nb.cancel(this.tweener), this.tweener = null); if (3 == this.mode) for (c = Oa.get_current().stage, null == this.overlay && (this.overlay = new Ca, this.overlay.set_name("overlay"), this.overlay.get_graphics().beginFill(16777215, .00392156862745098), this.overlay.get_graphics().drawRect(0, 0, c.stageWidth, c.stageHeight)), c.addChild(this.overlay), c = 0, a = this.listenEvents; c < a.length;) g = a[c], ++c, this.overlay.addEventListener(g, this.handler) } else d = !1; break; case 1: c && "rox_touch_end" == a ? (this.owner.dispatchEvent(new ad("rox_gesture_tap", null, null, e.lx, e.ly, e.sx, e.sy, null, this)), this.setReady()) : c && "rox_touch_move" == a ? (c = new na(e.sx - this.touch0.sx, e.sy - this.touch0.sy), this.owner.dispatchEvent(new ad("rox_gesture_pan", null, null, e.lx, e.ly, e.sx, e.sy, null, this, c)), this.state = 4, null != this.touch0 && this.touchList.push(this.touch0), this.touch0 = e, null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null)) : c || "rox_touch_begin" != a ? d = !1 : (this.state = 2, this.touch1 = e, null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null)); break; case 2: "rox_touch_end" == a ? (this.owner.dispatchEvent(new ad("rox_gesture_end", null, null, e.lx, e.ly, e.sx, e.sy, null, this)), this.setReady()) : "rox_touch_move" == a ? (b = c ? this.touch1 : this.touch0, r = c ? this.touch0 : this.touch1, g = na.distance(e.spt, b.spt) / na.distance(r.spt, b.spt), a = Math.atan2(e.sy - b.sy, e.sx - b.sx) - Math.atan2(r.sy - b.sy, r.sx - b.sx), b = na.interpolate(b.lpt, r.lpt, .5), r = this.owner.localToGlobal(b), 1 != g && this.owner.dispatchEvent(new ad("rox_gesture_pinch", null, null, b.x, b.y, r.x, r.y, null, this, g)), 0 != a && this.owner.dispatchEvent(new ad("rox_gesture_rotation", null, null, b.x, b.y, r.x, r.y, null, this, a)), c ? this.touch0 = e : this.touch1 = e) : d = !1; break; case 4: if (c && "rox_touch_move" == a) c = new na(e.sx - this.touch0.sx, e.sy - this.touch0.sy), this.owner.dispatchEvent(new ad("rox_gesture_pan", null, null, e.lx, e.ly, e.sx, e.sy, null, this, c)), this.state = 4, null != this.touch0 && this.touchList.push(this.touch0), this.touch0 = e, null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null); else if (c && ("rox_touch_end" == a || 3 != this.mode && "rox_touch_out" == a && b.target == this.owner)) { if (0 >= this.swipeTimeout || e.time - this.touch0.time < this.swipeTimeout) { c = this.touchList.pop(); b = null; for (a = this.touchList.h; null != a;) { g = a.item; a = a.next; if (.2 < c.time - g.time) break; b = g } null != b && (r = c.sy - b.sy, g = c.sx - b.sx, a = Math.atan2(r, g), c = na.polar((new na(g, r)).get_length() / (c.time - b.time) * .25, a), this.owner.dispatchEvent(new ad("rox_gesture_swipe", null, null, e.lx, e.ly, e.sx, e.sy, null, this, c))) } this.setReady() } else c || "rox_touch_begin" != a ? d = !1 : (this.owner.dispatchEvent(new ad("rox_gesture_begin", null, null, e.lx, e.ly, e.sx, e.sy, null, this)), this.state = 2, this.touch1 = e, null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null)) } return d }, sendLongPress: function (a) { this.owner.dispatchEvent(new ad("rox_gesture_long_press", null, null, a.lx, a.ly, a.sx, a.sy, null, this)); this.setReady() }, setReady: function () { this.state = 0; this.touch0 = this.touch1 = null; this.touchList.clear(); null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null); if (null != this.overlay && 3 == this.mode) { for (var a = 0, b = this.listenEvents; a < b.length;) { var c = b[a]; ++a; this.overlay.removeEventListener(c, this.handler) } Oa.get_current().stage.removeChild(this.overlay) } }, setMove: function (a) { this.state = 4; null != this.touch0 && this.touchList.push(this.touch0); this.touch0 = a; null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null) }, setTwoFingerMove: function (a) { this.state = 2; this.touch1 = a; null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null) }, cancelLongPress: function () { null != this.longPressTimer && (nb.cancel(this.longPressTimer), this.longPressTimer = null) }, __class__: vb }; var Sn = function (a, b, c) { this.tid = c; this.sx = b.stageX; this.sy = b.stageY; this.spt = new na(this.sx, this.sy); this.lpt = a.globalToLocal(this.spt); this.lx = this.lpt.x; this.ly = this.lpt.y; this.time = (new Date).getTime() / 1E3 }; k["com.stencyl.gestures._RoxGestureAgent.TouchPoint"] = Sn; Sn.__name__ = "com.stencyl.gestures._RoxGestureAgent.TouchPoint"; Sn.prototype = { tid: null, lx: null, ly: null, sx: null, sy: null, lpt: null, spt: null, time: null, distSqr: function (a) { var b = a.sx - this.sx; a = a.sy - this.sy; return b * b + a * a }, __class__: Sn }; var oa = function (a, b, c) { null == c && (c = !1); null == b && (b = !1); this.type = a; this.bubbles = b; this.cancelable = c; this.eventPhase = 2 }; k["openfl.events.Event"] = oa; oa.__name__ = "openfl.events.Event"; oa.prototype = { bubbles: null, cancelable: null, currentTarget: null, eventPhase: null, target: null, type: null, __isCanceled: null, __isCanceledNow: null, __preventDefault: null, clone: function () { var a = new oa(this.type, this.bubbles, this.cancelable); a.eventPhase = this.eventPhase; a.target = this.target; a.currentTarget = this.currentTarget; return a }, formatToString: function (a, b, c, d, e, g) { var r = []; null != b && r.push(b); null != c && r.push(c); null != d && r.push(d); null != e && r.push(e); null != g && r.push(g); return q(this, this.__formatToString).apply(this, [a, r]) }, isDefaultPrevented: function () { return this.__preventDefault }, preventDefault: function () { this.cancelable && (this.__preventDefault = !0) }, stopImmediatePropagation: function () { this.__isCanceledNow = this.__isCanceled = !0 }, stopPropagation: function () { this.__isCanceled = !0 }, toString: function () { return this.__formatToString("Event", ["type", "bubbles", "cancelable"]) }, __formatToString: function (a, b) { a = "[" + a; for (var c, d = 0; d < b.length;) { var e = b[d]; ++d; c = V.field(this, e); a = "string" == typeof c ? a + (" " + e + '="' + z.string(c) + '"') : a + (" " + e + "=" + z.string(c)) } return a + "]" }, __init: function () { this.currentTarget = this.target = null; this.cancelable = this.bubbles = !1; this.eventPhase = 2; this.__preventDefault = this.__isCanceledNow = this.__isCanceled = !1 }, __class__: oa }; var ad = function (a, b, c, d, e, g, r, f, p, m) { null == f && (f = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.localX = d; this.localY = e; this.stageX = g; this.stageY = r; this.touchPointID = f; this.agent = p; this.extra = m }; k["com.stencyl.gestures.RoxGestureEvent"] = ad; ad.__name__ = "com.stencyl.gestures.RoxGestureEvent"; ad.__super__ = oa; ad.prototype = u(oa.prototype, { localX: null, localY: null, stageX: null, stageY: null, touchPointID: null, agent: null, extra: null, toString: function () { return this.type + "(" + this.touchPointID + "): local=(" + this.localX + "," + this.localY + "), stage=(" + this.stageX + "," + this.stageY + "), extra=" + (this.extra instanceof na ? "Point(" + z.string(this.extra.x) + "," + z.string(this.extra.y) + ")" : this.extra) }, __class__: ad }); var dl = function () { }; k["com.stencyl.graphics.AbstractAnimation"] = dl; dl.__name__ = "com.stencyl.graphics.AbstractAnimation"; dl.__isInterface__ = !0; dl.prototype = { update: null, getCurrentFrame: null, getNumFrames: null, setFrame: null, isFinished: null, activate: null, reset: null, draw: null, getFrameDurations: null, setFrameDurations: null, setFrameDuration: null, getCurrentImage: null, __class__: dl }; var dd = function (a, b, c) { null == c && (c = !1); Ga.call(this); this.__drawableType = 2; this.__bitmapData = a; this.pixelSnapping = b; this.smoothing = c; null == b && (this.pixelSnapping = 1) }; k["openfl.display.Bitmap"] = dd; dd.__name__ = "openfl.display.Bitmap"; dd.__super__ = Ga; dd.prototype = u(Ga.prototype, { pixelSnapping: null, smoothing: null, __image: null, __bitmapData: null, __imageVersion: null, __enterFrame: function (a) { null == this.__bitmapData || null == this.__bitmapData.image || this.__bitmapData.image.version == this.__imageVersion || this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __getBounds: function (a, b) { var c = ba.__pool.get(); null != this.__bitmapData ? c.setTo(0, 0, this.__bitmapData.width, this.__bitmapData.height) : c.setTo(0, 0, 0, 0); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) }, __hitTest: function (a, b, c, d, e, g) { if (!g.get_visible() || this.__isMask || null == this.__bitmapData || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; this.__getRenderTransform(); var r = this.__renderTransform, f = r.a * r.d - r.b * r.c; c = 0 == f ? -r.tx : 1 / f * (r.c * (r.ty - b) + r.d * (a - r.tx)); r = this.__renderTransform; f = r.a * r.d - r.b * r.c; a = 0 == f ? -r.ty : 1 / f * (r.a * (b - r.ty) + r.b * (r.tx - a)); if (0 < c && 0 < a && c <= this.__bitmapData.width && a <= this.__bitmapData.height) { if (null != this.__scrollRect && !this.__scrollRect.contains(c, a)) return !1; null == d || e || d.push(g); return !0 } return !1 }, __hitTestMask: function (a, b) { if (null == this.__bitmapData) return !1; this.__getRenderTransform(); var c = this.__renderTransform, d = c.a * c.d - c.b * c.c, e = 0 == d ? -c.tx : 1 / d * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; d = c.a * c.d - c.b * c.c; a = 0 == d ? -c.ty : 1 / d * (c.a * (b - c.ty) + c.b * (c.tx - a)); return 0 < e && 0 < a && e <= this.__bitmapData.width && a <= this.__bitmapData.height ? !0 : !1 }, get_bitmapData: function () { return this.__bitmapData }, set_bitmapData: function (a) { this.__bitmapData = a; this.smoothing = !1; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); this.__imageVersion = -1; return this.__bitmapData }, set_height: function (a) { null != this.__bitmapData ? this.set_scaleY(a / this.__bitmapData.height) : this.set_scaleY(0); return a }, set_width: function (a) { null != this.__bitmapData ? this.set_scaleX(a / this.__bitmapData.width) : this.set_scaleX(0); return a }, __class__: dd, __properties__: u(Ga.prototype.__properties__, { set_bitmapData: "set_bitmapData", get_bitmapData: "get_bitmapData" }) }); var Ij = function (a) { dd.call(this, a.frames[0]); this.model = a; this.set_x(Math.round(-a.frameWidth / 2 * h.SCALE)); this.set_y(Math.round(-a.frameHeight / 2 * h.SCALE)); this.frameIndex = this.timer = 0; this.individualDurations = !1; this.durations = a.durations; this.numFrames = this.durations.length; this.smoothing = aa.antialias; this.finished = 1 >= this.numFrames; null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias }; k["com.stencyl.graphics.BitmapAnimation"] = Ij; Ij.__name__ = "com.stencyl.graphics.BitmapAnimation"; Ij.__interfaces__ = [dl]; Ij.__super__ = dd; Ij.prototype = u(dd.prototype, { model: null, frameIndex: null, timer: null, finished: null, durations: null, individualDurations: null, frames: null, numFrames: null, filter: null, filteredFrames: null, update: function (a) { this.model.sync && this.model.looping ? (a = this.frameIndex, this.timer = this.model.sharedTimer, this.frameIndex = this.model.sharedFrameIndex, a != this.frameIndex && (null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), this.smoothing = aa.antialias)) : (this.timer += a, 0 < this.numFrames && this.timer > this.durations[this.frameIndex] && (a = this.frameIndex, this.timer -= this.durations[this.frameIndex], this.frameIndex++, this.frameIndex >= this.numFrames && (this.model.looping ? this.frameIndex = 0 : (this.finished = !0, this.frameIndex--)), a != this.frameIndex && (null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), this.smoothing = aa.antialias))) }, getCurrentFrame: function () { return this.frameIndex }, getNumFrames: function () { return this.numFrames }, setFrame: function (a) { if (0 > a || a >= this.numFrames) a = 0; a != this.frameIndex && (this.frameIndex = a, null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]), this.smoothing = aa.antialias); this.timer = 0; this.finished = !1 }, isFinished: function () { return this.finished }, reset: function () { this.frameIndex = this.timer = 0; this.finished = !1; null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias }, updateBitmap: function () { null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias }, set_filter: function (a) { this.filter = a; for (var b = [], c = 0, d = this.numFrames; c < d;) c++, b.push(!1); this.filteredFrames = b; b = []; c = 0; for (d = this.numFrames; c < d;) c++, b.push(null); this.frames = b; null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias; return a }, applyFilters: function (a, b, c) { null == a && (a = new ka(b.width, b.height)); for (var d = 0; d < c.length;) { var e = c[d]; ++d; b = e.__applyFilter(a, b, b.rect, X.zero) } return a }, draw: function (a, b, c, d, e) { if (!aa.disposeImages || this.model.checkImageReadable()) { e = this.get_bitmapData(); null == d && (d = 0); b *= a.scaleX; c *= a.scaleY; a.rect.x = 0; a.rect.y = 0; a.rect.width = e.width; a.rect.height = e.height; a.drawActor ? null != a.actor && a.actor.isHUD ? (a.point.x = a.x + b, a.point.y = a.y + c) : (a.point.x = a.x + b - h.cameraX, a.point.y = a.y + c - h.cameraY) : (a.point.x = a.x + b, a.point.y = a.y + c); a.mtx.identity(); a.mtx.rotate(d); a.mtx.translate(a.point.x, a.point.y); if (0 == d) 1 != a.alpha && (a.point2.x = 0, a.point2.y = 0, a.rect2.width = e.width, a.rect2.height = e.height, c = new ka(e.width, e.height, !0, a.toARGB(0, 255 * a.alpha | 0)), b = new ka(e.width, e.height, !0, 0), b.copyPixels(e, a.rect2, a.point2, c, null, !0), e = b), a.graphics.beginBitmapFill(e, a.mtx), a.graphics.drawRect(a.point.x, a.point.y, e.width, e.height); else { 1 != a.alpha && (a.point2.x = 0, a.point2.y = 0, a.rect2.width = e.width, a.rect2.height = e.height, c = new ka(e.width, e.height, !0, a.toARGB(0, 255 * a.alpha | 0)), b = new ka(e.width, e.height, !0, 0), b.copyPixels(e, a.rect2, a.point2, c, null, !0), e = b); c = new ka(e.width + 2, e.height + 2, !0, 0); b = Math.sqrt(Math.pow(c.width, 2) + Math.pow(c.height, 2)) | 0; d = new ba(0, 0, e.width, e.height); var g = new na(1, 1); c.copyPixels(e, d, g); a.graphics.beginBitmapFill(c, a.mtx, !1, aa.antialias); a.graphics.drawRect(a.x - (b - e.width) / 2, a.y - (b - e.height) / 2, b, b) } a.graphics.endFill() } }, getFrameDurations: function () { return this.durations }, setFrameDurations: function (a) { if (null != this.durations) { for (var b = [], c = 0, d = this.durations.length; c < d;) c++, b.push(a); this.durations = b; this.individualDurations = !0 } }, setFrameDuration: function (a, b) { if (!this.individualDurations) { for (var c = [], d = 0, e = this.durations.length; d < e;) { var g = d++; c.push(this.durations[g]) } this.durations = c; this.individualDurations = !0 } 0 <= a && a < this.durations.length && (this.durations[a] = b) }, framesUpdated: function () { this.set_x(Math.round(-this.model.frameWidth / 2 * h.SCALE)); this.set_y(Math.round(-this.model.frameHeight / 2 * h.SCALE)); null != this.filter ? (this.filteredFrames[this.frameIndex] || (this.frames[this.frameIndex] = this.applyFilters(this.frames[this.frameIndex], this.model.frames[this.frameIndex], this.filter), this.filteredFrames[this.frameIndex] = !0), this.set_bitmapData(this.frames[this.frameIndex])) : this.set_bitmapData(this.model.frames[this.frameIndex]); this.smoothing = aa.antialias }, getCurrentImage: function () { return aa.disposeImages && !this.model.checkImageReadable() ? xe.UNLOADED : this.get_bitmapData() }, activate: function () { }, __class__: Ij, __properties__: u(dd.prototype.__properties__, {set_filter: "set_filter"}) }); var th = function () { }; k["com.stencyl.graphics.EngineScaleUpdateListener"] = th; th.__name__ = "com.stencyl.graphics.EngineScaleUpdateListener"; th.__isInterface__ = !0; th.prototype = {updateScale: null, __class__: th}; var el = function (a) { this.cacheParentAnchor = X.zero; Ca.call(this); this.img = a; this.offsetY = this.offsetX = 0; this.addChild(a) }; k["com.stencyl.graphics.BitmapWrapper"] = el; el.__name__ = "com.stencyl.graphics.BitmapWrapper"; el.__interfaces__ = [th]; el.__super__ = Ca; el.prototype = u(Ca.prototype, { img: null, offsetX: null, offsetY: null, cacheParentAnchor: null, smoothing: null, imgX: null, imgY: null, tweenProps: null, set_imgX: function (a) { this.set_x((a + this.offsetX) * h.SCALE - this.cacheParentAnchor.x); return this.imgX = a }, get_imgX: function () { return this.imgX }, set_imgY: function (a) { this.set_y((a + this.offsetY) * h.SCALE - this.cacheParentAnchor.y); return this.imgY = a }, get_imgY: function () { return this.imgY }, set_smoothing: function (a) { return this.img.smoothing = a }, get_smoothing: function () { return this.img.smoothing }, setOrigin: function (a, b) { this.set_x(this.get_x() + (a - this.offsetX) * h.SCALE); this.set_y(this.get_y() + (b - this.offsetY) * h.SCALE); this.offsetX = a; this.offsetY = b; this.img.set_x(-a * h.SCALE); this.img.set_y(-b * h.SCALE) }, updateScale: function () { this.updatePosition() }, updatePosition: function () { this.set_x((this.get_imgX() + this.offsetX) * h.SCALE - this.cacheParentAnchor.x); this.set_y((this.get_imgY() + this.offsetY) * h.SCALE - this.cacheParentAnchor.y) }, get_tweenProps: function () { null == this.tweenProps && (this.tweenProps = new Tn(this)); return this.tweenProps }, __class__: el, __properties__: u(Ca.prototype.__properties__, { get_tweenProps: "get_tweenProps", set_imgY: "set_imgY", get_imgY: "get_imgY", set_imgX: "set_imgX", get_imgX: "get_imgX", set_smoothing: "set_smoothing", get_smoothing: "get_smoothing" }) }); var Tn = function (a) { this.bmp = a; this.xy = (new Of).doOnUpdate(q(this, this.onUpdateXY)); this.angle = (new ce).doOnUpdate(q(this, this.onUpdateAngle)); this.alpha = (new ce).doOnUpdate(q(this, this.onUpdateAlpha)); this.scaleXY = (new Of).doOnUpdate(q(this, this.onUpdateScaleXY)) }; k["com.stencyl.graphics.BitmapTweenProperties"] = Tn; Tn.__name__ = "com.stencyl.graphics.BitmapTweenProperties"; Tn.prototype = { xy: null, angle: null, alpha: null, scaleXY: null, bmp: null, pause: function () { this.xy.paused = !0; this.angle.paused = !0; this.alpha.paused = !0; this.scaleXY.paused = !0 }, unpause: function () { this.xy.paused = !1; this.angle.paused = !1; this.alpha.paused = !1; this.scaleXY.paused = !1 }, cancel: function () { this.xy.active && nb.cancel(this.xy); this.angle.active && nb.cancel(this.angle); this.alpha.active && nb.cancel(this.alpha); this.scaleXY.active && nb.cancel(this.scaleXY) }, onUpdateXY: function () { this.bmp.set_imgX(this.xy.value1); this.bmp.set_imgY(this.xy.value2) }, onUpdateAngle: function () { this.bmp.set_rotation(this.angle.value) }, onUpdateAlpha: function () { this.bmp.set_alpha(this.alpha.value) }, onUpdateScaleXY: function () { this.bmp.set_scaleX(this.scaleXY.value1); this.bmp.set_scaleY(this.scaleXY.value2) }, __class__: Tn }; var fl = function () { }; k["com.stencyl.graphics.BlendModes"] = fl; fl.__name__ = "com.stencyl.graphics.BlendModes"; fl.get = function (a) { return fl.stringBlendMap.h[a] }; var ca = function () { this.drawActor = !1; this.x = this.y = 0; this.scaleX = this.scaleY = h.SCALE; this.alpha = 1; this.blendMode = 10; this.strokeColor = this.fillColor = this.strokeSize = 0; this.rect = new ba; this.rect2 = new ba; this.point = new na; this.point2 = new na; this.data = [0, 0, 0]; this.drawPoly = !1; this.firstY = this.firstX = this.pointCounter = 0; this.font = this.defaultFont = new Re(-1, 0, "", !0); this.mtx = new Ja }; k["com.stencyl.graphics.G"] = ca; ca.__name__ = "com.stencyl.graphics.G"; ca.resetStatics = function () { ca.fontCache = null }; ca.visitStringCache = function () { for (var a = ca.drawnStringCacheKeys.length; 0 < a--;) { var b = ca.drawnStringCache.h[ca.drawnStringCacheKeys[a]]; --b.lifetime; if (0 == b.lifetime) { b.img.dispose(); b = ca.drawnStringCacheKeys[a]; var c = ca.drawnStringCache; Object.prototype.hasOwnProperty.call(c.h, b) && delete c.h[b]; ca.drawnStringCacheKeys[a] = ca.drawnStringCacheKeys[ca.drawnStringCacheKeys.length - 1]; ca.drawnStringCacheKeys.pop() } } }; ca.prototype = { defaultFont: null, graphics: null, x: null, y: null, scaleX: null, scaleY: null, alpha: null, blendMode: null, strokeSize: null, fillColor: null, strokeColor: null, font: null, fontData: null, mtx: null, rect: null, rect2: null, point: null, point2: null, data: null, drawPoly: null, pointCounter: null, firstX: null, firstY: null, drawActor: null, actor: null, resetGraphicsSettings: function () { this.alpha = 1; this.strokeColor = this.fillColor = this.strokeSize = 0; this.font = this.defaultFont }, setFont: function (a) { null != a && a != this.font && (this.font = a) }, startGraphics: function () { !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha) }, endGraphics: function () { this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, translate: function (a, b) { this.x += a * this.scaleX; this.y += b * this.scaleY }, moveTo: function (a, b) { if (this.drawActor) { if (null != this.actor) { var c = this.actor; this.drawActor = !0; this.actor = c; if (c.smoothMove) { var d = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y; this.x = (c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x) * this.scaleX; this.y = d * this.scaleY } else this.x = c.colX * this.scaleX, this.y = c.colY * this.scaleY } this.x += a * this.scaleX; this.y += b * this.scaleY } else this.x = a * this.scaleX, this.y = b * this.scaleY }, translateToScreen: function () { this.drawActor = !1; this.actor = null; this.y = this.x = 0 }, translateToActor: function (a) { this.drawActor = !0; this.actor = a; if (a.smoothMove) { var b = a.drawY - Math.floor(a.cacheHeight / 2) - a.currOffset.y; this.x = (a.drawX - Math.floor(a.cacheWidth / 2) - a.currOffset.x) * this.scaleX; this.y = b * this.scaleY } else this.x = a.colX * this.scaleX, this.y = a.colY * this.scaleY }, getCacheKey: function (a, b, c) { return a + ":" + b.ID + ":" + c + ":" + h.SCALE + ":" + b.get_letterSpacing() }, drawString: function (a, b, c) { null == this.font && (this.font = this.defaultFont, this.font.fontScale != h.SCALE && (this.font.fontScale = h.SCALE)); this.drawActor ? null != this.actor && this.actor.isHUD ? (b = this.x + b * this.scaleX, c = this.y + c * this.scaleY) : (b = this.x + b * this.scaleX - h.cameraX, c = this.y + c * this.scaleY - h.cameraY) : (b = this.x + b * this.scaleX, c = this.y + c * this.scaleY); this.mtx.identity(); this.mtx.translate(b, c); var d = null, e = this.font; e = a + ":" + e.ID + ":" + this.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) a = ca.drawnStringCache.h[e], a.lifetime = 5, d = a.img; else { var g = this.font.font.getTextWidth(a, this.font.fontScale), r = this.font.font.getFontHeight() * this.font.fontScale | 0; 0 < g && 0 < r && (d = new ka(g, r, !0, 0), this.font.font.renderToImg(d, a, 0, this.alpha, 0, 0, this.font.fontScale, 0, !1), a = new vc, a.img = d, a.lifetime = 5, ca.drawnStringCache.h[e] = a, ca.drawnStringCacheKeys.push(e)) } null != d && (this.graphics.beginBitmapFill(d, this.mtx, !1, aa.antialias), this.graphics.drawRect(b, c, d.width, d.height), this.graphics.endFill()) }, drawLine: function (a, b, c, d) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; d *= this.scaleY; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x + a, this.y + b); this.graphics.lineTo(this.x + c, this.y + d); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, fillPixel: function (a, b) { !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.lineStyle(); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRect(this.x + (a * h.SCALE | 0), this.y + (b * h.SCALE | 0), h.SCALE | 0, h.SCALE | 0); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, drawRect: function (a, b, c, d) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; d *= this.scaleY; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.drawRect(this.x + a, this.y + b, c, d); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, fillRect: function (a, b, c, d) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; d *= this.scaleY; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRect(this.x + a, this.y + b, c, d); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, drawRoundRect: function (a, b, c, d, e) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; d *= this.scaleY; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.drawRoundRect(this.x + a, this.y + b, c, d, e, e); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, fillRoundRect: function (a, b, c, d, e) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; d *= this.scaleY; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawRoundRect(this.x + a, this.y + b, c, d, e, e); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, drawCircle: function (a, b, c) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.drawCircle(this.x + a, this.y + b, c); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, fillCircle: function (a, b, c) { a *= this.scaleX; b *= this.scaleY; c *= this.scaleX; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.beginFill(this.fillColor, this.alpha); this.graphics.drawCircle(this.x + a, this.y + b, c); this.graphics.endFill(); this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY); this.graphics.lineStyle() }, beginFillPolygon: function () { this.drawPoly = !1; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x, this.y); this.pointCounter = 0 }, endDrawingPolygon: function () { 2 <= this.pointCounter && (this.drawPoly ? this.graphics.lineTo(this.x + this.firstX, this.y + this.firstY) : (this.graphics.lineTo(this.x + this.firstX, this.y + this.firstY), this.graphics.endFill()), this.drawActor && !this.actor.isHUD && (this.x += h.cameraX, this.y += h.cameraY), this.graphics.lineStyle()) }, beginDrawPolygon: function () { this.drawPoly = !0; !this.drawActor || null != this.actor && this.actor.isHUD || (this.x -= h.cameraX, this.y -= h.cameraY); 0 == this.strokeSize ? this.graphics.lineStyle() : this.graphics.lineStyle(this.strokeSize * h.SCALE, this.strokeColor, this.alpha); this.graphics.moveTo(this.x, this.y); this.pointCounter = 0 }, addPointToPolygon: function (a, b) { a *= this.scaleX; b *= this.scaleY; 0 == this.pointCounter && (this.firstX = a, this.firstY = b, this.graphics.moveTo(this.x + a, this.y + b), this.drawPoly || this.graphics.beginFill(this.fillColor, this.alpha)); this.pointCounter++; this.graphics.lineTo(this.x + a, this.y + b) }, drawImage: function (a, b, c, d, e) { null == d && (d = 0); b *= this.scaleX; c *= this.scaleY; this.rect.x = 0; this.rect.y = 0; this.rect.width = a.width; this.rect.height = a.height; this.drawActor ? null != this.actor && this.actor.isHUD ? (this.point.x = this.x + b, this.point.y = this.y + c) : (this.point.x = this.x + b - h.cameraX, this.point.y = this.y + c - h.cameraY) : (this.point.x = this.x + b, this.point.y = this.y + c); this.mtx.identity(); this.mtx.rotate(d); this.mtx.translate(this.point.x, this.point.y); 0 == d ? (1 != this.alpha && (this.point2.x = 0, this.point2.y = 0, this.rect2.width = a.width, this.rect2.height = a.height, b = new ka(a.width, a.height, !0, this.toARGB(0, 255 * this.alpha | 0)), c = new ka(a.width, a.height, !0, 0), c.copyPixels(a, this.rect2, this.point2, b, null, !0), a = c), this.graphics.beginBitmapFill(a, this.mtx), this.graphics.drawRect(this.point.x, this.point.y, a.width, a.height)) : (1 != this.alpha && (this.point2.x = 0, this.point2.y = 0, this.rect2.width = a.width, this.rect2.height = a.height, b = new ka(a.width, a.height, !0, this.toARGB(0, 255 * this.alpha | 0)), c = new ka(a.width, a.height, !0, 0), c.copyPixels(a, this.rect2, this.point2, b, null, !0), a = c), b = new ka(a.width + 2, a.height + 2, !0, 0), c = Math.sqrt(Math.pow(b.width, 2) + Math.pow(b.height, 2)) | 0, d = new ba(0, 0, a.width, a.height), e = new na(1, 1), b.copyPixels(a, d, e), this.graphics.beginBitmapFill(b, this.mtx, !1, aa.antialias), this.graphics.drawRect(this.x - (c - a.width) / 2, this.y - (c - a.height) / 2, c, c)); this.graphics.endFill() }, toARGB: function (a, b) { return a + (b << 24) }, resetFont: function () { this.font = this.defaultFont; this.font.fontScale != h.SCALE && (this.font.fontScale = h.SCALE) }, __class__: ca }; var vc = function () { }; k["com.stencyl.graphics._G.TemporaryImage"] = vc; vc.__name__ = "com.stencyl.graphics._G.TemporaryImage"; vc.prototype = {lifetime: null, img: null, __class__: vc}; var ld = function () { }; k["com.stencyl.graphics.GLUtil"] = ld; ld.__name__ = "com.stencyl.graphics.GLUtil"; ld.initialize = function () { null == ld.gl && (ld.context = h.stage.window.context, ld.context3D = h.stage.context3D, ld.gl = fc.fromRenderContext(ld.context), ld.renderer = h.stage.__renderer, ld.textureMaxSize = ld.gl.getParameter(ld.gl.MAX_TEXTURE_SIZE), ld.textureMaxSize = ld.textureMaxSize / 2 | 0, ld.textureMaxSize > ld.MAX_TEXTURE_CAP && (ld.textureMaxSize = ld.MAX_TEXTURE_CAP), null == ka.__supportsBGRA && (new ka(1, 1, !0, 0)).getTexture(ld.context3D)) }; ld.uploadTexture = function (a, b) { a.getTexture(ld.context3D); b && ld.disposeSoftwareBuffer(a) }; ld.disposeSoftwareBuffer = function (a) { a.image = null; a.readable = !1; a.__surface = null; a.__vertexBuffer = null; a.__framebuffer = null; a.__framebufferContext = null }; ld.createNewTexture = function (a) { var b = ld.context3D.createRectangleTexture(a, a, 1, !1); b.uploadFromTypedArray(null); var c = new ka(0, 0, !0, 0); c.__resize(a, a); c.readable = !1; c.__texture = b; c.__textureContext = ld.context; c.__isValid = !0; c.image = null; return c }; ld.clearTexture = function (a) { a.__texture.uploadFromTypedArray(null) }; var Ld = function (a) { this.value = a }; k["com.stencyl.graphics.Scale"] = Ld; Ld.__name__ = "com.stencyl.graphics.Scale"; Ld.fromString = function (a) { switch (a) { case "1.5x": return Ld._1_5X; case "1x": return Ld._1X; case "2x": return Ld._2X; case "3x": return Ld._3X; case "4x": return Ld._4X; default: return Ld._1X } }; Ld.prototype = { value: null, toString: function () { return 1 == this.value ? "1x" : 1.5 == this.value ? "1.5x" : 2 == this.value ? "2x" : 3 == this.value ? "3x" : 4 == this.value ? "4x" : "" }, __class__: Ld }; var yj = { _new: function (a) { return a }, fromString: function (a) { switch (a) { case "FULLSCREEN": return 1; case "NO_SCALING": return 0; case "SCALE_TO_FIT_FILL": return 4; case "SCALE_TO_FIT_FULLSCREEN": return 5; case "SCALE_TO_FIT_LETTERBOX": return 3; case "STRETCH_TO_FIT": return 2; default: return 0 } }, toString: function (a) { switch (a) { case 0: return "NO_SCALING"; case 1: return "FULLSCREEN"; case 2: return "STRETCH_TO_FIT"; case 3: return "SCALE_TO_FIT_LETTERBOX"; case 4: return "SCALE_TO_FIT_FILL"; case 5: return "SCALE_TO_FIT_FULLSCREEN"; default: return "NO_SCALING" } } }, Cg = function () { this.xSpacing = this.ySpacing = this.lineHeight = this.baseline = 0; this.isDefault = !1; this._point = new na; this._glyphs = new eb; this._num_letters = 0 }; k["com.stencyl.graphics.fonts.BitmapFont"] = Cg; Cg.__name__ = "com.stencyl.graphics.fonts.BitmapFont"; Cg.store = function (a, b) { Cg._storedFonts.h[a] = b }; Cg.fetch = function (a) { return Cg._storedFonts.h[a] }; Cg.prototype = { _glyphs: null, _num_letters: null, _tileset: null, _glyphString: null, _point: null, isDefault: null, xSpacing: null, ySpacing: null, lineHeight: null, baseline: null, loadAngelCode: function (a, b) { this.reset(); if (null != a) { this._glyphString = ""; var c = new ba, d = 0; this._tileset = new xi(a); a = null; for (b = b.elements(); b.hasNext();) { var e = b.next(); if (e.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == e.nodeType ? "null" : sa.toString(e.nodeType))); if ("font" == e.nodeName) for (e = e.elements(); e.hasNext();) { var g = e.next(); if (g.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == g.nodeType ? "null" : sa.toString(g.nodeType))); if ("info" == g.nodeName) { var r = []; var f = 0; for (g = g.get("spacing").split(","); f < g.length;) { var p = g[f]; ++f; r.push(z.parseInt(p)) } this.xSpacing = r[0]; this.ySpacing = r[1] } else { if (g.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == g.nodeType ? "null" : sa.toString(g.nodeType))); if ("common" == g.nodeName) this.lineHeight = z.parseInt(g.get("lineHeight")), this.baseline = z.parseInt(g.get("base")); else { if (g.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == g.nodeType ? "null" : sa.toString(g.nodeType))); "chars" == g.nodeName && (a = g) } } } } if (null != a) for (b = a.elements(); b.hasNext();) { e = b.next(); if (e.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == e.nodeType ? "null" : sa.toString(e.nodeType))); "char" == e.nodeName && (a = new Un, a.tileID = d, a.xoffset = z.parseInt(e.get("xoffset")), a.yoffset = z.parseInt(e.get("yoffset")), a.xadvance = z.parseInt(e.get("xadvance")), c.x = z.parseInt(e.get("x")), c.y = z.parseInt(e.get("y")), c.width = z.parseInt(e.get("width")), c.height = z.parseInt(e.get("height")), e = z.parseInt(e.get("id")), r = String.fromCodePoint(e), this._glyphString += r, a.tileID = " " != r && "" != r && 0 < c.width && 0 < c.height ? this._tileset.addRect(c) : -1, this._glyphs.h[e] = a, this._num_letters++, ++d) } } return this }, reset: function () { this.dispose(); this._glyphs = new eb; this._num_letters = 0; this._glyphString = "" }, prepareBitmapData: function (a, b) { for (var c = a.getPixel(0, 0), d = 0, e; d < a.height;) { var g = 0; for (e = 0; e < a.width;) { if ((a.getPixel(e, d) | 0) != c) { for (var r = e, f = d; (a.getPixel(r, d) | 0) != c;) ++r; for (; (a.getPixel(e, f) | 0) != c;) ++f; r -= e; f -= d; b.push(new ba(e, d, r, f)); f > g && (g = f); e += r } ++e } d += g + 1 } b = a.clone(); g = a.getPixel32(0, 0); for (d = 0; d < a.height;) { for (e = 0; e < a.width;) c = a.getPixel32(e, d), c == g && b.setPixel32(e, d, 0), ++e; ++d } return b }, dispose: function () { this._tileset = null; this._num_letters = 0; this._glyphs = null }, render: function (a, b, c, d, e, g, r) { for (var f, p = r = 0, m = b.length; p < m;) if (f = p++, !(f < r)) { var h = K.cca(b, f); 126 == h && "x" == b.charAt(f + 1) && (f = b.substring(f + 2, f + 6), h = z.parseInt("0x" + f), r += 5); f = this._glyphs.h[h]; null != f && (this._point.x = d + f.xoffset * g, this._point.y = e + f.yoffset * g, -1 != f.tileID && (h = new kg(f.tileID, this._point.x, this._point.y), h.set_scaleX(g), h.set_scaleY(g), h.set_alpha(c), a.addTile(h)), d += (f.xadvance + this.xSpacing) * g); ++r } }, renderToImg: function (a, b, c, d, e, g, r, f, p) { null == p && (p = !0); null == f && (f = 0); var v = new lg(a.width, a.height, this._tileset, aa.antialias); this.render(v, b, d, e, g, r, f); p ? a.draw(v, null, new Pc((c >> 16 & 255) / 255, (c >> 8 & 255) / 255, (c & 255) / 255)) : a.draw(v); v.removeTiles() }, toARGB: function (a, b) { return a + (b << 24) }, getTextWidth: function (a, b) { null == b && (b = 1); for (var c = 0, d = 0, e = a.length, g = 0; g < e;) { var r = g++; if (!(r < d)) { var f = K.cca(a, r); 126 == f && "x" == a.charAt(r + 1) && (r = a.substring(r + 2, r + 6), f = z.parseInt("0x" + r), d += 5); r = this._glyphs.h[f]; null != r && (c += r.xadvance); ++d } } 1 < e && (c += (e - 1) * this.xSpacing); return c * b | 0 }, getFontHeight: function (a) { null == a && (a = 1); return this.lineHeight * a | 0 }, numLetters: null, get_numLetters: function () { return this._num_letters }, containsCharacter: function (a) { return 0 <= this._glyphString.indexOf(a) }, getTileset: function () { return this._tileset }, __class__: Cg, __properties__: {get_numLetters: "get_numLetters"} }; var Un = function () { }; k["com.stencyl.graphics.fonts.FontSymbol"] = Un; Un.__name__ = "com.stencyl.graphics.fonts.FontSymbol"; Un.prototype = {tileID: null, xoffset: null, yoffset: null, xadvance: null, __class__: Un}; var gl = function (a) { this.cacheParentAnchor = X.zero; Ca.call(this); this._text = ""; this._color = 0; this._useColor = !0; this._outline = !1; this._outlineColor = 0; this._shadow = !1; this._shadowColor = 0; this._background = !1; this._backgroundColor = 16777215; this._alignment = 1; this._padding = 0; this._pendingTextChange = !1; this._fieldWidth = 1; this._multiLine = !1; this._fontScale = 1; this._autoUpperCase = !1; this._wordWrap = this._fixedWidth = !0; this._alpha = 1; null == a || a == Re.defaultFont ? (this._font = Re.defaultFont, this._fontScale = h.SCALE) : this._font = a; this.set_cacheAsBitmap(!0); this._pendingTextChange = !0; this.update() }; k["com.stencyl.graphics.fonts.Label"] = gl; gl.__name__ = "com.stencyl.graphics.fonts.Label"; gl.__interfaces__ = [th]; gl.__super__ = Ca; gl.prototype = u(Ca.prototype, { _stencylFont: null, _font: null, _text: null, _color: null, _useColor: null, _outline: null, _outlineColor: null, _shadow: null, _shadowColor: null, _background: null, _backgroundColor: null, _alignment: null, _padding: null, _fontScale: null, _autoUpperCase: null, _wordWrap: null, _fixedWidth: null, _pendingTextChange: null, _fieldWidth: null, _multiLine: null, _alpha: null, labelX: null, labelY: null, _shadowTilemap: null, _outlineTilemap: null, _characterTilemap: null, cacheParentAnchor: null, destroy: function () { this._font = this._stencylFont = null; this.removeChildren(); this._characterTilemap = this._shadowTilemap = this._outlineTilemap = null }, get_text: function () { return this._text }, set_text: function (a) { a.split("\\n").join("\n") != this._text && (this._text = a, this._text = this._text.split("\\n").join("\n"), this._autoUpperCase && (this._text = this._text.toUpperCase()), this._pendingTextChange = !0, this.update()); return this._text }, updateBitmapData: function () { if (null != this._font) { var a = this._fieldWidth * h.SCALE | 0, b = this._padding * h.SCALE | 0, c = a, d = [], e = this._alignment, g = this._text.split("\n"), r = -1; this._multiLine || (g = [g[0]]); for (var f, p; ++r < g.length;) if (this._fixedWidth) { var m = !1; var l = g[r].split(" "); if (0 < l.length) for (var n = 0, k = ""; !m;) { p = l[n]; var t = k + p + " ", q = !1; if (this._wordWrap) this._font.getTextWidth(t, this._fontScale) > a ? ("" == k ? l.splice(0, 1) : d.push(K.substr(k, 0, k.length - 1)), k = "", this._multiLine ? l.splice(0, n) : l.splice(0, l.length), n = 0, q = !0) : (k += p + " ", ++n); else if (this._font.getTextWidth(t, this._fontScale) > a) { var ub = 0; for (f = p.length; ub < f;) t = k + p.charAt(ub), this._font.getTextWidth(t, this._fontScale) > a ? (d.push(K.substr(k, 0, k.length - 1)), p = k = "", n = l.length, ub = f, q = !0) : k += p.charAt(ub), ++ub } else k += p + " ", ++n; n >= l.length && (q || (m = K.substr(k, 0, k.length - 1), c = Math.floor(Math.max(c, this._font.getTextWidth(m, this._fontScale))), d.push(m)), m = !0) } else d.push("") } else c = Math.floor(Math.max(c, this._font.getTextWidth(g[r], this._fontScale))), d.push(g[r]); c = c + 2 * b + (this._outline ? 2 : 0); g = Math.floor(2 * b + Math.max(1, d.length * this._font.lineHeight * this._fontScale + (this._shadow ? 1 : 0) + (this._outline ? 2 : 0)) + (1 <= d.length ? this._font.ySpacing * (d.length - 1) * this._fontScale : 0)); this.get_graphics().clear(); 1 == this._background && (this.get_graphics().beginFill(this._backgroundColor, this._alpha), this.get_graphics().drawRect(0, 0, c, g), this.get_graphics().endFill()); this.removeChildren(); this._outline && (this._outlineTilemap = new lg(c, g, this._font.getTileset(), aa.antialias), this.tint(this._outlineTilemap, this._outlineColor), this.addChild(this._outlineTilemap)); this._shadow && (this._shadowTilemap = new lg(c, g, this._font.getTileset(), aa.antialias), this.tint(this._shadowTilemap, this._shadowColor), this.addChild(this._shadowTilemap)); this._characterTilemap = new lg(c, g, this._font.getTileset(), aa.antialias); this._useColor && this.tint(this._characterTilemap, this._color); this.addChild(this._characterTilemap); for (r = g = 0; r < d.length;) { l = d[r]; ++r; k = n = 0; 3 == e && (n = this._fixedWidth ? Math.floor((a - this._font.getTextWidth(l, this._fontScale)) / 2) : Math.floor((c - this._font.getTextWidth(l, this._fontScale)) / 2)); 2 == e && (n = this._fixedWidth ? a - Math.floor(this._font.getTextWidth(l, this._fontScale)) : c - Math.floor(this._font.getTextWidth(l, this._fontScale)) - 2 * b); n += b; k += b + (g * (this._font.lineHeight + this._font.ySpacing) * this._fontScale | 0); if (this._outline) { for (m = 0; 3 > m;) for (ub = m++, f = 0; 3 > f;) p = f++, this._font.render(this._outlineTilemap, l, this._alpha, n + p, k + ub, this._fontScale); ++n; ++k } this._shadow && this._font.render(this._shadowTilemap, l, this._alpha, n + 1, k + 1, this._fontScale); this._font.render(this._characterTilemap, l, this._alpha, n, k, this._fontScale); ++g } this._pendingTextChange = !1 } }, update: function () { this._pendingTextChange && this.updateBitmapData() }, get_background: function () { return this._background }, set_background: function (a) { this._background != a && (this._background = a, this._pendingTextChange = !0, this.update()); return a }, get_backgroundColor: function () { return this._backgroundColor }, set_backgroundColor: function (a) { this._backgroundColor != a && (this._backgroundColor = a, this._background && (this._pendingTextChange = !0, this.update())); return a }, get_shadow: function () { return this._shadow }, set_shadow: function (a) { this._shadow != a && (this._shadow = a, this._outline = !1, this.updateGlyphs(!1, this._shadow, !1), this._pendingTextChange = !0, this.update()); return a }, get_shadowColor: function () { return this._shadowColor }, set_shadowColor: function (a) { this._shadowColor != a && (this._shadowColor = a, this.updateGlyphs(!1, this._shadow, !1), this._pendingTextChange = !0, this.update()); return a }, get_padding: function () { return this._padding }, set_padding: function (a) { this._padding != a && (this._padding = a, this._pendingTextChange = !0, this.update()); return a }, get_color: function () { return this._color }, set_color: function (a) { this._color != a && (this._color = a, this.updateGlyphs(!0, !1, !1), this._pendingTextChange = !0, this.update()); return a }, get_useColor: function () { return this._useColor }, set_useColor: function (a) { this._useColor != a && (this._useColor = a, this.updateGlyphs(!0, !1, !1), this._pendingTextChange = !0, this.update()); return a }, setWidth: function (a) { 1 > a && (a = 1); a != this._fieldWidth && (this._fieldWidth = a, this._pendingTextChange = !0, this.update()); return a }, get_alignment: function () { return this._alignment }, set_alignment: function (a) { this._alignment != a && (this._alignment = a, this._pendingTextChange = !0, this.update()); return a }, get_multiLine: function () { return this._multiLine }, set_multiLine: function (a) { this._multiLine != a && (this._multiLine = a, this._pendingTextChange = !0, this.update()); return a }, get_outline: function () { return this._outline }, set_outline: function (a) { this._outline != a && (this._outline = a, this._shadow = !1, this.updateGlyphs(!1, !1, !0), this._pendingTextChange = !0, this.update()); return a }, get_outlineColor: function () { return this._outlineColor }, set_outlineColor: function (a) { this._outlineColor != a && (this._outlineColor = a, this.updateGlyphs(!1, !1, this._outline), this._pendingTextChange = !0, this.update()); return a }, get_font: function () { return this._font }, set_font: function (a) { this._font != a && (this._font = a, this.updateGlyphs(!0, this._shadow, this._outline), this._pendingTextChange = !0, this.update()); return a }, get_stencylFont: function () { return this._stencylFont }, set_stencylFont: function (a) { this._stencylFont != a && (this._stencylFont = a, null == a ? (this._font = Re.defaultFont, this._fontScale = h.SCALE) : (this._font = a.font, this._fontScale = a.fontScale), this.updateGlyphs(!0, this._shadow, this._outline), this._pendingTextChange = !0, this.update()); return a }, setAlpha: function (a) { this._alpha != a && (this._alpha = a, this._pendingTextChange = !0, this.update()) }, getAlpha: function () { return this._alpha }, get_fontScale: function () { return this._fontScale }, set_fontScale: function (a) { var b = Math.abs(a); b != this._fontScale && (this._fontScale = b, this.updateGlyphs(!0, this._shadow, this._outline), this._pendingTextChange = !0, this.update()); return a }, get_autoUpperCase: function () { return this._autoUpperCase }, set_autoUpperCase: function (a) { this._autoUpperCase != a && (this._autoUpperCase = a) && this.set_text(this._text.toUpperCase()); return this._autoUpperCase }, get_wordWrap: function () { return this._wordWrap }, set_wordWrap: function (a) { this._wordWrap != a && (this._wordWrap = a, this._pendingTextChange = !0, this.update()); return this._wordWrap }, get_fixedWidth: function () { return this._fixedWidth }, set_fixedWidth: function (a) { this._fixedWidth != a && (this._fixedWidth = a, this._pendingTextChange = !0, this.update()); return this._fixedWidth }, set_labelX: function (a) { this.set_x(a * h.SCALE); return this.labelX = a }, get_labelX: function () { return this.labelX }, set_labelY: function (a) { this.set_y(a * h.SCALE); return this.labelY = a }, get_labelY: function () { return this.labelY }, updatePosition: function () { this.set_x(this.get_labelX() * h.SCALE - this.cacheParentAnchor.x); this.set_y(this.get_labelY() * h.SCALE - this.cacheParentAnchor.y) }, updateScale: function () { this.updatePosition(); null != this._stencylFont ? this.set_font(this._stencylFont.font) : this._font == Re.defaultFont && this.set_fontScale(h.SCALE) }, updateGlyphs: function (a, b, c) { }, tint: function (a, b) { var c = new bb; c.colorize(b, 1); a.set_filters([c.getFilter()]) }, __class__: gl, __properties__: u(Ca.prototype.__properties__, { set_fixedWidth: "set_fixedWidth", get_fixedWidth: "get_fixedWidth", set_wordWrap: "set_wordWrap", get_wordWrap: "get_wordWrap", set_autoUpperCase: "set_autoUpperCase", get_autoUpperCase: "get_autoUpperCase", set_fontScale: "set_fontScale", get_fontScale: "get_fontScale", set_stencylFont: "set_stencylFont", get_stencylFont: "get_stencylFont", set_font: "set_font", get_font: "get_font", set_outlineColor: "set_outlineColor", get_outlineColor: "get_outlineColor", set_outline: "set_outline", get_outline: "get_outline", set_multiLine: "set_multiLine", get_multiLine: "get_multiLine", set_alignment: "set_alignment", get_alignment: "get_alignment", set_useColor: "set_useColor", get_useColor: "get_useColor", set_color: "set_color", get_color: "get_color", set_padding: "set_padding", get_padding: "get_padding", set_shadowColor: "set_shadowColor", get_shadowColor: "get_shadowColor", set_shadow: "set_shadow", get_shadow: "get_shadow", set_backgroundColor: "set_backgroundColor", get_backgroundColor: "get_backgroundColor", set_background: "set_background", get_background: "get_background", set_text: "set_text", get_text: "get_text", set_labelY: "set_labelY", get_labelY: "get_labelY", set_labelX: "set_labelX", get_labelX: "get_labelX" }) }); var Vn = function () { }; k["com.stencyl.graphics.fonts.TextAlign"] = Vn; Vn.__name__ = "com.stencyl.graphics.fonts.TextAlign"; var md = function () { }; k["com.stencyl.graphics.shaders.BasicShader"] = md; md.__name__ = "com.stencyl.graphics.shaders.BasicShader"; md.prototype = { multipassParent: null, multipassTarget: null, model: null, setProperty: function (a, b) { this.model.setUniform(a, b) }, getProperty: function (a) { return this.model.getUniform(a) }, tweenProperty: function (a, b, c, d) { null == c && (c = 1); this.model.tweenUniform(a, b, c, d) }, enable: function () { h.engine.addShader(this.model) }, disable: function () { h.engine.clearShaders() }, setTimeScale: function (a) { this.model.timeScale = a }, combine: function (a) { this.multipassTarget = a; a.multipassParent = this; return a }, __class__: md }; var Wn = function (a, b, c, d, e, g, r, f, p) { null == p && (p = .0075); null == f && (f = .009); null == r && (r = .012); null == g && (g = .6); null == e && (e = .4); null == d && (d = 3); null == c && (c = 4); null == b && (b = .004); null == a && (a = .25); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform vec2 uResolution;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float currPixelWeight;\n\t\t\tuniform float neighborPixelWeight;\n\t\t\tuniform float lowThreshold;\n\t\t\tuniform float mediumThreshold;\n\t\t\tuniform float lowMultiplier;\n\t\t\tuniform float mediumMultiplier;\n\t\t\tuniform float highMultiplier;\n\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\tvec2 q1 = vTexCoord;\n\t\t\t\tvec4 oricol = texture2D(uImage0, vec2(q1.x, q1.y));\n\t\t\t\tvec3 col;\n\t\t\t\t\n\t\t\t\tfor(int i = -3; i < 3; i++) \n\t\t\t\t{\n\t\t\t\t\tfor(int j = -3; j < 3; j++) \n\t\t\t\t\t{\n\t\t\t\t\t\tsum += texture2D(uImage0, vec2(j, i) * neighborPixelWeight + vec2(q1.x, q1.y)) * currPixelWeight;\n\t\t\t\t\t}\n\t\t\t \t}\n\t\t\t \n\t\t\t \tif(oricol.r < lowThreshold) \n\t\t\t \t{\n\t\t\t\t\tgl_FragColor = sum * sum * lowMultiplier + oricol;\n\t\t\t \t} \n\t\t\t \n\t\t\t \telse \n\t\t\t \t{\n\t\t\t\t\tif(oricol.r < mediumThreshold) \n\t\t\t\t\t{\n\t\t\t\t\t\tgl_FragColor = sum * sum * mediumMultiplier + oricol;\n\t\t\t\t \t} \n\t\t\t\t \t\n\t\t\t\t \telse \n\t\t\t\t \t{\n\t\t\t\t\t\tgl_FragColor = sum * sum * highMultiplier + oricol;\n\t\t\t\t \t}\n\t\t\t }\n\t\t\t}\n\t\t", !0); this.setProperty("currPixelWeight", a); this.setProperty("neighborPixelWeight", b); this.setProperty("sampleX", c); this.setProperty("sampleY", d); this.setProperty("lowThreshold", e); this.setProperty("mediumThreshold", g); this.setProperty("lowMultiplier", r); this.setProperty("mediumMultiplier", f); this.setProperty("highMultiplier", p) }; k["com.stencyl.graphics.shaders.BloomShader"] = Wn; Wn.__name__ = "com.stencyl.graphics.shaders.BloomShader"; Wn.__super__ = md; Wn.prototype = u(md.prototype, {__class__: Wn}); var Xn = function (a, b, c) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 2); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\t//in attributes from our vertex shader\n\t\t\tvarying vec2 vTexCoord;\n\t\t\t\n\t\t\t//declare uniforms\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform vec2 uResolution;\n\t\t\t\n\t\t\tuniform float radius;\n\t\t\tuniform float dirx;\n\t\t\tuniform float diry;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\t//this will be our RGBA sum\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\n\t\t\t\t//our original texcoord for this fragment\n\t\t\t\tvec2 tc = vTexCoord;\n\t\t\t\n\t\t\t\t//the amount to blur, i.e. how far off center to sample from\n\t\t\t\t//1.0 -> blur by one pixel\n\t\t\t\t//2.0 -> blur by two pixels, etc.\n\t\t\t\tfloat blur = radius / uResolution.x;\n\t\t\t\n\t\t\t\t//the direction of our blur\n\t\t\t\t//(1.0, 0.0) -> x-axis blur\n\t\t\t\t//(0.0, 1.0) -> y-axis blur\n\t\t\t\tfloat hstep = dirx;\n\t\t\t\tfloat vstep = diry;\n\t\t\t\n\t\t\t\t//apply blurring, using a 9-tap filter with predefined gaussian weights\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 4.0*blur*hstep, tc.y - 4.0*blur*vstep)) * 0.0162162162;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 3.0*blur*hstep, tc.y - 3.0*blur*vstep)) * 0.0540540541;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 2.0*blur*hstep, tc.y - 2.0*blur*vstep)) * 0.1216216216;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x - 1.0*blur*hstep, tc.y - 1.0*blur*vstep)) * 0.1945945946;\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x, tc.y)) * 0.2270270270;\n\t\t\t\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 1.0*blur*hstep, tc.y + 1.0*blur*vstep)) * 0.1945945946;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 2.0*blur*hstep, tc.y + 2.0*blur*vstep)) * 0.1216216216;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 3.0*blur*hstep, tc.y + 3.0*blur*vstep)) * 0.0540540541;\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x + 4.0*blur*hstep, tc.y + 4.0*blur*vstep)) * 0.0162162162;\n\t\t\t\n\t\t\t\t//discard alpha for our simple demo, multiply by vertex color and return\n\t\t\t\tgl_FragColor = vec4(sum.rgb, 1.0);\n\t\t\t}\n\t\t", !0); this.setRadius(a); this.setDirectionX(b); this.setDirectionY(c) }; k["com.stencyl.graphics.shaders.BlurShader"] = Xn; Xn.__name__ = "com.stencyl.graphics.shaders.BlurShader"; Xn.__super__ = md; Xn.prototype = u(md.prototype, { setRadius: function (a) { this.setProperty("radius", a) }, setDirectionX: function (a) { this.setProperty("dirx", a) }, setDirectionY: function (a) { this.setProperty("diry", a) }, __class__: Xn }); var Qh = function (a, b, c) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform float contrast;\n\t\t\tuniform float brightness;\n\t\t\tuniform float saturation;\n\n\t\t\tvec3 _mix(vec3 a, vec3 b, float amount) \n\t\t\t{ \n\t\t\t\treturn vec3(a.x * (1.0 - amount) + b.x * amount, a.y * (1.0 - amount) + b.y * amount, a.z * (1.0 - amount) + b.z * amount); \n\t\t\t}\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tconst vec3 luminanceCoefficient = vec3(0.2125, 0.7154, 0.0721);\n\t\t\t\tvec3 avgLuminance = vec3(0.5, 0.5, 0.5);\n\t\t\n\t\t\t\tvec3 brtColor = vec3(color.x * brightness, color.y * brightness, color.z * brightness);\n\t\t\t\tvec3 intensity = vec3(dot(brtColor, luminanceCoefficient));\n\t\t\t\tvec3 satColor = _mix(intensity, brtColor, saturation);\n\t\t\t\tvec3 conColor = _mix(avgLuminance, satColor, contrast);\n\t\t\n\t\t\t\tgl_FragColor = vec4(conColor, 1);\n\t\t\t}\n\t\t", !0); this.setContrast(a); this.setBrightness(b); this.setSaturation(c) }; k["com.stencyl.graphics.shaders.CSBShader"] = Qh; Qh.__name__ = "com.stencyl.graphics.shaders.CSBShader"; Qh.create = function (a, b) { null == b && (b = 1); null == a && (a = "contrast"); return "contrast" == a ? new Qh(b, 1, 1) : "saturation" == a ? new Qh(1, 1, b) : new Qh(1, b, 1) }; Qh.__super__ = md; Qh.prototype = u(md.prototype, { setContrast: function (a) { this.setProperty("contrast", a) }, setBrightness: function (a) { this.setProperty("brightness", a) }, setSaturation: function (a) { this.setProperty("saturation", a) }, __class__: Qh }); var Yn = function (a) { this.model = new vd(this, "assets/data/" + a) }; k["com.stencyl.graphics.shaders.ExternalShader"] = Yn; Yn.__name__ = "com.stencyl.graphics.shaders.ExternalShader"; Yn.__super__ = md; Yn.prototype = u(md.prototype, {__class__: Yn}); var Zn = function (a, b, c, d, e) { null == e && (e = 1); null == d && (d = 1.6); null == c && (c = .6); null == b && (b = !1); null == a && (a = .05); this.model = new vd(this, "\n\t\t\t/*\n\t\t\t\tFilm Grain post-process shader v1.1\n\t\t\t\tMartins Upitis (martinsh) devlog-martinsh.blogspot.com\n\t\t\t*/\n\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tuniform sampler2D uImage0; //rendered scene sampler\n\t\t\tuniform vec2 uResolution; //scene sampler resolution\n\t\t\tuniform float uTime;\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\t\n\t\t\tconst float permTexUnit = 1.0/256.0; // Perm texture texel-size\n\t\t\tconst float permTexUnitHalf = 0.5/256.0; // Half perm texture texel-size\n\t\t\t\n\t\t\tfloat width;\n\t\t\tfloat height;\n\t\t\t\n\t\t\tuniform float grainamount; //grain amount\n\t\t\tuniform float colored; //colored noise?\n\t\t\tuniform float coloramount;\n\t\t\tuniform float grainsize; //grain particle size (1.5 - 2.5)\n\t\t\tuniform float lumamount; //\n\t\t\t\n\t\t\t//a random texture generator, but you can also use a pre-computed perturbation texture\n\t\t\tvec4 rnm(in vec2 tc)\n\t\t\t{\n\t\t\t\tfloat noise = sin(dot(tc + vec2(uTime,uTime),vec2(12.9898,78.233))) * 43758.5453;\n\t\t\t\n\t\t\t\tfloat noiseR = fract(noise)*2.0-1.0;\n\t\t\t\tfloat noiseG = fract(noise*1.2154)*2.0-1.0;\n\t\t\t\tfloat noiseB = fract(noise*1.3453)*2.0-1.0;\n\t\t\t\tfloat noiseA = fract(noise*1.3647)*2.0-1.0;\n\t\t\t\n\t\t\t\treturn vec4(noiseR,noiseG,noiseB,noiseA);\n\t\t\t}\n\t\t\t\n\t\t\tfloat fade(in float t) {\n\t\t\t\treturn t*t*t*(t*(t*6.0-15.0)+10.0);\n\t\t\t}\n\t\t\t\n\t\t\tfloat pnoise3D(in vec3 p)\n\t\t\t{\n\t\t\t\tvec3 pi = permTexUnit*floor(p)+permTexUnitHalf; // Integer part, scaled so +1 moves permTexUnit texel\n\t\t\t\t// and offset 1/2 texel to sample texel centers\n\t\t\t\tvec3 pf = fract(p); // Fractional part for interpolation\n\t\t\t\n\t\t\t\t// Noise contributions from (x=0, y=0), z=0 and z=1\n\t\t\t\tfloat perm00 = rnm(pi.xy).a ;\n\t\t\t\tvec3 grad000 = rnm(vec2(perm00, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n000 = dot(grad000, pf);\n\t\t\t\tvec3 grad001 = rnm(vec2(perm00, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n001 = dot(grad001, pf - vec3(0.0, 0.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=0, y=1), z=0 and z=1\n\t\t\t\tfloat perm01 = rnm(pi.xy + vec2(0.0, permTexUnit)).a ;\n\t\t\t\tvec3 grad010 = rnm(vec2(perm01, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n010 = dot(grad010, pf - vec3(0.0, 1.0, 0.0));\n\t\t\t\tvec3 grad011 = rnm(vec2(perm01, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n011 = dot(grad011, pf - vec3(0.0, 1.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=1, y=0), z=0 and z=1\n\t\t\t\tfloat perm10 = rnm(pi.xy + vec2(permTexUnit, 0.0)).a ;\n\t\t\t\tvec3 grad100 = rnm(vec2(perm10, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n100 = dot(grad100, pf - vec3(1.0, 0.0, 0.0));\n\t\t\t\tvec3 grad101 = rnm(vec2(perm10, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n101 = dot(grad101, pf - vec3(1.0, 0.0, 1.0));\n\t\t\t\n\t\t\t\t// Noise contributions from (x=1, y=1), z=0 and z=1\n\t\t\t\tfloat perm11 = rnm(pi.xy + vec2(permTexUnit, permTexUnit)).a ;\n\t\t\t\tvec3 grad110 = rnm(vec2(perm11, pi.z)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n110 = dot(grad110, pf - vec3(1.0, 1.0, 0.0));\n\t\t\t\tvec3 grad111 = rnm(vec2(perm11, pi.z + permTexUnit)).rgb * 4.0 - 1.0;\n\t\t\t\tfloat n111 = dot(grad111, pf - vec3(1.0, 1.0, 1.0));\n\t\t\t\n\t\t\t\t// Blend contributions along x\n\t\t\t\tvec4 n_x = mix(vec4(n000, n001, n010, n011), vec4(n100, n101, n110, n111), fade(pf.x));\n\t\t\t\n\t\t\t\t// Blend contributions along y\n\t\t\t\tvec2 n_xy = mix(n_x.xy, n_x.zw, fade(pf.y));\n\t\t\t\n\t\t\t\t// Blend contributions along z\n\t\t\t\tfloat n_xyz = mix(n_xy.x, n_xy.y, fade(pf.z));\n\t\t\t\n\t\t\t\t// We're done, return the final noise value.\n\t\t\t\treturn n_xyz;\n\t\t\t}\n\t\t\t\n\t\t\t//2d coordinate orientation thing\n\t\t\tvec2 coordRot(in vec2 tc, in float angle)\n\t\t\t{\n\t\t\t\tfloat aspect = width/height;\n\t\t\t\tfloat rotX = ((tc.x*2.0-1.0)*aspect*cos(angle)) - ((tc.y*2.0-1.0)*sin(angle));\n\t\t\t\tfloat rotY = ((tc.y*2.0-1.0)*cos(angle)) + ((tc.x*2.0-1.0)*aspect*sin(angle));\n\t\t\t\trotX = ((rotX/aspect)*0.5+0.5);\n\t\t\t\trotY = rotY*0.5+0.5;\n\t\t\t\treturn vec2(rotX,rotY);\n\t\t\t}\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\twidth = uResolution.x;\n\t\t\t\theight = uResolution.y;\n\t\t\t\t\n\t\t\t\tvec2 texCoord = vTexCoord.st;\n\t\t\t\n\t\t\t\tvec3 rotOffset = vec3(1.425,3.892,5.835); //rotation offset values\n\t\t\t\tvec2 rotCoordsR = coordRot(texCoord, uTime + rotOffset.x);\n\t\t\t\tvec3 noise = vec3(pnoise3D(vec3(rotCoordsR*vec2(width/grainsize,height/grainsize),0.0)));\n\t\t\t\n\t\t\t\tif (colored == 1.0)\n\t\t\t\t{\n\t\t\t\t\tvec2 rotCoordsG = coordRot(texCoord, uTime + rotOffset.y);\n\t\t\t\t\tvec2 rotCoordsB = coordRot(texCoord, uTime + rotOffset.z);\n\t\t\t\t\tnoise.g = mix(noise.r,pnoise3D(vec3(rotCoordsG*vec2(width/grainsize,height/grainsize),1.0)),coloramount);\n\t\t\t\t\tnoise.b = mix(noise.r,pnoise3D(vec3(rotCoordsB*vec2(width/grainsize,height/grainsize),2.0)),coloramount);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tvec3 col = texture2D(uImage0, texCoord).rgb;\n\t\t\t\n\t\t\t\t//noisiness response curve based on scene luminance\n\t\t\t\tvec3 lumcoeff = vec3(0.299,0.587,0.114);\n\t\t\t\tfloat luminance = mix(0.0,dot(col, lumcoeff),lumamount);\n\t\t\t\tfloat lum = smoothstep(0.2,0.0,luminance);\n\t\t\t\tlum += luminance;\n\t\t\t\n\t\t\t\n\t\t\t\tnoise = mix(noise,vec3(0.0),pow(lum,4.0));\n\t\t\t\tcol = col+noise*grainamount;\n\t\t\t\n\t\t\t\tgl_FragColor = vec4(col,1.0);\n\t\t\t}\n\t\t", !0); this.setGrainAmount(a); this.setColorAmount(c); this.setGrainSize(d); this.setLuminance(e); b ? this.enableColor() : this.disableColor() }; k["com.stencyl.graphics.shaders.GrainShader"] = Zn; Zn.__name__ = "com.stencyl.graphics.shaders.GrainShader"; Zn.__super__ = md; Zn.prototype = u(md.prototype, { enableColor: function () { this.setProperty("colored", 1) }, disableColor: function () { this.setProperty("colored", 0) }, setGrainAmount: function (a) { this.setProperty("grainamount", a) }, setColorAmount: function (a) { this.setProperty("coloramount", a) }, setGrainSize: function (a) { this.setProperty("grainsize", a) }, setLuminance: function (a) { this.setProperty("lumamount", a) }, __class__: Zn }); var $n = function () { this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tfloat gray = dot(color.rgb, vec3(0.299, 0.587, 0.114));\n\t\t\t\tgl_FragColor = vec4(gray, gray, gray, 1.0);\n\t\t\t}\n\t\t", !0) }; k["com.stencyl.graphics.shaders.GrayscaleShader"] = $n; $n.__name__ = "com.stencyl.graphics.shaders.GrayscaleShader"; $n.__super__ = md; $n.prototype = u(md.prototype, {__class__: $n}); var ao = function (a, b) { null == b && (b = !0); null == a && (a = 0); b && (a *= Math.PI / 180); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float hue;\n\t\t\tconst mat3 rgb2yiq = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);\n\t\t\tconst mat3 yiq2rgb = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.1070, 1.7046);\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tvec3 yColor = rgb2yiq * color; \n\n\t\t\t\tfloat originalHue = atan(yColor.b, yColor.g);\n\t\t\t\tfloat finalHue = originalHue + hue;\n\t\t\t\tfloat chroma = sqrt(yColor.b * yColor.b + yColor.g * yColor.g);\n\t\t\t\t\n\t\t\t\tvec3 yFinalColor = vec3(yColor.r, chroma * cos(finalHue), chroma * sin(finalHue));\n\t\t\t\tgl_FragColor = vec4(yiq2rgb * yFinalColor, 1.0);\n\t\t\t}\n\t\t", !0); this.setHue(a, !1) }; k["com.stencyl.graphics.shaders.HueShader"] = ao; ao.__name__ = "com.stencyl.graphics.shaders.HueShader"; ao.__super__ = md; ao.prototype = u(md.prototype, { setHue: function (a, b) { null == b && (b = !0); b && (a *= Math.PI / 180); this.setProperty("hue", a) }, __class__: ao }); var bo = function (a) { this.model = new vd(this, a, !0) }; k["com.stencyl.graphics.shaders.InlineShader"] = bo; bo.__name__ = "com.stencyl.graphics.shaders.InlineShader"; bo.__super__ = md; bo.prototype = u(md.prototype, {__class__: bo}); var co = function () { this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tgl_FragColor = vec4(vec3(1.0, 1.0, 1.0) - color.rgb, color.a);\n\t\t\t}\n\t\t", !0) }; k["com.stencyl.graphics.shaders.InvertShader"] = co; co.__name__ = "com.stencyl.graphics.shaders.InvertShader"; co.__super__ = md; co.prototype = u(md.prototype, {__class__: co}); var vd = function (a, b, c) { null == c && (c = !1); this.timeScale = 1; this.time = 0; Ga.call(this); this.__drawableType = 3; this.basicShader = a; this.gl = h.stage.__renderer.gl; this.uniforms = new xa; this.changedUniforms = []; this.uniformTweens = new xa; this.rebuild(); this.gl.checkFramebufferStatus(36160); this.buffer = this.gl.createBuffer(); this.gl.bindBuffer(34962, this.buffer); a = [-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]; a = null != a ? new Float32Array(a) : null; fc.bufferData(this.gl, 34962, a, 35044); this.gl.bindBuffer(34962, null); if (c) this.fullScreenShader = new Jj([{ src: "\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}", fragment: !1 }, {src: b, fragment: !0}]); else if (6 < b.length && ".glslx" == K.substr(b, -6, null)) { c = S.parse(Da.getText(b)).firstElement(); if (c.nodeType != S.Document && c.nodeType != S.Element) throw I.thrown("Invalid nodeType " + (null == c.nodeType ? "null" : sa.toString(c.nodeType))); b = ns.resolve(c, "vertex") ? bs.get_innerData(cs.resolve(c, "vertex")) : "\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}"; c = bs.get_innerData(cs.resolve(c, "fragment")); this.fullScreenShader = new Jj([{src: b, fragment: !1}, {src: c, fragment: !0}]) } else b = Da.getText(b), this.fullScreenShader = new Jj([{ src: "\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}", fragment: !1 }, {src: b, fragment: !0}]); this.imageUniform = l.context.getUniformLocation(this.fullScreenShader.program, "uImage0"); this.timeUniform = l.context.getUniformLocation(this.fullScreenShader.program, "uTime"); this.resolutionUniform = l.context.getUniformLocation(this.fullScreenShader.program, "uResolution"); this.resolutionUsUniform = l.context.getUniformLocation(this.fullScreenShader.program, "uResolutionUs"); this.vertexSlot = l.context.getAttribLocation(this.fullScreenShader.program, "aVertex"); this.texCoordSlot = l.context.getAttribLocation(this.fullScreenShader.program, "aTexCoord"); this.addEventListener("renderOpenGL", q(this, this.renderGL)) }; k["com.stencyl.graphics.shaders.PostProcess"] = vd; vd.__name__ = "com.stencyl.graphics.shaders.PostProcess"; vd.__properties__ = {get_vertices: "get_vertices", get_isSupported: "get_isSupported"}; vd.get_isSupported = function () { if (!window.WebGLRenderingContext) return !1; if (null != l.context) return !0; var a = window.document.createElement("canvas"), b = a.getContext("webgl"); null == b && (b = a.getContext("experimental-webgl")); return null != b }; vd.get_vertices = function () { return [-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1] }; vd.__super__ = Ga; vd.prototype = u(Ga.prototype, { __added: null, __initialized: null, gl: null, __enterFrame: function (a) { this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, renderGL: function (a) { var b = a.renderer; if (null != this.stage && this.__renderable) { a = h.stage; var c = a.context3D; b.__setBlendMode(null); null == this.basicShader.multipassTarget ? c.setRenderToBackBuffer() : c.setRenderToTexture(this.basicShader.multipassTarget.model.texture); c.clear(); this.time += h.elapsedTime * this.timeScale; l.context.useProgram(this.fullScreenShader.program); this.gl.enableVertexAttribArray(this.vertexSlot); this.gl.enableVertexAttribArray(this.texCoordSlot); this.gl.activeTexture(33984); this.gl.bindTexture(3553, this.texture.__getTexture()); "opengl" == a.window.context.type && this.gl.enable(3553); this.gl.bindBuffer(34962, this.buffer); this.gl.vertexAttribPointer(this.vertexSlot, 2, 5126, !1, 16, 0); this.gl.vertexAttribPointer(this.texCoordSlot, 2, 5126, !1, 16, 8); this.gl.uniform1i(this.imageUniform, 0); this.gl.uniform1f(this.timeUniform, this.time); this.gl.uniform2f(this.resolutionUniform, a.stageWidth | 0, a.stageHeight | 0); this.gl.uniform2f(this.resolutionUsUniform, a.stageWidth / (h.SCALE * h.screenScaleX) | 0, a.stageHeight / (h.SCALE * h.screenScaleY) | 0); for (b = this.changedUniforms.length; 0 < b--;) { var d = this.changedUniforms.pop(); if (d.value instanceof Array) { if (0 != d.value.length) { var e = this.gl, g = d.id; d = d.value; d = null != d ? new Float32Array(d) : null; e.uniform1fv(g, d) } } else this.gl.uniform1f(d.id, d.value) } this.gl.drawArrays(4, 0, 6); this.gl.bindBuffer(34962, null); "opengl" == a.window.context.type && this.gl.disable(3553); this.gl.bindTexture(3553, null); this.gl.disableVertexAttribArray(this.vertexSlot); this.gl.disableVertexAttribArray(this.texCoordSlot); c.__contextState.program = null; c.__flushGLProgram(); c.__contextState.__currentGLElementArrayBuffer = null } }, setUniform: function (a, b) { if (Object.prototype.hasOwnProperty.call(this.uniforms.h, a)) a = this.uniforms.h[a], a.value = b, this.changedUniforms.push(a); else { var c = l.context.getUniformLocation(this.fullScreenShader.program, a); c != vd.UNIFORM_NOT_FOUND && (b = { id: c, value: b }, this.uniforms.h[a] = b, this.changedUniforms.push(b)) } }, getUniform: function (a) { return Object.prototype.hasOwnProperty.call(this.uniforms.h, a) ? this.uniforms.h[a].value : -1 }, tweenUniform: function (a, b, c, d) { null == c && (c = 1); var e = this; if (Object.prototype.hasOwnProperty.call(this.uniforms.h, a)) { var g = this.uniforms.h[a], r = this.uniformTweens.h[a]; null == r && (r = new ce, r.doOnUpdate(function () { g.value = r.value; e.changedUniforms.push(g) }), this.uniformTweens.h[a] = r); r.tween(g.value, b, d, 1E3 * c | 0) } }, rebuild: function () { null != this.texture && this.texture.dispose(); this.texture = h.stage.context3D.createRectangleTexture(ua.windowWidth | 0, ua.windowHeight | 0, 1, !0); this.texture.__context.__bindGLTexture2D(this.texture.__textureID); this.texture.__setSamplerState(new Wg); fc.texImage2D(this.gl, this.texture.__textureTarget, 0, this.texture.__internalFormat, this.texture.__width, this.texture.__height, 0, this.gl.RGB, this.gl.UNSIGNED_BYTE, null); this.texture.__context.__bindGLTexture2D(null) }, createTexture: function (a, b) { this.texture = h.stage.context3D.createRectangleTexture(a, b, 1, !0); this.texture.__context.__bindGLTexture2D(this.texture.__textureID); this.texture.__setSamplerState(new Wg); fc.texImage2D(this.gl, this.texture.__textureTarget, 0, this.texture.__internalFormat, this.texture.__width, this.texture.__height, 0, this.gl.RGB, this.gl.UNSIGNED_BYTE, null); this.texture.__context.__bindGLTexture2D(null) }, capture: function () { h.stage.context3D.setRenderToTexture(this.texture); var a = this.texture.__getGLFramebuffer(!1, 0, 0); this.gl.bindFramebuffer(36160, a); this.gl.clear(16640); null != h.stage && null != h.stage.__renderer && (h.stage.__renderer.__cleared = !0) }, texture: null, fullScreenShader: null, buffer: null, basicShader: null, time: null, timeScale: null, vertexSlot: null, texCoordSlot: null, imageUniform: null, resolutionUniform: null, resolutionUsUniform: null, timeUniform: null, uniforms: null, changedUniforms: null, uniformTweens: null, __class__: vd }); var eo = function (a) { null == a && (a = 1); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform vec2 uResolution;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tuniform float scale;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\tif (mod(floor(vTexCoord.y * uResolution.y / scale), 2.0) == 0.0)\n\t\t\t\t\tgl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n\t\t\t\telse\n\t\t\t\t\tgl_FragColor = texture2D(uImage0, vTexCoord);\n\t\t\t}\n\t\t", !0); this.setScale(a) }; k["com.stencyl.graphics.shaders.ScanlineShader"] = eo; eo.__name__ = "com.stencyl.graphics.shaders.ScanlineShader"; eo.__super__ = md; eo.prototype = u(md.prototype, { setScale: function (a) { this.setProperty("scale", a) }, __class__: eo }); var fo = function () { this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\t\n\t\t\tvoid main(void)\n\t\t\t{\n\t\t\t\tvec4 color = texture2D(uImage0, vTexCoord);\n\t\t\t\tgl_FragColor.r = dot(color, vec4(0.393,0.769,0.189,0));\n\t\t\t\tgl_FragColor.g = dot(color, vec4(0.349,0.686,0.168,0));\n\t\t\t\tgl_FragColor.b = dot(color, vec4(0.272,0.534,0.131,0));\n\t\t\t\tgl_FragColor.a = color.a;\n\t\t\t}\n\t\t", !0) }; k["com.stencyl.graphics.shaders.SepiaShader"] = fo; fo.__name__ = "com.stencyl.graphics.shaders.SepiaShader"; fo.__super__ = md; fo.prototype = u(md.prototype, {__class__: fo}); var Jj = function (a) { this.program = l.context.createProgram(); for (var b = 0; b < a.length;) { var c = a[b]; ++b; c = this.compile(c.src, c.fragment ? 35632 : 35633); if (null == c) return; l.context.attachShader(this.program, c); l.context.deleteShader(c) } l.context.linkProgram(this.program); l.context.getProgramParameter(this.program, 35714) }; k["com.stencyl.graphics.shaders.Shader"] = Jj; Jj.__name__ = "com.stencyl.graphics.shaders.Shader"; Jj.prototype = { compile: function (a, b) { b = l.context.createShader(b); l.context.shaderSource(b, a); l.context.compileShader(b); return 0 == l.context.getShaderParameter(b, 35713) ? null : b }, attribute: function (a) { return l.context.getAttribLocation(this.program, a) }, uniform: function (a) { return l.context.getUniformLocation(this.program, a) }, bind: function () { l.context.useProgram(this.program) }, program: null, __class__: Jj }; var go = function (a) { null == a && (a = 2); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform vec2 uResolution;\n\t\t\t\n\t\t\tuniform float amount;\n\t\t\t\n\t\t\tvoid main()\n\t\t\t{\n\t\t\t\t//this will be our RGBA sum\n\t\t\t\tvec4 sum = vec4(0.0);\n\t\t\t\t\n\t\t\t\t//our original texcoord for this fragment\n\t\t\t\tvec2 tc = vTexCoord;\n\t\t\t\t\n\t\t\t\tfloat reach = 1.0 / uResolution.x;\n\n\t\t\t\t//current pixel\n\t\t\t\tsum += texture2D(uImage0, vec2(tc.x, tc.y));\n\t\t\t\t\n\t\t\t\t//sharpen\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x + 1.0 * reach, tc.y))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x - 1.0 * reach, tc.y))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x, tc.y + 1.0 * reach))) * amount;\n\t\t\t\tsum += (texture2D(uImage0, vec2(tc.x, tc.y)) - texture2D(uImage0, vec2(tc.x, tc.y - 1.0 * reach))) * amount;\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4(sum.rgb, 1.0);\n\t\t\t}\n\t\t", !0); this.setAmount(a) }; k["com.stencyl.graphics.shaders.SharpenShader"] = go; go.__name__ = "com.stencyl.graphics.shaders.SharpenShader"; go.__super__ = md; go.prototype = u(md.prototype, { setAmount: function (a) { this.setProperty("amount", a) }, __class__: go }); var ho = function (a, b) { null == b && (b = 1); this.model = new vd(this, "\n\t\t\t#ifdef GL_ES\n\t\t\t\tprecision mediump float;\n\t\t\t#endif\n\n\t\t\tvarying vec2 vTexCoord;\n\t\t\tuniform sampler2D uImage0;\n\t\t\tuniform float amount;\n\t\t\tuniform float red;\n\t\t\tuniform float green;\n\t\t\tuniform float blue;\n\n\t\t\tvec3 _mix(vec3 a, vec3 b, float amount) \n\t\t\t{ \n\t\t\t\treturn vec3(a.x * (1.0 - amount) + b.x * amount, a.y * (1.0 - amount) + b.y * amount, a.z * (1.0 - amount) + b.z * amount); \n\t\t\t}\n\n\t\t\tvoid main() \n\t\t\t{\n\t\t\t\tvec3 color = texture2D(uImage0, vTexCoord).rgb;\n\t\t\t\tvec3 endColor = _mix(color, vec3(red, green, blue), amount);\n\t\t\t\tgl_FragColor = vec4(endColor.x, endColor.y, endColor.z, 1);\n\t\t\t}\n\t\t", !0); this.setColor(a); this.setAmount(b) }; k["com.stencyl.graphics.shaders.TintShader"] = ho; ho.__name__ = "com.stencyl.graphics.shaders.TintShader"; ho.__super__ = md; ho.prototype = u(md.prototype, { setAmount: function (a) { this.setProperty("amount", a) }, setColor: function (a) { this.setProperty("red", (a >> 16 & 255) / 255); this.setProperty("green", (a >> 8 & 255) / 255); this.setProperty("blue", (a & 255) / 255) }, __class__: ho }); var sb = function (a) { this.duration = a; this.complete = this.active = !1; 0 == a && (this.active = this.complete = !0) }; k["com.stencyl.graphics.transitions.Transition"] = sb; sb.__name__ = "com.stencyl.graphics.transitions.Transition"; sb.prototype = { duration: null, direction: null, active: null, complete: null, start: function () { }, reset: function () { this.complete = !1 }, stop: function () { this.complete = !0 }, deactivate: function () { this.active = !1 }, cleanup: function () { }, isActive: function () { return this.active }, isComplete: function () { return this.complete }, update: function (a) { }, draw: function (a) { }, getDuration: function () { return this.duration }, __class__: sb }; var Cj = function (a, b, c, d) { null == c && (c = 10); sb.call(this, b); this.color = d; this.direction = a; this.numBlinds = c; a == sb.IN ? (this.beginBlindWidth = h.screenWidth * h.SCALE / c, this.endBlindWidth = 0) : a == sb.OUT ? (this.beginBlindWidth = 0, this.endBlindWidth = h.screenWidth * h.SCALE / c) : this.complete = !0 }; k["com.stencyl.graphics.transitions.BlindsTransition"] = Cj; Cj.__name__ = "com.stencyl.graphics.transitions.BlindsTransition"; Cj.__super__ = sb; Cj.prototype = u(sb.prototype, { color: null, numBlinds: null, blindWidth: null, beginBlindWidth: null, endBlindWidth: null, blindRect: null, rect: null, graphics: null, start: function () { this.active = !0; this.blindRect = new ba(0, 0, this.beginBlindWidth, h.screenHeight * h.SCALE); this.blindWidth = new ce; this.rect = new Se; this.graphics = this.rect.get_graphics(); this.direction == sb.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE), this.graphics.endFill()); h.engine.transitionLayer.addChild(this.rect); this.blindWidth.tween(this.beginBlindWidth, this.endBlindWidth, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, draw: function (a) { this.graphics.clear(); this.graphics.beginFill(this.color); this.blindRect.x = 0; this.blindRect.width = this.blindWidth.value; this.direction == sb.IN && (this.blindRect.x += h.screenWidth * h.SCALE / this.numBlinds - this.blindWidth.value); a = 0; for (var b = this.numBlinds; a < b;) a++, this.graphics.drawRect(this.blindRect.x, this.blindRect.y, this.blindRect.width, this.blindRect.height), this.blindRect.x += h.screenWidth * h.SCALE / this.numBlinds; this.graphics.endFill() }, cleanup: function () { null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: Cj }); var Bj = function (a, b, c, d) { null == d && (d = -16777216); null == c && (c = 50); sb.call(this, b); this.color = d; this.direction = a; this.numBubbles = c }; k["com.stencyl.graphics.transitions.BubblesTransition"] = Bj; Bj.__name__ = "com.stencyl.graphics.transitions.BubblesTransition"; Bj.__super__ = sb; Bj.prototype = u(sb.prototype, { color: null, numBubbles: null, radius: null, beginRadius: null, endRadius: null, rect: null, graphics: null, drawBitmap: null, bubblePositions: null, bubbleRect: null, screenWidth: null, screenHeight: null, start: function () { this.active = !0; this.rect = new Se; this.graphics = this.rect.get_graphics(); this.screenWidth = h.screenWidth * h.SCALE | 0; this.screenHeight = h.screenHeight * h.SCALE | 0; this.direction == sb.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, this.screenWidth, this.screenHeight), this.graphics.endFill()); this.drawBitmap = new ka(this.screenWidth, this.screenHeight); var a = this.screenWidth / this.screenHeight, b = Math.sqrt(this.numBubbles / a) | 0, c = this.screenHeight / b; a = Math.ceil(b * a | 0); b = Math.ceil(b); var d = a * c - this.screenWidth | 0, e = new ba(-d / 2, -(b * c - this.screenHeight | 0) / 2, c, c); this.bubblePositions = []; for (var g = 0; g < b;) { g++; for (var r = 0, f = a; r < f;) r++, this.bubblePositions.push(new na(e.x + Math.floor(Math.random() * (c + 1)), e.y + Math.floor(Math.random() * (c + 1)))), e.x += c; e.x = -d / 2; e.y += c } this.beginRadius = 0; this.endRadius = Math.ceil(na.distance(new na(0, 0), new na(c, c))); this.radius = new ce; h.engine.transitionLayer.addChild(this.rect); this.radius.tween(this.beginRadius, this.endRadius, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, draw: function (a) { this.graphics.clear(); if (this.direction == sb.IN) { this.drawBitmap.draw(h.engine.colorLayer); this.drawBitmap.draw(h.engine.master); this.graphics.beginFill(this.color); this.graphics.drawRect(0, 0, this.screenWidth, this.screenHeight); this.graphics.endFill(); a = 0; for (var b = this.bubblePositions; a < b.length;) { var c = b[a]; ++a; this.graphics.beginBitmapFill(this.drawBitmap); this.graphics.drawCircle(c.x, c.y, this.radius.value); this.graphics.endFill() } } else if (this.direction == sb.OUT) for (a = 0, b = this.bubblePositions; a < b.length;) c = b[a], ++a, this.graphics.beginFill(this.color), this.graphics.drawCircle(c.x, c.y, this.radius.value), this.graphics.endFill() }, cleanup: function () { null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: Bj }); var Ej = function (a, b, c) { null == c && (c = -16777216); sb.call(this, b); this.color = c; this.direction = a; a == sb.IN ? (this.beginRadius = 0, this.endRadius = Math.ceil(na.distance(new na(0, 0), new na(h.screenWidthHalf * h.SCALE, h.screenHeightHalf * h.SCALE))) | 0) : a == sb.OUT && (this.beginRadius = Math.ceil(na.distance(new na(0, 0), new na(h.screenWidthHalf * h.SCALE, h.screenHeightHalf * h.SCALE))) | 0, this.endRadius = 0) }; k["com.stencyl.graphics.transitions.CircleTransition"] = Ej; Ej.__name__ = "com.stencyl.graphics.transitions.CircleTransition"; Ej.__super__ = sb; Ej.prototype = u(sb.prototype, { color: null, radius: null, beginRadius: null, endRadius: null, circleImg: null, s: null, start: function () { this.active = !0; this.s = new Se; this.circleImg = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.radius = new ce; if (this.direction == sb.IN) { var a = this.s.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); a.endFill() } h.engine.transitionLayer.addChild(this.s); this.radius.tween(this.beginRadius, this.endRadius, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, draw: function (a) { this.s.get_graphics().clear(); this.s.get_graphics().beginFill(this.color); this.s.get_graphics().drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); this.s.get_graphics().endFill(); this.circleImg.draw(h.engine.colorLayer); this.circleImg.draw(h.engine.master); this.s.get_graphics().beginBitmapFill(this.circleImg); this.s.get_graphics().drawCircle(h.screenWidthHalf * h.SCALE, h.screenHeightHalf * h.SCALE, this.radius.value); this.s.get_graphics().endFill() }, cleanup: function () { null != this.s && (h.engine.transitionLayer.removeChild(this.s), this.s = null) }, __class__: Ej }); var al = function (a, b) { sb.call(this, b); this.oldImg = a }; k["com.stencyl.graphics.transitions.CrossfadeTransition"] = al; al.__name__ = "com.stencyl.graphics.transitions.CrossfadeTransition"; al.__super__ = sb; al.prototype = u(sb.prototype, { oldImg: null, bitmap: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.bitmap = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.bitmap.draw(this.oldImg); this.rect = new Se; var a = this.rect.get_graphics(); a.beginBitmapFill(this.bitmap); a.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); a.endFill(); h.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new ce; this.rectAlpha.tween(1, 0, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value) }, draw: function (a) { }, cleanup: function () { this.bitmap = this.oldImg = null; null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: al }); var cl = function (a, b) { null == b && (b = -16777216); sb.call(this, a); this.color = b; this.direction = sb.IN }; k["com.stencyl.graphics.transitions.FadeInTransition"] = cl; cl.__name__ = "com.stencyl.graphics.transitions.FadeInTransition"; cl.__super__ = sb; cl.prototype = u(sb.prototype, { color: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.rect = new Se; var a = this.rect.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, h.screenWidth * h.SCALE + 4, h.screenHeight * h.SCALE + 4); a.endFill(); a.drawCircle(1, 1, 1); h.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new ce; this.rectAlpha.tween(1, 0, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value) }, cleanup: function () { null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: cl }); var bl = function (a, b) { null == b && (b = -16777216); sb.call(this, a); this.color = b; this.direction = sb.IN }; k["com.stencyl.graphics.transitions.FadeOutTransition"] = bl; bl.__name__ = "com.stencyl.graphics.transitions.FadeOutTransition"; bl.__super__ = sb; bl.prototype = u(sb.prototype, { color: null, rect: null, rectAlpha: null, start: function () { this.active = !0; this.rect = new Se; this.rect.set_alpha(0); var a = this.rect.get_graphics(); a.beginFill(this.color); a.drawRect(0, 0, h.screenWidth * h.SCALE + 4, h.screenHeight * h.SCALE + 4); a.endFill(); a.drawCircle(1, 1, 1); h.engine.transitionLayer.addChild(this.rect); this.rectAlpha = new ce; this.rectAlpha.tween(0, 1, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, update: function (a) { this.rect.set_alpha(this.rectAlpha.value) }, cleanup: function () { null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: bl }); var Aj = function (a, b, c) { sb.call(this, a); this.beginPixelSize = b; this.endPixelSize = c }; k["com.stencyl.graphics.transitions.PixelizeTransition"] = Aj; Aj.__name__ = "com.stencyl.graphics.transitions.PixelizeTransition"; Aj.__super__ = sb; Aj.prototype = u(sb.prototype, { pixelSizeTween: null, beginPixelSize: null, endPixelSize: null, srcImg: null, displayImg: null, displayBitmap: null, c: null, r: null, xOverflow: null, yOverflow: null, pixelRect: null, halfSize: null, start: function () { this.active = !0; this.srcImg = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.displayImg = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.pixelRect = new ba(0, 0, 0, 0); h.engine.transitionLayer.addChild(this.displayBitmap = new dd(this.displayImg)); this.pixelSizeTween = new ce; this.pixelSizeTween.tween(this.beginPixelSize, this.endPixelSize, Wa.linear, 1E3 * this.duration | 0).doOnComplete(q(this, this.stop)) }, draw: function (a) { a = this.pixelSizeTween.value | 0; if (1 == a) this.displayImg.draw(h.engine.colorLayer), this.displayImg.draw(h.engine.master); else { this.srcImg.draw(h.engine.colorLayer); this.srcImg.draw(h.engine.master); this.c = Math.ceil(h.screenWidth * h.SCALE / a); this.r = Math.ceil(h.screenHeight * h.SCALE / a); this.xOverflow = this.c * a - h.screenWidth * h.SCALE | 0; this.yOverflow = this.r * a - h.screenHeight * h.SCALE | 0; this.pixelRect.x = -this.xOverflow / 2; this.pixelRect.y = -this.yOverflow / 2; this.pixelRect.height = this.pixelRect.width = a; this.halfSize = a / 2 | 0; this.displayImg.lock(); for (var b = 0, c = this.r; b < c;) { b++; for (var d = 0, e = this.c; d < e;) { d++; var g = this.srcImg.getPixel32(this.pixelRect.x + this.halfSize | 0, this.pixelRect.y + this.halfSize | 0); for (var r = this.pixelRect.x | 0, f = this.pixelRect.x + this.pixelRect.width | 0; r < f;) for (var p = r++, m = this.pixelRect.y | 0, l = this.pixelRect.y + this.pixelRect.height | 0; m < l;) { var n = m++; this.displayImg.setPixel32(p, n, g) } this.pixelRect.x += a } this.pixelRect.x = -this.xOverflow / 2; this.pixelRect.y += a } this.displayImg.unlock() } }, cleanup: function () { null != this.displayBitmap && h.engine.transitionLayer.removeChild(this.displayBitmap) }, __class__: Aj }); var Dj = function (a, b, c) { sb.call(this, b); this.color = c; this.direction = a; a == sb.IN ? (this.beginHeight = this.beginWidth = 0, this.endWidth = h.screenWidth * h.SCALE | 0, this.endHeight = h.screenHeight * h.SCALE | 0) : a == sb.OUT ? (this.beginWidth = h.screenWidth * h.SCALE | 0, this.beginHeight = h.screenHeight * h.SCALE | 0, this.endHeight = this.endWidth = 0) : this.complete = !0 }; k["com.stencyl.graphics.transitions.RectangleTransition"] = Dj; Dj.__name__ = "com.stencyl.graphics.transitions.RectangleTransition"; Dj.__super__ = sb; Dj.prototype = u(sb.prototype, { rectangleImg: null, graphics: null, color: null, size: null, beginWidth: null, endWidth: null, beginHeight: null, endHeight: null, rect: null, start: function () { this.active = !0; this.size = new Of; this.rectangleImg = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.rect = new Se; this.graphics = this.rect.get_graphics(); this.direction == sb.IN && (this.graphics.beginFill(this.color), this.graphics.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE), this.graphics.endFill()); h.engine.transitionLayer.addChild(this.rect); this.size.onComplete = q(this, this.stop); this.size.tween(this.beginWidth, this.endWidth, this.beginHeight, this.endHeight, Wa.linear, 1E3 * this.duration | 0) }, draw: function (a) { this.graphics.clear(); this.graphics.beginFill(this.color); this.graphics.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); this.graphics.endFill(); this.rectangleImg.draw(h.engine.colorLayer); this.rectangleImg.draw(h.engine.master); this.graphics.beginBitmapFill(this.rectangleImg); this.graphics.drawRect((h.screenWidth * h.SCALE - this.size.value1) / 2, (h.screenHeight * h.SCALE - this.size.value2) / 2, this.size.value1, this.size.value2); this.graphics.endFill() }, cleanup: function () { null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: Dj }); var Ue = function (a, b, c, d) { sb.call(this, c); this.sceneSpr = a; this.sceneCol = b; this.oldSceneMatrix = new Ja; this.newSceneMatrix = new Ja; this.ty = this.tx = 0; d == Ue.SLIDE_UP ? (this.newSceneMatrix.ty = -h.screenHeight * h.SCALE, this.ty = h.screenHeight * h.SCALE) : d == Ue.SLIDE_DOWN ? (this.newSceneMatrix.ty = h.screenHeight * h.SCALE, this.ty = -h.screenHeight * h.SCALE) : d == Ue.SLIDE_LEFT ? (this.newSceneMatrix.tx = -h.screenWidth * h.SCALE, this.tx = h.screenWidth * h.SCALE) : d == Ue.SLIDE_RIGHT ? (this.newSceneMatrix.tx = h.screenWidth * h.SCALE, this.tx = -h.screenWidth * h.SCALE) : this.complete = !0 }; k["com.stencyl.graphics.transitions.SlideTransition"] = Ue; Ue.__name__ = "com.stencyl.graphics.transitions.SlideTransition"; Ue.__super__ = sb; Ue.prototype = u(sb.prototype, { sceneSpr: null, sceneCol: null, oldBitmap: null, newBitmap: null, drawBitmap: null, graphics: null, oldSceneMatrix: null, newSceneMatrix: null, osm_xy: null, nsm_xy: null, tx: null, ty: null, rect: null, start: function () { this.active = !0; this.oldBitmap = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.oldBitmap.draw(this.sceneCol); this.oldBitmap.draw(this.sceneSpr); this.newBitmap = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.drawBitmap = new ka(h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); this.rect = new Se; this.graphics = this.rect.get_graphics(); this.graphics.beginBitmapFill(this.oldBitmap); this.graphics.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); this.graphics.endFill(); h.engine.transitionLayer.addChild(this.rect); this.osm_xy = new Of; this.nsm_xy = new Of; this.osm_xy.tween(this.oldSceneMatrix.tx, this.tx, this.oldSceneMatrix.ty, this.ty, Wa.linear, 1E3 * this.duration | 0); this.nsm_xy.tween(this.newSceneMatrix.tx, 0, this.newSceneMatrix.ty, 0, Wa.linear, 1E3 * this.duration | 0); this.nsm_xy.doOnComplete(q(this, this.stop)) }, update: function (a) { this.oldSceneMatrix.tx = this.osm_xy.value1; this.oldSceneMatrix.ty = this.osm_xy.value2; this.newSceneMatrix.tx = this.nsm_xy.value1; this.newSceneMatrix.ty = this.nsm_xy.value2 }, draw: function (a) { this.graphics.clear(); this.newBitmap.draw(this.sceneCol); this.newBitmap.draw(this.sceneSpr); this.drawBitmap.draw(this.newBitmap, this.newSceneMatrix); this.drawBitmap.draw(this.oldBitmap, this.oldSceneMatrix); this.graphics.beginBitmapFill(this.drawBitmap); this.graphics.drawRect(0, 0, h.screenWidth * h.SCALE, h.screenHeight * h.SCALE); this.graphics.endFill() }, cleanup: function () { this.sceneSpr = null; null != this.rect && (h.engine.transitionLayer.removeChild(this.rect), this.rect = null) }, __class__: Ue }); var Xg = function () { }; k["com.stencyl.io.AbstractReader"] = Xg; Xg.__name__ = "com.stencyl.io.AbstractReader"; Xg.__isInterface__ = !0; Xg.prototype = {accepts: null, read: null, __class__: Xg}; var Uk = function () { }; k["com.stencyl.io.ActorTypeReader"] = Uk; Uk.__name__ = "com.stencyl.io.ActorTypeReader"; Uk.__interfaces__ = [Xg]; Uk.prototype = { accepts: function (a) { return a == Ra.MBS_ACTOR_TYPE.getName() }, read: function (a) { var b = a.getId(), c = a.getAtlasID(), d = a.getName(), e = new pi; e.fixedRotation = a.getFixedRotation(); switch (a.getBodyType()) { case 0: var g = pa.b2_staticBody; break; case 1: g = pa.b2_kinematicBody; break; default: g = pa.b2_dynamicBody } e.type = g; e.linearDamping = a.getLinearDamping(); e.angularDamping = a.getAngularDamping(); e.friction = a.getFriction(); e.bounciness = a.getRestitution(); e.mass = a.getMass(); e.aMass = a.getInertia(); e.active = !0; e.bullet = !1; e.allowSleep = !1; e.awake = !0; e.ignoreGravity = a.getIgnoreGravity(); e.bullet = a.getContinuous(); g = a.getSprite(); var r = a.getGroupID(), f = a.getPhysicsMode(), p = a.getAutoScale(), m = a.getPausable(), h = e.ignoreGravity || e.type == pa.b2_staticBody || e.type == pa.b2_kinematicBody, n = Be.readBehaviors(a.getSnippets()); a = a.getEventSnippetID(); if (-1 < a) { var l = new Hj(a, new xa); n.h["" + a] = l } return new gg(b, c, d, r, g, n, e, f, p, m, h) }, __class__: Uk }; var Be = function () { }; k["com.stencyl.io.AttributeValues"] = Be; Be.__name__ = "com.stencyl.io.AttributeValues"; Be.readBehaviors = function (a) { for (var b = new xa, c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(); if (e.getEnabled()) { var g = e.getId(); e = Be.readBehaviorProperties(e.getProperties()); e = new Hj(g, e); b.h["" + g] = e } } return b }; Be.readBehaviorProperties = function (a) { for (var b = new xa, c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getId(), r = e.getType(); e = Be.readAttribute(r, e); b.h["" + g] = e } return b }; Be.readAttribute = function (a, b) { switch (a) { case "list": return Be.readList(b.getValue()); case "map": return Be.readMap(b.getValue()); default: return b.getValue() } }; Be.readAttributeDef = function (a, b) { switch (a) { case "list": return Be.readList(b.getDefaultValue()); case "map": return Be.readMap(b.getDefaultValue()); default: return b.getDefaultValue() } }; Be.readList = function (a) { if (null == a) return null; for (var b = [], c = 0, d = a.length(); c < d;) { var e = c++; b[e] = a.readObject() } return b }; Be.readMap = function (a) { if (null == a) return null; for (var b = new xa, c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getKey(); e = e.getValue(); if (e instanceof wh) { for (var r = [], f = 0, p = e.length(); f < p;) f++, r.push(e.readObject()); e = r } else e instanceof Xa && (e = Be.readMap(e)); b.h[g] = e } return b }; var Rk = function () { }; k["com.stencyl.io.BackgroundReader"] = Rk; Rk.__name__ = "com.stencyl.io.BackgroundReader"; Rk.__interfaces__ = [Xg]; Rk.prototype = { accepts: function (a) { return a == Ya.MBS_BACKGROUND.getName() }, read: function (a) { var b = a.getId(), c = a.getAtlasID(), d = a.getName(), e = a.getXVelocity(), g = a.getYVelocity(), f = a.getXParallaxFactor(), v = a.getYParallaxFactor(), p = []; if (0 < a.getNumFrames()) for (var m = a.getDurations(), h = 0, n = m.length(); h < n;) h++, p.push(m.readInt()); a = a.getRepeats(); return 0 != e || 0 != g ? new xh(b, c, d, p, f, v, a, e, g) : new Dg(b, c, d, p, f, v, a) }, __class__: Rk }; var ti = function () { }; k["com.stencyl.io.BehaviorReader"] = ti; ti.__name__ = "com.stencyl.io.BehaviorReader"; ti.readBehavior = function (a) { var b = a.getId(), c = a.getName(), d = a.getClassname(), e = a.getAttachedEvent(), g = new xa, f = a.getType(); a = a.getAttributes(); for (var v = 0, p = a.length(); v < p;) { v++; var m = a.getNextObject(), h = "" + m.getId(); m = ti.readAttribute(m, e); g.h[h] = m } return new Xk(null, null, b, c, d, !0, !0, g, f, e) }; ti.readAttribute = function (a, b) { var c = a.getId(), d = a.getName(), e = a.getFullname(); b = b || a.getHidden(); var g = a.getType(); a = Be.readAttributeDef(g, a); return new ui(c, d, e, a, g, null, b) }; ti.prototype = {__class__: ti}; var Wk = function () { }; k["com.stencyl.io.FontReader"] = Wk; Wk.__name__ = "com.stencyl.io.FontReader"; Wk.__interfaces__ = [Xg]; Wk.prototype = { accepts: function (a) { return a == jc.MBS_FONT.getName() }, read: function (a) { return new Re(a.getId(), a.getAtlasID(), a.getName(), !1) }, __class__: Wk }; var Ad = function () { }; k["com.stencyl.io.ShapeReader"] = Ad; Ad.__name__ = "com.stencyl.io.ShapeReader"; Ad.readPoint = function (a) { return new na(a.getX(), a.getY()) }; Ad.readPoints = function (a) { for (var b = Array(a.length()), c = 0, d = a.length(); c < d;) { var e = c++, g = a.getNextObject(); b[e] = new na(g.getX(), g.getY()) } return b }; Ad.createCircle = function (a, b, c, d, e) { null == e && (e = -1); null == d && (d = -1); var g = 2 * a, f = new Qc; f.m_radius = h.toPhysicalUnits(a); f.m_p.x = h.toPhysicalUnits(b - (d - g) / 2); f.m_p.y = h.toPhysicalUnits(c - (e - g) / 2); return f }; Ad.createPolygon = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); var e = []; var g = b.length; var f = 0; c = -c / 2 | 0; d = -d / 2 | 0; if ("MbsPolygon" == a || "MbsPolyRegion" == a) { for (f = 0; f < g;) { var v = b[f]; a = h.toPhysicalUnits(v.x + c); v = h.toPhysicalUnits(v.y + d); e[f] = new M(a, v); ++f } Ad.EnsureCorrectVertexDirection(e); return Jb.asArray(e, e.length) } if ("MbsWireframe" == a) { for (; f < g;) v = b[f], e.push(new M(h.toPhysicalUnits(v.x), h.toPhysicalUnits(v.y))), ++f; b = Ad.getWidth(e); g = Ad.getHeight(e); f = []; c = 0; for (d = e.length + 1; c < d;) { var p = c++; a = new xg(e[p % e.length], e[(p + 1) % e.length]); f.push(a); a.m_hasVertex0 = !0; a.m_hasVertex3 = !0; v = e[(p - 1) % e.length]; p = e[(p + 2) % e.length]; null == v && (v = e[e.length - 1]); null == p && (p = e[0]); a.m_v0 = v; a.m_v3 = p } e = new eb; e.h[0] = f; e.h[1] = b; e.h[2] = g; return e } return null }; Ad.CheckVertexDirection = function (a) { if (2 < a.length) { for (var b = 0, c = 0; 0 == b && c < a.length - 2;) b = a[c].winding(a[c + 1], a[c + 2]), ++c; if (0 > b) return !1 } return !0 }; Ad.EnsureCorrectVertexDirection = function (a) { return Ad.CheckVertexDirection(a) ? !0 : (Ad.ReverseVertices(a), !1) }; Ad.ReverseVertices = function (a) { for (var b = 0, c = a.length - 1, d; c > b;) d = a[b].x, a[b].x = a[c].x, a[c].x = d, d = a[b].y, a[b].y = a[c].y, a[c].y = d, ++b, --c }; Ad.getWidth = function (a) { for (var b = 1E7, c = 0, d = 0; d < a.length;) { var e = a[d]; ++d; b = Math.min(b, e.x); c = Math.max(c, e.x) } return c - b }; Ad.getHeight = function (a) { for (var b = 1E7, c = 0, d = 0; d < a.length;) { var e = a[d]; ++d; b = Math.min(b, e.y); c = Math.max(c, e.y) } return c - b }; var Sk = function () { }; k["com.stencyl.io.SoundReader"] = Sk; Sk.__name__ = "com.stencyl.io.SoundReader"; Sk.__interfaces__ = [Xg]; Sk.prototype = { accepts: function (a) { return a == zc.MBS_MUSIC.getName() }, read: function (a) { var b = a.getStream(), c = a.getLoop(), d = a.getPan(), e = a.getVolume(), g = a.getType(); return new Ph(a.getId(), a.getName(), b, c, d, e, g, a.getAtlasID()) }, __class__: Sk }; var Vk = function () { }; k["com.stencyl.io.SpriteReader"] = Vk; Vk.__name__ = "com.stencyl.io.SpriteReader"; Vk.__interfaces__ = [Xg]; Vk.prototype = { accepts: function (a) { return a == yc.MBS_SPRITE.getName() }, read: function (a) { var b = a.getDefaultAnimation(), c = a.getReadableImages(); b = new si(a.getId(), a.getAtlasID(), a.getName(), b, c); a = a.getAnimations(); c = 0; for (var d = a.length(); c < d;) { c++; var e = a.getNextObject(); e = this.readAnimation(e, b); b.animations.h[e.animID] = e } return b }, readAnimation: function (a, b) { for (var c = a.getId(), d = a.getName(), e = a.getWidth(), g = a.getHeight(), f = a.getOriginX(), v = a.getOriginY(), p = a.getNumFrames(), m = a.getAcross(), h = a.getDown(), n = this.readSimpleShapes(a, e / m | 0, g / h | 0), l = this.readShapes(a, e / m | 0, g / h | 0), k = a.getLoop(), t = a.getSync(), q = [], Sb = a.getDurations(), da = 0, ja = Sb.length(); da < ja;) a = da++, q[a] = Sb.readInt(), q[a] = Math.floor(q[a] / 10), q[a] *= 10; return new xe(c, d, b, n, l, k, t, e, g, f, v, q, p, m, h) }, readSimpleShapes: function (a, b, c) { b = new eb; a = a.getShapes(); c = 0; for (var d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getId(), f = e.getGroupID(), v = e.getSensor(); e = e.getShape(); if (e instanceof Yc && (e = e.getPoints(), 4 == e.length())) { for (var p = e.getNextObject(), m = 0, h = 1E7, n = 1E7, l = 0, k = 0, t = p.getX() | 0, q = p.getY() | 0; m < e.length();) h = Math.min(h, p.getX()) | 0, n = Math.min(n, p.getY()) | 0, l = Math.max(l, p.getX()) | 0, k = Math.max(k, p.getY()) | 0, ++m, m < e.length() && (p = e.getNextObject()); f = new nd(l - h, k - n, t, q, !v, f); b.h[g] = f } } return b }, readShapes: function (a, b, c) { var d = new eb; a = a.getShapes(); for (var e = 0, g = a.length(); e < g;) { e++; var f = a.getNextObject(), v = f.getId(); f.getGroupID(); var p = f.getSensor(), m = f.getShape(); if (m instanceof Nd) m = Ad.createCircle(m.getRadius(), m.getPosition().getX(), m.getPosition().getY(), b, c); else { var h = m; m = Ad.createPolygon(m.getMbsType().getName(), Ad.readPoints(h.getPoints()).slice(0), b, c) } h = new Lf; h.shape = m; h.density = f.getDensity(); h.friction = f.getFriction(); h.restitution = f.getRestitution(); h.isSensor = p; h.groupID = f.getGroupID(); d.h[v] = h } return d }, __class__: Vk }; var Tk = function () { }; k["com.stencyl.io.TilesetReader"] = Tk; Tk.__name__ = "com.stencyl.io.TilesetReader"; Tk.__interfaces__ = [Xg]; Tk.prototype = { accepts: function (a) { return a == kc.MBS_TILESET.getName() }, read: function (a) { var b = a.getAcross(), c = a.getDown(), d = a.getTileWidth(), e = a.getTileHeight(), g = a.getReadableImages(), f = []; b = new wf(a.getId(), a.getAtlasID(), a.getName(), b, c, d, e, g, f); a = a.getTiles(); c = 0; for (d = a.length(); c < d;) c++, e = a.getNextObject(), f[e.getId()] = this.readTile(e, b); b.isAtlasActive() && b.loadGraphics(); return b }, readTile: function (a, b) { for (var c = a.getId(), d = a.getCollision(), e = a.getMetadata(), g = a.getFrames(), f = [], v = 0, p = a.getDurations(), m = 0, h = p.length(); m < h;) m++, f[v] = p.readInt(), f[v] = Math.floor(f[v] / 10), f[v] *= 10, ++v; v = null; -1 != a.getAutotile() && (m = zb.get().autotileFormats, h = a.getAutotile(), v = m.h[h]); p = null; if (0 != a.getAutotileMerge().length()) for (p = new eb, a = a.getAutotileMerge(), m = 0, h = a.length(); m < h;) { m++; var n = a.readInt(); p.h[n] = n } return new Rc(c, d, e, g, f, v, p, b) }, __class__: Tk }; var pb = function (a) { this.data = a }; k["mbs.core.MbsObject"] = pb; pb.__name__ = "mbs.core.MbsObject"; pb.prototype = { data: null, address: null, getMbs: function () { return this.data }, getAddress: function () { return this.address }, setAddress: function (a) { this.address = a }, getMbsType: function () { throw I.thrown("Must override getMbsType in MbsObject subclasses"); }, __class__: pb }; var kb = function (a) { this.data = a }; k["com.stencyl.io.mbs.MbsResource"] = kb; kb.__name__ = "com.stencyl.io.mbs.MbsResource"; kb.initializeType = function () { null == kb.MBS_RESOURCE && (kb.MBS_RESOURCE = new Cb("MbsResource"), kb.MBS_RESOURCE.setInstantiator(function (a) { return new kb(a) }), kb.atlasID = kb.MBS_RESOURCE.createField("atlasID", G.INTEGER), kb.description = kb.MBS_RESOURCE.createField("description", G.STRING), kb.id = kb.MBS_RESOURCE.createField("id", G.INTEGER), kb.$name = kb.MBS_RESOURCE.createField("name", G.STRING)) }; kb.new_MbsResource_list = function (a) { return new Xa(a, kb.MBS_RESOURCE, new kb(a)) }; kb.__super__ = pb; kb.prototype = u(pb.prototype, { getMbsType: function () { return kb.MBS_RESOURCE }, allocateNew: function () { this.setAddress(this.data.allocate(kb.MBS_RESOURCE.getSize())) }, getAtlasID: function () { return this.data.readInt(this.address + kb.atlasID.address) }, setAtlasID: function (a) { this.data.writeInt(this.address + kb.atlasID.address, a) }, getDescription: function () { return this.data.readString(this.address + kb.description.address) }, setDescription: function (a) { this.data.writeString(this.address + kb.description.address, a) }, getId: function () { return this.data.readInt(this.address + kb.id.address) }, setId: function (a) { this.data.writeInt(this.address + kb.id.address, a) }, getName: function () { return this.data.readString(this.address + kb.$name.address) }, setName: function (a) { this.data.writeString(this.address + kb.$name.address, a) }, __class__: kb }); var Ya = function (a) { this.data = a; this._durations = new Pf(a) }; k["com.stencyl.io.mbs.MbsBackground"] = Ya; Ya.__name__ = "com.stencyl.io.mbs.MbsBackground"; Ya.initializeType = function () { null == Ya.MBS_BACKGROUND && (kb.initializeType(), Ya.MBS_BACKGROUND = new Cb("MbsBackground"), Ya.MBS_BACKGROUND.setInstantiator(function (a) { return new Ya(a) }), Ya.MBS_BACKGROUND.inherit(kb.MBS_RESOURCE), Ya.readableImages = Ya.MBS_BACKGROUND.createField("readableImages", G.BOOLEAN), Ya.durations = Ya.MBS_BACKGROUND.createField("durations", G.LIST), Ya.height = Ya.MBS_BACKGROUND.createField("height", G.INTEGER), Ya.numFrames = Ya.MBS_BACKGROUND.createField("numFrames", G.INTEGER), Ya.repeats = Ya.MBS_BACKGROUND.createField("repeats", G.BOOLEAN), Ya.resized = Ya.MBS_BACKGROUND.createField("resized", G.BOOLEAN), Ya.width = Ya.MBS_BACKGROUND.createField("width", G.INTEGER), Ya.xParallaxFactor = Ya.MBS_BACKGROUND.createField("xParallaxFactor", G.FLOAT), Ya.xVelocity = Ya.MBS_BACKGROUND.createField("xVelocity", G.FLOAT), Ya.yParallaxFactor = Ya.MBS_BACKGROUND.createField("yParallaxFactor", G.FLOAT), Ya.yVelocity = Ya.MBS_BACKGROUND.createField("yVelocity", G.FLOAT)) }; Ya.new_MbsBackground_list = function (a) { return new Xa(a, Ya.MBS_BACKGROUND, new Ya(a)) }; Ya.__super__ = kb; Ya.prototype = u(kb.prototype, { getMbsType: function () { return Ya.MBS_BACKGROUND }, _durations: null, allocateNew: function () { this.setAddress(this.data.allocate(Ya.MBS_BACKGROUND.getSize())) }, getReadableImages: function () { return this.data.readBool(this.address + Ya.readableImages.address) }, setReadableImages: function (a) { this.data.writeBool(this.address + Ya.readableImages.address, a) }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + Ya.durations.address)); return this._durations }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + Ya.durations.address, this._durations.getAddress()); return this._durations }, getHeight: function () { return this.data.readInt(this.address + Ya.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + Ya.height.address, a) }, getNumFrames: function () { return this.data.readInt(this.address + Ya.numFrames.address) }, setNumFrames: function (a) { this.data.writeInt(this.address + Ya.numFrames.address, a) }, getRepeats: function () { return this.data.readBool(this.address + Ya.repeats.address) }, setRepeats: function (a) { this.data.writeBool(this.address + Ya.repeats.address, a) }, getResized: function () { return this.data.readBool(this.address + Ya.resized.address) }, setResized: function (a) { this.data.writeBool(this.address + Ya.resized.address, a) }, getWidth: function () { return this.data.readInt(this.address + Ya.width.address) }, setWidth: function (a) { this.data.writeInt(this.address + Ya.width.address, a) }, getXParallaxFactor: function () { return this.data.readFloat(this.address + Ya.xParallaxFactor.address) }, setXParallaxFactor: function (a) { this.data.writeFloat(this.address + Ya.xParallaxFactor.address, a) }, getXVelocity: function () { return this.data.readFloat(this.address + Ya.xVelocity.address) }, setXVelocity: function (a) { this.data.writeFloat(this.address + Ya.xVelocity.address, a) }, getYParallaxFactor: function () { return this.data.readFloat(this.address + Ya.yParallaxFactor.address) }, setYParallaxFactor: function (a) { this.data.writeFloat(this.address + Ya.yParallaxFactor.address, a) }, getYVelocity: function () { return this.data.readFloat(this.address + Ya.yVelocity.address) }, setYVelocity: function (a) { this.data.writeFloat(this.address + Ya.yVelocity.address, a) }, __class__: Ya }); var Bd = function (a) { this.data = a }; k["com.stencyl.io.mbs.MbsBlank"] = Bd; Bd.__name__ = "com.stencyl.io.mbs.MbsBlank"; Bd.initializeType = function () { null == Bd.MBS_BLANK && (Bd.MBS_BLANK = new Cb("MbsBlank"), Bd.MBS_BLANK.setInstantiator(function (a) { return new Bd(a) }), Bd.$name = Bd.MBS_BLANK.createField("name", G.STRING), Bd.type = Bd.MBS_BLANK.createField("type", G.STRING)) }; Bd.new_MbsBlank_list = function (a) { return new Xa(a, Bd.MBS_BLANK, new Bd(a)) }; Bd.__super__ = pb; Bd.prototype = u(pb.prototype, { getMbsType: function () { return Bd.MBS_BLANK }, allocateNew: function () { this.setAddress(this.data.allocate(Bd.MBS_BLANK.getSize())) }, getName: function () { return this.data.readString(this.address + Bd.$name.address) }, setName: function (a) { this.data.writeString(this.address + Bd.$name.address, a) }, getType: function () { return this.data.readString(this.address + Bd.type.address) }, setType: function (a) { this.data.writeString(this.address + Bd.type.address, a) }, __class__: Bd }); var Kb = function (a) { this.data = a; this._blanks = new Xa(a, Bd.MBS_BLANK, new Bd(a)) }; k["com.stencyl.io.mbs.MbsCustomBlock"] = Kb; Kb.__name__ = "com.stencyl.io.mbs.MbsCustomBlock"; Kb.initializeType = function () { null == Kb.MBS_CUSTOM_BLOCK && (kb.initializeType(), Kb.MBS_CUSTOM_BLOCK = new Cb("MbsCustomBlock"), Kb.MBS_CUSTOM_BLOCK.setInstantiator(function (a) { return new Kb(a) }), Kb.MBS_CUSTOM_BLOCK.inherit(kb.MBS_RESOURCE), Kb.blocktag = Kb.MBS_CUSTOM_BLOCK.createField("blocktag", G.STRING), Kb.blocktype = Kb.MBS_CUSTOM_BLOCK.createField("blocktype", G.STRING), Kb.code = Kb.MBS_CUSTOM_BLOCK.createField("code", G.STRING), Kb.global = Kb.MBS_CUSTOM_BLOCK.createField("global", G.BOOLEAN), Kb.gui = Kb.MBS_CUSTOM_BLOCK.createField("gui", G.STRING), Kb.message = Kb.MBS_CUSTOM_BLOCK.createField("message", G.STRING), Kb.returnType = Kb.MBS_CUSTOM_BLOCK.createField("returnType", G.STRING), Kb.snippetID = Kb.MBS_CUSTOM_BLOCK.createField("snippetID", G.INTEGER), Kb.blanks = Kb.MBS_CUSTOM_BLOCK.createField("blanks", G.LIST)) }; Kb.new_MbsCustomBlock_list = function (a) { return new Xa(a, Kb.MBS_CUSTOM_BLOCK, new Kb(a)) }; Kb.__super__ = kb; Kb.prototype = u(kb.prototype, { getMbsType: function () { return Kb.MBS_CUSTOM_BLOCK }, _blanks: null, allocateNew: function () { this.setAddress(this.data.allocate(Kb.MBS_CUSTOM_BLOCK.getSize())) }, getBlocktag: function () { return this.data.readString(this.address + Kb.blocktag.address) }, setBlocktag: function (a) { this.data.writeString(this.address + Kb.blocktag.address, a) }, getBlocktype: function () { return this.data.readString(this.address + Kb.blocktype.address) }, setBlocktype: function (a) { this.data.writeString(this.address + Kb.blocktype.address, a) }, getCode: function () { return this.data.readString(this.address + Kb.code.address) }, setCode: function (a) { this.data.writeString(this.address + Kb.code.address, a) }, getGlobal: function () { return this.data.readBool(this.address + Kb.global.address) }, setGlobal: function (a) { this.data.writeBool(this.address + Kb.global.address, a) }, getGui: function () { return this.data.readString(this.address + Kb.gui.address) }, setGui: function (a) { this.data.writeString(this.address + Kb.gui.address, a) }, getMessage: function () { return this.data.readString(this.address + Kb.message.address) }, setMessage: function (a) { this.data.writeString(this.address + Kb.message.address, a) }, getReturnType: function () { return this.data.readString(this.address + Kb.returnType.address) }, setReturnType: function (a) { this.data.writeString(this.address + Kb.returnType.address, a) }, getSnippetID: function () { return this.data.readInt(this.address + Kb.snippetID.address) }, setSnippetID: function (a) { this.data.writeInt(this.address + Kb.snippetID.address, a) }, getBlanks: function () { this._blanks.setAddress(this.data.readInt(this.address + Kb.blanks.address)); return this._blanks }, createBlanks: function (a) { this._blanks.allocateNew(a); this.data.writeInt(this.address + Kb.blanks.address, this._blanks.getAddress()); return this._blanks }, __class__: Kb }); var jc = function (a) { this.data = a }; k["com.stencyl.io.mbs.MbsFont"] = jc; jc.__name__ = "com.stencyl.io.mbs.MbsFont"; jc.initializeType = function () { null == jc.MBS_FONT && (kb.initializeType(), jc.MBS_FONT = new Cb("MbsFont"), jc.MBS_FONT.setInstantiator(function (a) { return new jc(a) }), jc.MBS_FONT.inherit(kb.MBS_RESOURCE), jc.alphabet = jc.MBS_FONT.createField("alphabet", G.STRING), jc.readableImages = jc.MBS_FONT.createField("readableImages", G.BOOLEAN), jc.height = jc.MBS_FONT.createField("height", G.INTEGER), jc.offsets = jc.MBS_FONT.createField("offsets", G.STRING), jc.prerendered = jc.MBS_FONT.createField("prerendered", G.BOOLEAN), jc.rowHeight = jc.MBS_FONT.createField("rowHeight", G.INTEGER)) }; jc.new_MbsFont_list = function (a) { return new Xa(a, jc.MBS_FONT, new jc(a)) }; jc.__super__ = kb; jc.prototype = u(kb.prototype, { getMbsType: function () { return jc.MBS_FONT }, allocateNew: function () { this.setAddress(this.data.allocate(jc.MBS_FONT.getSize())) }, getAlphabet: function () { return this.data.readString(this.address + jc.alphabet.address) }, setAlphabet: function (a) { this.data.writeString(this.address + jc.alphabet.address, a) }, getReadableImages: function () { return this.data.readBool(this.address + jc.readableImages.address) }, setReadableImages: function (a) { this.data.writeBool(this.address + jc.readableImages.address, a) }, getHeight: function () { return this.data.readInt(this.address + jc.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + jc.height.address, a) }, getOffsets: function () { return this.data.readString(this.address + jc.offsets.address) }, setOffsets: function (a) { this.data.writeString(this.address + jc.offsets.address, a) }, getPrerendered: function () { return this.data.readBool(this.address + jc.prerendered.address) }, setPrerendered: function (a) { this.data.writeBool(this.address + jc.prerendered.address, a) }, getRowHeight: function () { return this.data.readInt(this.address + jc.rowHeight.address) }, setRowHeight: function (a) { this.data.writeInt(this.address + jc.rowHeight.address, a) }, __class__: jc }); var zc = function (a) { this.data = a }; k["com.stencyl.io.mbs.MbsMusic"] = zc; zc.__name__ = "com.stencyl.io.mbs.MbsMusic"; zc.initializeType = function () { null == zc.MBS_MUSIC && (kb.initializeType(), zc.MBS_MUSIC = new Cb("MbsMusic"), zc.MBS_MUSIC.setInstantiator(function (a) { return new zc(a) }), zc.MBS_MUSIC.inherit(kb.MBS_RESOURCE), zc.loop = zc.MBS_MUSIC.createField("loop", G.BOOLEAN), zc.pan = zc.MBS_MUSIC.createField("pan", G.INTEGER), zc.stream = zc.MBS_MUSIC.createField("stream", G.BOOLEAN), zc.type = zc.MBS_MUSIC.createField("type", G.STRING), zc.volume = zc.MBS_MUSIC.createField("volume", G.INTEGER)) }; zc.new_MbsMusic_list = function (a) { return new Xa(a, zc.MBS_MUSIC, new zc(a)) }; zc.__super__ = kb; zc.prototype = u(kb.prototype, { getMbsType: function () { return zc.MBS_MUSIC }, allocateNew: function () { this.setAddress(this.data.allocate(zc.MBS_MUSIC.getSize())) }, getLoop: function () { return this.data.readBool(this.address + zc.loop.address) }, setLoop: function (a) { this.data.writeBool(this.address + zc.loop.address, a) }, getPan: function () { return this.data.readInt(this.address + zc.pan.address) }, setPan: function (a) { this.data.writeInt(this.address + zc.pan.address, a) }, getStream: function () { return this.data.readBool(this.address + zc.stream.address) }, setStream: function (a) { this.data.writeBool(this.address + zc.stream.address, a) }, getType: function () { return this.data.readString(this.address + zc.type.address) }, setType: function (a) { this.data.writeString(this.address + zc.type.address, a) }, getVolume: function () { return this.data.readInt(this.address + zc.volume.address) }, setVolume: function (a) { this.data.writeInt(this.address + zc.volume.address, a) }, __class__: zc }); var xf = function (a, b) { this.name = a; this.size = b }; k["mbs.core.MbsType"] = xf; xf.__name__ = "mbs.core.MbsType"; xf.prototype = { name: null, size: null, getName: function () { return this.name }, getSize: function () { return this.size }, toString: function () { return "MbsType [name=" + this.getName() + "]" }, createInstance: function (a) { throw I.thrown("Can't create an instance of type " + this.name); }, __class__: xf }; var G = function () { }; k["mbs.core.MbsTypes"] = G; G.__name__ = "mbs.core.MbsTypes"; var Bc = function (a) { this.data = a }; k["mbs.core.header.MbsHeader"] = Bc; Bc.__name__ = "mbs.core.header.MbsHeader"; Bc.initializeType = function () { null == Bc.MBS_HEADER && (Bc.MBS_HEADER = new Cb("MbsHeader"), Bc.MBS_HEADER.setInstantiator(function (a) { return new Bc(a) }), Bc.version = Bc.MBS_HEADER.createField("version", G.INTEGER), Bc.typeTableHash = Bc.MBS_HEADER.createField("typeTableHash", G.INTEGER), Bc.typeTablePointer = Bc.MBS_HEADER.createField("typeTablePointer", G.INTEGER), Bc.stringTablePointer = Bc.MBS_HEADER.createField("stringTablePointer", G.INTEGER), Bc.root = Bc.MBS_HEADER.createField("root", G.DYNAMIC)) }; Bc.new_MbsHeader_list = function (a) { return new Xa(a, Bc.MBS_HEADER, new Bc(a)) }; Bc.__super__ = pb; Bc.prototype = u(pb.prototype, { getMbsType: function () { return Bc.MBS_HEADER }, allocateNew: function () { this.setAddress(this.data.allocate(Bc.MBS_HEADER.getSize())) }, getVersion: function () { return this.data.readInt(this.address + Bc.version.address) }, setVersion: function (a) { this.data.writeInt(this.address + Bc.version.address, a) }, getTypeTableHash: function () { return this.data.readInt(this.address + Bc.typeTableHash.address) }, setTypeTableHash: function (a) { this.data.writeInt(this.address + Bc.typeTableHash.address, a) }, getTypeTablePointer: function () { return this.data.readInt(this.address + Bc.typeTablePointer.address) }, setTypeTablePointer: function (a) { this.data.writeInt(this.address + Bc.typeTablePointer.address, a) }, getStringTablePointer: function () { return this.data.readInt(this.address + Bc.stringTablePointer.address) }, setStringTablePointer: function (a) { this.data.writeInt(this.address + Bc.stringTablePointer.address, a) }, getRoot: function () { return ie.readDynamic(this.data, this.address + Bc.root.address) }, setRoot: function (a) { ie.writeDynamic(this.data, this.address + Bc.root.address, a) }, __class__: Bc }); var Cb = function (a) { xf.call(this, a, 0); this.fields = [] }; k["mbs.core.ComposedType"] = Cb; Cb.__name__ = "mbs.core.ComposedType"; Cb.__super__ = xf; Cb.prototype = u(xf.prototype, { parent: null, fields: null, inherit: function (a) { this.parent = a; this.size = a.getSize() }, createField: function (a, b) { a = new yi(a, b, this.size); this.fields.push(a); this.size += b.getSize(); return a }, getParent: function () { return this.parent }, getFields: function () { return this.fields }, instantiator: null, setInstantiator: function (a) { this.instantiator = a }, createInstance: function (a) { return null != this.instantiator ? this.instantiator(a) : xf.prototype.createInstance.call(this, a) }, createList: function (a) { return new Xa(a, this, this.createInstance(a)) }, __class__: Cb }); var Sc = function (a) { this.data = a }; k["mbs.core.header.MbsTypeInfo"] = Sc; Sc.__name__ = "mbs.core.header.MbsTypeInfo"; Sc.initializeType = function () { null == Sc.MBS_TYPE_INFO && (Sc.MBS_TYPE_INFO = new Cb("MbsTypeInfo"), Sc.MBS_TYPE_INFO.setInstantiator(function (a) { return new Sc(a) }), Sc.$name = Sc.MBS_TYPE_INFO.createField("name", G.STRING), Sc.parent = Sc.MBS_TYPE_INFO.createField("parent", G.STRING), Sc.fieldsPointer = Sc.MBS_TYPE_INFO.createField("fieldsPointer", G.INTEGER), Sc.size = Sc.MBS_TYPE_INFO.createField("size", G.INTEGER)) }; Sc.new_MbsTypeInfo_list = function (a) { return new Xa(a, Sc.MBS_TYPE_INFO, new Sc(a)) }; Sc.__super__ = pb; Sc.prototype = u(pb.prototype, { getMbsType: function () { return Sc.MBS_TYPE_INFO }, allocateNew: function () { this.setAddress(this.data.allocate(Sc.MBS_TYPE_INFO.getSize())) }, getName: function () { return this.data.readString(this.address + Sc.$name.address) }, setName: function (a) { this.data.writeString(this.address + Sc.$name.address, a) }, getParent: function () { return this.data.readString(this.address + Sc.parent.address) }, setParent: function (a) { this.data.writeString(this.address + Sc.parent.address, a) }, getFieldsPointer: function () { return this.data.readInt(this.address + Sc.fieldsPointer.address) }, setFieldsPointer: function (a) { this.data.writeInt(this.address + Sc.fieldsPointer.address, a) }, getSize: function () { return this.data.readInt(this.address + Sc.size.address) }, setSize: function (a) { this.data.writeInt(this.address + Sc.size.address, a) }, __class__: Sc }); var ed = function (a) { this.data = a }; k["mbs.core.header.MbsFieldInfo"] = ed; ed.__name__ = "mbs.core.header.MbsFieldInfo"; ed.initializeType = function () { null == ed.MBS_FIELD_INFO && (ed.MBS_FIELD_INFO = new Cb("MbsFieldInfo"), ed.MBS_FIELD_INFO.setInstantiator(function (a) { return new ed(a) }), ed.$name = ed.MBS_FIELD_INFO.createField("name", G.STRING), ed.type = ed.MBS_FIELD_INFO.createField("type", G.STRING), ed.fieldAddress = ed.MBS_FIELD_INFO.createField("fieldAddress", G.INTEGER)) }; ed.new_MbsFieldInfo_list = function (a) { return new Xa(a, ed.MBS_FIELD_INFO, new ed(a)) }; ed.__super__ = pb; ed.prototype = u(pb.prototype, { getMbsType: function () { return ed.MBS_FIELD_INFO }, allocateNew: function () { this.setAddress(this.data.allocate(ed.MBS_FIELD_INFO.getSize())) }, getName: function () { return this.data.readString(this.address + ed.$name.address) }, setName: function (a) { this.data.writeString(this.address + ed.$name.address, a) }, getType: function () { return this.data.readString(this.address + ed.type.address) }, setType: function (a) { this.data.writeString(this.address + ed.type.address, a) }, getFieldAddress: function () { return this.data.readInt(this.address + ed.fieldAddress.address) }, setFieldAddress: function (a) { this.data.writeInt(this.address + ed.fieldAddress.address, a) }, __class__: ed }); var Rh = function () { this.types = Rh.basicTypes.slice(); this.typecodes = new Oc; this.addTypes(); for (var a = 0, b = 0, c = this.types; b < c.length;) { var d = c[b]; ++b; this.typecodes.set(d, a++) } }; k["mbs.core.MbsTypedefSet"] = Rh; Rh.__name__ = "mbs.core.MbsTypedefSet"; Rh.prototype = { types: null, typecodes: null, getTypes: function () { return this.types }, addTypes: function () { }, getHash: function () { return 0 }, getTypecode: function (a) { return this.typecodes.h[a.__id__] }, getType: function (a) { return this.types[a] }, __class__: Rh }; var nf = function () { Rh.call(this) }; k["com.stencyl.io.mbs.Typedefs"] = nf; nf.__name__ = "com.stencyl.io.mbs.Typedefs"; nf.get = function () { null == nf.instance && (nf.instance = new nf); return nf.instance }; nf.__super__ = Rh; nf.prototype = u(Rh.prototype, { addTypes: function () { kb.initializeType(); this.types.push(kb.MBS_RESOURCE); Ya.initializeType(); this.types.push(Ya.MBS_BACKGROUND); Kb.initializeType(); this.types.push(Kb.MBS_CUSTOM_BLOCK); Bd.initializeType(); this.types.push(Bd.MBS_BLANK); jc.initializeType(); this.types.push(jc.MBS_FONT); zc.initializeType(); this.types.push(zc.MBS_MUSIC); Ra.initializeType(); this.types.push(Ra.MBS_ACTOR_TYPE); yc.initializeType(); this.types.push(yc.MBS_SPRITE); ib.initializeType(); this.types.push(ib.MBS_ANIMATION); Tb.initializeType(); this.types.push(Tb.MBS_ANIM_SHAPE); wc.initializeType(); this.types.push(wc.MBS_GAME); Lc.initializeType(); this.types.push(Lc.MBS_ATLAS); Cd.initializeType(); this.types.push(Cd.MBS_COLLISION_SHAPE); Dd.initializeType(); this.types.push(Dd.MBS_COLLISION_GROUP); Ed.initializeType(); this.types.push(Ed.MBS_COLLISION_PAIR); rd.initializeType(); this.types.push(rd.MBS_SCENE_HEADER); kc.initializeType(); this.types.push(kc.MBS_TILESET); Ub.initializeType(); this.types.push(Ub.MBS_TILE); ea.initializeType(); this.types.push(ea.MBS_SCENE); qb.initializeType(); this.types.push(qb.MBS_ACTOR_INSTANCE); je.initializeType(); this.types.push(je.MBS_COLOR_BACKGROUND); Fd.initializeType(); this.types.push(Fd.MBS_GRADIENT_BACKGROUND); tb.initializeType(); this.types.push(tb.MBS_LAYER); ke.initializeType(); this.types.push(ke.MBS_INTERACTIVE_LAYER); Gd.initializeType(); this.types.push(Gd.MBS_IMAGE_BACKGROUND); Zb.initializeType(); this.types.push(Zb.MBS_JOINT); Hd.initializeType(); this.types.push(Hd.MBS_STICK_JOINT); lc.initializeType(); this.types.push(lc.MBS_HINGE_JOINT); Vb.initializeType(); this.types.push(Vb.MBS_SLIDING_JOINT); bc.initializeType(); this.types.push(bc.MBS_REGION); de.initializeType(); this.types.push(de.MBS_TERRAIN_REGION); xc.initializeType(); this.types.push(xc.MBS_POINT); Wd.initializeType(); this.types.push(Wd.MBS_SHAPE); Nd.initializeType(); this.types.push(Nd.MBS_CIRCLE); Yc.initializeType(); this.types.push(Yc.MBS_POLYGON); wd.initializeType(); this.types.push(wd.MBS_POLY_REGION); le.initializeType(); this.types.push(le.MBS_WIREFRAME); mb.initializeType(); this.types.push(mb.MBS_SNIPPET_DEF); Hb.initializeType(); this.types.push(Hb.MBS_ATTRIBUTE_DEF); fd.initializeType(); this.types.push(fd.MBS_BLOCK); mc.initializeType(); this.types.push(mc.MBS_EVENT); Mc.initializeType(); this.types.push(Mc.MBS_SNIPPET); gd.initializeType(); this.types.push(gd.MBS_ATTRIBUTE); Id.initializeType(); this.types.push(Id.MBS_MAP_ELEMENT); nc.initializeType(); this.types.push(nc.MBS_AUTOTILE_FORMAT); hd.initializeType(); this.types.push(hd.MBS_CORNERS) }, getHash: function () { return -1349349184 }, __class__: nf }); var Ra = function (a) { this.data = a; this._snippets = new Xa(a, Mc.MBS_SNIPPET, new Mc(a)) }; k["com.stencyl.io.mbs.actortype.MbsActorType"] = Ra; Ra.__name__ = "com.stencyl.io.mbs.actortype.MbsActorType"; Ra.initializeType = function () { null == Ra.MBS_ACTOR_TYPE && (kb.initializeType(), Ra.MBS_ACTOR_TYPE = new Cb("MbsActorType"), Ra.MBS_ACTOR_TYPE.setInstantiator(function (a) { return new Ra(a) }), Ra.MBS_ACTOR_TYPE.inherit(kb.MBS_RESOURCE), Ra.angularDamping = Ra.MBS_ACTOR_TYPE.createField("angularDamping", G.FLOAT), Ra.autoScale = Ra.MBS_ACTOR_TYPE.createField("autoScale", G.BOOLEAN), Ra.bodyType = Ra.MBS_ACTOR_TYPE.createField("bodyType", G.INTEGER), Ra.continuous = Ra.MBS_ACTOR_TYPE.createField("continuous", G.BOOLEAN), Ra.eventSnippetID = Ra.MBS_ACTOR_TYPE.createField("eventSnippetID", G.INTEGER), Ra.fixedRotation = Ra.MBS_ACTOR_TYPE.createField("fixedRotation", G.BOOLEAN), Ra.friction = Ra.MBS_ACTOR_TYPE.createField("friction", G.FLOAT), Ra.groupID = Ra.MBS_ACTOR_TYPE.createField("groupID", G.INTEGER), Ra.ignoreGravity = Ra.MBS_ACTOR_TYPE.createField("ignoreGravity", G.BOOLEAN), Ra.inertia = Ra.MBS_ACTOR_TYPE.createField("inertia", G.FLOAT), Ra.linearDamping = Ra.MBS_ACTOR_TYPE.createField("linearDamping", G.FLOAT), Ra.mass = Ra.MBS_ACTOR_TYPE.createField("mass", G.FLOAT), Ra.pausable = Ra.MBS_ACTOR_TYPE.createField("pausable", G.BOOLEAN), Ra.physicsMode = Ra.MBS_ACTOR_TYPE.createField("physicsMode", G.INTEGER), Ra.restitution = Ra.MBS_ACTOR_TYPE.createField("restitution", G.FLOAT), Ra.sprite = Ra.MBS_ACTOR_TYPE.createField("sprite", G.INTEGER), Ra.isStatic = Ra.MBS_ACTOR_TYPE.createField("isStatic", G.BOOLEAN), Ra.snippets = Ra.MBS_ACTOR_TYPE.createField("snippets", G.LIST)) }; Ra.new_MbsActorType_list = function (a) { return new Xa(a, Ra.MBS_ACTOR_TYPE, new Ra(a)) }; Ra.__super__ = kb; Ra.prototype = u(kb.prototype, { getMbsType: function () { return Ra.MBS_ACTOR_TYPE }, _snippets: null, allocateNew: function () { this.setAddress(this.data.allocate(Ra.MBS_ACTOR_TYPE.getSize())) }, getAngularDamping: function () { return this.data.readFloat(this.address + Ra.angularDamping.address) }, setAngularDamping: function (a) { this.data.writeFloat(this.address + Ra.angularDamping.address, a) }, getAutoScale: function () { return this.data.readBool(this.address + Ra.autoScale.address) }, setAutoScale: function (a) { this.data.writeBool(this.address + Ra.autoScale.address, a) }, getBodyType: function () { return this.data.readInt(this.address + Ra.bodyType.address) }, setBodyType: function (a) { this.data.writeInt(this.address + Ra.bodyType.address, a) }, getContinuous: function () { return this.data.readBool(this.address + Ra.continuous.address) }, setContinuous: function (a) { this.data.writeBool(this.address + Ra.continuous.address, a) }, getEventSnippetID: function () { return this.data.readInt(this.address + Ra.eventSnippetID.address) }, setEventSnippetID: function (a) { this.data.writeInt(this.address + Ra.eventSnippetID.address, a) }, getFixedRotation: function () { return this.data.readBool(this.address + Ra.fixedRotation.address) }, setFixedRotation: function (a) { this.data.writeBool(this.address + Ra.fixedRotation.address, a) }, getFriction: function () { return this.data.readFloat(this.address + Ra.friction.address) }, setFriction: function (a) { this.data.writeFloat(this.address + Ra.friction.address, a) }, getGroupID: function () { return this.data.readInt(this.address + Ra.groupID.address) }, setGroupID: function (a) { this.data.writeInt(this.address + Ra.groupID.address, a) }, getIgnoreGravity: function () { return this.data.readBool(this.address + Ra.ignoreGravity.address) }, setIgnoreGravity: function (a) { this.data.writeBool(this.address + Ra.ignoreGravity.address, a) }, getInertia: function () { return this.data.readFloat(this.address + Ra.inertia.address) }, setInertia: function (a) { this.data.writeFloat(this.address + Ra.inertia.address, a) }, getLinearDamping: function () { return this.data.readFloat(this.address + Ra.linearDamping.address) }, setLinearDamping: function (a) { this.data.writeFloat(this.address + Ra.linearDamping.address, a) }, getMass: function () { return this.data.readFloat(this.address + Ra.mass.address) }, setMass: function (a) { this.data.writeFloat(this.address + Ra.mass.address, a) }, getPausable: function () { return this.data.readBool(this.address + Ra.pausable.address) }, setPausable: function (a) { this.data.writeBool(this.address + Ra.pausable.address, a) }, getPhysicsMode: function () { return this.data.readInt(this.address + Ra.physicsMode.address) }, setPhysicsMode: function (a) { this.data.writeInt(this.address + Ra.physicsMode.address, a) }, getRestitution: function () { return this.data.readFloat(this.address + Ra.restitution.address) }, setRestitution: function (a) { this.data.writeFloat(this.address + Ra.restitution.address, a) }, getSprite: function () { return this.data.readInt(this.address + Ra.sprite.address) }, setSprite: function (a) { this.data.writeInt(this.address + Ra.sprite.address, a) }, getIsStatic: function () { return this.data.readBool(this.address + Ra.isStatic.address) }, setIsStatic: function (a) { this.data.writeBool(this.address + Ra.isStatic.address, a) }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + Ra.snippets.address)); return this._snippets }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + Ra.snippets.address, this._snippets.getAddress()); return this._snippets }, __class__: Ra }); var Tb = function (a) { this.data = a }; k["com.stencyl.io.mbs.actortype.MbsAnimShape"] = Tb; Tb.__name__ = "com.stencyl.io.mbs.actortype.MbsAnimShape"; Tb.initializeType = function () { null == Tb.MBS_ANIM_SHAPE && (Tb.MBS_ANIM_SHAPE = new Cb("MbsAnimShape"), Tb.MBS_ANIM_SHAPE.setInstantiator(function (a) { return new Tb(a) }), Tb.shape = Tb.MBS_ANIM_SHAPE.createField("shape", G.DYNAMIC), Tb.density = Tb.MBS_ANIM_SHAPE.createField("density", G.FLOAT), Tb.friction = Tb.MBS_ANIM_SHAPE.createField("friction", G.FLOAT), Tb.groupID = Tb.MBS_ANIM_SHAPE.createField("groupID", G.INTEGER), Tb.id = Tb.MBS_ANIM_SHAPE.createField("id", G.INTEGER), Tb.$name = Tb.MBS_ANIM_SHAPE.createField("name", G.STRING), Tb.restitution = Tb.MBS_ANIM_SHAPE.createField("restitution", G.FLOAT), Tb.sensor = Tb.MBS_ANIM_SHAPE.createField("sensor", G.BOOLEAN)) }; Tb.new_MbsAnimShape_list = function (a) { return new Xa(a, Tb.MBS_ANIM_SHAPE, new Tb(a)) }; Tb.__super__ = pb; Tb.prototype = u(pb.prototype, { getMbsType: function () { return Tb.MBS_ANIM_SHAPE }, allocateNew: function () { this.setAddress(this.data.allocate(Tb.MBS_ANIM_SHAPE.getSize())) }, getShape: function () { return ie.readDynamic(this.data, this.address + Tb.shape.address) }, setShape: function (a) { ie.writeDynamic(this.data, this.address + Tb.shape.address, a) }, getDensity: function () { return this.data.readFloat(this.address + Tb.density.address) }, setDensity: function (a) { this.data.writeFloat(this.address + Tb.density.address, a) }, getFriction: function () { return this.data.readFloat(this.address + Tb.friction.address) }, setFriction: function (a) { this.data.writeFloat(this.address + Tb.friction.address, a) }, getGroupID: function () { return this.data.readInt(this.address + Tb.groupID.address) }, setGroupID: function (a) { this.data.writeInt(this.address + Tb.groupID.address, a) }, getId: function () { return this.data.readInt(this.address + Tb.id.address) }, setId: function (a) { this.data.writeInt(this.address + Tb.id.address, a) }, getName: function () { return this.data.readString(this.address + Tb.$name.address) }, setName: function (a) { this.data.writeString(this.address + Tb.$name.address, a) }, getRestitution: function () { return this.data.readFloat(this.address + Tb.restitution.address) }, setRestitution: function (a) { this.data.writeFloat(this.address + Tb.restitution.address, a) }, getSensor: function () { return this.data.readBool(this.address + Tb.sensor.address) }, setSensor: function (a) { this.data.writeBool(this.address + Tb.sensor.address, a) }, __class__: Tb }); var ib = function (a) { this.data = a; this._durations = new Pf(a); this._shapes = new Xa(a, Tb.MBS_ANIM_SHAPE, new Tb(a)) }; k["com.stencyl.io.mbs.actortype.MbsAnimation"] = ib; ib.__name__ = "com.stencyl.io.mbs.actortype.MbsAnimation"; ib.initializeType = function () { null == ib.MBS_ANIMATION && (ib.MBS_ANIMATION = new Cb("MbsAnimation"), ib.MBS_ANIMATION.setInstantiator(function (a) { return new ib(a) }), ib.across = ib.MBS_ANIMATION.createField("across", G.INTEGER), ib.down = ib.MBS_ANIMATION.createField("down", G.INTEGER), ib.durations = ib.MBS_ANIMATION.createField("durations", G.LIST), ib.height = ib.MBS_ANIMATION.createField("height", G.INTEGER), ib.id = ib.MBS_ANIMATION.createField("id", G.INTEGER), ib.loop = ib.MBS_ANIMATION.createField("loop", G.BOOLEAN), ib.$name = ib.MBS_ANIMATION.createField("name", G.STRING), ib.numFrames = ib.MBS_ANIMATION.createField("numFrames", G.INTEGER), ib.originX = ib.MBS_ANIMATION.createField("originX", G.INTEGER), ib.originY = ib.MBS_ANIMATION.createField("originY", G.INTEGER), ib.sync = ib.MBS_ANIMATION.createField("sync", G.BOOLEAN), ib.version = ib.MBS_ANIMATION.createField("version", G.INTEGER), ib.width = ib.MBS_ANIMATION.createField("width", G.INTEGER), ib.shapes = ib.MBS_ANIMATION.createField("shapes", G.LIST)) }; ib.new_MbsAnimation_list = function (a) { return new Xa(a, ib.MBS_ANIMATION, new ib(a)) }; ib.__super__ = pb; ib.prototype = u(pb.prototype, { getMbsType: function () { return ib.MBS_ANIMATION }, _durations: null, _shapes: null, allocateNew: function () { this.setAddress(this.data.allocate(ib.MBS_ANIMATION.getSize())) }, getAcross: function () { return this.data.readInt(this.address + ib.across.address) }, setAcross: function (a) { this.data.writeInt(this.address + ib.across.address, a) }, getDown: function () { return this.data.readInt(this.address + ib.down.address) }, setDown: function (a) { this.data.writeInt(this.address + ib.down.address, a) }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + ib.durations.address)); return this._durations }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + ib.durations.address, this._durations.getAddress()); return this._durations }, getHeight: function () { return this.data.readInt(this.address + ib.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + ib.height.address, a) }, getId: function () { return this.data.readInt(this.address + ib.id.address) }, setId: function (a) { this.data.writeInt(this.address + ib.id.address, a) }, getLoop: function () { return this.data.readBool(this.address + ib.loop.address) }, setLoop: function (a) { this.data.writeBool(this.address + ib.loop.address, a) }, getName: function () { return this.data.readString(this.address + ib.$name.address) }, setName: function (a) { this.data.writeString(this.address + ib.$name.address, a) }, getNumFrames: function () { return this.data.readInt(this.address + ib.numFrames.address) }, setNumFrames: function (a) { this.data.writeInt(this.address + ib.numFrames.address, a) }, getOriginX: function () { return this.data.readInt(this.address + ib.originX.address) }, setOriginX: function (a) { this.data.writeInt(this.address + ib.originX.address, a) }, getOriginY: function () { return this.data.readInt(this.address + ib.originY.address) }, setOriginY: function (a) { this.data.writeInt(this.address + ib.originY.address, a) }, getSync: function () { return this.data.readBool(this.address + ib.sync.address) }, setSync: function (a) { this.data.writeBool(this.address + ib.sync.address, a) }, getVersion: function () { return this.data.readInt(this.address + ib.version.address) }, setVersion: function (a) { this.data.writeInt(this.address + ib.version.address, a) }, getWidth: function () { return this.data.readInt(this.address + ib.width.address) }, setWidth: function (a) { this.data.writeInt(this.address + ib.width.address, a) }, getShapes: function () { this._shapes.setAddress(this.data.readInt(this.address + ib.shapes.address)); return this._shapes }, createShapes: function (a) { this._shapes.allocateNew(a); this.data.writeInt(this.address + ib.shapes.address, this._shapes.getAddress()); return this._shapes }, __class__: ib }); var yc = function (a) { this.data = a; this._animations = new Xa(a, ib.MBS_ANIMATION, new ib(a)) }; k["com.stencyl.io.mbs.actortype.MbsSprite"] = yc; yc.__name__ = "com.stencyl.io.mbs.actortype.MbsSprite"; yc.initializeType = function () { null == yc.MBS_SPRITE && (kb.initializeType(), yc.MBS_SPRITE = new Cb("MbsSprite"), yc.MBS_SPRITE.setInstantiator(function (a) { return new yc(a) }), yc.MBS_SPRITE.inherit(kb.MBS_RESOURCE), yc.defaultAnimation = yc.MBS_SPRITE.createField("defaultAnimation", G.INTEGER), yc.readableImages = yc.MBS_SPRITE.createField("readableImages", G.BOOLEAN), yc.height = yc.MBS_SPRITE.createField("height", G.INTEGER), yc.width = yc.MBS_SPRITE.createField("width", G.INTEGER), yc.animations = yc.MBS_SPRITE.createField("animations", G.LIST)) }; yc.new_MbsSprite_list = function (a) { return new Xa(a, yc.MBS_SPRITE, new yc(a)) }; yc.__super__ = kb; yc.prototype = u(kb.prototype, { getMbsType: function () { return yc.MBS_SPRITE }, _animations: null, allocateNew: function () { this.setAddress(this.data.allocate(yc.MBS_SPRITE.getSize())) }, getDefaultAnimation: function () { return this.data.readInt(this.address + yc.defaultAnimation.address) }, setDefaultAnimation: function (a) { this.data.writeInt(this.address + yc.defaultAnimation.address, a) }, getReadableImages: function () { return this.data.readBool(this.address + yc.readableImages.address) }, setReadableImages: function (a) { this.data.writeBool(this.address + yc.readableImages.address, a) }, getHeight: function () { return this.data.readInt(this.address + yc.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + yc.height.address, a) }, getWidth: function () { return this.data.readInt(this.address + yc.width.address) }, setWidth: function (a) { this.data.writeInt(this.address + yc.width.address, a) }, getAnimations: function () { this._animations.setAddress(this.data.readInt(this.address + yc.animations.address)); return this._animations }, createAnimations: function (a) { this._animations.allocateNew(a); this.data.writeInt(this.address + yc.animations.address, this._animations.getAddress()); return this._animations }, __class__: yc }); var Lc = function (a) { this.data = a; this._members = new Pf(a) }; k["com.stencyl.io.mbs.game.MbsAtlas"] = Lc; Lc.__name__ = "com.stencyl.io.mbs.game.MbsAtlas"; Lc.initializeType = function () { null == Lc.MBS_ATLAS && (Lc.MBS_ATLAS = new Cb("MbsAtlas"), Lc.MBS_ATLAS.setInstantiator(function (a) { return new Lc(a) }), Lc.id = Lc.MBS_ATLAS.createField("id", G.INTEGER), Lc.$name = Lc.MBS_ATLAS.createField("name", G.STRING), Lc.members = Lc.MBS_ATLAS.createField("members", G.LIST), Lc.allScenes = Lc.MBS_ATLAS.createField("allScenes", G.BOOLEAN)) }; Lc.new_MbsAtlas_list = function (a) { return new Xa(a, Lc.MBS_ATLAS, new Lc(a)) }; Lc.__super__ = pb; Lc.prototype = u(pb.prototype, { getMbsType: function () { return Lc.MBS_ATLAS }, _members: null, allocateNew: function () { this.setAddress(this.data.allocate(Lc.MBS_ATLAS.getSize())) }, getId: function () { return this.data.readInt(this.address + Lc.id.address) }, setId: function (a) { this.data.writeInt(this.address + Lc.id.address, a) }, getName: function () { return this.data.readString(this.address + Lc.$name.address) }, setName: function (a) { this.data.writeString(this.address + Lc.$name.address, a) }, getMembers: function () { this._members.setAddress(this.data.readInt(this.address + Lc.members.address)); return this._members }, createMembers: function (a) { this._members.allocateNew(a); this.data.writeInt(this.address + Lc.members.address, this._members.getAddress()); return this._members }, getAllScenes: function () { return this.data.readBool(this.address + Lc.allScenes.address) }, setAllScenes: function (a) { this.data.writeBool(this.address + Lc.allScenes.address, a) }, __class__: Lc }); var Dd = function (a) { this.data = a }; k["com.stencyl.io.mbs.game.MbsCollisionGroup"] = Dd; Dd.__name__ = "com.stencyl.io.mbs.game.MbsCollisionGroup"; Dd.initializeType = function () { null == Dd.MBS_COLLISION_GROUP && (Dd.MBS_COLLISION_GROUP = new Cb("MbsCollisionGroup"), Dd.MBS_COLLISION_GROUP.setInstantiator(function (a) { return new Dd(a) }), Dd.id = Dd.MBS_COLLISION_GROUP.createField("id", G.INTEGER), Dd.$name = Dd.MBS_COLLISION_GROUP.createField("name", G.STRING)) }; Dd.new_MbsCollisionGroup_list = function (a) { return new Xa(a, Dd.MBS_COLLISION_GROUP, new Dd(a)) }; Dd.__super__ = pb; Dd.prototype = u(pb.prototype, { getMbsType: function () { return Dd.MBS_COLLISION_GROUP }, allocateNew: function () { this.setAddress(this.data.allocate(Dd.MBS_COLLISION_GROUP.getSize())) }, getId: function () { return this.data.readInt(this.address + Dd.id.address) }, setId: function (a) { this.data.writeInt(this.address + Dd.id.address, a) }, getName: function () { return this.data.readString(this.address + Dd.$name.address) }, setName: function (a) { this.data.writeString(this.address + Dd.$name.address, a) }, __class__: Dd }); var Ed = function (a) { this.data = a }; k["com.stencyl.io.mbs.game.MbsCollisionPair"] = Ed; Ed.__name__ = "com.stencyl.io.mbs.game.MbsCollisionPair"; Ed.initializeType = function () { null == Ed.MBS_COLLISION_PAIR && (Ed.MBS_COLLISION_PAIR = new Cb("MbsCollisionPair"), Ed.MBS_COLLISION_PAIR.setInstantiator(function (a) { return new Ed(a) }), Ed.group1 = Ed.MBS_COLLISION_PAIR.createField("group1", G.INTEGER), Ed.group2 = Ed.MBS_COLLISION_PAIR.createField("group2", G.INTEGER)) }; Ed.new_MbsCollisionPair_list = function (a) { return new Xa(a, Ed.MBS_COLLISION_PAIR, new Ed(a)) }; Ed.__super__ = pb; Ed.prototype = u(pb.prototype, { getMbsType: function () { return Ed.MBS_COLLISION_PAIR }, allocateNew: function () { this.setAddress(this.data.allocate(Ed.MBS_COLLISION_PAIR.getSize())) }, getGroup1: function () { return this.data.readInt(this.address + Ed.group1.address) }, setGroup1: function (a) { this.data.writeInt(this.address + Ed.group1.address, a) }, getGroup2: function () { return this.data.readInt(this.address + Ed.group2.address) }, setGroup2: function (a) { this.data.writeInt(this.address + Ed.group2.address, a) }, __class__: Ed }); var Cd = function (a) { this.data = a; this._points = new Xa(a, xc.MBS_POINT, new xc(a)) }; k["com.stencyl.io.mbs.game.MbsCollisionShape"] = Cd; Cd.__name__ = "com.stencyl.io.mbs.game.MbsCollisionShape"; Cd.initializeType = function () { null == Cd.MBS_COLLISION_SHAPE && (Cd.MBS_COLLISION_SHAPE = new Cb("MbsCollisionShape"), Cd.MBS_COLLISION_SHAPE.setInstantiator(function (a) { return new Cd(a) }), Cd.id = Cd.MBS_COLLISION_SHAPE.createField("id", G.INTEGER), Cd.points = Cd.MBS_COLLISION_SHAPE.createField("points", G.LIST)) }; Cd.new_MbsCollisionShape_list = function (a) { return new Xa(a, Cd.MBS_COLLISION_SHAPE, new Cd(a)) }; Cd.__super__ = pb; Cd.prototype = u(pb.prototype, { getMbsType: function () { return Cd.MBS_COLLISION_SHAPE }, _points: null, allocateNew: function () { this.setAddress(this.data.allocate(Cd.MBS_COLLISION_SHAPE.getSize())) }, getId: function () { return this.data.readInt(this.address + Cd.id.address) }, setId: function (a) { this.data.writeInt(this.address + Cd.id.address, a) }, getPoints: function () { this._points.setAddress(this.data.readInt(this.address + Cd.points.address)); return this._points }, createPoints: function (a) { this._points.allocateNew(a); this.data.writeInt(this.address + Cd.points.address, this._points.getAddress()); return this._points }, __class__: Cd }); var wc = function (a) { this.data = a; this._shapes = new Xa(a, Cd.MBS_COLLISION_SHAPE, new Cd(a)); this._atlases = new Xa(a, Lc.MBS_ATLAS, new Lc(a)); this._autotileFormats = new Xa(a, nc.MBS_AUTOTILE_FORMAT, new nc(a)); this._groups = new Xa(a, Dd.MBS_COLLISION_GROUP, new Dd(a)); this._cgroups = new Xa(a, Ed.MBS_COLLISION_PAIR, new Ed(a)); this._gameAttributes = new Xa(a, Id.MBS_MAP_ELEMENT, new Id(a)) }; k["com.stencyl.io.mbs.game.MbsGame"] = wc; wc.__name__ = "com.stencyl.io.mbs.game.MbsGame"; wc.initializeType = function () { null == wc.MBS_GAME && (wc.MBS_GAME = new Cb("MbsGame"), wc.MBS_GAME.setInstantiator(function (a) { return new wc(a) }), wc.shapes = wc.MBS_GAME.createField("shapes", G.LIST), wc.atlases = wc.MBS_GAME.createField("atlases", G.LIST), wc.autotileFormats = wc.MBS_GAME.createField("autotileFormats", G.LIST), wc.groups = wc.MBS_GAME.createField("groups", G.LIST), wc.cgroups = wc.MBS_GAME.createField("cgroups", G.LIST), wc.gameAttributes = wc.MBS_GAME.createField("gameAttributes", G.LIST)) }; wc.new_MbsGame_list = function (a) { return new Xa(a, wc.MBS_GAME, new wc(a)) }; wc.__super__ = pb; wc.prototype = u(pb.prototype, { getMbsType: function () { return wc.MBS_GAME }, _shapes: null, _atlases: null, _autotileFormats: null, _groups: null, _cgroups: null, _gameAttributes: null, allocateNew: function () { this.setAddress(this.data.allocate(wc.MBS_GAME.getSize())) }, getShapes: function () { this._shapes.setAddress(this.data.readInt(this.address + wc.shapes.address)); return this._shapes }, createShapes: function (a) { this._shapes.allocateNew(a); this.data.writeInt(this.address + wc.shapes.address, this._shapes.getAddress()); return this._shapes }, getAtlases: function () { this._atlases.setAddress(this.data.readInt(this.address + wc.atlases.address)); return this._atlases }, createAtlases: function (a) { this._atlases.allocateNew(a); this.data.writeInt(this.address + wc.atlases.address, this._atlases.getAddress()); return this._atlases }, getAutotileFormats: function () { this._autotileFormats.setAddress(this.data.readInt(this.address + wc.autotileFormats.address)); return this._autotileFormats }, createAutotileFormats: function (a) { this._autotileFormats.allocateNew(a); this.data.writeInt(this.address + wc.autotileFormats.address, this._autotileFormats.getAddress()); return this._autotileFormats }, getGroups: function () { this._groups.setAddress(this.data.readInt(this.address + wc.groups.address)); return this._groups }, createGroups: function (a) { this._groups.allocateNew(a); this.data.writeInt(this.address + wc.groups.address, this._groups.getAddress()); return this._groups }, getCgroups: function () { this._cgroups.setAddress(this.data.readInt(this.address + wc.cgroups.address)); return this._cgroups }, createCgroups: function (a) { this._cgroups.allocateNew(a); this.data.writeInt(this.address + wc.cgroups.address, this._cgroups.getAddress()); return this._cgroups }, getGameAttributes: function () { this._gameAttributes.setAddress(this.data.readInt(this.address + wc.gameAttributes.address)); return this._gameAttributes }, createGameAttributes: function (a) { this._gameAttributes.allocateNew(a); this.data.writeInt(this.address + wc.gameAttributes.address, this._gameAttributes.getAddress()); return this._gameAttributes }, __class__: wc }); var nc = function (a) { this.data = a; this._corners = new Xa(a, hd.MBS_CORNERS, new hd(a)); this._flags = new Pf(a) }; k["com.stencyl.io.mbs.game.autotile.MbsAutotileFormat"] = nc; nc.__name__ = "com.stencyl.io.mbs.game.autotile.MbsAutotileFormat"; nc.initializeType = function () { null == nc.MBS_AUTOTILE_FORMAT && (nc.MBS_AUTOTILE_FORMAT = new Cb("MbsAutotileFormat"), nc.MBS_AUTOTILE_FORMAT.setInstantiator(function (a) { return new nc(a) }), nc.id = nc.MBS_AUTOTILE_FORMAT.createField("id", G.INTEGER), nc.$name = nc.MBS_AUTOTILE_FORMAT.createField("name", G.STRING), nc.across = nc.MBS_AUTOTILE_FORMAT.createField("across", G.INTEGER), nc.down = nc.MBS_AUTOTILE_FORMAT.createField("down", G.INTEGER), nc.corners = nc.MBS_AUTOTILE_FORMAT.createField("corners", G.LIST), nc.flags = nc.MBS_AUTOTILE_FORMAT.createField("flags", G.LIST)) }; nc.new_MbsAutotileFormat_list = function (a) { return new Xa(a, nc.MBS_AUTOTILE_FORMAT, new nc(a)) }; nc.__super__ = pb; nc.prototype = u(pb.prototype, { getMbsType: function () { return nc.MBS_AUTOTILE_FORMAT }, _corners: null, _flags: null, allocateNew: function () { this.setAddress(this.data.allocate(nc.MBS_AUTOTILE_FORMAT.getSize())) }, getId: function () { return this.data.readInt(this.address + nc.id.address) }, setId: function (a) { this.data.writeInt(this.address + nc.id.address, a) }, getName: function () { return this.data.readString(this.address + nc.$name.address) }, setName: function (a) { this.data.writeString(this.address + nc.$name.address, a) }, getAcross: function () { return this.data.readInt(this.address + nc.across.address) }, setAcross: function (a) { this.data.writeInt(this.address + nc.across.address, a) }, getDown: function () { return this.data.readInt(this.address + nc.down.address) }, setDown: function (a) { this.data.writeInt(this.address + nc.down.address, a) }, getCorners: function () { this._corners.setAddress(this.data.readInt(this.address + nc.corners.address)); return this._corners }, createCorners: function (a) { this._corners.allocateNew(a); this.data.writeInt(this.address + nc.corners.address, this._corners.getAddress()); return this._corners }, getFlags: function () { this._flags.setAddress(this.data.readInt(this.address + nc.flags.address)); return this._flags }, createFlags: function (a) { this._flags.allocateNew(a); this.data.writeInt(this.address + nc.flags.address, this._flags.getAddress()); return this._flags }, __class__: nc }); var hd = function (a) { this.data = a; this._topLeft = new xc(a); this._topRight = new xc(a); this._bottomLeft = new xc(a); this._bottomRight = new xc(a) }; k["com.stencyl.io.mbs.game.autotile.MbsCorners"] = hd; hd.__name__ = "com.stencyl.io.mbs.game.autotile.MbsCorners"; hd.initializeType = function () { null == hd.MBS_CORNERS && (hd.MBS_CORNERS = new Cb("MbsCorners"), hd.MBS_CORNERS.setInstantiator(function (a) { return new hd(a) }), hd.topLeft = hd.MBS_CORNERS.createField("topLeft", xc.MBS_POINT), hd.topRight = hd.MBS_CORNERS.createField("topRight", xc.MBS_POINT), hd.bottomLeft = hd.MBS_CORNERS.createField("bottomLeft", xc.MBS_POINT), hd.bottomRight = hd.MBS_CORNERS.createField("bottomRight", xc.MBS_POINT)) }; hd.new_MbsCorners_list = function (a) { return new Xa(a, hd.MBS_CORNERS, new hd(a)) }; hd.__super__ = pb; hd.prototype = u(pb.prototype, { getMbsType: function () { return hd.MBS_CORNERS }, _topLeft: null, _topRight: null, _bottomLeft: null, _bottomRight: null, allocateNew: function () { this.setAddress(this.data.allocate(hd.MBS_CORNERS.getSize())) }, getTopLeft: function () { this._topLeft.setAddress(this.address + hd.topLeft.address); return this._topLeft }, getTopRight: function () { this._topRight.setAddress(this.address + hd.topRight.address); return this._topRight }, getBottomLeft: function () { this._bottomLeft.setAddress(this.address + hd.bottomLeft.address); return this._bottomLeft }, getBottomRight: function () { this._bottomRight.setAddress(this.address + hd.bottomRight.address); return this._bottomRight }, __class__: hd }); var qb = function (a) { this.data = a; this._snippets = new Xa(a, Mc.MBS_SNIPPET, new Mc(a)) }; k["com.stencyl.io.mbs.scene.MbsActorInstance"] = qb; qb.__name__ = "com.stencyl.io.mbs.scene.MbsActorInstance"; qb.initializeType = function () { null == qb.MBS_ACTOR_INSTANCE && (qb.MBS_ACTOR_INSTANCE = new Cb("MbsActorInstance"), qb.MBS_ACTOR_INSTANCE.setInstantiator(function (a) { return new qb(a) }), qb.angle = qb.MBS_ACTOR_INSTANCE.createField("angle", G.FLOAT), qb.aid = qb.MBS_ACTOR_INSTANCE.createField("aid", G.INTEGER), qb.customized = qb.MBS_ACTOR_INSTANCE.createField("customized", G.BOOLEAN), qb.groupID = qb.MBS_ACTOR_INSTANCE.createField("groupID", G.INTEGER), qb.id = qb.MBS_ACTOR_INSTANCE.createField("id", G.INTEGER), qb.$name = qb.MBS_ACTOR_INSTANCE.createField("name", G.STRING), qb.scaleX = qb.MBS_ACTOR_INSTANCE.createField("scaleX", G.FLOAT), qb.scaleY = qb.MBS_ACTOR_INSTANCE.createField("scaleY", G.FLOAT), qb.x = qb.MBS_ACTOR_INSTANCE.createField("x", G.INTEGER), qb.y = qb.MBS_ACTOR_INSTANCE.createField("y", G.INTEGER), qb.z = qb.MBS_ACTOR_INSTANCE.createField("z", G.INTEGER), qb.orderInLayer = qb.MBS_ACTOR_INSTANCE.createField("orderInLayer", G.INTEGER), qb.snippets = qb.MBS_ACTOR_INSTANCE.createField("snippets", G.LIST)) }; qb.new_MbsActorInstance_list = function (a) { return new Xa(a, qb.MBS_ACTOR_INSTANCE, new qb(a)) }; qb.__super__ = pb; qb.prototype = u(pb.prototype, { getMbsType: function () { return qb.MBS_ACTOR_INSTANCE }, _snippets: null, allocateNew: function () { this.setAddress(this.data.allocate(qb.MBS_ACTOR_INSTANCE.getSize())) }, getAngle: function () { return this.data.readFloat(this.address + qb.angle.address) }, setAngle: function (a) { this.data.writeFloat(this.address + qb.angle.address, a) }, getAid: function () { return this.data.readInt(this.address + qb.aid.address) }, setAid: function (a) { this.data.writeInt(this.address + qb.aid.address, a) }, getCustomized: function () { return this.data.readBool(this.address + qb.customized.address) }, setCustomized: function (a) { this.data.writeBool(this.address + qb.customized.address, a) }, getGroupID: function () { return this.data.readInt(this.address + qb.groupID.address) }, setGroupID: function (a) { this.data.writeInt(this.address + qb.groupID.address, a) }, getId: function () { return this.data.readInt(this.address + qb.id.address) }, setId: function (a) { this.data.writeInt(this.address + qb.id.address, a) }, getName: function () { return this.data.readString(this.address + qb.$name.address) }, setName: function (a) { this.data.writeString(this.address + qb.$name.address, a) }, getScaleX: function () { return this.data.readFloat(this.address + qb.scaleX.address) }, setScaleX: function (a) { this.data.writeFloat(this.address + qb.scaleX.address, a) }, getScaleY: function () { return this.data.readFloat(this.address + qb.scaleY.address) }, setScaleY: function (a) { this.data.writeFloat(this.address + qb.scaleY.address, a) }, getX: function () { return this.data.readInt(this.address + qb.x.address) }, setX: function (a) { this.data.writeInt(this.address + qb.x.address, a) }, getY: function () { return this.data.readInt(this.address + qb.y.address) }, setY: function (a) { this.data.writeInt(this.address + qb.y.address, a) }, getZ: function () { return this.data.readInt(this.address + qb.z.address) }, setZ: function (a) { this.data.writeInt(this.address + qb.z.address, a) }, getOrderInLayer: function () { return this.data.readInt(this.address + qb.orderInLayer.address) }, setOrderInLayer: function (a) { this.data.writeInt(this.address + qb.orderInLayer.address, a) }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + qb.snippets.address)); return this._snippets }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + qb.snippets.address, this._snippets.getAddress()); return this._snippets }, __class__: qb }); var ea = function (a) { this.data = a; this._actorInstances = new Xa(a, qb.MBS_ACTOR_INSTANCE, new qb(a)); this._atlasMembers = new Pf(a); this._layers = new wh(a); this._joints = new wh(a); this._regions = new Xa(a, bc.MBS_REGION, new bc(a)); this._snippets = new Xa(a, Mc.MBS_SNIPPET, new Mc(a)); this._terrain = new Xa(a, le.MBS_WIREFRAME, new le(a)); this._terrainRegions = new Xa(a, de.MBS_TERRAIN_REGION, new de(a)) }; k["com.stencyl.io.mbs.scene.MbsScene"] = ea; ea.__name__ = "com.stencyl.io.mbs.scene.MbsScene"; ea.initializeType = function () { null == ea.MBS_SCENE && (ea.MBS_SCENE = new Cb("MbsScene"), ea.MBS_SCENE.setInstantiator(function (a) { return new ea(a) }), ea.retainAtlases = ea.MBS_SCENE.createField("retainAtlases", G.BOOLEAN), ea.depth = ea.MBS_SCENE.createField("depth", G.INTEGER), ea.description = ea.MBS_SCENE.createField("description", G.STRING), ea.eventSnippetID = ea.MBS_SCENE.createField("eventSnippetID", G.INTEGER), ea.extendedHeight = ea.MBS_SCENE.createField("extendedHeight", G.INTEGER), ea.extendedWidth = ea.MBS_SCENE.createField("extendedWidth", G.INTEGER), ea.extendedX = ea.MBS_SCENE.createField("extendedX", G.INTEGER), ea.extendedY = ea.MBS_SCENE.createField("extendedY", G.INTEGER), ea.format = ea.MBS_SCENE.createField("format", G.STRING), ea.gravityX = ea.MBS_SCENE.createField("gravityX", G.FLOAT), ea.gravityY = ea.MBS_SCENE.createField("gravityY", G.FLOAT), ea.height = ea.MBS_SCENE.createField("height", G.INTEGER), ea.id = ea.MBS_SCENE.createField("id", G.INTEGER), ea.$name = ea.MBS_SCENE.createField("name", G.STRING), ea.revision = ea.MBS_SCENE.createField("revision", G.STRING), ea.savecount = ea.MBS_SCENE.createField("savecount", G.INTEGER), ea.tileDepth = ea.MBS_SCENE.createField("tileDepth", G.INTEGER), ea.tileHeight = ea.MBS_SCENE.createField("tileHeight", G.INTEGER), ea.tileWidth = ea.MBS_SCENE.createField("tileWidth", G.INTEGER), ea.type = ea.MBS_SCENE.createField("type", G.STRING), ea.width = ea.MBS_SCENE.createField("width", G.INTEGER), ea.actorInstances = ea.MBS_SCENE.createField("actorInstances", G.LIST), ea.atlasMembers = ea.MBS_SCENE.createField("atlasMembers", G.LIST), ea.layers = ea.MBS_SCENE.createField("layers", G.LIST), ea.joints = ea.MBS_SCENE.createField("joints", G.LIST), ea.regions = ea.MBS_SCENE.createField("regions", G.LIST), ea.snippets = ea.MBS_SCENE.createField("snippets", G.LIST), ea.terrain = ea.MBS_SCENE.createField("terrain", G.LIST), ea.terrainRegions = ea.MBS_SCENE.createField("terrainRegions", G.LIST)) }; ea.new_MbsScene_list = function (a) { return new Xa(a, ea.MBS_SCENE, new ea(a)) }; ea.__super__ = pb; ea.prototype = u(pb.prototype, { getMbsType: function () { return ea.MBS_SCENE }, _actorInstances: null, _atlasMembers: null, _layers: null, _joints: null, _regions: null, _snippets: null, _terrain: null, _terrainRegions: null, allocateNew: function () { this.setAddress(this.data.allocate(ea.MBS_SCENE.getSize())) }, getRetainAtlases: function () { return this.data.readBool(this.address + ea.retainAtlases.address) }, setRetainAtlases: function (a) { this.data.writeBool(this.address + ea.retainAtlases.address, a) }, getDepth: function () { return this.data.readInt(this.address + ea.depth.address) }, setDepth: function (a) { this.data.writeInt(this.address + ea.depth.address, a) }, getDescription: function () { return this.data.readString(this.address + ea.description.address) }, setDescription: function (a) { this.data.writeString(this.address + ea.description.address, a) }, getEventSnippetID: function () { return this.data.readInt(this.address + ea.eventSnippetID.address) }, setEventSnippetID: function (a) { this.data.writeInt(this.address + ea.eventSnippetID.address, a) }, getExtendedHeight: function () { return this.data.readInt(this.address + ea.extendedHeight.address) }, setExtendedHeight: function (a) { this.data.writeInt(this.address + ea.extendedHeight.address, a) }, getExtendedWidth: function () { return this.data.readInt(this.address + ea.extendedWidth.address) }, setExtendedWidth: function (a) { this.data.writeInt(this.address + ea.extendedWidth.address, a) }, getExtendedX: function () { return this.data.readInt(this.address + ea.extendedX.address) }, setExtendedX: function (a) { this.data.writeInt(this.address + ea.extendedX.address, a) }, getExtendedY: function () { return this.data.readInt(this.address + ea.extendedY.address) }, setExtendedY: function (a) { this.data.writeInt(this.address + ea.extendedY.address, a) }, getFormat: function () { return this.data.readString(this.address + ea.format.address) }, setFormat: function (a) { this.data.writeString(this.address + ea.format.address, a) }, getGravityX: function () { return this.data.readFloat(this.address + ea.gravityX.address) }, setGravityX: function (a) { this.data.writeFloat(this.address + ea.gravityX.address, a) }, getGravityY: function () { return this.data.readFloat(this.address + ea.gravityY.address) }, setGravityY: function (a) { this.data.writeFloat(this.address + ea.gravityY.address, a) }, getHeight: function () { return this.data.readInt(this.address + ea.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + ea.height.address, a) }, getId: function () { return this.data.readInt(this.address + ea.id.address) }, setId: function (a) { this.data.writeInt(this.address + ea.id.address, a) }, getName: function () { return this.data.readString(this.address + ea.$name.address) }, setName: function (a) { this.data.writeString(this.address + ea.$name.address, a) }, getRevision: function () { return this.data.readString(this.address + ea.revision.address) }, setRevision: function (a) { this.data.writeString(this.address + ea.revision.address, a) }, getSavecount: function () { return this.data.readInt(this.address + ea.savecount.address) }, setSavecount: function (a) { this.data.writeInt(this.address + ea.savecount.address, a) }, getTileDepth: function () { return this.data.readInt(this.address + ea.tileDepth.address) }, setTileDepth: function (a) { this.data.writeInt(this.address + ea.tileDepth.address, a) }, getTileHeight: function () { return this.data.readInt(this.address + ea.tileHeight.address) }, setTileHeight: function (a) { this.data.writeInt(this.address + ea.tileHeight.address, a) }, getTileWidth: function () { return this.data.readInt(this.address + ea.tileWidth.address) }, setTileWidth: function (a) { this.data.writeInt(this.address + ea.tileWidth.address, a) }, getType: function () { return this.data.readString(this.address + ea.type.address) }, setType: function (a) { this.data.writeString(this.address + ea.type.address, a) }, getWidth: function () { return this.data.readInt(this.address + ea.width.address) }, setWidth: function (a) { this.data.writeInt(this.address + ea.width.address, a) }, getActorInstances: function () { this._actorInstances.setAddress(this.data.readInt(this.address + ea.actorInstances.address)); return this._actorInstances }, createActorInstances: function (a) { this._actorInstances.allocateNew(a); this.data.writeInt(this.address + ea.actorInstances.address, this._actorInstances.getAddress()); return this._actorInstances }, getAtlasMembers: function () { this._atlasMembers.setAddress(this.data.readInt(this.address + ea.atlasMembers.address)); return this._atlasMembers }, createAtlasMembers: function (a) { this._atlasMembers.allocateNew(a); this.data.writeInt(this.address + ea.atlasMembers.address, this._atlasMembers.getAddress()); return this._atlasMembers }, getLayers: function () { this._layers.setAddress(this.data.readInt(this.address + ea.layers.address)); return this._layers }, createLayers: function (a) { this._layers.allocateNew(a); this.data.writeInt(this.address + ea.layers.address, this._layers.getAddress()); return this._layers }, getJoints: function () { this._joints.setAddress(this.data.readInt(this.address + ea.joints.address)); return this._joints }, createJoints: function (a) { this._joints.allocateNew(a); this.data.writeInt(this.address + ea.joints.address, this._joints.getAddress()); return this._joints }, getRegions: function () { this._regions.setAddress(this.data.readInt(this.address + ea.regions.address)); return this._regions }, createRegions: function (a) { this._regions.allocateNew(a); this.data.writeInt(this.address + ea.regions.address, this._regions.getAddress()); return this._regions }, getSnippets: function () { this._snippets.setAddress(this.data.readInt(this.address + ea.snippets.address)); return this._snippets }, createSnippets: function (a) { this._snippets.allocateNew(a); this.data.writeInt(this.address + ea.snippets.address, this._snippets.getAddress()); return this._snippets }, getTerrain: function () { this._terrain.setAddress(this.data.readInt(this.address + ea.terrain.address)); return this._terrain }, createTerrain: function (a) { this._terrain.allocateNew(a); this.data.writeInt(this.address + ea.terrain.address, this._terrain.getAddress()); return this._terrain }, getTerrainRegions: function () { this._terrainRegions.setAddress(this.data.readInt(this.address + ea.terrainRegions.address)); return this._terrainRegions }, createTerrainRegions: function (a) { this._terrainRegions.allocateNew(a); this.data.writeInt(this.address + ea.terrainRegions.address, this._terrainRegions.getAddress()); return this._terrainRegions }, __class__: ea }); var rd = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.MbsSceneHeader"] = rd; rd.__name__ = "com.stencyl.io.mbs.scene.MbsSceneHeader"; rd.initializeType = function () { null == rd.MBS_SCENE_HEADER && (rd.MBS_SCENE_HEADER = new Cb("MbsSceneHeader"), rd.MBS_SCENE_HEADER.setInstantiator(function (a) { return new rd(a) }), rd.id = rd.MBS_SCENE_HEADER.createField("id", G.INTEGER), rd.$name = rd.MBS_SCENE_HEADER.createField("name", G.STRING), rd.description = rd.MBS_SCENE_HEADER.createField("description", G.STRING)) }; rd.new_MbsSceneHeader_list = function (a) { return new Xa(a, rd.MBS_SCENE_HEADER, new rd(a)) }; rd.__super__ = pb; rd.prototype = u(pb.prototype, { getMbsType: function () { return rd.MBS_SCENE_HEADER }, allocateNew: function () { this.setAddress(this.data.allocate(rd.MBS_SCENE_HEADER.getSize())) }, getId: function () { return this.data.readInt(this.address + rd.id.address) }, setId: function (a) { this.data.writeInt(this.address + rd.id.address, a) }, getName: function () { return this.data.readString(this.address + rd.$name.address) }, setName: function (a) { this.data.writeString(this.address + rd.$name.address, a) }, getDescription: function () { return this.data.readString(this.address + rd.description.address) }, setDescription: function (a) { this.data.writeString(this.address + rd.description.address, a) }, __class__: rd }); var Ub = function (a) { this.data = a; this._durations = new Pf(a); this._autotileMerge = new Pf(a) }; k["com.stencyl.io.mbs.scene.MbsTile"] = Ub; Ub.__name__ = "com.stencyl.io.mbs.scene.MbsTile"; Ub.initializeType = function () { null == Ub.MBS_TILE && (Ub.MBS_TILE = new Cb("MbsTile"), Ub.MBS_TILE.setInstantiator(function (a) { return new Ub(a) }), Ub.collision = Ub.MBS_TILE.createField("collision", G.INTEGER), Ub.metadata = Ub.MBS_TILE.createField("metadata", G.STRING), Ub.durations = Ub.MBS_TILE.createField("durations", G.LIST), Ub.frames = Ub.MBS_TILE.createField("frames", G.INTEGER), Ub.id = Ub.MBS_TILE.createField("id", G.INTEGER), Ub.order = Ub.MBS_TILE.createField("order", G.INTEGER), Ub.autotile = Ub.MBS_TILE.createField("autotile", G.INTEGER), Ub.autotileMerge = Ub.MBS_TILE.createField("autotileMerge", G.LIST)) }; Ub.new_MbsTile_list = function (a) { return new Xa(a, Ub.MBS_TILE, new Ub(a)) }; Ub.__super__ = pb; Ub.prototype = u(pb.prototype, { getMbsType: function () { return Ub.MBS_TILE }, _durations: null, _autotileMerge: null, allocateNew: function () { this.setAddress(this.data.allocate(Ub.MBS_TILE.getSize())) }, getCollision: function () { return this.data.readInt(this.address + Ub.collision.address) }, setCollision: function (a) { this.data.writeInt(this.address + Ub.collision.address, a) }, getMetadata: function () { return this.data.readString(this.address + Ub.metadata.address) }, setMetadata: function (a) { this.data.writeString(this.address + Ub.metadata.address, a) }, getDurations: function () { this._durations.setAddress(this.data.readInt(this.address + Ub.durations.address)); return this._durations }, createDurations: function (a) { this._durations.allocateNew(a); this.data.writeInt(this.address + Ub.durations.address, this._durations.getAddress()); return this._durations }, getFrames: function () { return this.data.readInt(this.address + Ub.frames.address) }, setFrames: function (a) { this.data.writeInt(this.address + Ub.frames.address, a) }, getId: function () { return this.data.readInt(this.address + Ub.id.address) }, setId: function (a) { this.data.writeInt(this.address + Ub.id.address, a) }, getOrder: function () { return this.data.readInt(this.address + Ub.order.address) }, setOrder: function (a) { this.data.writeInt(this.address + Ub.order.address, a) }, getAutotile: function () { return this.data.readInt(this.address + Ub.autotile.address) }, setAutotile: function (a) { this.data.writeInt(this.address + Ub.autotile.address, a) }, getAutotileMerge: function () { this._autotileMerge.setAddress(this.data.readInt(this.address + Ub.autotileMerge.address)); return this._autotileMerge }, createAutotileMerge: function (a) { this._autotileMerge.allocateNew(a); this.data.writeInt(this.address + Ub.autotileMerge.address, this._autotileMerge.getAddress()); return this._autotileMerge }, __class__: Ub }); var kc = function (a) { this.data = a; this._tiles = new Xa(a, Ub.MBS_TILE, new Ub(a)) }; k["com.stencyl.io.mbs.scene.MbsTileset"] = kc; kc.__name__ = "com.stencyl.io.mbs.scene.MbsTileset"; kc.initializeType = function () { null == kc.MBS_TILESET && (kb.initializeType(), kc.MBS_TILESET = new Cb("MbsTileset"), kc.MBS_TILESET.setInstantiator(function (a) { return new kc(a) }), kc.MBS_TILESET.inherit(kb.MBS_RESOURCE), kc.across = kc.MBS_TILESET.createField("across", G.INTEGER), kc.down = kc.MBS_TILESET.createField("down", G.INTEGER), kc.readableImages = kc.MBS_TILESET.createField("readableImages", G.BOOLEAN), kc.tileWidth = kc.MBS_TILESET.createField("tileWidth", G.INTEGER), kc.tileHeight = kc.MBS_TILESET.createField("tileHeight", G.INTEGER), kc.tiles = kc.MBS_TILESET.createField("tiles", G.LIST)) }; kc.new_MbsTileset_list = function (a) { return new Xa(a, kc.MBS_TILESET, new kc(a)) }; kc.__super__ = kb; kc.prototype = u(kb.prototype, { getMbsType: function () { return kc.MBS_TILESET }, _tiles: null, allocateNew: function () { this.setAddress(this.data.allocate(kc.MBS_TILESET.getSize())) }, getAcross: function () { return this.data.readInt(this.address + kc.across.address) }, setAcross: function (a) { this.data.writeInt(this.address + kc.across.address, a) }, getDown: function () { return this.data.readInt(this.address + kc.down.address) }, setDown: function (a) { this.data.writeInt(this.address + kc.down.address, a) }, getReadableImages: function () { return this.data.readBool(this.address + kc.readableImages.address) }, setReadableImages: function (a) { this.data.writeBool(this.address + kc.readableImages.address, a) }, getTileWidth: function () { return this.data.readInt(this.address + kc.tileWidth.address) }, setTileWidth: function (a) { this.data.writeInt(this.address + kc.tileWidth.address, a) }, getTileHeight: function () { return this.data.readInt(this.address + kc.tileHeight.address) }, setTileHeight: function (a) { this.data.writeInt(this.address + kc.tileHeight.address, a) }, getTiles: function () { this._tiles.setAddress(this.data.readInt(this.address + kc.tiles.address)); return this._tiles }, createTiles: function (a) { this._tiles.allocateNew(a); this.data.writeInt(this.address + kc.tiles.address, this._tiles.getAddress()); return this._tiles }, __class__: kc }); var je = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.layers.MbsColorBackground"] = je; je.__name__ = "com.stencyl.io.mbs.scene.layers.MbsColorBackground"; je.initializeType = function () { null == je.MBS_COLOR_BACKGROUND && (je.MBS_COLOR_BACKGROUND = new Cb("MbsColorBackground"), je.MBS_COLOR_BACKGROUND.setInstantiator(function (a) { return new je(a) }), je.color = je.MBS_COLOR_BACKGROUND.createField("color", G.INTEGER)) }; je.new_MbsColorBackground_list = function (a) { return new Xa(a, je.MBS_COLOR_BACKGROUND, new je(a)) }; je.__super__ = pb; je.prototype = u(pb.prototype, { getMbsType: function () { return je.MBS_COLOR_BACKGROUND }, allocateNew: function () { this.setAddress(this.data.allocate(je.MBS_COLOR_BACKGROUND.getSize())) }, getColor: function () { return this.data.readInt(this.address + je.color.address) }, setColor: function (a) { this.data.writeInt(this.address + je.color.address, a) }, __class__: je }); var Fd = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.layers.MbsGradientBackground"] = Fd; Fd.__name__ = "com.stencyl.io.mbs.scene.layers.MbsGradientBackground"; Fd.initializeType = function () { null == Fd.MBS_GRADIENT_BACKGROUND && (Fd.MBS_GRADIENT_BACKGROUND = new Cb("MbsGradientBackground"), Fd.MBS_GRADIENT_BACKGROUND.setInstantiator(function (a) { return new Fd(a) }), Fd.color1 = Fd.MBS_GRADIENT_BACKGROUND.createField("color1", G.INTEGER), Fd.color2 = Fd.MBS_GRADIENT_BACKGROUND.createField("color2", G.INTEGER)) }; Fd.new_MbsGradientBackground_list = function (a) { return new Xa(a, Fd.MBS_GRADIENT_BACKGROUND, new Fd(a)) }; Fd.__super__ = pb; Fd.prototype = u(pb.prototype, { getMbsType: function () { return Fd.MBS_GRADIENT_BACKGROUND }, allocateNew: function () { this.setAddress(this.data.allocate(Fd.MBS_GRADIENT_BACKGROUND.getSize())) }, getColor1: function () { return this.data.readInt(this.address + Fd.color1.address) }, setColor1: function (a) { this.data.writeInt(this.address + Fd.color1.address, a) }, getColor2: function () { return this.data.readInt(this.address + Fd.color2.address) }, setColor2: function (a) { this.data.writeInt(this.address + Fd.color2.address, a) }, __class__: Fd }); var tb = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.layers.MbsLayer"] = tb; tb.__name__ = "com.stencyl.io.mbs.scene.layers.MbsLayer"; tb.initializeType = function () { null == tb.MBS_LAYER && (tb.MBS_LAYER = new Cb("MbsLayer"), tb.MBS_LAYER.setInstantiator(function (a) { return new tb(a) }), tb.id = tb.MBS_LAYER.createField("id", G.INTEGER), tb.$name = tb.MBS_LAYER.createField("name", G.STRING), tb.order = tb.MBS_LAYER.createField("order", G.INTEGER), tb.opacity = tb.MBS_LAYER.createField("opacity", G.INTEGER), tb.blendmode = tb.MBS_LAYER.createField("blendmode", G.STRING), tb.scrollFactorX = tb.MBS_LAYER.createField("scrollFactorX", G.FLOAT), tb.scrollFactorY = tb.MBS_LAYER.createField("scrollFactorY", G.FLOAT), tb.visible = tb.MBS_LAYER.createField("visible", G.BOOLEAN), tb.locked = tb.MBS_LAYER.createField("locked", G.BOOLEAN)) }; tb.new_MbsLayer_list = function (a) { return new Xa(a, tb.MBS_LAYER, new tb(a)) }; tb.__super__ = pb; tb.prototype = u(pb.prototype, { getMbsType: function () { return tb.MBS_LAYER }, allocateNew: function () { this.setAddress(this.data.allocate(tb.MBS_LAYER.getSize())) }, getId: function () { return this.data.readInt(this.address + tb.id.address) }, setId: function (a) { this.data.writeInt(this.address + tb.id.address, a) }, getName: function () { return this.data.readString(this.address + tb.$name.address) }, setName: function (a) { this.data.writeString(this.address + tb.$name.address, a) }, getOrder: function () { return this.data.readInt(this.address + tb.order.address) }, setOrder: function (a) { this.data.writeInt(this.address + tb.order.address, a) }, getOpacity: function () { return this.data.readInt(this.address + tb.opacity.address) }, setOpacity: function (a) { this.data.writeInt(this.address + tb.opacity.address, a) }, getBlendmode: function () { return this.data.readString(this.address + tb.blendmode.address) }, setBlendmode: function (a) { this.data.writeString(this.address + tb.blendmode.address, a) }, getScrollFactorX: function () { return this.data.readFloat(this.address + tb.scrollFactorX.address) }, setScrollFactorX: function (a) { this.data.writeFloat(this.address + tb.scrollFactorX.address, a) }, getScrollFactorY: function () { return this.data.readFloat(this.address + tb.scrollFactorY.address) }, setScrollFactorY: function (a) { this.data.writeFloat(this.address + tb.scrollFactorY.address, a) }, getVisible: function () { return this.data.readBool(this.address + tb.visible.address) }, setVisible: function (a) { this.data.writeBool(this.address + tb.visible.address, a) }, getLocked: function () { return this.data.readBool(this.address + tb.locked.address) }, setLocked: function (a) { this.data.writeBool(this.address + tb.locked.address, a) }, __class__: tb }); var Gd = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.layers.MbsImageBackground"] = Gd; Gd.__name__ = "com.stencyl.io.mbs.scene.layers.MbsImageBackground"; Gd.initializeType = function () { null == Gd.MBS_IMAGE_BACKGROUND && (tb.initializeType(), Gd.MBS_IMAGE_BACKGROUND = new Cb("MbsImageBackground"), Gd.MBS_IMAGE_BACKGROUND.setInstantiator(function (a) { return new Gd(a) }), Gd.MBS_IMAGE_BACKGROUND.inherit(tb.MBS_LAYER), Gd.resourceID = Gd.MBS_IMAGE_BACKGROUND.createField("resourceID", G.INTEGER), Gd.customScroll = Gd.MBS_IMAGE_BACKGROUND.createField("customScroll", G.BOOLEAN)) }; Gd.new_MbsImageBackground_list = function (a) { return new Xa(a, Gd.MBS_IMAGE_BACKGROUND, new Gd(a)) }; Gd.__super__ = tb; Gd.prototype = u(tb.prototype, { getMbsType: function () { return Gd.MBS_IMAGE_BACKGROUND }, allocateNew: function () { this.setAddress(this.data.allocate(Gd.MBS_IMAGE_BACKGROUND.getSize())) }, getResourceID: function () { return this.data.readInt(this.address + Gd.resourceID.address) }, setResourceID: function (a) { this.data.writeInt(this.address + Gd.resourceID.address, a) }, getCustomScroll: function () { return this.data.readBool(this.address + Gd.customScroll.address) }, setCustomScroll: function (a) { this.data.writeBool(this.address + Gd.customScroll.address, a) }, __class__: Gd }); var ke = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.layers.MbsInteractiveLayer"] = ke; ke.__name__ = "com.stencyl.io.mbs.scene.layers.MbsInteractiveLayer"; ke.initializeType = function () { null == ke.MBS_INTERACTIVE_LAYER && (tb.initializeType(), ke.MBS_INTERACTIVE_LAYER = new Cb("MbsInteractiveLayer"), ke.MBS_INTERACTIVE_LAYER.setInstantiator(function (a) { return new ke(a) }), ke.MBS_INTERACTIVE_LAYER.inherit(tb.MBS_LAYER), ke.color = ke.MBS_INTERACTIVE_LAYER.createField("color", G.INTEGER)) }; ke.new_MbsInteractiveLayer_list = function (a) { return new Xa(a, ke.MBS_INTERACTIVE_LAYER, new ke(a)) }; ke.__super__ = tb; ke.prototype = u(tb.prototype, { getMbsType: function () { return ke.MBS_INTERACTIVE_LAYER }, allocateNew: function () { this.setAddress(this.data.allocate(ke.MBS_INTERACTIVE_LAYER.getSize())) }, getColor: function () { return this.data.readInt(this.address + ke.color.address) }, setColor: function (a) { this.data.writeInt(this.address + ke.color.address, a) }, __class__: ke }); var Zb = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsJoint"] = Zb; Zb.__name__ = "com.stencyl.io.mbs.scene.physics.MbsJoint"; Zb.initializeType = function () { null == Zb.MBS_JOINT && (Zb.MBS_JOINT = new Cb("MbsJoint"), Zb.MBS_JOINT.setInstantiator(function (a) { return new Zb(a) }), Zb.id = Zb.MBS_JOINT.createField("id", G.INTEGER), Zb.$name = Zb.MBS_JOINT.createField("name", G.STRING), Zb.actor1 = Zb.MBS_JOINT.createField("actor1", G.INTEGER), Zb.actor2 = Zb.MBS_JOINT.createField("actor2", G.INTEGER), Zb.collide = Zb.MBS_JOINT.createField("collide", G.BOOLEAN)) }; Zb.new_MbsJoint_list = function (a) { return new Xa(a, Zb.MBS_JOINT, new Zb(a)) }; Zb.__super__ = pb; Zb.prototype = u(pb.prototype, { getMbsType: function () { return Zb.MBS_JOINT }, allocateNew: function () { this.setAddress(this.data.allocate(Zb.MBS_JOINT.getSize())) }, getId: function () { return this.data.readInt(this.address + Zb.id.address) }, setId: function (a) { this.data.writeInt(this.address + Zb.id.address, a) }, getName: function () { return this.data.readString(this.address + Zb.$name.address) }, setName: function (a) { this.data.writeString(this.address + Zb.$name.address, a) }, getActor1: function () { return this.data.readInt(this.address + Zb.actor1.address) }, setActor1: function (a) { this.data.writeInt(this.address + Zb.actor1.address, a) }, getActor2: function () { return this.data.readInt(this.address + Zb.actor2.address) }, setActor2: function (a) { this.data.writeInt(this.address + Zb.actor2.address, a) }, getCollide: function () { return this.data.readBool(this.address + Zb.collide.address) }, setCollide: function (a) { this.data.writeBool(this.address + Zb.collide.address, a) }, __class__: Zb }); var lc = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsHingeJoint"] = lc; lc.__name__ = "com.stencyl.io.mbs.scene.physics.MbsHingeJoint"; lc.initializeType = function () { null == lc.MBS_HINGE_JOINT && (Zb.initializeType(), lc.MBS_HINGE_JOINT = new Cb("MbsHingeJoint"), lc.MBS_HINGE_JOINT.setInstantiator(function (a) { return new lc(a) }), lc.MBS_HINGE_JOINT.inherit(Zb.MBS_JOINT), lc.limit = lc.MBS_HINGE_JOINT.createField("limit", G.BOOLEAN), lc.motor = lc.MBS_HINGE_JOINT.createField("motor", G.BOOLEAN), lc.lower = lc.MBS_HINGE_JOINT.createField("lower", G.FLOAT), lc.upper = lc.MBS_HINGE_JOINT.createField("upper", G.FLOAT), lc.torque = lc.MBS_HINGE_JOINT.createField("torque", G.FLOAT), lc.speed = lc.MBS_HINGE_JOINT.createField("speed", G.FLOAT)) }; lc.new_MbsHingeJoint_list = function (a) { return new Xa(a, lc.MBS_HINGE_JOINT, new lc(a)) }; lc.__super__ = Zb; lc.prototype = u(Zb.prototype, { getMbsType: function () { return lc.MBS_HINGE_JOINT }, allocateNew: function () { this.setAddress(this.data.allocate(lc.MBS_HINGE_JOINT.getSize())) }, getLimit: function () { return this.data.readBool(this.address + lc.limit.address) }, setLimit: function (a) { this.data.writeBool(this.address + lc.limit.address, a) }, getMotor: function () { return this.data.readBool(this.address + lc.motor.address) }, setMotor: function (a) { this.data.writeBool(this.address + lc.motor.address, a) }, getLower: function () { return this.data.readFloat(this.address + lc.lower.address) }, setLower: function (a) { this.data.writeFloat(this.address + lc.lower.address, a) }, getUpper: function () { return this.data.readFloat(this.address + lc.upper.address) }, setUpper: function (a) { this.data.writeFloat(this.address + lc.upper.address, a) }, getTorque: function () { return this.data.readFloat(this.address + lc.torque.address) }, setTorque: function (a) { this.data.writeFloat(this.address + lc.torque.address, a) }, getSpeed: function () { return this.data.readFloat(this.address + lc.speed.address) }, setSpeed: function (a) { this.data.writeFloat(this.address + lc.speed.address, a) }, __class__: lc }); var bc = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsRegion"] = bc; bc.__name__ = "com.stencyl.io.mbs.scene.physics.MbsRegion"; bc.initializeType = function () { null == bc.MBS_REGION && (bc.MBS_REGION = new Cb("MbsRegion"), bc.MBS_REGION.setInstantiator(function (a) { return new bc(a) }), bc.color = bc.MBS_REGION.createField("color", G.INTEGER), bc.id = bc.MBS_REGION.createField("id", G.INTEGER), bc.$name = bc.MBS_REGION.createField("name", G.STRING), bc.shape = bc.MBS_REGION.createField("shape", G.DYNAMIC), bc.x = bc.MBS_REGION.createField("x", G.INTEGER), bc.y = bc.MBS_REGION.createField("y", G.INTEGER)) }; bc.new_MbsRegion_list = function (a) { return new Xa(a, bc.MBS_REGION, new bc(a)) }; bc.__super__ = pb; bc.prototype = u(pb.prototype, { getMbsType: function () { return bc.MBS_REGION }, allocateNew: function () { this.setAddress(this.data.allocate(bc.MBS_REGION.getSize())) }, getColor: function () { return this.data.readInt(this.address + bc.color.address) }, setColor: function (a) { this.data.writeInt(this.address + bc.color.address, a) }, getId: function () { return this.data.readInt(this.address + bc.id.address) }, setId: function (a) { this.data.writeInt(this.address + bc.id.address, a) }, getName: function () { return this.data.readString(this.address + bc.$name.address) }, setName: function (a) { this.data.writeString(this.address + bc.$name.address, a) }, getShape: function () { return ie.readDynamic(this.data, this.address + bc.shape.address) }, setShape: function (a) { ie.writeDynamic(this.data, this.address + bc.shape.address, a) }, getX: function () { return this.data.readInt(this.address + bc.x.address) }, setX: function (a) { this.data.writeInt(this.address + bc.x.address, a) }, getY: function () { return this.data.readInt(this.address + bc.y.address) }, setY: function (a) { this.data.writeInt(this.address + bc.y.address, a) }, __class__: bc }); var Vb = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsSlidingJoint"] = Vb; Vb.__name__ = "com.stencyl.io.mbs.scene.physics.MbsSlidingJoint"; Vb.initializeType = function () { null == Vb.MBS_SLIDING_JOINT && (Zb.initializeType(), Vb.MBS_SLIDING_JOINT = new Cb("MbsSlidingJoint"), Vb.MBS_SLIDING_JOINT.setInstantiator(function (a) { return new Vb(a) }), Vb.MBS_SLIDING_JOINT.inherit(Zb.MBS_JOINT), Vb.limit = Vb.MBS_SLIDING_JOINT.createField("limit", G.BOOLEAN), Vb.motor = Vb.MBS_SLIDING_JOINT.createField("motor", G.BOOLEAN), Vb.lower = Vb.MBS_SLIDING_JOINT.createField("lower", G.FLOAT), Vb.upper = Vb.MBS_SLIDING_JOINT.createField("upper", G.FLOAT), Vb.force = Vb.MBS_SLIDING_JOINT.createField("force", G.FLOAT), Vb.speed = Vb.MBS_SLIDING_JOINT.createField("speed", G.FLOAT), Vb.x = Vb.MBS_SLIDING_JOINT.createField("x", G.FLOAT), Vb.y = Vb.MBS_SLIDING_JOINT.createField("y", G.FLOAT)) }; Vb.new_MbsSlidingJoint_list = function (a) { return new Xa(a, Vb.MBS_SLIDING_JOINT, new Vb(a)) }; Vb.__super__ = Zb; Vb.prototype = u(Zb.prototype, { getMbsType: function () { return Vb.MBS_SLIDING_JOINT }, allocateNew: function () { this.setAddress(this.data.allocate(Vb.MBS_SLIDING_JOINT.getSize())) }, getLimit: function () { return this.data.readBool(this.address + Vb.limit.address) }, setLimit: function (a) { this.data.writeBool(this.address + Vb.limit.address, a) }, getMotor: function () { return this.data.readBool(this.address + Vb.motor.address) }, setMotor: function (a) { this.data.writeBool(this.address + Vb.motor.address, a) }, getLower: function () { return this.data.readFloat(this.address + Vb.lower.address) }, setLower: function (a) { this.data.writeFloat(this.address + Vb.lower.address, a) }, getUpper: function () { return this.data.readFloat(this.address + Vb.upper.address) }, setUpper: function (a) { this.data.writeFloat(this.address + Vb.upper.address, a) }, getForce: function () { return this.data.readFloat(this.address + Vb.force.address) }, setForce: function (a) { this.data.writeFloat(this.address + Vb.force.address, a) }, getSpeed: function () { return this.data.readFloat(this.address + Vb.speed.address) }, setSpeed: function (a) { this.data.writeFloat(this.address + Vb.speed.address, a) }, getX: function () { return this.data.readFloat(this.address + Vb.x.address) }, setX: function (a) { this.data.writeFloat(this.address + Vb.x.address, a) }, getY: function () { return this.data.readFloat(this.address + Vb.y.address) }, setY: function (a) { this.data.writeFloat(this.address + Vb.y.address, a) }, __class__: Vb }); var Hd = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsStickJoint"] = Hd; Hd.__name__ = "com.stencyl.io.mbs.scene.physics.MbsStickJoint"; Hd.initializeType = function () { null == Hd.MBS_STICK_JOINT && (Zb.initializeType(), Hd.MBS_STICK_JOINT = new Cb("MbsStickJoint"), Hd.MBS_STICK_JOINT.setInstantiator(function (a) { return new Hd(a) }), Hd.MBS_STICK_JOINT.inherit(Zb.MBS_JOINT), Hd.damping = Hd.MBS_STICK_JOINT.createField("damping", G.FLOAT), Hd.frequency = Hd.MBS_STICK_JOINT.createField("frequency", G.FLOAT)) }; Hd.new_MbsStickJoint_list = function (a) { return new Xa(a, Hd.MBS_STICK_JOINT, new Hd(a)) }; Hd.__super__ = Zb; Hd.prototype = u(Zb.prototype, { getMbsType: function () { return Hd.MBS_STICK_JOINT }, allocateNew: function () { this.setAddress(this.data.allocate(Hd.MBS_STICK_JOINT.getSize())) }, getDamping: function () { return this.data.readFloat(this.address + Hd.damping.address) }, setDamping: function (a) { this.data.writeFloat(this.address + Hd.damping.address, a) }, getFrequency: function () { return this.data.readFloat(this.address + Hd.frequency.address) }, setFrequency: function (a) { this.data.writeFloat(this.address + Hd.frequency.address, a) }, __class__: Hd }); var de = function (a) { this.data = a }; k["com.stencyl.io.mbs.scene.physics.MbsTerrainRegion"] = de; de.__name__ = "com.stencyl.io.mbs.scene.physics.MbsTerrainRegion"; de.initializeType = function () { null == de.MBS_TERRAIN_REGION && (bc.initializeType(), de.MBS_TERRAIN_REGION = new Cb("MbsTerrainRegion"), de.MBS_TERRAIN_REGION.setInstantiator(function (a) { return new de(a) }), de.MBS_TERRAIN_REGION.inherit(bc.MBS_REGION), de.groupID = de.MBS_TERRAIN_REGION.createField("groupID", G.INTEGER)) }; de.new_MbsTerrainRegion_list = function (a) { return new Xa(a, de.MBS_TERRAIN_REGION, new de(a)) }; de.__super__ = bc; de.prototype = u(bc.prototype, { getMbsType: function () { return de.MBS_TERRAIN_REGION }, allocateNew: function () { this.setAddress(this.data.allocate(de.MBS_TERRAIN_REGION.getSize())) }, getGroupID: function () { return this.data.readInt(this.address + de.groupID.address) }, setGroupID: function (a) { this.data.writeInt(this.address + de.groupID.address, a) }, __class__: de }); var Wd = function (a) { this.data = a }; k["com.stencyl.io.mbs.shape.MbsShape"] = Wd; Wd.__name__ = "com.stencyl.io.mbs.shape.MbsShape"; Wd.initializeType = function () { null == Wd.MBS_SHAPE && (Wd.MBS_SHAPE = new Cb("MbsShape"), Wd.MBS_SHAPE.setInstantiator(function (a) { return new Wd(a) })) }; Wd.new_MbsShape_list = function (a) { return new Xa(a, Wd.MBS_SHAPE, new Wd(a)) }; Wd.__super__ = pb; Wd.prototype = u(pb.prototype, { getMbsType: function () { return Wd.MBS_SHAPE }, allocateNew: function () { this.setAddress(this.data.allocate(Wd.MBS_SHAPE.getSize())) }, __class__: Wd }); var Nd = function (a) { this.data = a; this._position = new xc(a) }; k["com.stencyl.io.mbs.shape.MbsCircle"] = Nd; Nd.__name__ = "com.stencyl.io.mbs.shape.MbsCircle"; Nd.initializeType = function () { null == Nd.MBS_CIRCLE && (Wd.initializeType(), Nd.MBS_CIRCLE = new Cb("MbsCircle"), Nd.MBS_CIRCLE.setInstantiator(function (a) { return new Nd(a) }), Nd.MBS_CIRCLE.inherit(Wd.MBS_SHAPE), Nd.position = Nd.MBS_CIRCLE.createField("position", xc.MBS_POINT), Nd.radius = Nd.MBS_CIRCLE.createField("radius", G.FLOAT)) }; Nd.new_MbsCircle_list = function (a) { return new Xa(a, Nd.MBS_CIRCLE, new Nd(a)) }; Nd.__super__ = Wd; Nd.prototype = u(Wd.prototype, { getMbsType: function () { return Nd.MBS_CIRCLE }, _position: null, allocateNew: function () { this.setAddress(this.data.allocate(Nd.MBS_CIRCLE.getSize())) }, getPosition: function () { this._position.setAddress(this.address + Nd.position.address); return this._position }, getRadius: function () { return this.data.readFloat(this.address + Nd.radius.address) }, setRadius: function (a) { this.data.writeFloat(this.address + Nd.radius.address, a) }, __class__: Nd }); var xc = function (a) { this.data = a }; k["com.stencyl.io.mbs.shape.MbsPoint"] = xc; xc.__name__ = "com.stencyl.io.mbs.shape.MbsPoint"; xc.initializeType = function () { null == xc.MBS_POINT && (xc.MBS_POINT = new Cb("MbsPoint"), xc.MBS_POINT.setInstantiator(function (a) { return new xc(a) }), xc.x = xc.MBS_POINT.createField("x", G.FLOAT), xc.y = xc.MBS_POINT.createField("y", G.FLOAT)) }; xc.new_MbsPoint_list = function (a) { return new Xa(a, xc.MBS_POINT, new xc(a)) }; xc.__super__ = pb; xc.prototype = u(pb.prototype, { getMbsType: function () { return xc.MBS_POINT }, allocateNew: function () { this.setAddress(this.data.allocate(xc.MBS_POINT.getSize())) }, getX: function () { return this.data.readFloat(this.address + xc.x.address) }, setX: function (a) { this.data.writeFloat(this.address + xc.x.address, a) }, getY: function () { return this.data.readFloat(this.address + xc.y.address) }, setY: function (a) { this.data.writeFloat(this.address + xc.y.address, a) }, __class__: xc }); var Yc = function (a) { this.data = a; this._points = new Xa(a, xc.MBS_POINT, new xc(a)) }; k["com.stencyl.io.mbs.shape.MbsPolygon"] = Yc; Yc.__name__ = "com.stencyl.io.mbs.shape.MbsPolygon"; Yc.initializeType = function () { null == Yc.MBS_POLYGON && (Wd.initializeType(), Yc.MBS_POLYGON = new Cb("MbsPolygon"), Yc.MBS_POLYGON.setInstantiator(function (a) { return new Yc(a) }), Yc.MBS_POLYGON.inherit(Wd.MBS_SHAPE), Yc.points = Yc.MBS_POLYGON.createField("points", G.LIST)) }; Yc.new_MbsPolygon_list = function (a) { return new Xa(a, Yc.MBS_POLYGON, new Yc(a)) }; Yc.__super__ = Wd; Yc.prototype = u(Wd.prototype, { getMbsType: function () { return Yc.MBS_POLYGON }, _points: null, allocateNew: function () { this.setAddress(this.data.allocate(Yc.MBS_POLYGON.getSize())) }, getPoints: function () { this._points.setAddress(this.data.readInt(this.address + Yc.points.address)); return this._points }, createPoints: function (a) { this._points.allocateNew(a); this.data.writeInt(this.address + Yc.points.address, this._points.getAddress()); return this._points }, __class__: Yc }); var wd = function (a) { Yc.call(this, a) }; k["com.stencyl.io.mbs.shape.MbsPolyRegion"] = wd; wd.__name__ = "com.stencyl.io.mbs.shape.MbsPolyRegion"; wd.initializeType = function () { null == wd.MBS_POLY_REGION && (Yc.initializeType(), wd.MBS_POLY_REGION = new Cb("MbsPolyRegion"), wd.MBS_POLY_REGION.setInstantiator(function (a) { return new wd(a) }), wd.MBS_POLY_REGION.inherit(Yc.MBS_POLYGON), wd.width = wd.MBS_POLY_REGION.createField("width", G.INTEGER), wd.height = wd.MBS_POLY_REGION.createField("height", G.INTEGER)) }; wd.new_MbsPolyRegion_list = function (a) { return new Xa(a, wd.MBS_POLY_REGION, new wd(a)) }; wd.__super__ = Yc; wd.prototype = u(Yc.prototype, { getMbsType: function () { return wd.MBS_POLY_REGION }, allocateNew: function () { this.setAddress(this.data.allocate(wd.MBS_POLY_REGION.getSize())) }, getWidth: function () { return this.data.readInt(this.address + wd.width.address) }, setWidth: function (a) { this.data.writeInt(this.address + wd.width.address, a) }, getHeight: function () { return this.data.readInt(this.address + wd.height.address) }, setHeight: function (a) { this.data.writeInt(this.address + wd.height.address, a) }, __class__: wd }); var le = function (a) { Yc.call(this, a); this._position = new xc(a) }; k["com.stencyl.io.mbs.shape.MbsWireframe"] = le; le.__name__ = "com.stencyl.io.mbs.shape.MbsWireframe"; le.initializeType = function () { null == le.MBS_WIREFRAME && (Yc.initializeType(), le.MBS_WIREFRAME = new Cb("MbsWireframe"), le.MBS_WIREFRAME.setInstantiator(function (a) { return new le(a) }), le.MBS_WIREFRAME.inherit(Yc.MBS_POLYGON), le.position = le.MBS_WIREFRAME.createField("position", xc.MBS_POINT)) }; le.new_MbsWireframe_list = function (a) { return new Xa(a, le.MBS_WIREFRAME, new le(a)) }; le.__super__ = Yc; le.prototype = u(Yc.prototype, { getMbsType: function () { return le.MBS_WIREFRAME }, _position: null, allocateNew: function () { this.setAddress(this.data.allocate(le.MBS_WIREFRAME.getSize())) }, getPosition: function () { this._position.setAddress(this.address + le.position.address); return this._position }, __class__: le }); var gd = function (a) { this.data = a }; k["com.stencyl.io.mbs.snippet.MbsAttribute"] = gd; gd.__name__ = "com.stencyl.io.mbs.snippet.MbsAttribute"; gd.initializeType = function () { null == gd.MBS_ATTRIBUTE && (gd.MBS_ATTRIBUTE = new Cb("MbsAttribute"), gd.MBS_ATTRIBUTE.setInstantiator(function (a) { return new gd(a) }), gd.id = gd.MBS_ATTRIBUTE.createField("id", G.INTEGER), gd.type = gd.MBS_ATTRIBUTE.createField("type", G.STRING), gd.value = gd.MBS_ATTRIBUTE.createField("value", G.DYNAMIC)) }; gd.new_MbsAttribute_list = function (a) { return new Xa(a, gd.MBS_ATTRIBUTE, new gd(a)) }; gd.__super__ = pb; gd.prototype = u(pb.prototype, { getMbsType: function () { return gd.MBS_ATTRIBUTE }, allocateNew: function () { this.setAddress(this.data.allocate(gd.MBS_ATTRIBUTE.getSize())) }, getId: function () { return this.data.readInt(this.address + gd.id.address) }, setId: function (a) { this.data.writeInt(this.address + gd.id.address, a) }, getType: function () { return this.data.readString(this.address + gd.type.address) }, setType: function (a) { this.data.writeString(this.address + gd.type.address, a) }, getValue: function () { return ie.readDynamic(this.data, this.address + gd.value.address) }, setValue: function (a) { ie.writeDynamic(this.data, this.address + gd.value.address, a) }, __class__: gd }); var Hb = function (a) { this.data = a }; k["com.stencyl.io.mbs.snippet.MbsAttributeDef"] = Hb; Hb.__name__ = "com.stencyl.io.mbs.snippet.MbsAttributeDef"; Hb.initializeType = function () { null == Hb.MBS_ATTRIBUTE_DEF && (Hb.MBS_ATTRIBUTE_DEF = new Cb("MbsAttributeDef"), Hb.MBS_ATTRIBUTE_DEF.setInstantiator(function (a) { return new Hb(a) }), Hb.type = Hb.MBS_ATTRIBUTE_DEF.createField("type", G.STRING), Hb.defaultValue = Hb.MBS_ATTRIBUTE_DEF.createField("defaultValue", G.DYNAMIC), Hb.description = Hb.MBS_ATTRIBUTE_DEF.createField("description", G.STRING), Hb.dropdown = Hb.MBS_ATTRIBUTE_DEF.createField("dropdown", G.STRING), Hb.fullname = Hb.MBS_ATTRIBUTE_DEF.createField("fullname", G.STRING), Hb.hidden = Hb.MBS_ATTRIBUTE_DEF.createField("hidden", G.BOOLEAN), Hb.id = Hb.MBS_ATTRIBUTE_DEF.createField("id", G.INTEGER), Hb.$name = Hb.MBS_ATTRIBUTE_DEF.createField("name", G.STRING), Hb.order = Hb.MBS_ATTRIBUTE_DEF.createField("order", G.INTEGER)) }; Hb.new_MbsAttributeDef_list = function (a) { return new Xa(a, Hb.MBS_ATTRIBUTE_DEF, new Hb(a)) }; Hb.__super__ = pb; Hb.prototype = u(pb.prototype, { getMbsType: function () { return Hb.MBS_ATTRIBUTE_DEF }, allocateNew: function () { this.setAddress(this.data.allocate(Hb.MBS_ATTRIBUTE_DEF.getSize())) }, getType: function () { return this.data.readString(this.address + Hb.type.address) }, setType: function (a) { this.data.writeString(this.address + Hb.type.address, a) }, getDefaultValue: function () { return ie.readDynamic(this.data, this.address + Hb.defaultValue.address) }, setDefaultValue: function (a) { ie.writeDynamic(this.data, this.address + Hb.defaultValue.address, a) }, getDescription: function () { return this.data.readString(this.address + Hb.description.address) }, setDescription: function (a) { this.data.writeString(this.address + Hb.description.address, a) }, getDropdown: function () { return this.data.readString(this.address + Hb.dropdown.address) }, setDropdown: function (a) { this.data.writeString(this.address + Hb.dropdown.address, a) }, getFullname: function () { return this.data.readString(this.address + Hb.fullname.address) }, setFullname: function (a) { this.data.writeString(this.address + Hb.fullname.address, a) }, getHidden: function () { return this.data.readBool(this.address + Hb.hidden.address) }, setHidden: function (a) { this.data.writeBool(this.address + Hb.hidden.address, a) }, getId: function () { return this.data.readInt(this.address + Hb.id.address) }, setId: function (a) { this.data.writeInt(this.address + Hb.id.address, a) }, getName: function () { return this.data.readString(this.address + Hb.$name.address) }, setName: function (a) { this.data.writeString(this.address + Hb.$name.address, a) }, getOrder: function () { return this.data.readInt(this.address + Hb.order.address) }, setOrder: function (a) { this.data.writeInt(this.address + Hb.order.address, a) }, __class__: Hb }); var fd = function (a) { this.data = a }; k["com.stencyl.io.mbs.snippet.MbsBlock"] = fd; fd.__name__ = "com.stencyl.io.mbs.snippet.MbsBlock"; fd.initializeType = function () { null == fd.MBS_BLOCK && (fd.MBS_BLOCK = new Cb("MbsBlock"), fd.MBS_BLOCK.setInstantiator(function (a) { return new fd(a) }), fd.type = fd.MBS_BLOCK.createField("type", G.STRING), fd.id = fd.MBS_BLOCK.createField("id", G.INTEGER), fd.blockID = fd.MBS_BLOCK.createField("blockID", G.INTEGER)) }; fd.new_MbsBlock_list = function (a) { return new Xa(a, fd.MBS_BLOCK, new fd(a)) }; fd.__super__ = pb; fd.prototype = u(pb.prototype, { getMbsType: function () { return fd.MBS_BLOCK }, allocateNew: function () { this.setAddress(this.data.allocate(fd.MBS_BLOCK.getSize())) }, getType: function () { return this.data.readString(this.address + fd.type.address) }, setType: function (a) { this.data.writeString(this.address + fd.type.address, a) }, getId: function () { return this.data.readInt(this.address + fd.id.address) }, setId: function (a) { this.data.writeInt(this.address + fd.id.address, a) }, getBlockID: function () { return this.data.readInt(this.address + fd.blockID.address) }, setBlockID: function (a) { this.data.writeInt(this.address + fd.blockID.address, a) }, __class__: fd }); var mc = function (a) { this.data = a }; k["com.stencyl.io.mbs.snippet.MbsEvent"] = mc; mc.__name__ = "com.stencyl.io.mbs.snippet.MbsEvent"; mc.initializeType = function () { null == mc.MBS_EVENT && (mc.MBS_EVENT = new Cb("MbsEvent"), mc.MBS_EVENT.setInstantiator(function (a) { return new mc(a) }), mc.displayName = mc.MBS_EVENT.createField("displayName", G.STRING), mc.enabled = mc.MBS_EVENT.createField("enabled", G.BOOLEAN), mc.id = mc.MBS_EVENT.createField("id", G.INTEGER), mc.$name = mc.MBS_EVENT.createField("name", G.STRING), mc.order = mc.MBS_EVENT.createField("order", G.INTEGER), mc.repeats = mc.MBS_EVENT.createField("repeats", G.BOOLEAN)) }; mc.new_MbsEvent_list = function (a) { return new Xa(a, mc.MBS_EVENT, new mc(a)) }; mc.__super__ = pb; mc.prototype = u(pb.prototype, { getMbsType: function () { return mc.MBS_EVENT }, allocateNew: function () { this.setAddress(this.data.allocate(mc.MBS_EVENT.getSize())) }, getDisplayName: function () { return this.data.readString(this.address + mc.displayName.address) }, setDisplayName: function (a) { this.data.writeString(this.address + mc.displayName.address, a) }, getEnabled: function () { return this.data.readBool(this.address + mc.enabled.address) }, setEnabled: function (a) { this.data.writeBool(this.address + mc.enabled.address, a) }, getId: function () { return this.data.readInt(this.address + mc.id.address) }, setId: function (a) { this.data.writeInt(this.address + mc.id.address, a) }, getName: function () { return this.data.readString(this.address + mc.$name.address) }, setName: function (a) { this.data.writeString(this.address + mc.$name.address, a) }, getOrder: function () { return this.data.readInt(this.address + mc.order.address) }, setOrder: function (a) { this.data.writeInt(this.address + mc.order.address, a) }, getRepeats: function () { return this.data.readBool(this.address + mc.repeats.address) }, setRepeats: function (a) { this.data.writeBool(this.address + mc.repeats.address, a) }, __class__: mc }); var Id = function (a) { this.data = a }; k["com.stencyl.io.mbs.snippet.MbsMapElement"] = Id; Id.__name__ = "com.stencyl.io.mbs.snippet.MbsMapElement"; Id.initializeType = function () { null == Id.MBS_MAP_ELEMENT && (Id.MBS_MAP_ELEMENT = new Cb("MbsMapElement"), Id.MBS_MAP_ELEMENT.setInstantiator(function (a) { return new Id(a) }), Id.key = Id.MBS_MAP_ELEMENT.createField("key", G.STRING), Id.value = Id.MBS_MAP_ELEMENT.createField("value", G.DYNAMIC)) }; Id.new_MbsMapElement_list = function (a) { return new Xa(a, Id.MBS_MAP_ELEMENT, new Id(a)) }; Id.__super__ = pb; Id.prototype = u(pb.prototype, { getMbsType: function () { return Id.MBS_MAP_ELEMENT }, allocateNew: function () { this.setAddress(this.data.allocate(Id.MBS_MAP_ELEMENT.getSize())) }, getKey: function () { return this.data.readString(this.address + Id.key.address) }, setKey: function (a) { this.data.writeString(this.address + Id.key.address, a) }, getValue: function () { return ie.readDynamic(this.data, this.address + Id.value.address) }, setValue: function (a) { ie.writeDynamic(this.data, this.address + Id.value.address, a) }, __class__: Id }); var Mc = function (a) { this.data = a; this._properties = new Xa(a, gd.MBS_ATTRIBUTE, new gd(a)) }; k["com.stencyl.io.mbs.snippet.MbsSnippet"] = Mc; Mc.__name__ = "com.stencyl.io.mbs.snippet.MbsSnippet"; Mc.initializeType = function () { null == Mc.MBS_SNIPPET && (Mc.MBS_SNIPPET = new Cb("MbsSnippet"), Mc.MBS_SNIPPET.setInstantiator(function (a) { return new Mc(a) }), Mc.enabled = Mc.MBS_SNIPPET.createField("enabled", G.BOOLEAN), Mc.id = Mc.MBS_SNIPPET.createField("id", G.INTEGER), Mc.properties = Mc.MBS_SNIPPET.createField("properties", G.LIST)) }; Mc.new_MbsSnippet_list = function (a) { return new Xa(a, Mc.MBS_SNIPPET, new Mc(a)) }; Mc.__super__ = pb; Mc.prototype = u(pb.prototype, { getMbsType: function () { return Mc.MBS_SNIPPET }, _properties: null, allocateNew: function () { this.setAddress(this.data.allocate(Mc.MBS_SNIPPET.getSize())) }, getEnabled: function () { return this.data.readBool(this.address + Mc.enabled.address) }, setEnabled: function (a) { this.data.writeBool(this.address + Mc.enabled.address, a) }, getId: function () { return this.data.readInt(this.address + Mc.id.address) }, setId: function (a) { this.data.writeInt(this.address + Mc.id.address, a) }, getProperties: function () { this._properties.setAddress(this.data.readInt(this.address + Mc.properties.address)); return this._properties }, createProperties: function (a) { this._properties.allocateNew(a); this.data.writeInt(this.address + Mc.properties.address, this._properties.getAddress()); return this._properties }, __class__: Mc }); var mb = function (a) { this.data = a; this._attributes = new Xa(a, Hb.MBS_ATTRIBUTE_DEF, new Hb(a)); this._blocks = new Xa(a, fd.MBS_BLOCK, new fd(a)); this._events = new Xa(a, mc.MBS_EVENT, new mc(a)) }; k["com.stencyl.io.mbs.snippet.MbsSnippetDef"] = mb; mb.__name__ = "com.stencyl.io.mbs.snippet.MbsSnippetDef"; mb.initializeType = function () { null == mb.MBS_SNIPPET_DEF && (mb.MBS_SNIPPET_DEF = new Cb("MbsSnippetDef"), mb.MBS_SNIPPET_DEF.setInstantiator(function (a) { return new mb(a) }), mb.attachedEvent = mb.MBS_SNIPPET_DEF.createField("attachedEvent", G.BOOLEAN), mb.actorID = mb.MBS_SNIPPET_DEF.createField("actorID", G.INTEGER), mb.classname = mb.MBS_SNIPPET_DEF.createField("classname", G.STRING), mb.description = mb.MBS_SNIPPET_DEF.createField("description", G.STRING), mb.design = mb.MBS_SNIPPET_DEF.createField("design", G.BOOLEAN), mb.drawOrder = mb.MBS_SNIPPET_DEF.createField("drawOrder", G.INTEGER), mb.id = mb.MBS_SNIPPET_DEF.createField("id", G.INTEGER), mb.$name = mb.MBS_SNIPPET_DEF.createField("name", G.STRING), mb.packageName = mb.MBS_SNIPPET_DEF.createField("packageName", G.STRING), mb.sceneID = mb.MBS_SNIPPET_DEF.createField("sceneID", G.INTEGER), mb.type = mb.MBS_SNIPPET_DEF.createField("type", G.STRING), mb.attributes = mb.MBS_SNIPPET_DEF.createField("attributes", G.LIST), mb.blocks = mb.MBS_SNIPPET_DEF.createField("blocks", G.LIST), mb.events = mb.MBS_SNIPPET_DEF.createField("events", G.LIST)) }; mb.new_MbsSnippetDef_list = function (a) { return new Xa(a, mb.MBS_SNIPPET_DEF, new mb(a)) }; mb.__super__ = pb; mb.prototype = u(pb.prototype, { getMbsType: function () { return mb.MBS_SNIPPET_DEF }, _attributes: null, _blocks: null, _events: null, allocateNew: function () { this.setAddress(this.data.allocate(mb.MBS_SNIPPET_DEF.getSize())) }, getAttachedEvent: function () { return this.data.readBool(this.address + mb.attachedEvent.address) }, setAttachedEvent: function (a) { this.data.writeBool(this.address + mb.attachedEvent.address, a) }, getActorID: function () { return this.data.readInt(this.address + mb.actorID.address) }, setActorID: function (a) { this.data.writeInt(this.address + mb.actorID.address, a) }, getClassname: function () { return this.data.readString(this.address + mb.classname.address) }, setClassname: function (a) { this.data.writeString(this.address + mb.classname.address, a) }, getDescription: function () { return this.data.readString(this.address + mb.description.address) }, setDescription: function (a) { this.data.writeString(this.address + mb.description.address, a) }, getDesign: function () { return this.data.readBool(this.address + mb.design.address) }, setDesign: function (a) { this.data.writeBool(this.address + mb.design.address, a) }, getDrawOrder: function () { return this.data.readInt(this.address + mb.drawOrder.address) }, setDrawOrder: function (a) { this.data.writeInt(this.address + mb.drawOrder.address, a) }, getId: function () { return this.data.readInt(this.address + mb.id.address) }, setId: function (a) { this.data.writeInt(this.address + mb.id.address, a) }, getName: function () { return this.data.readString(this.address + mb.$name.address) }, setName: function (a) { this.data.writeString(this.address + mb.$name.address, a) }, getPackageName: function () { return this.data.readString(this.address + mb.packageName.address) }, setPackageName: function (a) { this.data.writeString(this.address + mb.packageName.address, a) }, getSceneID: function () { return this.data.readInt(this.address + mb.sceneID.address) }, setSceneID: function (a) { this.data.writeInt(this.address + mb.sceneID.address, a) }, getType: function () { return this.data.readString(this.address + mb.type.address) }, setType: function (a) { this.data.writeString(this.address + mb.type.address, a) }, getAttributes: function () { this._attributes.setAddress(this.data.readInt(this.address + mb.attributes.address)); return this._attributes }, createAttributes: function (a) { this._attributes.allocateNew(a); this.data.writeInt(this.address + mb.attributes.address, this._attributes.getAddress()); return this._attributes }, getBlocks: function () { this._blocks.setAddress(this.data.readInt(this.address + mb.blocks.address)); return this._blocks }, createBlocks: function (a) { this._blocks.allocateNew(a); this.data.writeInt(this.address + mb.blocks.address, this._blocks.getAddress()); return this._blocks }, getEvents: function () { this._events.setAddress(this.data.readInt(this.address + mb.events.address)); return this._events }, createEvents: function (a) { this._events.allocateNew(a); this.data.writeInt(this.address + mb.events.address, this._events.getAddress()); return this._events }, __class__: mb }); var wb = function (a, b, c, d, e, g, f, v, p, m, l, n, k, t, tc, ub, Sb, da, ja, u) { null == u && (u = 0); null == ja && (ja = !1); null == da && (da = !0); null == ub && (ub = !1); null == tc && (tc = !1); null == t && (t = !1); null == k && (k = !1); null == v && (v = 32); null == f && (f = 32); null == g && (g = -1); null == e && (e = 0); null == d && (d = 0); this.customizedBehaviors = !1; this.maxMove = 99999; this.minMove = 3; this.moveXDistance = this.moveYDistance = 0; this.moveMultiplier = .33; this.drawX = this.drawY = 0; this.smoothMove = this.firstMove = this.snapOnSet = !1; this.attachedImages = null; Ca.call(this); h.NO_PHYSICS && 0 == u && (this.physicsMode = u = 1); this.dummy = new M; this.zero = new M(0, 0); this._point = X.point; this._moveX = this._moveY = 0; this.HITBOX = new mg; this.set_shape(this.HITBOX); this instanceof ud && h.NO_PHYSICS && (Sb = this.HITBOX = new nd(f | 0, v | 0, 0, 0, !1, -2), this.set_shape(Sb)); this.set_x(0); this.set_y(0); this.set_rotation(0); this.realAngle = this.realY = this.realX = 0; this.realScaleY = this.realScaleX = 1; this.collidable = !0; this.solid = !k; this.updateMatrix = !0; this.colY = this.colX = 0; this.lastScale = new na(1, 1); this.lastY = this.lastX = -1E3; this.lastAngle = 0; this.tweenProps = new io; this.tweenProps.xy.doOnUpdate(q(this, this.updateTweenXY)); this.tweenProps.angle.doOnUpdate(q(this, this.updateTweenAngle)); this.tweenProps.alpha.doOnUpdate(q(this, this.updateTweenAlpha)); this.tweenProps.realScaleXY.doOnUpdate(q(this, this.updateTweenScaleXY)); this.transformPoint = new na(0, 0); this.transformMatrix = new Ja; this.drawMatrix = new Ja; this.currOrigin = new na(0, 0); this.currOffset = new na(0, 0); this.registry = new xa; this.attachedImages = []; this.physicsMode = u; this.autoScale = da; this.mouseState = this.rSpeed = this.ySpeed = this.xSpeed = 0; this.isTerrainRegion = this.isRegion = this.isCamera = this.isOnScreenCache = this.lastSceneState = this.lastScreenState = !1; this.drawActor = !0; this.fixedRotation = this.continuousCollision = this.isHUD = this.alwaysSimulate = this.killLeaveScreen = !1; this.defaultGravity = this.ignoreGravity = ja; this.resetOrigin = !0; this.allListeners = new eb; this.allEventReferences = []; this.whenCreated = new Kc; this.whenUpdated = new Kc; this.whenDrawing = new Kc; this.whenKilled = new Kc; this.whenMousedOver = new Kc; this.whenPositionStateChanged = new Kc; this.whenCollided = new Kc; this.destroyed = this.paused = this.recycled = !1; this.set_name("Unknown"); this.ID = b; this.groupID = c; this.typeID = null != l ? l.ID : -1; this.engine = a; this.collidedList = []; this.collisions = new Fe(16); this.simpleCollisions = new Fe(16); this.contacts = new Fe(16); this.regionContacts = new Fe(16); this.collisions.reuseIterator = !0; this.simpleCollisions.reuseIterator = !0; this.contacts.reuseIterator = !0; this.regionContacts.reuseIterator = !0; this.collisionsCount = this.contactCount = 0; this.handlesCollisions = !0; this.behaviors = new zj; this.currAnimationName = ""; this.animationMap = new xa; this.shapeMap = new xa; this.originMap = new xa; this.sprite = p; this.type = l; if (null != p) for (b = p.animations.iterator(); b.hasNext();) da = b.next(), this.addAnim(da), da.animID == p.defaultAnimation && (this.defaultAnim = da.animName); null == wb.recycledAnimation && (wb.recycledAnimation = new xe(-1, "recyclingDefault", null, null, null, !1, !1, 1, 1, 0, 0, [10], 1, 1, 1)); this.addAnim(wb.recycledAnimation); if (null != n && 0 == u) n.bullet && (ic.m_continuousPhysics = !0), n.groupID = c, this.initFromBody(n), c = new Jb, c.setAsBox(1, 1), this.body.createFixture2(c, .1), this.md = new sj, this.md.mass = n.mass, this.md.I = n.aMass, this.md.center.x = 0, this.md.center.y = 0, this.body.setMassData(this.md), this.bodyScale = new na(1, 1); else { if (null == Sb || Ha.typeof(Sb) == xb.TFloat) Sb = wb.createBox(f, v); null != n && (this.continuousCollision = n.bullet); this instanceof ud && (k = !0, ub = !1); this instanceof Rg && (ub = !1); null != Sb && Sb instanceof mg ? (this.set_shape(Sb), this.isTerrain = !0) : 0 == u && this.initBody(c, k, t, tc, ub, Sb) } this.cacheAnchor = new na(0, 0); this.switchToDefaultAnimation(); null != p ? this.setLocation(d, e) : null != Sb && Sb instanceof mg ? (d = new dd(new ka(1, 1, !0, 0)), d.set_x(f), d.set_y(v), this.addChild(d), this.cacheWidth = this.set_width(f), this.cacheHeight = this.set_height(v)) : 0 == u && this.body.setPosition(new M(h.toPhysicalUnits(d), h.toPhysicalUnits(e))); null != m ? this.customizedBehaviors = !0 : null != l && (m = l.behaviorValues); -1 != g && a.moveActorToLayer(this, a.getLayerById(g)); h.initBehaviors(this.behaviors, m, this, a, !1) }; k["com.stencyl.models.Actor"] = wb; wb.__name__ = "com.stencyl.models.Actor"; wb.resetStatics = function () { wb.lastCollided = null; wb.manifold = new rj }; wb.createBox = function (a, b) { var c = new Jb; c.setAsBox(h.toPhysicalUnits(a / 2), h.toPhysicalUnits(b / 2)); return c }; wb.scaleShape = function (a, b, c) { if (a instanceof Qc) a.m_radius *= c; else if (a instanceof Jb) { for (var d = a.m_vertices, e = [], g = 0; g < d.length;) { var f = d[g]; ++g; f.subtract(b); f.multiply(c); f.add(b); e.push(f) } a.setAsArray(e) } }; wb.__super__ = Ca; wb.prototype = u(Ca.prototype, { engine: null, createTime: null, ID: null, groupID: null, cachedLayer: null, layer: null, typeID: null, type: null, recycled: null, paused: null, isRegion: null, isTerrainRegion: null, isTerrain: null, destroyed: null, drawActor: null, isHUD: null, alwaysSimulate: null, isCamera: null, killLeaveScreen: null, physicsMode: null, autoScale: null, dead: null, dying: null, fixedRotation: null, ignoreGravity: null, defaultGravity: null, collidable: null, solid: null, resetOrigin: null, realX: null, realY: null, realAngle: null, realScaleX: null, realScaleY: null, lastX: null, lastY: null, lastAngle: null, lastScale: null, colX: null, colY: null, xSpeed: null, ySpeed: null, rSpeed: null, continuousCollision: null, tweenProps: null, cacheWidth: null, cacheHeight: null, currAnimation: null, currAnimationName: null, animationMap: null, bitmapFilters: null, sprite: null, shapeMap: null, originMap: null, defaultAnim: null, currOrigin: null, currOffset: null, cacheAnchor: null, transformObj: null, transformPoint: null, transformMatrix: null, updateMatrix: null, drawMatrix: null, label: null, attachedImages: null, smoothMove: null, firstMove: null, snapOnSet: null, drawX: null, drawY: null, moveMultiplier: null, moveXDistance: null, moveYDistance: null, minMove: null, maxMove: null, behaviors: null, customizedBehaviors: null, registry: null, allListeners: null, allEventReferences: null, whenCreated: null, whenUpdated: null, whenDrawing: null, whenKilled: null, whenMousedOver: null, whenPositionStateChanged: null, whenCollided: null, mouseState: null, lastScreenState: null, lastSceneState: null, isOnScreenCache: null, body: null, bodyDef: null, md: null, bodyScale: null, handlesCollisions: null, contacts: null, regionContacts: null, collisions: null, dummy: null, zero: null, destroy: function () { if (!this.destroyed) { this.destroyed = !0; for (var a = this.animationMap.h, b = Object.keys(a), c = b.length, d = 0; d < c;) a[b[d++]].set_visible(!1); X.removeAllChildren(this); if (null != this.body && 0 == this.physicsMode) { for (a = this.body.getContactList(); null != a;) h.engine.world.m_contactManager.m_contactListener.endContact(a.contact), a = a.next; h.engine.world.destroyBody(this.body) } this.cancelTweens(); this.regionContacts = this.contacts = this.sprite = this.body = this.currOrigin = this.currOffset = this.currAnimation = this.animationMap = this.defaultAnim = this.originMap = this.shapeMap = wb.lastCollided = null; this.collisionsCount = this.contactCount = 0; this.registry = this.allEventReferences = this.allListeners = this.whenCollided = this.whenPositionStateChanged = this.whenMousedOver = this.whenKilled = this.whenDrawing = this.whenUpdated = this.whenCreated = this.transformMatrix = this.transformPoint = null; for (a = this.collisions.keys(); a.hasNext();) { c = a.next(); b = this.collisions; var e = b.mH; d = e.mHash[73856093 * c & e.mMask]; if (-1 == d) c = -2147483648; else if (e = e.mData, e[d] == c) c = e[d + 1]; else { var g = -2147483648; for (d = e[d + 2]; -1 != d;) { if (e[d] == c) { g = e[d + 1]; break } d = e[d + 2] } c = g } for (b = -2147483648 == c ? null : b.mVals[c]; 0 < b.points.length;) Ud.free(b.points.pop()) } this.simpleCollisions = this.collisions = null; null != this.bodyDef && (this.bodyDef = this.bodyDef.userData = null); this.behaviors.destroy() } }, resetListeners: function () { for (var a = this.allListeners.keys(); a.hasNext();) { var b = a.next(); this.allListeners.remove(b) } for (; 0 < this.allEventReferences.length;) this.allEventReferences.pop(); 0 < this.whenUpdated.length && this.whenUpdated.removeAll(); 0 < this.whenDrawing.length && this.whenDrawing.removeAll(); 0 < this.whenKilled.length && this.whenKilled.removeAll(); 0 < this.whenMousedOver.length && this.whenMousedOver.removeAll(); 0 < this.whenPositionStateChanged.length && this.whenPositionStateChanged.removeAll(); 0 < this.whenCollided.length && this.whenCollided.removeAll() }, defaultHitbox: null, defaultMasklist: null, addAnim: function (a) { var b = 0 == this.physicsMode ? a.physicsShapes : a.simpleShapes; if (null != b) { var c = []; if (1 == this.physicsMode) for (b = b.iterator(); b.hasNext();) { var d = b.next(); d instanceof nd && 0 != this.physicsMode && (d = w.__cast(d, nd).clone(), d.assignTo(this)); c.push(d) } else if (2 != this.physicsMode) for (b = b.iterator(); b.hasNext();) d = b.next(), c.push(d); 0 != this.physicsMode ? (b = this.shapeMap, d = a.animName, c = new zi(c, this), b.h[d] = c) : this.shapeMap.h[a.animName] = c } b = this.animationMap; d = a.animName; c = new Ij(a); b.h[d] = c; b = this.originMap; d = a.animName; c = new M(a.originX, a.originY); b.h[d] = c }, reloadAnimationGraphics: function (a) { if (-1 == a) { for (a = this.sprite.animations.iterator(); a.hasNext();) { var b = a.next(); b = this.animationMap.h[b.animName]; b.framesUpdated() } this.updateChildrenPositions() } else a = this.sprite.animations.h[a], b = this.animationMap.h[a.animName], b.framesUpdated(), b == this.currAnimation && this.updateChildrenPositions() }, initScripts: function () { if (2 == this.physicsMode) this.handlesCollisions = !1; else if (this.handlesCollisions = !0, this.behaviors.initScripts(), 0 < this.whenCreated.length) for (this.whenCreated._dispatchIndex = 0; this.whenCreated._dispatchIndex < this.whenCreated.length;) { try { this.whenCreated.listeners[this.whenCreated._dispatchIndex]() } catch (a) { if (ra.lastError = a, "string" != typeof I.caught(a).unwrap()) throw a; } ++this.whenCreated._dispatchIndex } }, initFromBody: function (a) { a.allowSleep = !1; a.userData = this; this.bodyDef = a; this.body = h.engine.world.createBody(a) }, initBody: function (a, b, c, d, e, g) { var f = new pi; f.groupID = a; a = this.get_x(); f.position.x = h.toPhysicalUnits(a); a = this.get_y(); f.position.y = h.toPhysicalUnits(a); f.angle = 0; f.fixedRotation = !e; f.allowSleep = !1; f.type = c ? pa.b2_staticBody : d ? pa.b2_kinematicBody : pa.b2_dynamicBody; if (g instanceof Array) for (f.userData = this, this.body = h.engine.world.createBody(f), b = w.__cast(g, Array), g = 0; g < b.length;) d = b[g], ++g, c = new Lf, c.shape = d, c.friction = 1, c.density = .1, c.restitution = 0, c.isSensor = !1, c.groupID = 1, c.userData = this, this.body.createFixture(c); else c = new Lf, c.shape = g, c.friction = 1, c.density = .1, c.restitution = 0, c.isSensor = b, c.groupID = -1E3, c.userData = this, f.userData = this, this.body = h.engine.world.createBody(f), this.body.createFixture(c); this.bodyDef = f }, addAnimation: function (a, b) { this.animationMap.h[a] = b }, getAnimation: function () { return this.currAnimationName }, setAnimation: function (a) { this.switchAnimation(a) }, switchToDefaultAnimation: function () { null != this.defaultAnim && (this.switchAnimation(this.defaultAnim, this.defaultShapeChanged()), this.setCurrentFrame(0)) }, isAnimationPlaying: function () { return !this.currAnimation.isFinished() }, getCurrentFrame: function () { return this.currAnimation.getCurrentFrame() }, setCurrentFrame: function (a) { this.currAnimation.setFrame(a) }, getNumFrames: function () { return this.currAnimation.getNumFrames() }, defaultShapeChanged: function () { if (0 != this.physicsMode) return !0; var a = this.shapeMap.h[this.defaultAnim]; if (null == this.getBody() || null == this.getBody().getFixtureList() || null == this.getBody().getFixtureList().getShape()) { if (null != a && 0 < a.length) return !0 } else { if (null == a || 0 == a.length || 1 < a.length) return !0; var b = a[0]; if (null == b) return !0; var c = this.getBody().getFixtureList(); a = this.getBody().getFixtureList().getShape(); var d = b.shape; if (c.groupID == b.groupID && this.getBody().getFixtureList().isSensor() == b.isSensor && w.getClass(a) == w.getClass(d)) if (w.getClass(a) == Jb) { if (a.m_vertexCount != d.m_vertexCount) return !0; b = 0; for (c = a.m_vertexCount; b < c;) { var e = b++; if (a.m_vertices[e].x != d.m_vertices[e].x || a.m_vertices[e].y != d.m_vertices[e].y) return !0 } } else { if (w.getClass(a) == Qc && (a.m_radius != d.m_radius || a.m_p.x != d.m_p.x || a.m_p.y != d.m_p.y)) return !0 } else return !0 } return !1 }, switchAnimation: function (a, b) { null == b && (b = !1); if (a != this.currAnimationName || b) { var c = this.animationMap.h[a]; if (null != c) { null != this.currAnimation && this.removeChild(this.currAnimation); if (null != this.body && 0 == this.physicsMode && !b) { var d = this.shapeMap.h[this.currAnimationName], e = this.shapeMap.h[a]; if (null == d || null == e) b = !0; else if (d.length != e.length || 1 < d.length) b = !0; else { var g = d[0], f = e[0]; if (null == g || null == f) b = !0; else if (e = g.shape, d = f.shape, g.isSensor != f.isSensor) b = !0; else if (g.groupID != f.groupID) b = !0; else if (w.getClass(e) == w.getClass(d)) if (w.getClass(e) == Jb) if (e.m_vertexCount != d.m_vertexCount) b = !0; else for (g = 0, f = e.m_vertexCount; g < f;) { var v = g++; if (e.m_vertices[v].x != d.m_vertices[v].x) { b = !0; break } else if (e.m_vertices[v].y != d.m_vertices[v].y) { b = !0; break } } else w.getClass(e) != Qc || e.m_radius == d.m_radius && e.m_p.x == d.m_p.x && e.m_p.y == d.m_p.y || (b = !0); else b = !0 } } this.currAnimationName = a; this.currAnimation = c; this.currAnimation.set_filter(this.bitmapFilters); this.currAnimation.set_visible(this.drawActor); this.addChild(c); c = this.originMap.h[a]; e = this.currAnimation.get_width() / h.SCALE / 2 - c.x; d = this.currAnimation.get_height() / h.SCALE / 2 - c.y; if (null != this.body && b && 0 == this.physicsMode) { b = []; for (g = this.body.getContactList(); null != g;) g.other.getUserData() instanceof ud && g.contact.isTouching() && b.push(g.other.getUserData()), h.engine.world.m_contactManager.m_contactListener.endContact(g.contact), g = g.next; for (g = this.collisions.keys(); g.hasNext();) { f = g.next(); var p = this.collisions, m = p.mH; v = m.mHash[73856093 * f & m.mMask]; if (-1 == v) v = -2147483648; else if (m = m.mData, m[v] == f) v = m[v + 1]; else { var l = -2147483648; for (v = m[v + 2]; -1 != v;) { if (m[v] == f) { l = m[v + 1]; break } v = m[v + 2] } v = l } for (v = -2147483648 == v ? null : p.mVals[v]; 0 < v.points.length;) Ud.free(v.points.pop()); this.collisions.unset(f) } this.collisions = new Fe(16); this.simpleCollisions = new Fe(16); this.contacts = new Fe(16); this.regionContacts = new Fe(16); this.collisions.reuseIterator = !0; this.simpleCollisions.reuseIterator = !0; this.contacts.reuseIterator = !0; this.regionContacts.reuseIterator = !0; for (this.collisionsCount = this.contactCount = 0; 0 < this.body.m_fixtureCount;) this.body.DestroyFixture(this.body.getFixtureList()); g = 0; for (f = w.__cast(this.shapeMap.h[a], Array); g < f.length;) { v = f[g]; ++g; a = new Lf; 1.79769313486231E308 > this.bodyDef.friction && (a.friction = this.bodyDef.friction, a.restitution = this.bodyDef.bounciness, 0 < this.bodyDef.mass && (a.density = .1)); a.density = v.density; a.isSensor = v.isSensor; a.groupID = v.groupID; a.shape = v.shape; if (null != c) if (this.body.origin.x = h.toPhysicalUnits(-c.x), this.body.origin.y = h.toPhysicalUnits(-c.y), v.shape instanceof Jb) { m = new af; v = v.shape; l = new Jb; l.setAsArray(v.m_vertices, v.m_vertices.length); var n = l.m_vertices, k = l.m_normals; p = m.position; v = h.toPhysicalUnits(e); var t = h.toPhysicalUnits(d); null == t && (t = 0); null == v && (v = 0); p.x = v; p.y = t; m.R.setAngle(0); p = 0; for (t = l.m_vertexCount; p < t;) v = p++, n[v] = m.multiply(n[v]), k[v] = m.R.multiplyV(k[v]); l.setAsArray(n, n.length); l.m_normals = k; a.shape = l } else v.shape instanceof Qc && (p = v.shape, v = new Qc, v.setRadius(p.getRadius()), m = p.m_p.x, l = h.toPhysicalUnits(e), v.m_p.x = m + l, p = p.m_p.y, m = h.toPhysicalUnits(d), v.m_p.y = p + m, a.shape = v); this.body.createFixture(a).SetUserData(this) } if (null != this.body.getFixtureList()) for (this.bodyScale.x = 1, this.bodyScale.y = 1, g = 0; g < b.length;) e = b[g], ++g, d = this.body.getFixtureList().m_aabb, e.getBody().getFixtureList().m_aabb.testOverlap(d) && e.addActor(this); null != this.md && this.body.setMassData(this.md) } else null != this.shapeMap.h[a] && 1 == this.physicsMode && (this.set_shape(this.shapeMap.h[a]), this.HITBOX = this._mask); this.cacheWidth = this.currAnimation.get_width() / h.SCALE; this.cacheHeight = this.currAnimation.get_height() / h.SCALE; null != this.body && (this.body.size.x = h.toPhysicalUnits(this.cacheWidth), this.body.size.y = h.toPhysicalUnits(this.cacheHeight)); 0 == this.physicsMode && (this.realX = this.getX(!1), this.realY = this.getY(!1), this.updateBodyScale()); null != c && this.setOriginPoint(c.x | 0, c.y | 0); this.updateChildrenPositions(); this.updateMatrix = !0; p = this.currAnimation; p.timer = 0; p.frameIndex = 0; p.finished = !1; null != p.filter ? (p.filteredFrames[p.frameIndex] || (p.frames[p.frameIndex] = p.applyFilters(p.frames[p.frameIndex], p.model.frames[p.frameIndex], p.filter), p.filteredFrames[p.frameIndex] = !0), p.set_bitmapData(p.frames[p.frameIndex])) : p.set_bitmapData(p.model.frames[p.frameIndex]); p.smoothing = aa.antialias } } }, updateChildrenPositions: function () { var a = null != this.currAnimation ? new na(-this.currAnimation.get_x(), -this.currAnimation.get_y()) : new na(0, 0); if (!a.equals(this.cacheAnchor)) { this.cacheAnchor.copyFrom(a); a = 0; for (var b = this.attachedImages; a < b.length;) { var c = b[a]; ++a; c.updatePosition() } null != this.label && this.label.updatePosition() } }, removeAttachedImages: function () { for (var a = 0, b = this.attachedImages; a < b.length;) { var c = b[a]; ++a; c.cacheParentAnchor = X.zero; this.removeChild(c) } this.attachedImages = [] }, update: function (a) { this.innerUpdate(a, !0) }, innerUpdate: function (a, b) { if (!(this.paused || this.isCamera || this.dying || this.dead || this.destroyed || b && (this.isHUD || this.alwaysSimulate))) { if (0 < this.whenMousedOver.length) if (this.isMouseOver()) { if (0 >= this.mouseState) { if (this.mouseState = 1, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenMousedOver._dispatchIndex } } else this.mouseState = 2; if (L.mousePressed) { if (this.mouseState = 3, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenMousedOver._dispatchIndex } } else if (L.mouseDown && (this.mouseState = 4, 0 < this.whenMousedOver.length)) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenMousedOver._dispatchIndex } if (L.mouseReleased && (this.mouseState = 5, 0 < this.whenMousedOver.length)) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenMousedOver._dispatchIndex } } else if (0 < this.mouseState) { if (this.mouseState = -1, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenMousedOver._dispatchIndex } } else -1 == this.mouseState && (this.mouseState = 0); b = this.type.ID; var c = 1E6 + this.groupID, d = this.engine.whenCollidedEvents, e = this.engine.whenTypeGroupPositionStateChangedEvents; if (0 == this.physicsMode && (0 < this.whenCollided.length || null != d.h[b] || null != d.h[c])) { if (0 < this.contactCount) for (var g = 0, f, v = this.contacts.iterator(); v.hasNext();) { f = v.next(); var p = f.key; var m = this.collisions.mH; var h = m.mHash[73856093 * p & m.mMask]; if (-1 == h) h = !1; else if (m = m.mData, m[h] == p) h = !0; else { var n = !1; for (h = m[h + 2]; -1 != h;) { if (m[h] == p) { n = !0; break } h = m[h + 2] } h = n } if (h) { h = this.collisions; n = h.mH; m = n.mHash[73856093 * p & n.mMask]; if (-1 == m) p = -2147483648; else if (n = n.mData, n[m] == p) p = n[m + 1]; else { var l = -2147483648; for (m = n[m + 2]; -1 != m;) { if (n[m] == p) { l = n[m + 1]; break } m = n[m + 2] } p = l } p = -2147483648 == p ? null : h.mVals[p]; f.getWorldManifold(wb.manifold); h = 0; for (m = wb.manifold.m_points; h < m.length;) n = m[h], ++h, 0 != n.x && 0 != n.y && (f = p.points[g], null == f ? p.points[g] = Ud.get(n.x, n.y, wb.manifold.m_normal.x, wb.manifold.m_normal.y) : (f = p.points[g], f.x = n.x, f.y = n.y, f.normalX = wb.manifold.m_normal.x, f.normalY = wb.manifold.m_normal.y), ++g); for (; p.points.length > g;) Ud.free(p.points.pop()); g = 0 } else { var k = f.getFixtureA().getUserData(), t = f.getFixtureB().getUserData(); k == this ? (h = t, m = f.getFixtureB(), n = f.getFixtureA()) : (h = k, m = f.getFixtureA(), n = f.getFixtureB()); l = new Ac; l.otherActor = h; l.otherShape = m; l.thisActor = this; l.thisShape = n; l.actorA = k; l.actorB = t; f.getWorldManifold(wb.manifold); this.collisions.set(p, l); this.collisionsCount++; p = this.getBody(); k = h.getBody(); t = f.getFixtureA().getBody(); for (var q = f.getFixtureB().getBody(), u = 0, da = wb.manifold.m_points; u < da.length;) (f = da[u], ++u, 0 == f.x || 0 == f.y || n.isSensor()) ? n.isSensor() && (null != h && (l.thisCollidedWithActor = l.thisCollidedWithActor || 1 != h.groupID && -2 != h.groupID && !h.isTerrainRegion, l.thisCollidedWithTerrain = l.thisCollidedWithTerrain || h.isTerrainRegion, l.thisCollidedWithTile = l.thisCollidedWithTile || 1 == h.groupID), l.otherCollidedWithActor = l.otherCollidedWithActor || 1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion, l.otherCollidedWithTerrain = l.otherCollidedWithTerrain || this.isTerrainRegion, l.otherCollidedWithTile = l.otherCollidedWithTile || 1 == this.groupID, l.thisCollidedWithSensor = l.thisCollidedWithSensor || m.isSensor(), l.otherCollidedWithSensor = l.otherCollidedWithSensor || n.isSensor()) : (f = Ud.get(f.x, f.y, wb.manifold.m_normal.x, wb.manifold.m_normal.y), l.points.push(f), t == p ? (l.thisFromBottom = l.thisFromBottom || 0 < f.normalY, l.thisFromTop = l.thisFromTop || 0 > f.normalY, l.thisFromLeft = l.thisFromLeft || 0 > f.normalX, l.thisFromRight = l.thisFromRight || 0 < f.normalX) : q == p && (l.thisFromBottom = l.thisFromBottom || 0 > f.normalY, l.thisFromTop = l.thisFromTop || 0 < f.normalY, l.thisFromLeft = l.thisFromLeft || 0 < f.normalX, l.thisFromRight = l.thisFromRight || 0 > f.normalX), t == k ? (l.otherFromBottom = l.otherFromBottom || 0 < f.normalY, l.otherFromTop = l.otherFromTop || 0 > f.normalY, l.otherFromLeft = l.otherFromLeft || 0 > f.normalX, l.otherFromRight = l.otherFromRight || 0 < f.normalX) : q == k && (l.otherFromBottom = l.otherFromBottom || 0 > f.normalY, l.otherFromTop = l.otherFromTop || 0 < f.normalY, l.otherFromLeft = l.otherFromLeft || 0 < f.normalX, l.otherFromRight = l.otherFromRight || 0 > f.normalX), null != h && (l.thisCollidedWithActor = l.thisCollidedWithActor || 1 != h.groupID && -2 != h.groupID && !h.isTerrainRegion, l.thisCollidedWithTerrain = l.thisCollidedWithTerrain || h.isTerrainRegion, l.thisCollidedWithTile = l.thisCollidedWithTile || 1 == h.groupID), l.otherCollidedWithActor = l.otherCollidedWithActor || 1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion, l.otherCollidedWithTerrain = l.otherCollidedWithTerrain || this.isTerrainRegion, l.otherCollidedWithTile = l.otherCollidedWithTile || 1 == this.groupID, l.thisCollidedWithSensor = l.thisCollidedWithSensor || m.isSensor(), l.otherCollidedWithSensor = l.otherCollidedWithSensor || n.isSensor()) } } if (0 < this.collisionsCount) for (g = this.collisions.iterator(); g.hasNext();) if (v = g.next(), null != v && null != v.thisActor && null != v.otherActor && v.thisActor.handlesCollisions && v.otherActor.handlesCollisions) { wb.lastCollided = v.otherActor; if (0 < this.whenCollided.length) for (this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length;) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](v) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenCollided._dispatchIndex } this.engine.handleCollision(this, v) } } this.internalUpdate(a, !0); 1 == this.physicsMode && ((0 < this.whenCollided.length || null != d.h[b] || null != d.h[c]) && this.handleCollisionsSimple(), this.disposeRemovedCollisionInfo()); if (2 != this.physicsMode && 0 < this.whenUpdated.length) for (this.whenUpdated._dispatchIndex = 0; this.whenUpdated._dispatchIndex < this.whenUpdated.length;) { try { this.whenUpdated.listeners[this.whenUpdated._dispatchIndex](a) } catch (ja) { if (ra.lastError = ja, "string" != typeof I.caught(ja).unwrap()) throw ja; } ++this.whenUpdated._dispatchIndex } (0 < this.whenPositionStateChanged.length || null != e.h[b] || null != e.h[c]) && this.checkScreenState(); null != this.label && this.label.setAlpha(this.get_alpha()) } }, internalUpdate: function (a, b) { if (!this.paused) { if (0 != this.physicsMode) { 1 != this.physicsMode || this.ignoreGravity || this.isHUD || (this.xSpeed += a * this.engine.gravityX * .001, this.ySpeed += a * this.engine.gravityY * .001); if (0 != this.xSpeed || 0 != this.ySpeed) this.resetReal(this.realX, this.realY), this.moveActorBy(10 / h.STEP_SIZE * this.xSpeed * a * .01, 10 / h.STEP_SIZE * this.ySpeed * a * .01, !1); 0 != this.rSpeed && (this.realAngle += a * this.rSpeed * .001); this.fixedRotation && (this.rSpeed = this.realAngle = 0) } else { var c = this.body.getPosition(); this.realX = c.x * h.physicsScale; this.realY = c.y * h.physicsScale; this.resetReal(this.realX, this.realY); this.realAngle = 57.29577951308402 * this.body.getAngle() } if (this.lastX != this.realX || this.lastY != this.realY || this.lastAngle != this.realAngle || this.lastScale.x != this.realScaleX || this.lastScale.y != this.realScaleY) this.updateMatrix = !0; this.lastX = this.realX; this.lastY = this.realY; this.lastAngle = this.realAngle; this.lastScale.x = this.realScaleX; this.lastScale.y = this.realScaleY; b && null != this.currAnimation && (b = this.currAnimation, b.model.sync && b.model.looping ? (a = b.frameIndex, b.timer = b.model.sharedTimer, b.frameIndex = b.model.sharedFrameIndex, a != b.frameIndex && (null != b.filter ? (b.filteredFrames[b.frameIndex] || (b.frames[b.frameIndex] = b.applyFilters(b.frames[b.frameIndex], b.model.frames[b.frameIndex], b.filter), b.filteredFrames[b.frameIndex] = !0), b.set_bitmapData(b.frames[b.frameIndex])) : b.set_bitmapData(b.model.frames[b.frameIndex]), b.smoothing = aa.antialias)) : (b.timer += a, 0 < b.numFrames && b.timer > b.durations[b.frameIndex] && (a = b.frameIndex, b.timer -= b.durations[b.frameIndex], b.frameIndex++, b.frameIndex >= b.numFrames && (b.model.looping ? b.frameIndex = 0 : (b.finished = !0, b.frameIndex--)), a != b.frameIndex && (null != b.filter ? (b.filteredFrames[b.frameIndex] || (b.frames[b.frameIndex] = b.applyFilters(b.frames[b.frameIndex], b.model.frames[b.frameIndex], b.filter), b.filteredFrames[b.frameIndex] = !0), b.set_bitmapData(b.frames[b.frameIndex])) : b.set_bitmapData(b.model.frames[b.frameIndex]), b.smoothing = aa.antialias)))) } }, updateDrawingMatrix: function (a) { null == a && (a = !1); if (!this.paused || a) this.smoothMove ? (this.firstMove || (this.drawX = this.realX, this.drawY = this.realY, this.firstMove = !0), this.moveXDistance = this.realX - this.drawX, this.moveYDistance = this.realY - this.drawY, this.drawX = this.moveXDistance > this.minMove ? this.moveXDistance * this.moveMultiplier > this.minMove ? this.moveXDistance > this.maxMove ? this.realX : this.drawX + this.moveXDistance * this.moveMultiplier : this.drawX + this.minMove : this.moveXDistance < -1 * this.minMove ? this.moveXDistance * this.moveMultiplier < -1 * this.minMove ? this.moveXDistance < -1 * this.maxMove ? this.realX : this.drawX + this.moveXDistance * this.moveMultiplier : this.drawX - this.minMove : this.realX, this.drawY = this.moveYDistance > this.minMove ? this.moveYDistance * this.moveMultiplier > this.minMove ? this.moveYDistance > this.maxMove ? this.realY : this.drawY + this.moveYDistance * this.moveMultiplier : this.drawY + this.minMove : this.moveYDistance < -1 * this.minMove ? this.moveYDistance * this.moveMultiplier < -1 * this.minMove ? this.moveYDistance < -1 * this.maxMove ? this.realY : this.drawY + this.moveYDistance * this.moveMultiplier : this.drawY - this.minMove : this.realY) : 0 != this.physicsMode ? (this.drawX = this.realX, this.drawY = this.realY) : (a = this.body.getPosition(), this.drawX = a.x * h.physicsScale, this.drawY = a.y * h.physicsScale), this.transformPoint.x = (this.currOrigin.x - this.cacheWidth / 2) * h.SCALE, this.transformPoint.y = (this.currOrigin.y - this.cacheHeight / 2) * h.SCALE, this.transformMatrix.identity(), this.transformMatrix.translate(-this.transformPoint.x, -this.transformPoint.y), this.transformMatrix.scale(this.realScaleX, this.realScaleY), 0 != this.realAngle && this.transformMatrix.rotate(.01745329251994278 * this.realAngle), aa.pixelsnap ? this.transformMatrix.translate(Math.round(this.drawX) * h.SCALE, Math.round(this.drawY) * h.SCALE) : this.transformMatrix.translate(this.drawX * h.SCALE, this.drawY * h.SCALE), null == this.transformObj && (this.transformObj = this.get_transform()), this.transformObj.set_matrix(this.transformMatrix) }, updateTweenAlpha: function () { this.set_alpha(this.tweenProps.alpha.value) }, updateTweenScaleXY: function () { this.realScaleX = this.tweenProps.realScaleXY.value1; this.realScaleY = this.tweenProps.realScaleXY.value2; this.updateBodyScale() }, updateTweenAngle: function () { this.setAngle(this.tweenProps.angle.value, !1) }, updateTweenXY: function () { 0 == this.physicsMode ? this.setXY(this.tweenProps.xy.value1, this.tweenProps.xy.value2) : (this.moveActorBy(this.tweenProps.xy.value1 - this.getX(!1), this.tweenProps.xy.value2 - this.getY(!1), !1), this.updateMatrix = !0); this.tweenProps.xy.finished && null != this.currOffset && this.resetReal(this.realX, this.realY) }, updateBodyScale: function () { this.autoScale && 0 == this.physicsMode && null != this.body && this.bodyDef.type != pa.b2_staticBody && 0 != this.realScaleX && 0 != this.realScaleY && this.scaleBody(this.realScaleX, this.realScaleY) }, scaleBody: function (a, b) { for (var c = [], d = this.body.getFixtureList(); null != d;) c.push(d), d = d.getNext(); for (d = 0; d < c.length;) { var e = c[d]; ++d; var g = e.getShape(); e = this.body.getLocalCenter(); if (g instanceof Qc) { var f = g, v = 1 / this.bodyScale.x * a, p = 1 / this.bodyScale.y * b, m = f.m_p; m.subtract(e); m.x *= v; m.y *= p; f.m_p = e.copy(); f.m_p.add(m); g.m_radius *= Math.abs(v) } else if (g instanceof Jb) { f = g.m_vertices; v = []; p = 0 < this.bodyScale.x && 0 > a || 0 > this.bodyScale.x && 0 < a; m = 0 < this.bodyScale.y && 0 > b || 0 > this.bodyScale.y && 0 < b; for (var l = 0; l < f.length;) { var n = f[l]; ++l; n.subtract(e); n.x = 1 / Math.abs(this.bodyScale.x) * n.x * Math.abs(a); n.y = 1 / Math.abs(this.bodyScale.y) * n.y * Math.abs(b); p && (n.x = -n.x); m && (n.y = -n.y); var k = e.copy(); k.add(n); v.push(k) } p && m || !p && !m || v.reverse(); g.setAsArray(v, v.length) } } this.bodyScale.x = a; this.bodyScale.y = b; this.body.size.x = h.toPhysicalUnits(this.cacheWidth * a); this.body.size.y = h.toPhysicalUnits(this.cacheHeight * b) }, checkScreenState: function () { var a = this.isOnScreen(), b = a || this.isInScene(), c = !this.lastScreenState && a, d = !this.lastSceneState && b, e = this.lastScreenState && !a, g = this.lastSceneState && !b; if (0 < this.whenPositionStateChanged.length) for (this.whenPositionStateChanged._dispatchIndex = 0; this.whenPositionStateChanged._dispatchIndex < this.whenPositionStateChanged.length;) { try { this.whenPositionStateChanged.listeners[this.whenPositionStateChanged._dispatchIndex](c, e, d, g) } catch (p) { if (ra.lastError = p, "string" != typeof I.caught(p).unwrap()) throw p; } ++this.whenPositionStateChanged._dispatchIndex } var f = this.engine.whenTypeGroupPositionStateChangedEvents.h[this.groupID + 1E6], v = this.engine.whenTypeGroupPositionStateChangedEvents.h[this.typeID]; if (null != f && 0 < f.length) for (f._dispatchIndex = 0; f._dispatchIndex < f.length;) { try { f.listeners[f._dispatchIndex](this, c, e, d, g) } catch (p) { if (ra.lastError = p, "string" != typeof I.caught(p).unwrap()) throw p; } ++f._dispatchIndex } if (null != v && 0 < v.length) for (v._dispatchIndex = 0; v._dispatchIndex < v.length;) { try { v.listeners[v._dispatchIndex](this, c, e, d, g) } catch (p) { if (ra.lastError = p, "string" != typeof I.caught(p).unwrap()) throw p; } ++v._dispatchIndex } this.lastScreenState = a; this.lastSceneState = b }, contactCount: null, collisionsCount: null, handleCollisions: function () { if (0 < this.contactCount) for (var a = 0, b, c = this.contacts.iterator(); c.hasNext();) { b = c.next(); var d = b.key; var e = this.collisions.mH; var g = e.mHash[73856093 * d & e.mMask]; if (-1 == g) g = !1; else if (e = e.mData, e[g] == d) g = !0; else { var f = !1; for (g = e[g + 2]; -1 != g;) { if (e[g] == d) { f = !0; break } g = e[g + 2] } g = f } if (g) { g = this.collisions; f = g.mH; e = f.mHash[73856093 * d & f.mMask]; if (-1 == e) d = -2147483648; else if (f = f.mData, f[e] == d) d = f[e + 1]; else { var v = -2147483648; for (e = f[e + 2]; -1 != e;) { if (f[e] == d) { v = f[e + 1]; break } e = f[e + 2] } d = v } d = -2147483648 == d ? null : g.mVals[d]; b.getWorldManifold(wb.manifold); g = 0; for (e = wb.manifold.m_points; g < e.length;) f = e[g], ++g, 0 != f.x && 0 != f.y && (b = d.points[a], null == b ? d.points[a] = Ud.get(f.x, f.y, wb.manifold.m_normal.x, wb.manifold.m_normal.y) : (b = d.points[a], b.x = f.x, b.y = f.y, b.normalX = wb.manifold.m_normal.x, b.normalY = wb.manifold.m_normal.y), ++a); for (; d.points.length > a;) Ud.free(d.points.pop()); a = 0 } else { var p = b.getFixtureA().getUserData(), m = b.getFixtureB().getUserData(); p == this ? (g = m, e = b.getFixtureB(), f = b.getFixtureA()) : (g = p, e = b.getFixtureA(), f = b.getFixtureB()); v = new Ac; v.otherActor = g; v.otherShape = e; v.thisActor = this; v.thisShape = f; v.actorA = p; v.actorB = m; b.getWorldManifold(wb.manifold); this.collisions.set(d, v); this.collisionsCount++; d = this.getBody(); p = g.getBody(); m = b.getFixtureA().getBody(); for (var h = b.getFixtureB().getBody(), n = 0, l = wb.manifold.m_points; n < l.length;) (b = l[n], ++n, 0 == b.x || 0 == b.y || f.isSensor()) ? f.isSensor() && (null != g && (v.thisCollidedWithActor = v.thisCollidedWithActor || 1 != g.groupID && -2 != g.groupID && !g.isTerrainRegion, v.thisCollidedWithTerrain = v.thisCollidedWithTerrain || g.isTerrainRegion, v.thisCollidedWithTile = v.thisCollidedWithTile || 1 == g.groupID), v.otherCollidedWithActor = v.otherCollidedWithActor || 1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion, v.otherCollidedWithTerrain = v.otherCollidedWithTerrain || this.isTerrainRegion, v.otherCollidedWithTile = v.otherCollidedWithTile || 1 == this.groupID, v.thisCollidedWithSensor = v.thisCollidedWithSensor || e.isSensor(), v.otherCollidedWithSensor = v.otherCollidedWithSensor || f.isSensor()) : (b = Ud.get(b.x, b.y, wb.manifold.m_normal.x, wb.manifold.m_normal.y), v.points.push(b), m == d ? (v.thisFromBottom = v.thisFromBottom || 0 < b.normalY, v.thisFromTop = v.thisFromTop || 0 > b.normalY, v.thisFromLeft = v.thisFromLeft || 0 > b.normalX, v.thisFromRight = v.thisFromRight || 0 < b.normalX) : h == d && (v.thisFromBottom = v.thisFromBottom || 0 > b.normalY, v.thisFromTop = v.thisFromTop || 0 < b.normalY, v.thisFromLeft = v.thisFromLeft || 0 < b.normalX, v.thisFromRight = v.thisFromRight || 0 > b.normalX), m == p ? (v.otherFromBottom = v.otherFromBottom || 0 < b.normalY, v.otherFromTop = v.otherFromTop || 0 > b.normalY, v.otherFromLeft = v.otherFromLeft || 0 > b.normalX, v.otherFromRight = v.otherFromRight || 0 < b.normalX) : h == p && (v.otherFromBottom = v.otherFromBottom || 0 > b.normalY, v.otherFromTop = v.otherFromTop || 0 < b.normalY, v.otherFromLeft = v.otherFromLeft || 0 < b.normalX, v.otherFromRight = v.otherFromRight || 0 > b.normalX), null != g && (v.thisCollidedWithActor = v.thisCollidedWithActor || 1 != g.groupID && -2 != g.groupID && !g.isTerrainRegion, v.thisCollidedWithTerrain = v.thisCollidedWithTerrain || g.isTerrainRegion, v.thisCollidedWithTile = v.thisCollidedWithTile || 1 == g.groupID), v.otherCollidedWithActor = v.otherCollidedWithActor || 1 != this.groupID && -2 != this.groupID && !this.isTerrainRegion, v.otherCollidedWithTerrain = v.otherCollidedWithTerrain || this.isTerrainRegion, v.otherCollidedWithTile = v.otherCollidedWithTile || 1 == this.groupID, v.thisCollidedWithSensor = v.thisCollidedWithSensor || e.isSensor(), v.otherCollidedWithSensor = v.otherCollidedWithSensor || f.isSensor()) } } if (0 < this.collisionsCount) for (a = this.collisions.iterator(); a.hasNext();) if (c = a.next(), null != c && null != c.thisActor && null != c.otherActor && c.thisActor.handlesCollisions && c.otherActor.handlesCollisions) { wb.lastCollided = c.otherActor; if (0 < this.whenCollided.length) for (this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length;) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](c) } catch (Og) { if (ra.lastError = Og, "string" != typeof I.caught(Og).unwrap()) throw Og; } ++this.whenCollided._dispatchIndex } this.engine.handleCollision(this, c) } }, addContact: function (a) { null != this.contacts && (this.contacts.set(a.key, a), this.contactCount++) }, removeContact: function (a) { if (null != this.collisions) { var b = this.collisions, c = a.key, d = b.mH, e = d.mHash[73856093 * c & d.mMask]; if (-1 == e) c = -2147483648; else if (d = d.mData, d[e] == c) c = d[e + 1]; else { var g = -2147483648; for (e = d[e + 2]; -1 != e;) { if (d[e] == c) { g = d[e + 1]; break } e = d[e + 2] } c = g } d = -2147483648 == c ? null : b.mVals[c]; if (null != d) for (this.collisions.unset(a.key), this.collisionsCount--; 0 < d.points.length;) Ud.free(d.points.pop()) } null != this.contacts && this.contacts.unset(a.key) && this.contactCount-- }, addRegionContact: function (a) { null != this.regionContacts && this.regionContacts.set(a.key, a) }, removeRegionContact: function (a) { null != this.regionContacts && this.regionContacts.unset(a.key) }, getID: function () { return this.ID }, getName: function () { return this.get_name() }, getGroupID: function () { return 0 != this.physicsMode ? this.groupID : this.body.groupID }, getLayerID: function () { return this.layer.ID }, getLayer: function () { return this.layer }, getLayerName: function () { return this.layer.layerName }, getLayerOrder: function () { return this.layer.order }, getType: function () { return this.type }, isPausable: function () { return this.getType().pausable }, isPaused: function () { return this.paused }, pause: function () { if (this.isPausable()) { this.tweenProps.pause(); for (var a = 0, b = this.behaviors.behaviors; a < b.length;) { var c = b[a]; ++a; null != c.script && c.script.pauseTweens() } this.paused = !0; 0 == this.physicsMode && this.body.setPaused(!0) } }, unpause: function () { if (this.isPausable()) { this.tweenProps.unpause(); for (var a = 0, b = this.behaviors.behaviors; a < b.length;) { var c = b[a]; ++a; null != c.script && c.script.unpauseTweens() } this.paused = !1; 0 == this.physicsMode && this.body.setPaused(!1) } }, getGroup: function () { var a = this.engine.groups, b = this.getGroupID(); return a.h[b] }, getIsRegion: function () { return this.isRegion }, getIsTerrainRegion: function () { return this.isTerrainRegion }, moveToLayer: function (a) { !this.isHUD && a instanceof Jc && this.engine.moveActorToLayer(this, a) }, bringToFront: function () { this.isHUD || (this.engine.bringToFront(this), this.moveToTop()) }, bringForward: function () { this.isHUD || this.engine.bringForward(this) }, sendToBack: function () { this.isHUD || (this.engine.sendToBack(this), this.moveToBottom()) }, sendBackward: function () { this.isHUD || this.engine.sendBackward(this) }, moveToBottom: function () { this.parent.setChildIndex(this, 0) }, moveToTop: function () { this.parent.setChildIndex(this, this.parent.get_numChildren() - 1) }, moveDown: function () { var a = this.parent.getChildIndex(this); 0 < a && this.parent.setChildIndex(this, a - 1) }, moveUp: function () { var a = this.parent.getChildIndex(this), b = this.parent.get_numChildren() - 1; a < b && this.parent.setChildIndex(this, a + 1) }, getZIndex: function () { return this.parent.getChildIndex(this) }, setZIndex: function (a) { var b = this.parent.get_numChildren() - 1; a > b && (a = b); 0 > a && (a = 0); this.parent.setChildIndex(this, a) }, enableSmoothMotion: function () { this.smoothMove = !0 }, getX: function (a) { null == a && (a = !0); var b = -1; h.NO_PHYSICS || (this.isRegion || this.isTerrainRegion ? b = h.toPixelUnits(this.body.getPosition().x) - this.cacheWidth / 2 : 0 == this.physicsMode && (b = this.body.getPosition().x * h.physicsScale - Math.floor(this.cacheWidth / 2) - this.currOffset.x)); if (h.NO_PHYSICS || 0 != this.physicsMode) b = this.realX - Math.floor(this.cacheWidth / 2) - this.currOffset.x; return a ? Math.round(b) : b }, getY: function (a) { null == a && (a = !0); var b = -1; h.NO_PHYSICS || (this.isRegion || this.isTerrainRegion ? b = h.toPixelUnits(this.body.getPosition().y) - this.cacheHeight / 2 : 0 == this.physicsMode && (b = this.body.getPosition().y * h.physicsScale - Math.floor(this.cacheHeight / 2) - this.currOffset.y)); if (h.NO_PHYSICS || 0 != this.physicsMode) b = this.realY - Math.floor(this.cacheHeight / 2) - this.currOffset.y; return a ? Math.round(b) : b }, getXCenter: function () { return 0 == this.physicsMode ? Math.round(h.toPixelUnits(this.body.getWorldCenter().x) - this.currOffset.x) : this.realX - this.currOffset.x }, getYCenter: function () { return 0 == this.physicsMode ? Math.round(h.toPixelUnits(this.body.getWorldCenter().y) - this.currOffset.y) : this.realY - this.currOffset.y }, getScreenX: function () { return this.isHUD ? this.getX(!0) : this.getX(!0) - h.cameraX / h.SCALE }, getScreenY: function () { return this.isHUD ? this.getY(!0) : this.getY(!0) - h.cameraY / h.SCALE }, setX: function (a, b, c) { null == c && (c = !1); null == b && (b = !1); 1 == this.physicsMode ? (b = c || !this.continuousCollision, null == b && (b = !0), this.moveActorBy(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x - this.realX, this.realY - this.realY, b, !1)) : 2 == this.physicsMode ? this.resetReal(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x, this.realY) : (this.dummy.x = this.isRegion || this.isTerrainRegion ? h.toPhysicalUnits(a) : h.toPhysicalUnits(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x), this.dummy.y = this.body.getPosition().y, this.body.setPosition(this.dummy), b && this.body.setLinearVelocity(this.zero)); this.snapOnSet && (this.drawX = this.realX, this.drawY = this.realY); this.updateMatrix = !0 }, setY: function (a, b, c) { null == c && (c = !1); null == b && (b = !1); 1 == this.physicsMode ? (b = c || !this.continuousCollision, null == b && (b = !0), this.moveActorBy(this.realX - this.realX, a + Math.floor(this.cacheHeight / 2) + this.currOffset.y - this.realY, b, !1)) : 2 == this.physicsMode ? this.resetReal(this.realX, a + Math.floor(this.cacheHeight / 2) + this.currOffset.y) : (this.dummy.y = this.isRegion || this.isTerrainRegion ? h.toPhysicalUnits(a) : h.toPhysicalUnits(a + Math.floor(this.cacheHeight / 2) + this.currOffset.y), this.dummy.x = this.body.getPosition().x, this.body.setPosition(this.dummy), b && this.body.setLinearVelocity(this.zero)); this.snapOnSet && (this.drawX = this.realX, this.drawY = this.realY); this.updateMatrix = !0 }, setXY: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !1); 1 == this.physicsMode ? (c = d || !this.continuousCollision, null == c && (c = !0), this.moveActorBy(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x - this.realX, b + Math.floor(this.cacheHeight / 2) + this.currOffset.y - this.realY, c, !1), 0 == this.colX && 0 == this.colY && this.resetReal(this.realX, this.realY)) : 2 == this.physicsMode ? this.resetReal(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x, b + Math.floor(this.cacheHeight / 2) + this.currOffset.y) : (this.isRegion || this.isTerrainRegion ? (this.dummy.x = h.toPhysicalUnits(a), this.dummy.y = h.toPhysicalUnits(b)) : (this.dummy.x = h.toPhysicalUnits(a + Math.floor(this.cacheWidth / 2) + this.currOffset.x), this.dummy.y = h.toPhysicalUnits(b + Math.floor(this.cacheHeight / 2) + this.currOffset.y)), this.body.setPosition(this.dummy), c && this.body.setLinearVelocity(this.zero)); this.snapOnSet && (this.drawX = this.realX, this.drawY = this.realY); this.updateMatrix = !0 }, setXCenter: function (a) { this.setX(a - this.getWidth() / 2) }, setYCenter: function (a) { this.setY(a - this.getHeight() / 2) }, setScreenX: function (a) { this.isHUD ? this.setX(a) : this.setX(a + h.cameraX / h.SCALE) }, setScreenY: function (a) { this.isHUD ? this.setY(a) : this.setY(a + h.cameraY / h.SCALE) }, follow: function (a) { if (null != a) if (0 != this.physicsMode) { var b = a.getXCenter(); a = a.getYCenter(); this.moveActorBy(b - this.realX, a - this.realY, !0, !1) } else this.body.setPosition(a.body.getWorldCenter()) }, followWithOffset: function (a, b, c) { 0 != this.physicsMode ? (b = a.getXCenter() + b, c = a.getYCenter() + c, this.moveActorBy(b - this.realX, c - this.realY, !0, !1)) : (a = a.body.getWorldCenter(), a.x += h.toPhysicalUnits(b), a.y += h.toPhysicalUnits(c), this.body.setPosition(a)) }, setOriginPoint: function (a, b) { var c = 0 == this.physicsMode ? this.body.getPosition() : new M(h.toPhysicalUnits(this.realX), h.toPhysicalUnits(this.realY)); var d = new M(this.currOffset.x, this.currOffset.y), e = this.getAngle(), g = a - this.cacheWidth / 2 | 0, f = b - this.cacheHeight / 2 | 0; if (null != this.currOrigin && ((this.currOffset.x | 0) != g || (this.currOffset.y | 0) != f) && 0 != (57.29577951308402 * e | 0)) { var v = e + Math.atan2(-this.currOffset.y, -this.currOffset.x); e += Math.atan2(-f, -g); var p = Math.sqrt(Math.pow(this.currOffset.x, 2) + Math.pow(this.currOffset.y, 2)), m = Math.sqrt(Math.pow(g, 2) + Math.pow(f, 2)), l = Math.round(this.currOrigin.y + Math.sin(v) * p), n = Math.round(b + Math.sin(e) * m); c.x += h.toPhysicalUnits(Math.round(this.currOrigin.x + Math.cos(v) * p) - Math.round(a + Math.cos(e) * m)); c.y += h.toPhysicalUnits(l - n) } this.currOrigin.x = a; this.currOrigin.y = b; this.currOffset.x = g; this.currOffset.y = f; d.x = this.currOffset.x - d.x; d.y = this.currOffset.y - d.y; c.x += h.toPhysicalUnits(d.x); c.y += h.toPhysicalUnits(d.y); 0 == this.physicsMode ? this.body.setPosition(c) : (this.realX = h.toPixelUnits(c.x), this.realY = h.toPixelUnits(c.y)); this.resetOrigin = !0 }, getXVelocity: function () { return 0 != this.physicsMode ? this.xSpeed : this.body.getLinearVelocity().x }, getYVelocity: function () { return 0 != this.physicsMode ? this.ySpeed : this.body.getLinearVelocity().y }, setXVelocity: function (a) { if (0 != this.physicsMode) this.xSpeed = a; else { var b = this.body.getLinearVelocity(); b.x = a; this.body.setLinearVelocity(b); this.body.setAwake(!0) } }, setYVelocity: function (a) { if (0 != this.physicsMode) this.ySpeed = a; else { var b = this.body.getLinearVelocity(); b.y = a; this.body.setLinearVelocity(b); this.body.setAwake(!0) } }, setVelocity: function (a, b) { this.setXVelocity(b * Math.cos(.01745329251994278 * a)); this.setYVelocity(b * Math.sin(.01745329251994278 * a)) }, accelerateX: function (a) { this.setXVelocity(this.getXVelocity() + a) }, accelerateY: function (a) { this.setYVelocity(this.getYVelocity() + a) }, accelerate: function (a, b) { this.setXVelocity(this.getXVelocity() + b * Math.cos(.01745329251994278 * a)); this.setYVelocity(this.getYVelocity() + b * Math.sin(.01745329251994278 * a)) }, getAngle: function () { return 0 != this.physicsMode ? .01745329251994278 * this.realAngle : this.body.getAngle() }, getAngleInDegrees: function () { return 0 != this.physicsMode ? this.realAngle : 57.29577951308402 * this.body.getAngle() }, setAngle: function (a, b) { null == b && (b = !0); b ? 0 != this.physicsMode ? this.realAngle = 57.29577951308402 * a : this.body.setAngle(a) : 0 != this.physicsMode ? this.realAngle = a : this.body.setAngle(.01745329251994278 * a); this.updateMatrix = !0 }, rotate: function (a, b) { null == b && (b = !0); b ? 0 != this.physicsMode ? this.realAngle += 57.29577951308402 * a : this.body.setAngle(this.body.getAngle() + a) : 0 != this.physicsMode ? this.realAngle += a : this.body.setAngle(this.body.getAngle() + .01745329251994278 * a) }, getAngularVelocity: function () { return 0 != this.physicsMode ? .01745329251994278 * this.rSpeed : this.body.getAngularVelocity() }, setAngularVelocity: function (a) { 0 != this.physicsMode ? this.rSpeed = 57.29577951308402 * a : (this.body.setAngularVelocity(a), this.body.setAwake(!0)) }, changeAngularVelocity: function (a) { 0 != this.physicsMode ? this.rSpeed += 57.29577951308402 * a : (this.body.setAngularVelocity(this.body.getAngularVelocity() + a), this.body.setAwake(!0)) }, push: function (a, b, c) { if (0 != this.physicsMode) this.dummy.x = a, this.dummy.y = b, this.dummy.normalize(), this.accelerateX(this.dummy.x * c * .01), this.accelerateY(this.dummy.y * c * .01); else if (0 != a || 0 != b) this.dummy.x = a, this.dummy.y = b, this.dummy.normalize(), this.dummy.multiply(c), this.body.applyForce(this.dummy, this.body.getWorldCenter()) }, pushInDirection: function (a, b) { this.push(Math.cos(.01745329251994278 * a), Math.sin(.01745329251994278 * a), b) }, applyImpulse: function (a, b, c) { if (0 != this.physicsMode) this.dummy.x = a, this.dummy.y = b, this.dummy.normalize(), this.accelerateX(this.dummy.x * c), this.accelerateY(this.dummy.y * c); else if (0 != a || 0 != b) this.dummy.x = a, this.dummy.y = b, this.dummy.normalize(), this.dummy.multiply(c), this.body.applyImpulse(this.dummy, this.body.getWorldCenter()) }, applyImpulseInDirection: function (a, b) { this.applyImpulse(Math.cos(.01745329251994278 * a), Math.sin(.01745329251994278 * a), b) }, applyTorque: function (a) { 0 != this.physicsMode ? this.fixedRotation || (this.rSpeed -= a) : (this.body.applyTorque(a), this.body.setAwake(!0)) }, getWidth: function () { return this.cacheWidth }, getHeight: function () { return this.cacheHeight }, getPhysicsWidth: function () { return this.cacheWidth / h.physicsScale }, getPhysicsHeight: function () { return this.cacheHeight / h.physicsScale }, getBody: function () { return this.body }, enableRotation: function () { 0 != this.physicsMode ? this.fixedRotation = !1 : this.body.setFixedRotation(!1) }, disableRotation: function () { 0 != this.physicsMode ? this.fixedRotation = !0 : this.body.setFixedRotation(!0) }, setIgnoreGravity: function (a) { this.ignoreGravity = a; 0 == this.physicsMode && this.body.setIgnoreGravity(a) }, ignoresGravity: function () { return 0 != this.physicsMode ? this.ignoreGravity : this.body.isIgnoringGravity() }, getFriction: function () { return 0 == this.physicsMode && null != this.body.m_fixtureList ? this.body.m_fixtureList.m_friction : 0 }, getBounciness: function () { return 0 == this.physicsMode && null != this.body.m_fixtureList ? this.body.m_fixtureList.m_restitution : 0 }, getMass: function () { return 0 == this.physicsMode ? this.md.mass : 0 }, getAngularMass: function () { return 0 == this.physicsMode ? this.md.I : 0 }, getLinearDamping: function () { return 0 == this.physicsMode ? this.body.getLinearDamping() : 0 }, getAngularDamping: function () { return 0 == this.physicsMode ? this.body.getAngularDamping() : 0 }, setFriction: function (a) { 0 == this.physicsMode && this.body.setFriction(a) }, setBounciness: function (a) { 0 == this.physicsMode && this.body.setBounciness(a) }, setMass: function (a) { 0 == this.physicsMode && (this.md.mass = a, this.body.setMassData(this.md)) }, setAngularMass: function (a) { 0 == this.physicsMode && (this.md.I = a, this.body.setMassData(this.md)) }, setLinearDamping: function (a) { 0 == this.physicsMode && this.body.setLinearDamping(a) }, setAngularDamping: function (a) { 0 == this.physicsMode && this.body.setAngularDamping(a) }, isMouseOver: function () { if (this.isHUD) { var a = (L.mouseX - h.engine.hudLayer.get_x()) / h.SCALE; var b = (L.mouseY - h.engine.hudLayer.get_y()) / h.SCALE } else a = (L.mouseX + h.cameraX * this.layer.scrollFactorX) / h.SCALE, b = (L.mouseY + h.cameraY * this.layer.scrollFactorY) / h.SCALE; var c = Math.abs(this.realScaleX), d = Math.abs(this.realScaleY), e = this.currOrigin.x * (c - 1), g = (this.cacheWidth - this.currOrigin.x) * (c - 1), f = this.currOrigin.y * (d - 1), v = (this.cacheHeight - this.currOrigin.y) * (d - 1); 0 == this.physicsMode || this.currOrigin.x == this.cacheWidth / 2 && this.currOrigin.y == this.cacheHeight / 2 || this.resetReal(this.realX, this.realY); var p = this.colX - e, m = this.colY - f; if (0 != this.get_rotation()) { c = p + this.currOrigin.x * c; d = m + this.currOrigin.y * d; a -= c; b -= d; var l = .01745329251994278 * this.get_rotation(); d = d - a * Math.sin(l) + b * Math.cos(l); a = c + a * Math.cos(l) + b * Math.sin(l); b = d } return this.isHUD && !h.engine.isHUDZoomable ? a >= p / h.engine.zoomMultiplier && b >= m / h.engine.zoomMultiplier && a < (p + this.cacheWidth + e + g) / h.engine.zoomMultiplier ? b < (m + this.cacheHeight + f + v) / h.engine.zoomMultiplier : !1 : a >= p && b >= m && a < p + this.cacheWidth + e + g ? b < m + this.cacheHeight + f + v : !1 }, isMouseHover: function () { return this.isMouseOver() ? !L.mouseDown : !1 }, isMouseDown: function () { return this.isMouseOver() ? L.mouseDown : !1 }, isMousePressed: function () { return this.isMouseOver() ? L.mousePressed : !1 }, isMouseReleased: function () { return this.isMouseOver() ? L.mouseReleased : !1 }, cancelTweens: function () { this.tweenProps.cancel() }, fadeTo: function (a, b, c) { null == b && (b = 1); this.tweenProps.alpha.tween(this.get_alpha(), a, c, 1E3 * b | 0) }, growTo: function (a, b, c, d) { null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.tweenProps.realScaleXY.tween(this.realScaleX, a, this.realScaleY, b, d, 1E3 * c | 0) }, spinTo: function (a, b, c) { null == b && (b = 1); this.tweenProps.angle.tween(this.getAngleInDegrees(), a, c, 1E3 * b | 0) }, moveTo: function (a, b, c, d) { null == c && (c = 1); this.tweenProps.xy.tween(this.getX(!1), a, this.getY(!1), b, d, 1E3 * c | 0) }, spinBy: function (a, b, c) { null == b && (b = 1); this.spinTo(this.getAngleInDegrees() + a, b, c) }, moveBy: function (a, b, c, d) { null == c && (c = 1); this.moveTo(this.getX(!1) + a, this.getY(!1) + b, c, d) }, drawImage: function (a) { if (null != this.currAnimation) { var b = 0, c = 0; 0 < this.realAngle && (this.drawMatrix.identity(), this.transformPoint.x = -(this.cacheWidth / 2) * h.SCALE, this.transformPoint.y = -(this.cacheHeight / 2) * h.SCALE, this.drawMatrix.translate(-this.transformPoint.x, -this.transformPoint.y), this.drawMatrix.scale(this.realScaleX, this.realScaleY), this.drawMatrix.rotate(.01745329251994278 * this.realAngle), this.drawMatrix.translate(this.colX * h.SCALE, this.colY * h.SCALE), b += this.transformMatrix.tx - this.drawMatrix.tx, c += this.transformMatrix.ty - this.drawMatrix.ty); var d = this.currAnimation.get_visible(); this.currAnimation.set_visible(!0); var e = this.currAnimation, g = .01745329251994278 * this.realAngle; if (!aa.disposeImages || e.model.checkImageReadable()) { e = e.get_bitmapData(); null == g && (g = 0); b *= a.scaleX; c *= a.scaleY; a.rect.x = 0; a.rect.y = 0; a.rect.width = e.width; a.rect.height = e.height; a.drawActor ? null != a.actor && a.actor.isHUD ? (a.point.x = a.x + b, a.point.y = a.y + c) : (a.point.x = a.x + b - h.cameraX, a.point.y = a.y + c - h.cameraY) : (a.point.x = a.x + b, a.point.y = a.y + c); a.mtx.identity(); a.mtx.rotate(g); a.mtx.translate(a.point.x, a.point.y); if (0 == g) 1 != a.alpha && (a.point2.x = 0, a.point2.y = 0, a.rect2.width = e.width, a.rect2.height = e.height, c = new ka(e.width, e.height, !0, a.toARGB(0, 255 * a.alpha | 0)), b = new ka(e.width, e.height, !0, 0), b.copyPixels(e, a.rect2, a.point2, c, null, !0), e = b), a.graphics.beginBitmapFill(e, a.mtx), a.graphics.drawRect(a.point.x, a.point.y, e.width, e.height); else { 1 != a.alpha && (a.point2.x = 0, a.point2.y = 0, a.rect2.width = e.width, a.rect2.height = e.height, c = new ka(e.width, e.height, !0, a.toARGB(0, 255 * a.alpha | 0)), b = new ka(e.width, e.height, !0, 0), b.copyPixels(e, a.rect2, a.point2, c, null, !0), e = b); c = new ka(e.width + 2, e.height + 2, !0, 0); b = Math.sqrt(Math.pow(c.width, 2) + Math.pow(c.height, 2)) | 0; g = new ba(0, 0, e.width, e.height); var f = new na(1, 1); c.copyPixels(e, g, f); a.graphics.beginBitmapFill(c, a.mtx, !1, aa.antialias); a.graphics.drawRect(a.x - (b - e.width) / 2, a.y - (b - e.height) / 2, b, b) } a.graphics.endFill() } this.currAnimation.set_visible(d) } }, getCurrentImage: function () { return this.currAnimation.getCurrentImage() }, enableActorDrawing: function () { this.drawActor = !0; null != this.currAnimation && this.currAnimation.set_visible(!0) }, disableActorDrawing: function () { this.drawActor = !1; null != this.currAnimation && this.currAnimation.set_visible(!1) }, drawsImage: function () { return this.drawActor }, setFilter: function (a) { null == this.bitmapFilters && (this.bitmapFilters = []); this.bitmapFilters = this.bitmapFilters.concat(a); null != this.currAnimation && this.currAnimation.set_filter(this.bitmapFilters) }, clearFilters: function () { this.bitmapFilters = null; null != this.currAnimation && this.currAnimation.set_filter(null) }, setBlendMode: function (a) { this.set_blendMode(a) }, resetBlendMode: function () { this.set_blendMode(10) }, addBehavior: function (a) { null != this.behaviors && this.behaviors.add(a) }, hasBehavior: function (a) { return null != this.behaviors ? this.behaviors.hasBehavior(a) : !1 }, enableBehavior: function (a) { null != this.behaviors && this.behaviors.enableBehavior(a) }, disableBehavior: function (a) { null != this.behaviors && this.behaviors.disableBehavior(a) }, isBehaviorEnabled: function (a) { return null != this.behaviors ? this.behaviors.isBehaviorEnabled(a) : !1 }, enableAllBehaviors: function () { if (null != this.behaviors) for (var a = 0, b = this.behaviors.behaviors; a < b.length;) { var c = b[a]; ++a; c.enabled = !0 } }, getValue: function (a, b) { return this.behaviors.getAttribute(a, b) }, setValue: function (a, b, c) { this.behaviors.setAttribute(a, b, c) }, shout: function (a, b) { return this.behaviors.call(a, b) }, say: function (a, b, c) { return this.behaviors.call2(a, b, c) }, setActorValue: function (a, b) { null != this.registry && (this.registry.h[a] = b) }, getActorValue: function (a) { return null == this.registry ? null : this.registry.h[a] }, hasActorValue: function (a) { return null == this.registry ? null : null != this.registry.h[a] }, registerListener: function (a, b) { var c = X.indexOf(this.allEventReferences, a); -1 != c ? a = this.allListeners.h[c] : (this.allEventReferences.push(a), c = this.allEventReferences.length - 1, a = [], this.allListeners.h[c] = a); a.push(b) }, removeAllListeners: function () { for (var a = 0, b = this.allEventReferences.length; a < b;) { var c = a++, d = this.allEventReferences[c]; if (null != d && (c = w.__cast(this.allListeners.h[c], Array), null != c)) for (var e = 0, g = c.length; e < g;) { var f = e++; d.remove(c[f]) } } this.allEventReferences.length = 0 }, anchorToScreen: function () { this.isHUD || this.engine.moveActorToLayer(this, this.engine.hudLayer) }, unanchorFromScreen: function () { this.isHUD && this.engine.moveActorToLayer(this, this.cachedLayer) }, isAnchoredToScreen: function () { return this.isHUD }, makeAlwaysSimulate: function (a) { null == a && (a = !0); this.alwaysSimulate || (0 == this.physicsMode && a && (this.body.setAlwaysActive(!0), this.body.setActive(!0)), this.alwaysSimulate = !0) }, makeSometimesSimulate: function (a) { null == a && (a = !0); this.alwaysSimulate && (0 == this.physicsMode && a && (this.body.setAlwaysActive(!1), this.body.setActive(!1)), this.alwaysSimulate = !1) }, alwaysSimulates: function () { return this.alwaysSimulate }, die: function () { this.dying = !0; var a = this.engine.whenTypeGroupKilledEvents, b = this.getType(), c = a.h[b.__id__]; a = this.engine.whenTypeGroupKilledEvents; b = this.getGroup(); a = a.h[b.__id__]; if (0 < this.whenKilled.length) for (this.whenKilled._dispatchIndex = 0; this.whenKilled._dispatchIndex < this.whenKilled.length;) { try { this.whenKilled.listeners[this.whenKilled._dispatchIndex]() } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } ++this.whenKilled._dispatchIndex } if (null != c && 0 < c.length) for (c._dispatchIndex = 0; c._dispatchIndex < c.length;) { try { c.listeners[c._dispatchIndex](this) } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } ++c._dispatchIndex } if (null != a && 0 < a.length) for (a._dispatchIndex = 0; a._dispatchIndex < a.length;) { try { a.listeners[a._dispatchIndex](this) } catch (d) { if (ra.lastError = d, "string" != typeof I.caught(d).unwrap()) throw d; } ++a._dispatchIndex } this.removeAllListeners() }, isDying: function () { return this.dying }, isAlive: function () { return !(this.dead || this.dying || this.recycled) }, isOnScreen: function () { var a = h.cameraX / h.SCALE, b = h.cameraY / h.SCALE, c = h.paddingLeft, d = h.paddingTop, e = h.paddingRight, g = h.paddingBottom; return (0 != this.physicsMode || this.body.isActive()) && this.getX(!0) + this.cacheWidth * this.realScaleX >= a - c && this.getY(!0) + this.cacheHeight * this.realScaleY >= b - d && this.getX(!0) < a + h.screenWidth + e ? this.getY(!0) < b + h.screenHeight + g : !1 }, isInScene: function () { return (0 != this.physicsMode || this.body.isActive()) && 0 <= this.getX(!0) + this.cacheWidth * this.realScaleX && 0 <= this.getY(!0) + this.cacheHeight * this.realScaleY && this.getX(!0) < h.sceneWidth ? this.getY(!0) < h.sceneHeight : !1 }, getLastCollidedActor: function () { return wb.lastCollided }, killSelfAfterLeavingScreen: function () { this.killLeaveScreen = !0 }, toString: function () { return null == this.get_name() ? "Unknown Actor " + this.ID : "[Actor " + this.ID + "," + this.get_name() + "]" }, addRectangularShape: function (a, b, c, d) { if (0 == this.physicsMode) { var e = new Jb, g = []; a = h.toPhysicalUnits(a - Math.floor(this.cacheWidth / 2) - this.currOffset.x); b = h.toPhysicalUnits(b - Math.floor(this.cacheHeight / 2) - this.currOffset.y); c = h.toPhysicalUnits(c); d = h.toPhysicalUnits(d); g.push(new M(a, b)); g.push(new M(a + c, b)); g.push(new M(a + c, b + d)); g.push(new M(a, b + d)); e.setAsVector(g); this.createFixture(e).SetUserData(this) } }, addCircularShape: function (a, b, c) { if (0 == this.physicsMode) { var d = new Qc; d.m_radius = h.toPhysicalUnits(c); d.m_p.x = h.toPhysicalUnits(a); d.m_p.y = h.toPhysicalUnits(b); this.createFixture(d).SetUserData(this) } }, addVertex: function (a, b, c) { b = h.toPhysicalUnits(b - Math.floor(this.cacheWidth / 2) - this.currOffset.x); c = h.toPhysicalUnits(c - Math.floor(this.cacheHeight / 2) - this.currOffset.y); a.push(new M(b, c)) }, addPolygonalShape: function (a) { if (0 == this.physicsMode) { var b = new Jb; b.setAsArray(a); this.createFixture(b).SetUserData(this) } }, createFixture: function (a) { var b = new Lf; b.shape = a; b.density = .1 * this.bodyDef.mass; b.friction = this.bodyDef.friction; b.restitution = this.bodyDef.bounciness; return this.body.createFixture(b) }, getLastCreatedFixture: function () { return 0 == this.physicsMode ? this.body.getFixtureList() : null }, setLocation: function (a, b) { this.realX = a; this.realY = b; this.setXY(a, b, !1, !0) }, get_shape: function () { return this._mask }, set_shape: function (a) { if (this._mask == a) return a; null != this._mask && this._mask.assignTo(null); this._mask = a; null != a && this._mask.assignTo(this); return this._mask }, collide: function (a, b, c) { a = this.engine.getGroup(a); this._x = this.realX; this._y = this.realY; this.resetReal(b, c); if (null == this._mask) { b = 0; for (c = a.list; b < c.length;) if (a = c[b], ++b, !a.recycled && this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && a.collidable && a != this && (null == a._mask || a._mask.collide(this.HITBOX))) return this.colMask = a._mask, this.resetReal(this._x, this._y), a; this.resetReal(this._x, this._y); return null } b = 0; for (c = a.list; b < c.length;) if (a = c[b], ++b, !a.recycled && this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && a.collidable && a != this && this._mask.collide(null != a._mask ? a._mask : a.HITBOX)) return this.colMask = null != a._mask ? a._mask : a.HITBOX, this.resetReal(this._x, this._y), a; this.resetReal(this._x, this._y); return null }, collideTypes: function (a, b, c) { for (var d = this.collidedList.length, e, g = 0; g < a.length;) e = a[g], ++g, -2 != e && this.collideInto(e, b, c, this.collidedList); return this.collidedList.length > d ? this.collidedList[this.collidedList.length - 1] : null }, collideWith: function (a, b, c) { this._x = this.realX; this._y = this.realY; this.resetReal(b, c); if (this.colX + this.cacheWidth >= a.colX && this.colY + this.cacheHeight >= a.colY && this.colX <= a.colX + a.cacheWidth && this.colY <= a.colY + a.cacheHeight && this.collidable && a.collidable) { if (null == this._mask) { if (null == a._mask || a._mask.collide(this.HITBOX)) return this.resetReal(this._x, this._y), a; this.resetReal(this._x, this._y); return null } if (this._mask.collide(null != a._mask ? a._mask : a.HITBOX)) return this.resetReal(this._x, this._y), a } this.resetReal(this._x, this._y); return null }, collideInto: function (a, b, c, d) { a = this.engine.getGroup(a); this._x = this.realX; this._y = this.realY; this.resetReal(b, c); b = d.length; if (null == this._mask) for (c = 0, a = a.list; c < a.length;) { var e = a[c]; ++c; e.recycled || this.colX + this.cacheWidth >= e.colX && this.colY + this.cacheHeight >= e.colY && this.colX <= e.colX + e.cacheWidth && this.colY <= e.colY + e.cacheHeight && e.collidable && e != this && (null == e._mask || e._mask.collide(this.HITBOX)) && (X.contains(d, e) || (d[b++] = e)) } else for (c = 0, a = a.list; c < a.length;) e = a[c], ++c, this.colX + this.cacheWidth >= e.colX && this.colY + this.cacheHeight >= e.colY && this.colX <= e.colX + e.cacheWidth && this.colY <= e.colY + e.cacheHeight && e.collidable && e != this && this._mask.collide(null != e._mask ? e._mask : e.HITBOX) && (X.contains(d, e) || (d[b++] = e)); this.resetReal(this._x, this._y) }, clearCollisionInfoList: function () { if (0 < this.collisionsCount) for (var a = this.simpleCollisions.iterator(); a.hasNext();) { var b = a.next(); b.remove = !0; null != b.linkedCollision && (b.linkedCollision.remove = !0) } }, disposeRemovedCollisionInfo: function () { if (0 < this.collisionsCount) { for (var a = -1, b = this.simpleCollisions.keys(); b.hasNext();) { var c = b.next(), d = this.simpleCollisions, e = d.mH, g = e.mHash[73856093 * c & e.mMask]; if (-1 == g) g = -2147483648; else if (e = e.mData, e[g] == c) g = e[g + 1]; else { var f = -2147483648; for (g = e[g + 2]; -1 != g;) { if (e[g] == c) { f = e[g + 1]; break } g = e[g + 2] } g = f } (-2147483648 == g ? null : d.mVals[g]).remove ? this.simpleCollisions.unset(c) : c > a && (a = c) } this.collisionsCount = a + 1 } }, clearCollidedList: function () { for (; 0 < this.collidedList.length;) this.collidedList.pop(); this.listChecked = 0 }, addCollision: function (a) { var b = this.alreadyCollided(a); if (-1 != b) { var c = this.simpleCollisions, d = c.mH, e = d.mHash[73856093 * b & d.mMask]; if (-1 == e) e = -2147483648; else if (d = d.mData, d[e] == b) e = d[e + 1]; else { var g = -2147483648; for (e = d[e + 2]; -1 != e;) { if (d[e] == b) { g = d[e + 1]; break } e = d[e + 2] } e = g } c = -2147483648 == e ? null : c.mVals[e]; a.switchData(c.linkedCollision); a.linkedCollision.remove = !1; a.remove = !1; Ac.recycle(c); this.simpleCollisions.unset(b); this.simpleCollisions.set(b, a); return a } this.simpleCollisions.unset(this.collisionsCount); this.simpleCollisions.set(this.collisionsCount, a); this.collisionsCount++; return a }, alreadyCollided: function (a) { for (var b = this.simpleCollisions.keys(); b.hasNext();) { var c = b.next(), d = this.simpleCollisions, e = d.mH, g = e.mHash[73856093 * c & e.mMask]; if (-1 == g) g = -2147483648; else if (e = e.mData, e[g] == c) g = e[g + 1]; else { var f = -2147483648; for (g = e[g + 2]; -1 != g;) { if (e[g] == c) { f = e[g + 1]; break } g = e[g + 2] } g = f } d = -2147483648 == g ? null : d.mVals[g]; if (null != d && (d.maskA == a.maskA && d.maskB == a.maskB || d.maskA == a.maskB && d.maskB == a.maskA)) if (d.solidCollision) if (1 == d.maskA.groupID || 1 == d.maskB.groupID) { if (d.thisFromLeft || d.thisFromRight) if (a.thisFromLeft || a.thisFromRight) return c; if (d.thisFromTop || d.thisFromBottom) if (a.thisFromTop || a.thisFromBottom) return c } else return c; else return c } return -1 }, resetReal: function (a, b) { this.realX = a; this.realY = b; this.colX = this.realX - Math.floor(this.cacheWidth / 2) - this.currOffset.x; this.colY = this.realY - Math.floor(this.cacheHeight / 2) - this.currOffset.y }, adjustByWidth: function (a) { if (null != this._mask && null != this._mask.lastCheckedMask && this._mask.lastCheckedMask instanceof nd) { var b = this._mask.lastCheckedMask; return a ? this.cacheWidth / 2 - (this.cacheWidth - (b._x + b._width)) : this.cacheWidth / 2 - b._x } return this.cacheWidth / 2 }, adjustByHeight: function (a) { if (null != this._mask && null != this._mask.lastCheckedMask && this._mask.lastCheckedMask instanceof nd) { var b = this._mask.lastCheckedMask; return a ? this.cacheHeight / 2 - (this.cacheHeight - (b._y + b._height)) : this.cacheHeight / 2 - b._y } return this.cacheHeight / 2 }, getAllCollisionInfo: function (a, b) { for (var c = null; this.listChecked < this.collidedList.length;) { var d = Ac.get(); this.colMask = this.collidedList[this.listChecked]._mask; this.fillCollisionInfo(d, this.collidedList[this.listChecked], a, b); this.addCollision(d); if (null == d.linkedCollision) { var e = Ac.get(); d.switchData(e); this.collidedList[this.listChecked].addCollision(e) } d.solidCollision && (c = d); this.listChecked++ } return c }, moveActorBy: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !0); if (0 != a || 0 != b) { this.clearCollisionInfoList(); if (!c && this.collidable && null != this.HITBOX.collideTypes) { c = this.HITBOX.collideTypes; if (0 != a) { var e = 0 < a ? Math.ceil(this.realX + a) : Math.floor(this.realX + a); this.clearCollidedList(); if (d || null != this.collideTypes(c, e, this.realY)) for (this.clearCollidedList(); 0 != a;) { var g = 1 <= a || -1 >= a ? 1 : Math.abs(a); g = 0 < a ? g : -g; e = 0 < g ? Math.ceil(this.realX + g) : Math.floor(this.realX + g); var f = this.collide(-2, e, this.realY); null != f && w.__cast(f, ud).addActor(this); f = this.collideTypes(c, e, this.realY); if (null != f && (e = this.getAllCollisionInfo(g, 0), null != e)) { this.xSpeed = 0; e.useBounds && (this.realX = 0 < g ? e.bounds.x - Math.ceil(this.adjustByWidth(!0)) : e.bounds.x + e.bounds.width + Math.floor(this.adjustByWidth(!1))); break } this.realX += g; a -= g } else this.realX += a } if (0 != b) if (e = 0 < b ? Math.ceil(this.realY + b) : Math.floor(this.realY + b), this.clearCollidedList(), d || null != this.collideTypes(c, this.realX, e)) for (this.clearCollidedList(); 0 != b;) { g = 1 <= b || -1 >= b ? 1 : Math.abs(b); g = 0 < b ? g : -g; e = 0 < g ? Math.ceil(this.realY + g) : Math.floor(this.realY + g); f = this.collide(-2, this.realX, e); null != f && w.__cast(f, ud).addActor(this); f = this.collideTypes(c, this.realX, e); if (null != f && (e = this.getAllCollisionInfo(0, g), null != e)) { this.ySpeed = 0; e.useBounds && (this.realY = 0 < g ? e.bounds.y - Math.ceil(this.adjustByHeight(!0)) : e.bounds.y + e.bounds.height + Math.floor(this.adjustByHeight(!1))); break } this.realY += g; b -= g } else this.realY += b } else this.realX += a, this.realY += b; this.resetReal(this.realX, this.realY) } }, moveActorTo: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !0); this.moveActorBy(a - this.realX, b - this.realY, c, d) }, moveActorTowards: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = !0); this._point.x = a - this.realX; this._point.y = b - this.realY; this._point.normalize(c); this.moveActorBy(this._point.x, this._point.y, d, e) }, moveCollideX: function (a, b) { }, moveCollideY: function (a, b) { }, fillCollisionInfo: function (a, b, c, d) { if (b instanceof ud) b.addActor(this); else { a.thisActor = a.actorA = this; a.otherActor = a.actorB = b; a.maskA = this._mask; a.maskB = this.colMask; a.solidCollision = this._mask.solid && this.colMask.solid; a.groupA = this._mask.lastCheckedMask.groupID; a.groupB = this._mask.lastCheckedMask.lastColID; var e = Ac.collisionResponses, g = this.getGroupID(); e = e.h[g]; var f = !1, v = !1; null != e ? (g = b.getGroupID(), g = null != e.h[g]) : g = !1; g && (g = b.getGroupID(), "sensor" == e.h[g] ? (a.solidCollision = !1, f = !0) : v = a.solidCollision = !0); null != this.colMask && (a.useBounds = !0, a.bounds.x = this.colMask.lastBounds.x, a.bounds.y = this.colMask.lastBounds.y, a.bounds.width = this.colMask.lastBounds.width, a.bounds.height = this.colMask.lastBounds.height); 0 != c && (1E8 == b.ID ? (a.thisFromLeft = 0 > c, a.thisFromRight = 0 < c) : (a.thisFromLeft = b.colX < this.colX, a.thisFromRight = b.colX > this.colX), a.otherFromLeft = !a.thisFromLeft, a.otherFromRight = !a.thisFromRight, a.thisFromTop = a.otherFromTop = !1, a.thisFromBottom = a.otherFromBottom = !1); 0 != d && (1E8 == b.ID ? (a.thisFromTop = 0 > d, a.thisFromBottom = 0 < d) : (a.thisFromTop = b.colY < this.colY, a.thisFromBottom = b.colY > this.colY), a.otherFromTop = !a.thisFromTop, a.otherFromBottom = !a.thisFromBottom, a.thisFromLeft = a.otherFromLeft = !1, a.thisFromRight = a.otherFromRight = !1); a.thisCollidedWithActor = !0; a.thisCollidedWithTile = 1E8 == b.ID; a.thisCollidedWithSensor = null != a ? f || !v && !a.maskB.solid : !1; a.thisCollidedWithTerrain = !1; a.otherCollidedWithActor = !0; a.otherCollidedWithTile = 1E8 == b.ID; a.otherCollidedWithSensor = null != a ? !a.maskA.solid : !1; a.otherCollidedWithTerrain = !1 } }, handleCollisionsSimple: function () { if (0 < this.collisionsCount) for (var a = this.simpleCollisions.iterator(); a.hasNext();) { var b = a.next(); if (null != b && 1 != b.remove) { wb.lastCollided = b.otherActor; if (0 < this.whenCollided.length) for (this.whenCollided._dispatchIndex = 0; this.whenCollided._dispatchIndex < this.whenCollided.length;) { try { this.whenCollided.listeners[this.whenCollided._dispatchIndex](b) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenCollided._dispatchIndex } this.engine.handleCollision(this, b) } } }, HITBOX: null, _mask: null, colMask: null, _x: null, _y: null, _moveX: null, _moveY: null, _point: null, simpleCollisions: null, collidedList: null, listChecked: null, __class__: wb, __properties__: u(Ca.prototype.__properties__, {set_shape: "set_shape", get_shape: "get_shape"}) }); var jo = function (a, b, c, d) { this.ID = a; this.name = b; this.allScenes = c; this.members = d; this.active = !0 }; k["com.stencyl.models.Atlas"] = jo; jo.__name__ = "com.stencyl.models.Atlas"; jo.prototype = {ID: null, name: null, allScenes: null, active: null, members: null, __class__: jo}; var Sh = function () { }; k["com.stencyl.models.Background"] = Sh; Sh.__name__ = "com.stencyl.models.Background"; Sh.__isInterface__ = !0; Sh.prototype = {update: null, draw: null, __class__: Sh}; var hl = function (a, b) { this.group1 = a; this.group2 = b }; k["com.stencyl.models.CollisionGroupDef"] = hl; hl.__name__ = "com.stencyl.models.CollisionGroupDef"; hl.prototype = {group1: null, group2: null, __class__: hl}; var od = function (a, b, c) { this.ID = a; this.atlasID = c; this.name = b; this.sID = a + "," + b }; k["com.stencyl.models.Resource"] = od; od.__name__ = "com.stencyl.models.Resource"; od.prototype = { ID: null, atlasID: null, name: null, sID: null, toString: function () { return this.sID }, isAtlasActive: function () { var a = zb.get().atlases.h[this.atlasID]; return null == a ? !1 : a.active }, loadGraphics: function () { }, unloadGraphics: function () { }, reloadGraphics: function (a) { this.unloadGraphics(); this.loadGraphics() }, __class__: od }; var Re = function (a, b, c, d) { od.call(this, a, c, b); this.isDefault = d; this.isAtlasActive() && this.loadGraphics() }; k["com.stencyl.models.Font"] = Re; Re.__name__ = "com.stencyl.models.Font"; Re.resetStatics = function () { Re.defaultFont = null }; Re.__super__ = od; Re.prototype = u(od.prototype, { font: null, fontScale: null, isDefault: null, graphicsLoaded: null, getHeight: function () { return null != this.font ? this.font.getFontHeight(this.fontScale) : 0 }, getTextWidth: function (a) { return null != this.font ? this.font.getTextWidth(a, this.fontScale) : 0 }, loadGraphics: function () { if (!this.graphicsLoaded) { if (this.isDefault) { var a = Da.getText("assets/graphics/default-font.fnt"); a = S.parse(a); Re.defaultFont = this.font = (new Cg).loadAngelCode(Da.getBitmapData("assets/graphics/default-font.png"), a); this.fontScale = h.SCALE; Re.defaultFont.isDefault = !0 } else { a = Da.getText("assets/graphics/" + h.IMG_BASE + "/font-" + this.ID + ".fnt"); a = S.parse(a); var b = Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/font-" + this.ID + ".png", !1); this.font = (new Cg).loadAngelCode(b, a); this.fontScale = 1 } this.graphicsLoaded = !0 } }, unloadGraphics: function () { this.graphicsLoaded && (this.font = Re.defaultFont, this.fontScale = 1, this.graphicsLoaded = !1) }, reloadGraphics: function (a) { od.prototype.reloadGraphics.call(this, a) }, get_letterSpacing: function () { return this.font.xSpacing }, set_letterSpacing: function (a) { return this.font.xSpacing = a }, get_lineSpacing: function () { return this.font.ySpacing }, set_lineSpacing: function (a) { return this.font.ySpacing = a }, isBitmapFont: function (a) { null == a && (a = Da.getText("assets/graphics/" + h.IMG_BASE + "/font-" + this.ID + ".fnt"), a = S.parse(a)); for (a = a.elements(); a.hasNext();) { var b = a.next(); if (b.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == b.nodeType ? "null" : sa.toString(b.nodeType))); if ("font" == b.nodeName) for (b = b.elements(); b.hasNext();) { var c = b.next(); if (c.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == c.nodeType ? "null" : sa.toString(c.nodeType))); if ("info" == c.nodeName) for (c = c.attributes(); c.hasNext();) if ("lspace" == c.next()) return !0 } } return !1 }, __class__: Re, __properties__: { set_lineSpacing: "set_lineSpacing", get_lineSpacing: "get_lineSpacing", set_letterSpacing: "set_letterSpacing", get_letterSpacing: "get_letterSpacing" } }); var zb = function () { var a = pc.get().gameMbs.getRoot(); this.shapes = this.readShapes(a); this.atlases = this.readAtlases(a); this.autotileFormats = this.readAutotileFormats(a); this.groups = this.readGroups(a); this.groups.push(new yh(-2, "Regions")); this.groups.push(new yh(0, "Players")); this.groups.push(new yh(1, "Terrain")); this.groups.push(new yh(2, "Doodads")); this.groups.push(new yh(3, "Actors")); this.groupsCollidesWith = new eb; this.collisionGroups = this.readCollisionGroups(a); zb.collisionMap = []; for (var b = 0, c = 0, d = this.groups; c < d.length;) { var e = d[c]; ++c; b = Math.max(e.ID | 0, b) | 0 } ++b; c = 0; for (d = b; c < d;) { e = c++; zb.collisionMap.push([]); for (var g = 0, f = b; g < f;) g++, zb.collisionMap[e].push(!1) } if (h.NO_PHYSICS) for (c = 0, d = this.groups; c < d.length;) e = d[c], ++c, this.collisionGroups.push(new hl(e.ID, -2)); c = 0; for (d = this.collisionGroups; c < d.length;) { e = d[c]; ++c; b = e.group1; e = e.group2; this.groupsCollidesWith.h.hasOwnProperty(b) || (this.groupsCollidesWith.h[b] = []); this.groupsCollidesWith.h.hasOwnProperty(e) || (this.groupsCollidesWith.h[e] = []); if (!h.NO_PHYSICS || 0 <= b && 0 <= e) zb.collisionMap[b][e] = !0, zb.collisionMap[e][b] = !0; this.groupsCollidesWith.h[b].push(e); this.groupsCollidesWith.h[e].push(b) } this.gameAttributes = zb.readGameAttributes(a); pc.get().gameMbs = null }; k["com.stencyl.models.GameModel"] = zb; zb.__name__ = "com.stencyl.models.GameModel"; zb.resetStatics = function () { zb.instance = null; zb.collisionMap = null }; zb.get = function () { null == zb.instance && (zb.instance = new zb); return zb.instance }; zb.readGameAttributes = function (a) { return Be.readMap(a.getGameAttributes()) }; zb.prototype = { groups: null, groupsCollidesWith: null, collisionGroups: null, gameAttributes: null, shapes: null, atlases: null, scenes: null, autotileFormats: null, loadScenes: function () { this.scenes = new eb; for (var a = pc.get().sceneListMbs.getRoot(), b = 0, c = a.length(); b < c;) { b++; var d = a.getNextObject(), e = d.getId(), g = this.scenes; d = new il(e, d.getName()); g.h[e] = d } pc.get().sceneListMbs = null }, readShapes: function (a) { var b = new eb; a = a.getShapes(); for (var c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getPoints(), f = [], v = 0; for (g = Ad.readPoints(g); v < g.length;) { var p = g[v]; ++v; f.push(new M(3.1 * p.x, 3.1 * p.y)) } Ad.EnsureCorrectVertexDirection(f); v = new Jb; v.setAsArray(f, f.length); e = e.getId(); b.h[e] = v } return b }, readAtlases: function (a) { var b = new eb; a = a.getAtlases(); for (var c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getId(), f = e.getName(), v = e.getAllScenes(); e = e.getMembers(); for (var p = [], m = 0, h = e.length(); m < h;) m++, p.push(e.readInt()); f = new jo(g, f, v, p); b.h[g] = f } return b }, readAutotileFormats: function (a) { var b = new eb; a = a.getAutotileFormats(); for (var c = 0, d = a.length(); c < d;) { c++; for (var e = a.getNextObject(), g = e.getName(), f = e.getId(), v = e.getAcross(), p = e.getDown(), m = [], h = [], n = e.getCorners(), l = 0, k = n.length(); l < k;) { l++; var t = n.getNextObject(), q = t.getTopLeft(); q = new na(q.getX(), q.getY()); var u = t.getTopRight(); u = new na(u.getX(), u.getY()); var da = t.getBottomLeft(); da = new na(da.getX(), da.getY()); t = t.getBottomRight(); h.push(new ko(q, u, da, new na(t.getX(), t.getY()))) } e = e.getFlags(); n = 0; for (l = e.length(); n < l;) k = n++, m[k] = h[e.readInt()]; g = new lo(g, f, v, p, m); b.h[f] = g } return b }, readGroups: function (a) { var b = []; a = a.getGroups(); for (var c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(); b.push(new yh(e.getId(), e.getName())) } return b }, readCollisionGroups: function (a) { var b = []; a = a.getCgroups(); for (var c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(); b.push(new hl(e.getGroup1(), e.getGroup2())) } return b }, __class__: zb }; var yh = function (a, b) { this.ID = a; this.name = b }; k["com.stencyl.models.GroupDef"] = yh; yh.__name__ = "com.stencyl.models.GroupDef"; yh.prototype = {ID: null, name: null, __class__: yh}; var Na = function () { this.isPressed = !1; this.outerAlphaWhenReleased = this.outerAlphaWhenPressed = this.innerAlphaWhenReleased = this.innerAlphaWhenPressed = 1; this.outerImage = this.innerImage = null; this.hideWhenReleased = !1; this.joystickDistance = this.joystickDirection = this.joystickDefaultDirection = this.joystickType = 0; Ca.call(this) }; k["com.stencyl.models.Joystick"] = Na; Na.__name__ = "com.stencyl.models.Joystick"; Na.resetStatics = function () { Na.joystickMap = null; Na.fixedCenter = 0; Na.showWherePressed = 1; Na.viewOffsetX = Na.viewOffsetY = 0; Na.initialized = !1 }; Na.addJoystick = function (a, b, c, d, e, g, f, v, p) { null == p && (p = !1); null == v && (v = 0); null == f && (f = 0); null == g && (g = 0); null == e && (e = 0); null == d && (d = 0); null != Na.joystickMap && Na.joystickMap.h.hasOwnProperty(a) && Na.removeJoystick(a); var r = Object.create(Na.prototype); r.start(); r.id = a; r.joystickTouchID = -1; r.joystickDistance = 0; r.joystickDirection = 0; r.joystickDefaultDirection = 0; r.joystickType = d; r.center = new na(b * h.SCALE, c * h.SCALE); Na.joystickMap.h[a] = r; Na.setJoystickImage(a, !0, "outer-joystick"); Na.setJoystickImage(a, !1, "inner-joystick"); r.outerAlphaWhenPressed = 1; r.outerAlphaWhenReleased = 1; r.innerAlphaWhenPressed = 1; r.innerAlphaWhenReleased = 1; r.joystickType == Na.showWherePressed && (r.joystickBounds = new ba(e * h.SCALE + Na.viewOffsetX, g * h.SCALE + Na.viewOffsetY, f * h.SCALE, v * h.SCALE)); p && (r.hideWhenReleased = !0, r.outerImage.set_visible(!1), r.innerImage.set_visible(!1)) }; Na.removeJoystick = function (a) { if (Na.joystickMap.h.hasOwnProperty(a)) { var b = Na.joystickMap.h[a], c = h.engine.root; Na.joystickMap.remove(a); c.removeChild(b.outerImage); c.removeChild(b.innerImage) } }; Na.getJoystickDisDir = function (a, b) { null == b && (b = !0); var c = 0; Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], c = b ? a.joystickDistance : a.joystickDirection); return c }; Na.setJoystickCenter = function (a, b, c) { Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], a.center = new na(b * h.SCALE, c * h.SCALE), a.outerImage.set_x(a.center.x - .5 * a.outerImage.get_width()), a.outerImage.set_y(a.center.y - .5 * a.outerImage.get_height()), a.innerImage.set_x(a.center.x - .5 * a.innerImage.get_width()), a.innerImage.set_y(a.center.y - .5 * a.innerImage.get_height())) }; Na.getJoystickCenter = function (a, b) { null == b && (b = !0); var c = 0; Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], c = (b ? a.center.x : a.center.y) / h.SCALE); return c }; Na.setJoystickRadius = function (a, b, c) { null == b && (b = !0); Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], b && a.outerRadius != c * h.SCALE ? a.outerRadius = c * h.SCALE : a.innerRadius != c * h.SCALE && (a.innerRadius = c * h.SCALE)) }; Na.getJoystickRadius = function (a, b) { null == b && (b = !0); var c = 0; Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], c = (b ? a.innerRadius : a.outerRadius) / h.SCALE); return c }; Na.alwaysHideRJ = function (a) { Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], a.hideWhenReleased = !0, a.outerImage.set_visible(!1), a.innerImage.set_visible(!1)) }; Na.setDefaultDirection = function (a, b) { Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], a.joystickDefaultDirection = b, a.joystickDirection = b) }; Na.isJoystickPressed = function (a) { return Na.joystickMap.h.hasOwnProperty(a) ? Na.joystickMap.h[a].isPressed : !1 }; Na.setTouchRegionForRJ = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], a.joystickType == Na.showWherePressed && (a.joystickBounds = new ba(b * h.SCALE + Na.viewOffsetX, c * h.SCALE + Na.viewOffsetY, d * h.SCALE, e * h.SCALE))) }; Na.getTouchRegionPropertyForRJ = function (a, b) { return Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], a.joystickType == Na.showWherePressed) ? 1 == b ? a.joystickBounds.x - Na.viewOffsetX : 2 == b ? a.joystickBounds.y - Na.viewOffsetY : 3 == b ? a.joystickBounds.width / h.SCALE : a.joystickBounds.height / h.SCALE : 0 }; Na.setJoystickImage = function (a, b, c) { if (Na.joystickMap.h.hasOwnProperty(a)) { a = Na.joystickMap.h[a]; var d = h.engine.root; c = 1 == h.SCALE ? Da.getBitmapData("assets/data/" + c + ".png") : 1.5 == h.SCALE ? Da.getBitmapData("assets/data/" + c + "@1.5x.png") : 2 == h.SCALE ? Da.getBitmapData("assets/data/" + c + "@2x.png") : Da.getBitmapData("assets/data/" + c + "@4x.png"); b ? (null != a.outerImage && d.removeChild(a.outerImage), a.outerImage = new dd(c), a.outerImage.set_x(a.center.x - .5 * a.outerImage.get_width()), a.outerImage.set_y(a.center.y - .5 * a.outerImage.get_height()), d.addChild(a.outerImage), a.outerRadius = .5 * a.outerImage.get_width()) : (null != a.innerImage && d.removeChild(a.innerImage), a.innerImage = new dd(c), a.innerImage.set_x(a.center.x - .5 * a.innerImage.get_width()), a.innerImage.set_y(a.center.y - .5 * a.innerImage.get_height()), d.addChild(a.innerImage), a.innerRadius = a.outerRadius - .5 * a.innerImage.get_width()) } }; Na.setJoystickAlpha = function (a, b, c, d) { null == d && (d = !0); null == c && (c = 1); null == b && (b = !0); Na.joystickMap.h.hasOwnProperty(a) && (a = Na.joystickMap.h[a], b ? d ? (a.outerAlphaWhenReleased = c, a.outerImage.set_alpha(c)) : a.outerAlphaWhenPressed = c : d ? (a.innerAlphaWhenReleased = c, a.innerImage.set_alpha(c)) : a.innerAlphaWhenPressed = c) }; Na.__super__ = Ca; Na.prototype = u(Ca.prototype, { center: null, outerRadius: null, innerRadius: null, joystickBounds: null, joystickTouchID: null, id: null, joystickDistance: null, joystickDirection: null, joystickDefaultDirection: null, joystickType: null, hideWhenReleased: null, outerImage: null, innerImage: null, outerAlphaWhenReleased: null, outerAlphaWhenPressed: null, innerAlphaWhenReleased: null, innerAlphaWhenPressed: null, isPressed: null, start: function () { Na.initialized || (Na.initialized = !0, Na.joystickMap = new eb, Na.viewOffsetX = h.screenOffsetX, Na.viewOffsetY = h.screenOffsetY); Ce.get_supportsTouchEvents() ? (h.stage.addEventListener("touchBegin", q(this, this.onTouchBegin)), h.stage.addEventListener("touchMove", q(this, this.onTouchMove)), h.stage.addEventListener("touchEnd", q(this, this.onTouchEnd)), Ce.inputMode = 2) : (h.stage.addEventListener("mouseDown", q(this, this.onMouseDown)), h.stage.addEventListener("mouseMove", q(this, this.onMouseMove)), h.stage.addEventListener("mouseUp", q(this, this.onMouseUp))) }, stop: function () { Ce.get_supportsTouchEvents() ? (h.stage.removeEventListener("touchBegin", q(this, this.onTouchBegin)), h.stage.removeEventListener("touchMove", q(this, this.onTouchMove)), h.stage.removeEventListener("touchEnd", q(this, this.onTouchEnd))) : (h.stage.removeEventListener("mouseDown", q(this, this.onMouseDown)), h.stage.removeEventListener("mouseMove", q(this, this.onMouseMove)), h.stage.removeEventListener("mouseUp", q(this, this.onMouseUp))); Na.joystickMap = null }, onTouchBegin: function (a) { this.onBegin(a.stageX, a.stageY, a.touchPointID) }, onTouchMove: function (a) { this.onMove(a.stageX, a.stageY, a.touchPointID) }, onTouchEnd: function (a) { this.onEnd(a.stageX, a.stageY, a.touchPointID) }, onMouseDown: function (a) { this.onBegin(a.stageX, a.stageY, 0) }, onMouseMove: function (a) { this.onMove(a.stageX, a.stageY, 0) }, onMouseUp: function (a) { this.onEnd(a.stageX, a.stageY, 0) }, onBegin: function (a, b, c) { if (-1 == this.joystickTouchID) if (a /= h.screenScaleX, b /= h.screenScaleY, this.outerImage.set_alpha(this.outerAlphaWhenPressed), this.innerImage.set_alpha(this.innerAlphaWhenPressed), this.joystickType == Na.fixedCenter) { var d = Math.sqrt(Math.pow(this.center.x + Na.viewOffsetX - a, 2) + Math.pow(this.center.y + Na.viewOffsetY - b, 2)), e = Math.atan2(this.center.y + Na.viewOffsetY - b, this.center.x + Na.viewOffsetX - a); d > this.outerRadius || (d > this.outerRadius - this.innerRadius ? (d = this.outerRadius - this.innerRadius, this.innerImage.set_x(this.center.x - Math.cos(e) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - Math.sin(e) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.get_height())) : (this.innerImage.set_x(a - Na.viewOffsetX - .5 * this.innerImage.get_width()), this.innerImage.set_y(b - Na.viewOffsetY - .5 * this.innerImage.get_height())), this.isPressed = !0, this.joystickTouchID = c, this.joystickDistance = d / (this.outerRadius - this.innerRadius), this.joystickDirection = 180 * e / 3.1415926535 + 180) } else this.joystickType != Na.showWherePressed || a < this.joystickBounds.x || a > this.joystickBounds.x + this.joystickBounds.width || b < this.joystickBounds.y || b > this.joystickBounds.y + this.joystickBounds.height || (this.isPressed = !0, this.center.x = a - Na.viewOffsetX, this.center.y = b - Na.viewOffsetY, this.outerImage.set_x(this.center.x - .5 * this.outerImage.get_width()), this.outerImage.set_y(this.center.y - .5 * this.outerImage.get_height()), this.innerImage.set_x(this.center.x - .5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - .5 * this.innerImage.get_height()), this.hideWhenReleased && (this.outerImage.set_visible(!0), this.innerImage.set_visible(!0)), this.joystickTouchID = c) }, onMove: function (a, b, c) { if (c == this.joystickTouchID) { a /= h.screenScaleX; b /= h.screenScaleY; c = Math.sqrt(Math.pow(this.center.x + Na.viewOffsetX - a, 2) + Math.pow(this.center.y + Na.viewOffsetY - b, 2)); var d = Math.atan2(this.center.y + Na.viewOffsetY - b, this.center.x + Na.viewOffsetX - a); c > this.outerRadius - this.innerRadius ? (c = this.outerRadius - this.innerRadius, this.innerImage.set_x(this.center.x - Math.cos(d) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - Math.sin(d) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.get_height())) : (this.innerImage.set_x(a - Na.viewOffsetX - .5 * this.innerImage.get_width()), this.innerImage.set_y(b - Na.viewOffsetY - .5 * this.innerImage.get_height())); this.joystickDistance = c / (this.outerRadius - this.innerRadius); this.joystickDirection = 180 * d / 3.1415926535 + 180 } }, onEnd: function (a, b, c) { c == this.joystickTouchID && (this.joystickTouchID = -1, this.isPressed = !1, this.outerImage.set_alpha(this.outerAlphaWhenReleased), this.innerImage.set_alpha(this.innerAlphaWhenReleased), a = this.outerImage.get_x(), this.center.x = a + this.outerRadius, a = this.outerImage.get_y(), this.center.y = a + this.outerRadius, this.innerImage.set_x(this.center.x - .5 * this.innerImage.get_width()), this.innerImage.set_y(this.center.y - .5 * this.innerImage.get_height()), this.hideWhenReleased && (this.outerImage.set_visible(!1), this.innerImage.set_visible(!1)), this.joystickDistance = 0, this.joystickDirection = this.joystickDefaultDirection) }, __class__: Na }); var Nn = { _new: function (a) { return a }, fromInt: function (a) { return Nn._new(a) }, fromString: function (a) { switch (a) { case "MINIMAL_PHYSICS": return 2; case "NORMAL_PHYSICS": return 0; case "SIMPLE_PHYSICS": return 1; default: return 0 } }, toString: function (a) { switch (a) { case 0: return "NORMAL_PHYSICS"; case 1: return "SIMPLE_PHYSICS"; case 2: return "MINIMAL_PHYSICS"; default: return "NORMAL_PHYSICS" } } }, ud = function (a, b, c, d, e) { wb.call(this, a, -1, -2, b, c, -1, h.NO_PHYSICS ? e.width : 1, h.NO_PHYSICS ? e.height : 1, null, null, null, null, !1, !1, !1, !1, h.NO_PHYSICS ? null : d[0], h.NO_PHYSICS); this.isRegion = this.alwaysSimulate = !0; this.solid = this.isTerrainRegion = !1; this.set_name("Region"); this.simpleBounds = e; this.copy = d[0]; this.containedActors = new eb; this.whenActorEntered = new Kc; this.whenActorExited = new Kc; this.justAdded = []; this.justRemoved = []; h.NO_PHYSICS || (this.body.setSleepingAllowed(!0), this.body.setAwake(!1), this.body.setIgnoreGravity(!0)); a = 0; var g = 0; if (h.NO_PHYSICS) { var f = e.width; e = e.height; this.cacheWidth = this.originalWidth = this.regionWidth = Math.round(Math.abs(a - f)); this.cacheHeight = this.originalHeight = this.regionHeight = Math.round(Math.abs(g - e)); this.currOffset.x = -(this.cacheWidth / 2); this.currOffset.y = -(this.cacheHeight / 2); this.resetReal(b, c) } else if (d[0] instanceof Jb) { this.isCircle = !1; b = new af; b.setIdentity(); c = new fa; w.__cast(d[0], Jb).computeAABB(c, b); a = c.lowerBound.x; f = c.upperBound.x; g = c.lowerBound.y; e = c.upperBound.y; for (var v = 0, p = d.length; v < p;) { var m = v++, l = new Lf; l.isSensor = !0; l.userData = this; l.shape = d[m]; l.friction = 1; l.density = .1; l.restitution = 0; l.groupID = -1E3; this.body.createFixture(l); w.__cast(d[m], Jb).computeAABB(c, b); a = Math.min(a, c.lowerBound.x); f = Math.max(f, c.upperBound.x); g = Math.min(g, c.lowerBound.y); e = Math.max(e, c.upperBound.y) } this.cacheWidth = this.originalWidth = this.regionWidth = Math.round(h.toPixelUnits(Math.abs(a - f))); this.cacheHeight = this.originalHeight = this.regionHeight = Math.round(h.toPixelUnits(Math.abs(g - e))) } else d[0] instanceof Qc && (this.isCircle = !0, this.cacheWidth = this.originalWidth = this.regionWidth = h.toPixelUnits(2 * w.__cast(d[0], Qc).m_radius), this.cacheHeight = this.originalHeight = this.regionHeight = h.toPixelUnits(2 * w.__cast(d[0], Qc).m_radius)) }; k["com.stencyl.models.Region"] = ud; ud.__name__ = "com.stencyl.models.Region"; ud.__super__ = wb; ud.prototype = u(wb.prototype, { isCircle: null, containedActors: null, copy: null, simpleBounds: null, regionWidth: null, regionHeight: null, originalWidth: null, originalHeight: null, whenActorEntered: null, whenActorExited: null, justAdded: null, justRemoved: null, containsActor: function (a) { return null != a ? this.containedActors.h.hasOwnProperty(a.ID) : !1 }, getContainedActors: function () { return this.containedActors }, addActor: function (a) { if (null != a && -1 != a.ID && !this.containedActors.h.hasOwnProperty(a.ID)) { this.containedActors.h[a.ID] = a.ID; var b = X.indexOf(this.justRemoved, a); -1 == b ? this.justAdded.push(a) : this.justRemoved.splice(b, 1) } }, removeActor: function (a) { null != a && -1 != a.ID && -1 == X.indexOf(this.justRemoved, a) && (this.containedActors.remove(a.ID), this.justRemoved.push(a)) }, follow: function (a) { var b = a.realY + a.cacheHeight / 2; this.setX(a.realX + a.cacheWidth / 2); this.setY(b) }, resetSize: function () { this.setRegionSize(this.originalWidth, this.originalHeight) }, setRegionDiameter: function (a) { this.setRegionSize(a, a) }, setRegionSize: function (a, b) { var c = this.regionWidth, d = this.regionHeight; a = h.toPhysicalUnits(a); b = h.toPhysicalUnits(b); if (this.isCircle) { var e = new Qc; e.m_radius = a / 2 } else e = new Jb, e.setAsBox(a / 2, b / 2); var g = new Lf; g.isSensor = !0; g.userData = this; g.shape = e; g.groupID = -1E3; if (null != this.body && null != this.body.getFixtureList()) { for (; 0 < this.body.m_fixtureCount;) this.body.DestroyFixture(this.body.getFixtureList()); this.body.createFixture(g); this.cacheWidth = this.regionWidth = h.toPixelUnits(a); this.cacheHeight = this.regionHeight = h.toPixelUnits(b) } a = this.regionWidth - c; d = this.regionHeight - d; this.setLocation(this.getX() + a / 2, this.getY() + d / 2) }, setLocation: function (a, b) { this.setX(a + this.regionWidth / 2); this.setY(b + this.regionHeight / 2) }, getWidth: function () { return this.regionWidth }, getHeight: function () { return this.regionHeight }, isMouseOver: function () { var a = (L.mouseX + h.cameraX) / h.SCALE, b = (L.mouseY + h.cameraY) / h.SCALE, c = this.getX(), d = this.getY(); return a >= c && b >= d && a < c + this.regionWidth ? b < d + this.regionHeight : !1 }, innerUpdate: function (a, b) { this.clearCollisionInfoList(); if (h.NO_PHYSICS) for (a = this.containedActors.iterator(); a.hasNext();) b = a.next(), b = h.engine.getActor(b), null == this.HITBOX || null == b || this.HITBOX.collide(b.HITBOX) || this.removeActor(b); for (; null != this.justAdded && 0 < this.justAdded.length;) if (b = w.__cast(this.justAdded.pop(), wb), 0 < this.whenActorEntered.length) for (this.whenActorEntered._dispatchIndex = 0; this.whenActorEntered._dispatchIndex < this.whenActorEntered.length;) { try { this.whenActorEntered.listeners[this.whenActorEntered._dispatchIndex](b) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenActorEntered._dispatchIndex } for (; null != this.justRemoved && 0 < this.justRemoved.length;) if (b = w.__cast(this.justRemoved.pop(), wb), 0 < this.whenActorExited.length) for (this.whenActorExited._dispatchIndex = 0; this.whenActorExited._dispatchIndex < this.whenActorExited.length;) { try { this.whenActorExited.listeners[this.whenActorExited._dispatchIndex](b) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenActorExited._dispatchIndex } if (null != this.whenMousedOver && 0 < this.whenMousedOver.length) if (this.isMouseOver()) { if (0 >= this.mouseState) { if (this.mouseState = 1, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenMousedOver._dispatchIndex } } else this.mouseState = 2; if (L.mousePressed) { if (this.mouseState = 3, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenMousedOver._dispatchIndex } } else if (L.mouseDown && (this.mouseState = 4, 0 < this.whenMousedOver.length)) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenMousedOver._dispatchIndex } if (L.mouseReleased && (this.mouseState = 5, 0 < this.whenMousedOver.length)) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenMousedOver._dispatchIndex } } else if (0 < this.mouseState) { if (this.mouseState = -1, 0 < this.whenMousedOver.length) for (this.whenMousedOver._dispatchIndex = 0; this.whenMousedOver._dispatchIndex < this.whenMousedOver.length;) { try { this.whenMousedOver.listeners[this.whenMousedOver._dispatchIndex](this.mouseState) } catch (c) { if (ra.lastError = c, "string" != typeof I.caught(c).unwrap()) throw c; } ++this.whenMousedOver._dispatchIndex } } else -1 == this.mouseState && (this.mouseState = 0) }, __class__: ud }); var il = function (a, b) { this.currW = this.currH = 0; this.ID = a; this.name = b }; k["com.stencyl.models.Scene"] = il; il.__name__ = "com.stencyl.models.Scene"; il.prototype = { ID: null, name: null, sceneWidth: null, sceneHeight: null, tileWidth: null, tileHeight: null, gravityX: null, gravityY: null, eventID: null, colorBackground: null, layers: null, actors: null, behaviorValues: null, atlases: null, retainsAtlases: null, wireframes: null, joints: null, regions: null, terrainRegions: null, animatedTiles: null, load: function () { var a = new Ug(nf.get(), !1, !0); a.readData(Fb.toBytes(Da.getBytes("assets/data/scene-" + this.ID + ".mbs"))); a = a.getRoot(); var b = a.getDepth(); this.sceneWidth = a.getWidth(); this.sceneHeight = a.getHeight(); this.tileWidth = a.getTileWidth(); this.tileHeight = a.getTileHeight(); this.gravityX = a.getGravityX(); this.gravityY = a.getGravityY(); this.animatedTiles = []; this.actors = this.readActors(a.getActorInstances()); this.behaviorValues = Be.readBehaviors(a.getSnippets()); var c = a.getEventSnippetID(); if (-1 < c) { var d = this.behaviorValues, e = new Hj(c, new xa); d.h["" + c] = e } this.joints = this.readJoints(a.getJoints()); this.regions = this.readRegions(a.getRegions()); this.terrainRegions = this.readTerrainRegions(a.getTerrainRegions()); this.wireframes = this.readWireframes(a.getTerrain()); c = Da.getBytes("assets/data/scene-" + this.ID + ".scn"); c.__endian = 0; b = this.readRawLayers(c, b); this.layers = this.readAllLayers(a.getLayers(), b); this.atlases = (this.retainsAtlases = a.getRetainAtlases()) ? [] : this.readAtlases(a.getAtlasMembers()) }, unload: function () { this.animatedTiles = this.terrainRegions = this.regions = this.joints = this.wireframes = this.layers = this.behaviorValues = this.actors = this.colorBackground = null }, readRegions: function (a) { for (var b = new eb, c = 0, d = a.length(); c < d;) { c++; var e = this.readRegion(a.getNextObject()); b.h[e.ID] = e } return b }, readRegion: function (a) { var b = a.getId(), c = a.getName(), d = a.getX(), e = a.getY(); this.shapeList = []; var g = a.getShape(); if (g instanceof wd) { a = this.currW = g.getWidth(); var f = this.currH = g.getHeight(); g = g.getPoints(); h.NO_PHYSICS ? b = new Ai(this.shapeList, b, c, d, e, 0, new ba(0, 0, a, f)) : (a = Ad.readPoints(g).slice(0), (new Fc(a)).decompose(q(this, this.addPolygonRegion)), b = new Ai(this.shapeList, b, c, d, e)) } else f = g.getRadius(), h.NO_PHYSICS ? b = new Ai(this.shapeList, b, c, d, e, 0, new ba(0, 0, 2 * f, 2 * f)) : (a = new Qc, a.m_radius = h.toPhysicalUnits(f), this.shapeList[0] = a, b = new Ai(this.shapeList, b, c, d, e)); return b }, shapeList: null, currW: null, currH: null, addPolygonRegion: function (a) { a = w.__cast(Ad.createPolygon("MbsPolyRegion", a.points, this.currW, this.currH), Jb); this.shapeList.push(a) }, addPolygonTerrain: function (a) { a = w.__cast(Ad.createPolygon("MbsPolyRegion", a.points, this.currW, this.currH), Jb); this.shapeList.push(a) }, readTerrainRegions: function (a) { for (var b = new eb, c = 0, d = a.length(); c < d;) { c++; var e = this.readTerrainRegion(a.getNextObject()); b.h[e.ID] = e } return b }, readTerrainRegion: function (a) { var b = a.getId(), c = a.getName(), d = a.getGroupID(), e = h.toPhysicalUnits(a.getX()), g = h.toPhysicalUnits(a.getY()), f = a.getColor(); this.shapeList = []; a = a.getShape(); if (a instanceof wd) this.currW = a.getWidth(), this.currH = a.getHeight(), a = Ad.readPoints(a.getPoints()).slice(0), (new Fc(a)).decompose(q(this, this.addPolygonTerrain)); else { var v = a.getRadius(); a = new Qc; a.m_radius = h.toPhysicalUnits(v); this.shapeList[0] = a } return new mo(this.shapeList, b, c, e, g, d, f) }, readJoints: function (a) { for (var b = new eb, c = 0, d = a.length(); c < d;) { c++; var e = this.readJoint(a.readObject()); b.h[e.ID] = e } return b }, readJoint: function (a) { var b = a.getId(), c = a.getActor1(), d = a.getActor2(), e = a.getCollide(); if (a instanceof Hd) { var g = new Mh; g.ID = b; g.actor1 = c; g.actor2 = d; g.localAnchorA = null; g.localAnchorB = null; g.collideConnected = e; g.dampingRatio = a.getDamping(); g.frequencyHz = a.getFrequency(); return g } return a instanceof lc ? (g = new Nh, g.ID = b, g.actor1 = c, g.actor2 = d, g.localAnchorA = null, g.localAnchorB = null, g.collideConnected = e, g.enableLimit = a.getLimit(), g.enableMotor = a.getMotor(), g.lowerAngle = a.getLower(), g.upperAngle = a.getUpper(), g.maxMotorTorque = a.getTorque(), g.motorSpeed = a.getSpeed(), g) : a instanceof Vb ? (g = new Oh, g.ID = b, g.actor1 = c, g.actor2 = d, g.localAnchorA = null, g.localAnchorB = null, g.collideConnected = e, g.enableLimit = a.getLimit(), g.enableMotor = a.getMotor(), g.lowerTranslation = a.getLower(), g.upperTranslation = a.getUpper(), g.maxMotorForce = a.getForce(), g.motorSpeed = a.getSpeed(), g.localAxisA.x = a.getX(), g.localAxisA.y = a.getY(), g) : null }, readAllLayers: function (a, b) { var c = new Fe(16); c.reuseIterator = !0; for (var d = 0, e = a.length(); d < e;) { d++; var g = a.readObject(); if (g instanceof je || g instanceof Fd) this.colorBackground = this.readColorBackground(g); else { var f = g, v = f.getId(), p = f.getName(), m = f.getOrder(), h = f.getScrollFactorX(), n = f.getScrollFactorY(), l = f.getOpacity() / 100; f = fl.get(f.getBlendmode()); if (g instanceof ke) { var k = b.mH; g = k.mHash[73856093 * v & k.mMask]; if (-1 == g) g = -2147483648; else if (k = k.mData, k[g] == v) g = k[g + 1]; else { var t = -2147483648; for (g = k[g + 2]; -1 != g;) { if (k[g] == v) { t = k[g + 1]; break } g = k[g + 2] } g = t } g = -2147483648 == g ? null : b.mVals[g]; null == g && (g = new re(v, this, Math.floor(this.sceneWidth / this.tileWidth) | 0, Math.floor(this.sceneHeight / this.tileHeight) | 0)); g.set_name(p); v = new Jc(v, p, m, h, n, l, f, g); c.set(v.ID, v) } else g instanceof Gd && (k = g, g = k.getResourceID(), k = k.getCustomScroll(), v = new ae(v, p, m, h, n, l, f, g, k), c.set(v.ID, v)) } } return c }, readColorBackground: function (a) { if (a instanceof je) { var b = a.getColor(); return new Nf(b) } return a instanceof Fd ? (b = a.getColor1(), a = a.getColor2(), new vi(b, a)) : null }, readRawLayers: function (a, b) { var c = new Fe(16); c.reuseIterator = !0; var d = []; if (null != a) { for (var e = 0, g = b; e < g;) { var f = e++; d[f] = a.readInt() } e = 0; for (g = b; e < g;) f = e++, b = this.readRawLayer(a, d[f]), c.set(b.layerID, b) } return c }, readRawLayer: function (a, b) { var c = Math.floor(this.sceneWidth / this.tileWidth) | 0, d = Math.floor(this.sceneHeight / this.tileHeight) | 0, e = a.readInt(); b -= 4; a.readInt(); b -= 4; d = new re(e, this, c, d); var g = e = 0; b = b / 8 | 0; var f = new jl(this.sceneWidth, this.sceneHeight, this.tileWidth, this.tileHeight); d.grid = f; for (var v = 0; v < b;) { v++; var p = a.readShort(), m = a.readShort(), h = a.readShort(), n = a.readShort(), l = null; -1 != m && (l = pc.get().resources.get(m)); 0 > p && (p = Math.abs(p + 1) | 0); for (m = 0; m < n;) { m++; if (null == l || 0 > h) d.setTileAt(e, g, null, !1); else { var k = l.tiles[h]; if (null == k) d.setTileAt(e, g, null, !1); else if (d.setTileAt(e, g, k, !1), d.autotileData[e][g] = p, 0 <= k.collisionID && f.setTile(g, e, !0), 1 < k.durations.length) { for (var t = !1, q = 0, u = this.animatedTiles; q < u.length && !(t = u[q], ++q, t = t == k);) ; t || this.animatedTiles.push(k) } } ++g; g >= c && (g = 0, ++e) } } return d }, readAtlases: function (a) { for (var b = [], c = 0, d = a.length(); c < d;) { c++; var e = a.readInt(); zb.get().atlases.h[e].allScenes || b.push(e) } return b }, readWireframes: function (a) { if (h.NO_PHYSICS) return []; for (var b = [], c = 0, d = a.length(); c < d;) { c++; var e = a.getNextObject(), g = e.getPosition(); g = new na(g.getX(), g.getY()); e = Ad.readPoints(e.getPoints()).slice(0); e = Ad.createPolygon("MbsWireframe", e); b.push(new no(g.x, g.y, e.h[1], e.h[2], e.h[0], null)) } return b }, readActors: function (a) { for (var b = new eb, c = 0, d = a.length(); c < d;) { c++; var e = this.readActorInstance(a.getNextObject()); null != e && (b.h[e.elementID] = e) } return b }, readActorInstance: function (a) { var b = a.getAid(), c = a.getX(), d = a.getY(), e = a.getScaleX(), g = a.getScaleY(), f = a.getZ(), v = a.getOrderInLayer(), p = a.getAngle() | 0, m = a.getGroupID(), h = a.getId(), n = a.getCustomized(), l = null; n && (l = Be.readBehaviors(a.getSnippets())); if (0 == e || 0 == g) g = e = 1; n || (l = null); if (null == pc.get().resources.get(h)) return null; a = new Yk(b, c, d, e, g, f, v, p, m, h, l, n); null != a.actorType && (a.groupID = a.actorType.groupID); return a }, getID: function () { return this.ID }, __class__: il }; var Ph = function (a, b, c, d, e, g, f, v) { od.call(this, a, b, -1); this.streaming = c; this.looping = d; this.panning = e; this.volume = g; this.ext = f; this.atlasID = v; this.ext = "ogg"; a = zb.get().atlases.h[v]; null != a && a.active && this.loadGraphics() }; k["com.stencyl.models.Sound"] = Ph; Ph.__name__ = "com.stencyl.models.Sound"; Ph.__super__ = od; Ph.prototype = u(od.prototype, { streaming: null, looping: null, panning: null, volume: null, ext: null, src: null, loadGraphics: function () { this.src = Da.getSound("assets/" + (this.streaming ? "music" : "sfx") + "/sound-" + this.ID + "." + this.ext, !1) }, unloadGraphics: function () { this.streaming || (null != this.src && (this.stopInstances(), this.src.close()), this.src = null) }, play: function (a, b) { null == b && (b = 0); this.streaming && null == this.src && (this.src = this.getStreamingSource()); return null == this.src ? null : this.src.play(b) }, loop: function (a, b) { null == b && (b = 0); this.streaming && null == this.src && (this.src = this.getStreamingSource()); return null == this.src ? null : this.src.play(b, 1E8) }, getStreamingSource: function () { return Da.getSound("assets/music/sound-" + this.ID + "." + this.ext, !1) }, stopInstances: function () { for (var a = 0; 32 > a;) { var b = a++; b = h.engine.channels[b]; b.currentSource == this.src && b.stopSound() } }, __class__: Ph }); var ac = function (a, b) { this.paused = !1; this.currentClip = this.currentSound = null; this.looping = !1; this.volume = 1; this.position = this.panning = 0; this.channelNum = b; this.engine = a; this.transform = new of; this.tweenVolume = new ce; this.tweenVolume.doOnUpdate(q(this, this.tweenUpdated)) }; k["com.stencyl.models.SoundChannel"] = ac; ac.__name__ = "com.stencyl.models.SoundChannel"; ac.resetStatics = function () { ac.muted = !1; ac.masterVolume = 1 }; ac.prototype = { currentSource: null, currentSound: null, currentClip: null, volume: null, panning: null, channelNum: null, looping: null, paused: null, position: null, engine: null, transform: null, tweenVolume: null, playSound: function (a, b) { null == b && (b = 0); null != this.currentSound && (this.currentSound.stop(), this.paused = !1); if (null != a) { a.volume = this.volume * ac.masterVolume; this.currentClip = a; this.currentSound = a.play(this.channelNum, b); if (null == this.currentSound) return this.currentClip = null; this.setVolume(this.volume); this.setPanning(this.panning); this.currentSound.addEventListener("soundComplete", q(this, this.stopped)) } null != a && (this.currentSource = a.src); this.looping = !1; return this.currentSound }, loopSound: function (a, b) { null == b && (b = 0); null != this.currentSound && this.currentSound.stop(); if (null != a) { a.volume = this.volume * ac.masterVolume; this.currentClip = a; this.currentSound = a.play(this.channelNum, b); if (null == this.currentSound) return this.currentClip = null; this.setVolume(this.volume); this.setPanning(this.panning); this.currentSound.addEventListener("soundComplete", q(this, this.looped)) } null != a && (this.currentSource = a.src); this.looping = !0; return this.currentSound }, setPause: function (a) { null != this.currentSound && (a ? (this.currentSound.removeEventListener("soundComplete", q(this, this.looped)), this.position = this.currentSound.get_position(), this.currentSound.stop(), this.paused = !0) : null != this.currentSource && this.paused && (this.currentSound = this.currentClip.play(this.channelNum, this.position), this.currentSound.set_soundTransform(this.transform), this.currentSound.addEventListener("soundComplete", q(this, this.stopped)), this.looping && this.currentSound.addEventListener("soundComplete", q(this, this.looped)), this.paused = !1)) }, looped: function (a) { null != this.currentSound && this.currentSound.removeEventListener("soundComplete", q(this, this.looped)); this.loopSound(this.currentClip) }, stopped: function (a) { null != this.currentSound && this.currentSound.removeEventListener("soundComplete", q(this, this.stopped)); h.engine.soundFinished(this.channelNum) }, stopSound: function () { null != this.currentSound && (this.currentSound.stop(), this.position = 0, this.currentSound = this.currentSource = null, this.paused = !1) }, tweenUpdated: function () { this.setVolume(this.tweenVolume.value) }, fadeInSound: function (a) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, 1, Wa.linear, 1E3 * a | 0) }, fadeOutSound: function (a) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, 0, Wa.linear, 1E3 * a | 0) }, fadeSound: function (a, b) { null != this.currentSound && this.tweenVolume.tween(this.transform.volume, b, Wa.linear, 1E3 * a | 0) }, setVolume: function (a) { this.volume = a; null != this.currentSound && (this.transform.volume = a * ac.masterVolume, this.currentSound.set_soundTransform(this.transform)) }, setPanning: function (a) { this.panning = a; null != this.currentSound && (this.transform.pan = a, this.currentSound.set_soundTransform(this.transform)) }, __class__: ac }; var Rg = function (a, b, c, d, e, g) { null == g && (g = 0); wb.call(this, a, -1, e, b, c, -1, 1, 1, null, null, null, null, !1, !0, !1, !1, d[0]); 0 == g && (c = b = a = 0, null == c && (c = 0), null == b && (b = 0), null == a && (a = 0), g = a << 16 | b << 8 | c); this.fillColor = g; this.alwaysSimulate = !0; this.isRegion = !1; this.isTerrainRegion = !0; this.copy = d[0]; this.body.setSleepingAllowed(!0); this.body.setAwake(!1); this.body.setIgnoreGravity(!0); if (d[0] instanceof Jb) { this.isCircle = !1; var f = new af; f.setIdentity(); var v = new fa; w.__cast(d[0], Jb).computeAABB(v, f); a = v.lowerBound.x; b = v.upperBound.x; c = v.lowerBound.y; g = v.upperBound.y; for (var p = 0, m = d.length; p < m;) { var l = p++, n = new Lf; n.isSensor = !1; n.userData = this; n.shape = d[l]; n.friction = 1; n.density = .1; n.restitution = 0; n.groupID = e; this.body.createFixture(n); w.__cast(d[l], Jb).computeAABB(v, f); a = Math.min(a, v.lowerBound.x); b = Math.max(b, v.upperBound.x); c = Math.min(c, v.lowerBound.y); g = Math.max(g, v.upperBound.y) } this.originalWidth = this.regionWidth = Math.round(h.toPixelUnits(Math.abs(a - b))); this.originalHeight = this.regionHeight = Math.round(h.toPixelUnits(Math.abs(c - g))) } else d[0] instanceof Qc && (this.isCircle = !0, this.originalWidth = this.regionWidth = h.toPixelUnits(2 * w.__cast(d[0], Qc).m_radius), this.originalHeight = this.regionHeight = h.toPixelUnits(2 * w.__cast(d[0], Qc).m_radius)) }; k["com.stencyl.models.Terrain"] = Rg; Rg.__name__ = "com.stencyl.models.Terrain"; Rg.__super__ = wb; Rg.prototype = u(wb.prototype, { isCircle: null, fillColor: null, copy: null, originalWidth: null, originalHeight: null, regionWidth: null, regionHeight: null, follow: function (a) { var b = a.realY + a.cacheHeight / 2; this.setX(a.realX + a.cacheWidth / 2); this.setY(b) }, resetSize: function () { this.setRegionSize(this.originalWidth, this.originalHeight) }, setRegionDiameter: function (a) { this.setRegionSize(a, a) }, setRegionSize: function (a, b) { var c = this.regionWidth, d = this.regionHeight; a = h.toPhysicalUnits(a); b = h.toPhysicalUnits(b); if (this.isCircle) { var e = new Qc; e.m_radius = a / 2 } else e = new Jb, e.setAsBox(a / 2, b / 2); var g = new Lf; g.isSensor = !0; g.userData = this; g.shape = e; if (null != this.body && null != this.body.getFixtureList()) { for (; 0 < this.body.m_fixtureCount;) this.body.DestroyFixture(this.body.getFixtureList()); this.body.createFixture(g); this.regionWidth = h.toPixelUnits(a); this.regionHeight = h.toPixelUnits(b) } a = this.regionWidth - c; d = this.regionHeight - d; this.setLocation(this.getX() + a / 2, this.getY() + d / 2) }, setLocation: function (a, b) { this.setX(a + this.regionWidth / 2); this.setY(b + this.regionHeight / 2) }, getWidth: function () { return this.regionWidth }, getHeight: function () { return this.regionHeight }, getFillColor: function () { return this.fillColor }, __class__: Rg }); var io = function () { this.xy = new Of; this.angle = new ce; this.alpha = new ce; this.realScaleXY = new Of }; k["com.stencyl.models.actor.ActorTweenProperties"] = io; io.__name__ = "com.stencyl.models.actor.ActorTweenProperties"; io.prototype = { xy: null, angle: null, alpha: null, realScaleXY: null, pause: function () { this.xy.paused = !0; this.angle.paused = !0; this.alpha.paused = !0; this.realScaleXY.paused = !0 }, unpause: function () { this.xy.paused = !1; this.angle.paused = !1; this.alpha.paused = !1; this.realScaleXY.paused = !1 }, cancel: function () { this.xy.active && nb.cancel(this.xy); this.angle.active && nb.cancel(this.angle); this.alpha.active && nb.cancel(this.alpha); this.realScaleXY.active && nb.cancel(this.realScaleXY) }, __class__: io }; var gg = function (a, b, c, d, e, g, f, v, p, m, h) { od.call(this, a, c, b); this.groupID = d; this.spriteID = e; this.behaviorValues = g; this.bodyDef = f; this.physicsMode = v; this.autoScale = p; this.pausable = m; this.ignoreGravity = h }; k["com.stencyl.models.actor.ActorType"] = gg; gg.__name__ = "com.stencyl.models.actor.ActorType"; gg.__super__ = od; gg.prototype = u(od.prototype, { groupID: null, spriteID: null, behaviorValues: null, bodyDef: null, physicsMode: null, autoScale: null, pausable: null, ignoreGravity: null, toString: function () { return this.name }, loadGraphics: function () { pc.get().resources.get(this.spriteID).loadGraphics() }, unloadGraphics: function () { pc.get().resources.get(this.spriteID).unloadGraphics() }, __class__: gg }); var xe = function (a, b, c, d, e, g, f, v, p, m, h, n, l, k, t) { this.sharedTimer = this.sharedFrameIndex = 0; this.animID = a; this.animName = b; this.parent = c; this.simpleShapes = d; this.physicsShapes = e; this.looping = g; this.sync = f; this.durations = n; null == xe.UNLOADED && (xe.UNLOADED = new ka(1, 1)); a = []; for (b = 0; b < l;) b++, a.push(xe.UNLOADED); this.frames = a; this.frameWidth = v / k | 0; this.frameHeight = p / t | 0; this.imgWidth = v; this.imgHeight = p; this.frameCount = l; this.framesAcross = k; this.framesDown = t; this.originX = m; this.originY = h; null == c ? this.frames = [xe.UNLOADED] : (c = zb.get().atlases.h[c.atlasID], null != c && c.active && this.loadGraphics(), 1 < l && g && xe.allAnimations.push(this)) }; k["com.stencyl.models.actor.Animation"] = xe; xe.__name__ = "com.stencyl.models.actor.Animation"; xe.resetStatics = function () { xe.allAnimations = [] }; xe.updateAll = function (a) { for (var b = 0, c = xe.allAnimations; b < c.length;) { var d = c[b]; ++b; d.sharedTimer += a; 1 < d.frameCount && d.sharedTimer > d.durations[d.sharedFrameIndex] && (d.sharedTimer -= d.durations[d.sharedFrameIndex], d.sharedFrameIndex++, d.sharedFrameIndex >= d.frameCount && (d.looping ? d.sharedFrameIndex = 0 : d.sharedFrameIndex--)) } }; xe.prototype = { animID: null, animName: null, parent: null, simpleShapes: null, physicsShapes: null, looping: null, sync: null, durations: null, frames: null, frameWidth: null, frameHeight: null, originX: null, originY: null, sharedTimer: null, sharedFrameIndex: null, imgWidth: null, imgHeight: null, frameCount: null, framesAcross: null, framesDown: null, graphicsLoaded: null, loadGraphics: function () { if (!this.graphicsLoaded) { var a = Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/sprite-" + this.parent.ID + "-" + this.animID + ".png", !1); null == a.rect && (a = null); if (null == a) { var b = [], c = 0; for (a = this.frameCount; c < a;) c++, b.push(xe.UNLOADED); this.frames = b } else { if (1 == this.frameCount) this.frames[0] = a; else { var d = this.frameWidth * h.SCALE | 0, e = this.frameHeight * h.SCALE | 0, g = new na(0, 0); b = 0; for (c = this.frameCount; b < c;) { var f = b++; var v = new ba(f % this.framesAcross * d, Math.floor(f / this.framesAcross) * e, d, e), p = new ka(d, e, !0, 0); p.copyPixels(a, v, g); this.frames[f] = p } a.dispose() } if (aa.disposeImages && null != this.parent && !this.parent.readableImages) for (b = 0, c = this.frames; b < c.length;) a = c[b], ++b, ld.uploadTexture(a, !0); this.graphicsLoaded = !0 } } }, unloadGraphics: function () { if (this.graphicsLoaded) { for (var a = 0, b = this.frameCount; a < b;) { var c = a++; this.frames[c].readable && this.frames[c].dispose(); this.frames[c] = xe.UNLOADED } this.graphicsLoaded = !1 } }, checkImageReadable: function () { return this.frames[0].readable ? !0 : !1 }, update: function (a) { this.sharedTimer += a; 1 < this.frameCount && this.sharedTimer > this.durations[this.sharedFrameIndex] && (this.sharedTimer -= this.durations[this.sharedFrameIndex], this.sharedFrameIndex++, this.sharedFrameIndex >= this.frameCount && (this.looping ? this.sharedFrameIndex = 0 : this.sharedFrameIndex--)) }, __class__: xe }; var Ac = function () { this.points = []; this.bounds = new ba; this.clear() }; k["com.stencyl.models.actor.Collision"] = Ac; Ac.__name__ = "com.stencyl.models.actor.Collision"; Ac.resetStatics = function () { Ac.recycledCollisions = []; Ac.collisionResponses = new eb }; Ac.addResponse = function (a, b, c) { var d = -1, e = -1; a instanceof gg ? d = a.groupID : a instanceof df && (d = a.ID); b instanceof gg ? e = b.groupID : b instanceof df && (e = b.ID); null == Ac.collisionResponses.h[d] && (a = Ac.collisionResponses, b = new eb, a.h[d] = b); null == Ac.collisionResponses.h[e] && (a = Ac.collisionResponses, b = new eb, a.h[e] = b); Ac.collisionResponses.h[d].h[e] = c; Ac.collisionResponses.h[e].h[d] = c }; Ac.preSolve = function (a, b) { b = a.getFixtureA().getBody().groupID; var c = a.getFixtureB().getBody().groupID; null != Ac.collisionResponses.h[b] && "sensor" == Ac.collisionResponses.h[b].h[c] && a.setEnabled(!1) }; Ac.get = function () { return 0 < Ac.recycledCollisions.length ? Ac.recycledCollisions.pop() : new Ac }; Ac.recycle = function (a) { a.clear(); Ac.recycledCollisions.push(a) }; Ac.prototype = { thisFromTop: null, thisFromLeft: null, thisFromBottom: null, thisFromRight: null, thisCollidedWithActor: null, thisCollidedWithTile: null, thisCollidedWithSensor: null, thisCollidedWithTerrain: null, otherFromTop: null, otherFromLeft: null, otherFromBottom: null, otherFromRight: null, otherCollidedWithActor: null, otherCollidedWithTile: null, otherCollidedWithSensor: null, otherCollidedWithTerrain: null, points: null, thisActor: null, otherActor: null, thisShape: null, otherShape: null, actorA: null, actorB: null, maskA: null, maskB: null, groupA: null, groupB: null, bounds: null, useBounds: null, remove: null, solidCollision: null, linkedCollision: null, clear: function () { for (; 0 < this.points.length;) this.points.pop(); this.remove = this.solidCollision = this.useBounds = this.otherCollidedWithTerrain = this.otherCollidedWithSensor = this.otherCollidedWithTile = this.otherCollidedWithActor = this.otherFromRight = this.otherFromBottom = this.otherFromLeft = this.otherFromTop = this.thisCollidedWithTerrain = this.thisCollidedWithSensor = this.thisCollidedWithTile = this.thisCollidedWithActor = this.thisFromRight = this.thisFromBottom = this.thisFromLeft = this.thisFromTop = !1; this.linkedCollision = this.maskA = this.maskB = this.actorB = this.actorA = this.otherShape = this.thisShape = this.otherActor = this.thisActor = null; this.bounds.setEmpty() }, switchData: function (a) { if (null == a) return null; a.thisActor = this.otherActor; a.thisShape = this.otherShape; a.thisFromTop = this.otherFromTop; a.thisFromLeft = this.otherFromLeft; a.thisFromBottom = this.otherFromBottom; a.thisFromRight = this.otherFromRight; a.thisCollidedWithActor = this.otherCollidedWithActor; a.thisCollidedWithTile = this.otherCollidedWithTile; a.thisCollidedWithSensor = this.otherCollidedWithSensor; a.thisCollidedWithTerrain = this.otherCollidedWithTerrain; a.otherActor = this.thisActor; a.otherShape = this.thisShape; a.otherFromTop = this.thisFromTop; a.otherFromLeft = this.thisFromLeft; a.otherFromBottom = this.thisFromBottom; a.otherFromRight = this.thisFromRight; a.otherCollidedWithActor = this.thisCollidedWithActor; a.otherCollidedWithTile = this.thisCollidedWithTile; a.otherCollidedWithSensor = this.thisCollidedWithSensor; a.otherCollidedWithTerrain = this.thisCollidedWithTerrain; a.actorA = this.actorA; a.actorB = this.actorB; a.points = this.points; a.useBounds = this.useBounds; a.maskA = this.maskA; a.maskB = this.maskB; a.solidCollision = this.solidCollision; a.groupA = this.groupA; a.groupB = this.groupB; a.linkedCollision = this; return this.linkedCollision = a }, __class__: Ac }; var Ud = function (a, b, c, d) { this.x = a; this.y = b; this.normalX = c; this.normalY = d }; k["com.stencyl.models.actor.CollisionPoint"] = Ud; Ud.__name__ = "com.stencyl.models.actor.CollisionPoint"; Ud.resetStatics = function () { Ud.freedCollisionPoints = [] }; Ud.get = function (a, b, c, d) { if (0 < Ud.freedCollisionPoints.length) { var e = Ud.freedCollisionPoints.pop(); e.x = a; e.y = b; e.normalX = c; e.normalY = d; return e } return new Ud(a, b, c, d) }; Ud.free = function (a) { Ud.freedCollisionPoints.push(a) }; Ud.prototype = {x: null, y: null, normalX: null, normalY: null, __class__: Ud}; var df = function (a, b) { this.name = b; this.ID = a; this.sID = "[Group " + a + "," + b + "]"; this.list = [] }; k["com.stencyl.models.actor.Group"] = df; df.__name__ = "com.stencyl.models.actor.Group"; df.prototype = { list: null, name: null, ID: null, sID: null, addChild: function (a) { this.list.push(a) }, removeChild: function (a) { }, toString: function () { return this.sID }, __class__: df }; var si = function (a, b, c, d, e) { od.call(this, a, c, b); this.defaultAnimation = d; this.readableImages = e; this.animations = new eb }; k["com.stencyl.models.actor.Sprite"] = si; si.__name__ = "com.stencyl.models.actor.Sprite"; si.__super__ = od; si.prototype = u(od.prototype, { defaultAnimation: null, animations: null, readableImages: null, loadGraphics: function () { for (var a = this.animations.iterator(); a.hasNext();) a.next().loadGraphics() }, unloadGraphics: function () { for (var a = this.animations.iterator(); a.hasNext();) a.next().unloadGraphics() }, reloadGraphics: function (a) { -1 == a ? (this.unloadGraphics(), this.loadGraphics()) : (this.animations.h[a].unloadGraphics(), this.animations.h[a].loadGraphics()); for (var b = h.engine.allActors.iterator(); b.hasNext();) { var c = b.next(); null == c || c.dead || c.recycled || c.type.spriteID == this.ID && c.reloadAnimationGraphics(a) } }, get_width: function () { var a = this.animations.h[this.defaultAnimation]; return a.imgWidth / a.framesAcross | 0 }, get_height: function () { var a = this.animations.h[this.defaultAnimation]; return a.imgHeight / a.framesDown | 0 }, __class__: si, __properties__: {get_height: "get_height", get_width: "get_width"} }); var Nf = function (a) { od.call(this, 0, "Color Background", -1); this.bgColor = a; a == Nf.WHITE && (this.bgColor = 16777215) }; k["com.stencyl.models.background.ColorBackground"] = Nf; Nf.__name__ = "com.stencyl.models.background.ColorBackground"; Nf.__interfaces__ = [Sh]; Nf.__super__ = od; Nf.prototype = u(od.prototype, { bgColor: null, update: function () { }, draw: function (a, b, c, d, e) { this.bgColor != Nf.TRANSPARENT && (a.clear(), a.beginFill(this.bgColor), a.drawRect(0, 0, d, e), a.endFill(), a.drawCircle(1, 1, 1)) }, __class__: Nf }); var vi = function (a, b) { od.call(this, 0, "Gradient Background", -1); this.topColor = a; this.bottomColor = b }; k["com.stencyl.models.background.GradientBackground"] = vi; vi.__name__ = "com.stencyl.models.background.GradientBackground"; vi.__interfaces__ = [Sh]; vi.__super__ = od; vi.prototype = u(od.prototype, { topColor: null, bottomColor: null, update: function () { }, draw: function (a, b, c, d, e) { b = [this.topColor, this.bottomColor]; c = new Ja; c.createGradientBox(d, e, Math.PI / 2, 0, 0); a.clear(); var g = new ka(1, 1); a.beginBitmapFill(g); a.endFill(); a.beginGradientFill(0, b, [100, 100], [0, 255], c, 0); a.drawRect(0, 0, d, e); a.endFill() }, __class__: vi }); var Dg = function (a, b, c, d, e, g, f) { od.call(this, a, c, b); this.parallaxX = e; this.parallaxY = g; this.durations = d; this.repeats = f; this.currFrame = this.currTime = 0; this.isAtlasActive() && this.loadGraphics(); this.repeated = !1 }; k["com.stencyl.models.background.ImageBackground"] = Dg; Dg.__name__ = "com.stencyl.models.background.ImageBackground"; Dg.__interfaces__ = [Sh]; Dg.__super__ = od; Dg.prototype = u(od.prototype, { currFrame: null, currTime: null, img: null, frames: null, durations: null, parallaxX: null, parallaxY: null, repeats: null, repeated: null, graphicsLoaded: null, update: function () { }, draw: function (a, b, c, d, e) { }, drawRepeated: function (a, b, c) { a = this.img.width; var d = this.img.height, e = new ba(0, 0, a, d); if (!(a >= b && d >= c)) { a < b && (b += (a | 0) - b % (a | 0)); d < c && (c += (d | 0) - c % (d | 0)); var g = new ka(Math.max(b, a) | 0, Math.max(c, d) | 0), f = 0; for (c = (c / d | 0) + 1; f < c;) for (var v = f++, p = 0, m = (b / a | 0) + 1; p < m;) { var h = p++; g.copyPixels(this.img, e, new na(h * a, v * d)) } this.img = g } this.repeated = !0 }, loadGraphics: function () { if (!this.graphicsLoaded) { var a = [], b = this.durations.length; if (0 < b) for (var c = 0; c < b;) { var d = c++; a.push(Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/background-" + this.ID + "-" + d + ".png", !1)) } else a.push(Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/background-" + this.ID + "-0.png", !1)); this.frames = []; c = 0; for (b = a.length; c < b;) d = c++, this.repeats ? (this.img = a[d], this.drawRepeated(null, h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0), this.frames.push(this.img)) : this.frames.push(a[d]); this.img = this.frames[0]; this.graphicsLoaded = !0 } }, unloadGraphics: function () { if (this.graphicsLoaded) { this.img = new ka(1, 1); this.currFrame = 0; this.repeated = !1; this.frames = []; for (var a = 0, b = this.durations; a < b.length;) ++a, this.frames.push(this.img); this.graphicsLoaded = !1 } }, reloadGraphics: function (a) { od.prototype.reloadGraphics.call(this, a); a = 0; for (var b = h.engine.backgroundLayers; a < b.length;) { var c = b[a]; ++a; c.model == this && c.reload(c.resourceID) } }, __class__: Dg }); var xh = function (a, b, c, d, e, g, f, v, p) { Dg.call(this, a, b, c, d, e, g, f); this.xVelocity = v; this.yVelocity = p }; k["com.stencyl.models.background.ScrollingBackground"] = xh; xh.__name__ = "com.stencyl.models.background.ScrollingBackground"; xh.__interfaces__ = [Sh]; xh.__super__ = Dg; xh.prototype = u(Dg.prototype, { xVelocity: null, yVelocity: null, update: function () { }, draw: function (a, b, c, d, e) { }, __class__: xh }); var Ff = function () { this.reset() }; k["com.stencyl.models.collision.CollisionInfo"] = Ff; Ff.__name__ = "com.stencyl.models.collision.CollisionInfo"; Ff.resetStatics = function () { Ff.infoArray = [] }; Ff.getCollisionInfo = function () { return 0 < Ff.infoArray.length ? Ff.infoArray.pop() : new Ff }; Ff.recycle = function (a) { Ff.infoArray.push(a) }; Ff.prototype = { max: null, min: null, maskA: null, maskB: null, solidCollision: null, reset: function () { this.max = this.min = 0; this.maskA = this.maskB = null; this.solidCollision = !0 }, __class__: Ff }; var mg = function () { this.collideTypes = []; this.solid = !0; this._class = w.getClass(this).__name__; var a = this._check = new xa, b = mg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = zi.__name__; a.h[b] = q(this, this.collideMasklist); this.lastBounds = new ba; this.lastColID = -1 }; k["com.stencyl.models.collision.Mask"] = mg; mg.__name__ = "com.stencyl.models.collision.Mask"; mg.prototype = { parent: null, groupID: null, list: null, lastBounds: null, lastCheckedMask: null, lastColID: null, solid: null, collideTypes: null, collide: function (a) { if (null == this.parent) throw I.thrown("Mask must be attached to a parent Entity"); var b = this._check.h[a._class]; if (null != b) return b(a); b = a._check.h[this._class]; return null != b ? b(this) : !1 }, collideMask: function (a) { return this.parent.colX + this.parent.cacheWidth > a.parent.colX && this.parent.colY + this.parent.cacheHeight > a.parent.colY && this.parent.colX < a.parent.colX + a.parent.cacheWidth && this.parent.colY < a.parent.colY + a.parent.cacheHeight ? (this.lastBounds.x = this.parent.colX, this.lastBounds.y = this.parent.colY, this.lastBounds.width = this.parent.cacheWidth, this.lastBounds.height = this.parent.cacheHeight, this.lastCheckedMask = this, !0) : !1 }, collideMasklist: function (a) { return a.collide(this) }, assignTo: function (a) { this.parent = a; null != a && this.update() }, debugDraw: function (a, b, c) { }, update: function () { }, projectMask: function (a, b) { var c = -9999999999, d = 9999999999, e = -this.parent.currOffset.x * a.x - this.parent.currOffset.y * a.y; e < d && (d = e); e > c && (c = e); e = (-this.parent.currOffset.x + this.parent.cacheWidth) * a.x - this.parent.currOffset.y * a.y; e < d && (d = e); e > c && (c = e); e = -this.parent.currOffset.x * a.x + (-this.parent.currOffset.y + this.parent.cacheHeight) * a.y; e < d && (d = e); e > c && (c = e); e = (-this.parent.currOffset.x + this.parent.cacheWidth) * a.x + (-this.parent.currOffset.y + this.parent.cacheHeight) * a.y; e < d && (d = e); e > c && (c = e); b.min = d; b.max = c }, _class: null, _check: null, __class__: mg }; var nd = function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = !0); null == d && (d = 0); null == c && (c = 0); null == b && (b = 1); null == a && (a = 1); mg.call(this); this.lastBounds.width = this._width = a; this.lastBounds.height = this._height = b; this._x = c; this._y = d; this.solid = e; this.groupID = g; this._check.h[nd.__name__] = q(this, this.collideHitbox) }; k["com.stencyl.models.collision.Hitbox"] = nd; nd.__name__ = "com.stencyl.models.collision.Hitbox"; nd.__super__ = mg; nd.prototype = u(mg.prototype, { clone: function () { return new nd(this._width, this._height, this._x, this._y, this.solid, this.groupID) }, collideMask: function (a) { return this.parent.colX + this._x + this._width > a.parent.colX && this.parent.colY + this._y + this._height > a.parent.colY && this.parent.colX + this._x < a.parent.colX + a.parent.cacheWidth && this.parent.colY + this._y < a.parent.colY + a.parent.cacheHeight ? (this.lastBounds.x = this.parent.colX + this.parent.cacheWidth, this.lastBounds.y = this.parent.colY + this.parent.cacheHeight, this.lastBounds.width = this.parent.cacheWidth, this.lastBounds.height = this.parent.cacheHeight, this.lastCheckedMask = this, !0) : !1 }, collideHitbox: function (a) { return this.parent.colX + this._x + this._width > a.parent.colX + a._x && this.parent.colY + this._y + this._height > a.parent.colY + a._y && this.parent.colX + this._x < a.parent.colX + a._x + a._width && this.parent.colY + this._y < a.parent.colY + a._y + a._height ? (this.lastBounds.x = this.parent.colX + this._x, this.lastBounds.y = this.parent.colY + this._y, this.lastBounds.width = this._width, this.lastBounds.height = this._height, this.lastCheckedMask = this, !0) : !1 }, get_x: function () { return this._x }, set_x: function (a) { if (this._x == a) return a; this._x = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._x }, get_y: function () { return this._y }, set_y: function (a) { if (this._y == a) return a; this._y = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._y }, get_width: function () { return this._width }, set_width: function (a) { if (this._width == a) return a; this._width = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._width }, get_height: function () { return this._height }, set_height: function (a) { if (this._height == a) return a; this._height = a; null != this.list ? this.list.update() : null != this.parent && this.update(); return this._height }, update: function () { null != this.parent && null != this.list && this.list.update() }, _width: null, _height: null, _x: null, _y: null, __class__: nd, __properties__: { set_height: "set_height", get_height: "get_height", set_width: "set_width", get_width: "get_width", set_y: "set_y", get_y: "get_y", set_x: "set_x", get_x: "get_x" } }); var jl = function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = 0); nd.call(this); if (0 == a || 0 == b || 0 == c || 0 == d) throw I.thrown("Illegal Grid, sizes cannot be 0."); this._rect = X.rect; this._point = X.point; this._point2 = X.point2; this.columns = a / c | 0; this.rows = b / d | 0; this._tile = new ba(0, 0, c, d); this._x = e; this._y = g; this._width = a; this._height = b; this.usePositions = !1; this.groupID = 1; a = this._check; b = mg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = nd.__name__; a.h[b] = q(this, this.collideHitbox); a = this._check; b = Kj.__name__; a.h[b] = q(this, this.collidePixelmask); this.data = []; a = 0; for (b = this.rows; a < b;) a++, this.data.push([]) }; k["com.stencyl.models.collision.Grid"] = jl; jl.__name__ = "com.stencyl.models.collision.Grid"; jl.__super__ = nd; jl.prototype = u(nd.prototype, { usePositions: null, setTile: function (a, b, c) { null == c && (c = !0); null == b && (b = 0); null == a && (a = 0); 0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1 || (this.usePositions && (a = a / this._tile.width | 0, b = b / this._tile.height | 0), this.data[b][a] = c) }, clearTile: function (a, b) { null == b && (b = 0); null == a && (a = 0); this.setTile(a, b, !1) }, checkTile: function (a, b) { return 0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1 ? !1 : !0 }, getTile: function (a, b) { null == b && (b = 0); null == a && (a = 0); if (0 > a || a > this.columns - 1 || 0 > b || b > this.rows - 1) return !1; this.usePositions && (a = a / this._tile.width | 0, b = b / this._tile.height | 0); return this.data[b][a] }, setRect: function (a, b, c, d, e) { null == e && (e = !0); null == d && (d = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); this.usePositions && (a = a / this._tile.width | 0, b = b / this._tile.height | 0, c = c / this._tile.width | 0, d = d / this._tile.height | 0); var g = b; for (b += d; g < b;) { d = g++; for (var f = a, v = a + c; f < v;) { var p = f++; this.setTile(p, d, e) } } }, clearRect: function (a, b, c, d) { null == d && (d = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); this.setRect(a, b, c, d, !1) }, get_tileWidth: function () { return this._tile.width | 0 }, get_tileHeight: function () { return this._tile.height | 0 }, columns: null, rows: null, data: null, collideMask: function (a) { this._rect.x = a.parent.colX - this.parent.colX; this._rect.y = a.parent.colY - this.parent.colY; var b = ((this._rect.x + a.parent.cacheWidth - 1) / this._tile.width | 0) + 1, c = this._rect.x / this._tile.width | 0, d = this._rect.y / this._tile.height | 0; for (a = ((this._rect.y + a.parent.cacheHeight - 1) / this._tile.height | 0) + 1; d < a;) for (var e = d++, g = c, f = b; g < f;) { var v = g++; if (this.getTile(v, e)) return !0 } return !1 }, collideHitbox: function (a) { this._rect.x = a.parent.colX + a._x; this._rect.y = a.parent.colY + a._y; for (var b = ((this._rect.x + a._width - 1) / this._tile.width | 0) + 1, c = this._rect.x / this._tile.width | 0, d = this._rect.y / this._tile.height | 0, e = ((this._rect.y + a._height - 1) / this._tile.height | 0) + 1; d < e;) for (var g = d++, f = c, v = b; f < v;) { var p = f++; if (this.getTile(p, g)) return this.lastBounds.x = p * this._tile.width, this.lastBounds.y = g * this._tile.height, this.lastBounds.width = this._tile.width, this.lastBounds.height = this._tile.height, a.lastColID = this.groupID, !0 } return !1 }, collidePixelmask: function (a) { return !1 }, squareProjection: function (a, b) { a.x < a.y ? (b.x = a.x, b.y = a.y) : (b.y = a.x, b.x = a.y) }, _tile: null, _rect: null, _point: null, _point2: null, __class__: jl, __properties__: u(nd.prototype.__properties__, { get_tileHeight: "get_tileHeight", get_tileWidth: "get_tileWidth" }) }); var zi = function (a, b) { this._count = 0; nd.call(this); this._masks = []; this._temp = []; this.solid = !1; this.parent = b; for (var c = 0; c < a.length;) b = a[c], ++c, this.add(b) }; k["com.stencyl.models.collision.Masklist"] = zi; zi.__name__ = "com.stencyl.models.collision.Masklist"; zi.__super__ = nd; zi.prototype = u(nd.prototype, { collide: function (a) { for (var b, c = 0, d = this._masks; c < d.length;) if (b = d[c], ++c, b.groupID = -1E3 == b.groupID ? b.parent.groupID : b.groupID, (a instanceof zi || -2 == a.groupID || zb.collisionMap[b.groupID][a.groupID]) && b.collide(a)) return this.lastBounds.x = b.lastBounds.x, this.lastBounds.y = b.lastBounds.y, this.lastBounds.width = b.lastBounds.width, this.lastBounds.height = b.lastBounds.height, this.lastCheckedMask = b, this.lastColID = a.groupID, !0; return !1 }, collideMasklist: function (a) { for (var b, c, d = 0, e = this._masks; d < e.length;) { b = e[d]; ++d; b.groupID = -1E3 == b.groupID ? b.parent.groupID : b.groupID; for (var g = 0, f = a._masks; g < f.length;) if (c = f[g], ++g, c.groupID = -1E3 == c.groupID ? c.parent.groupID : c.groupID, b.collide(c)) return a.lastBounds.x = c.lastBounds.x, a.lastBounds.y = c.lastBounds.y, a.lastBounds.width = c.lastBounds.width, a.lastBounds.height = c.lastBounds.height, a.lastCheckedMask = c, a.lastColID = b.groupID, !0 } return !0 }, add: function (a) { this._masks[this._count++] = a; a.list = this; a.parent = this.parent; this.solid = this.solid || a.solid; this.update(); a.groupID = -1E3 == a.groupID ? this.parent.groupID : a.groupID; var b = zb.get().groupsCollidesWith.h[a.groupID]; if (null != b) for (var c = 0; c < b.length;) { var d = b[c]; ++c; X.contains(this.collideTypes, d) || this.collideTypes.push(d) } return a }, remove: function (a) { if (0 > ia.indexOf(this._masks, a)) return a; this._temp.length = 0; for (var b, c = 0, d = this._masks; c < d.length;) b = d[c], ++c, b == a ? (a.list = null, a.parent = null, this._count--, this.update()) : this._temp[this._temp.length] = b; b = this._masks; this._masks = this._temp; this._temp = b; return a }, removeAt: function (a) { null == a && (a = 0); this._temp.length = 0; var b = this._masks.length; for (a %= b; 0 < b--;) b == a ? (this._masks[a].list = null, this._count--, this.update()) : this._temp[this._temp.length] = this._masks[a]; a = this._masks; this._masks = this._temp; this._temp = a }, removeAll: function () { for (var a, b = 0, c = this._masks; b < c.length;) a = c[b], ++b, a.list = null; this._count = 0; this._masks.length = 0; this._temp.length = 0; this.update() }, getMask: function (a) { null == a && (a = 0); return this._masks[a % this._masks.length] }, assignTo: function (a) { for (var b = 0, c = this._masks; b < c.length;) { var d = c[b]; ++b; d.parent = a } nd.prototype.assignTo.call(this, a) }, update: function () { for (var a = 1E5, b = 1E5, c = 0, d = 0, e, g = this._count; 0 < g--;) e = w.__cast(this._masks[g], nd), null != e && (e._x < b && (b = e._x), e._y < a && (a = e._y), e._x + e._width > c && (c = e._x + e._width), e._y + e._height > d && (d = e._y + e._height)); this._x = b; this._y = a; this._width = c - b; this._height = d - a; nd.prototype.update.call(this) }, count: null, get_count: function () { return this._count }, _masks: null, _temp: null, _count: null, __class__: zi, __properties__: u(nd.prototype.__properties__, {get_count: "get_count"}) }); var Kj = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); nd.call(this); a instanceof ka && (this._data = a); if (null == this._data) throw I.thrown("Invalid Pixelmask source image."); this.threshold = 1; this._rect = X.rect; this._point = X.point; this._point2 = X.point2; this._width = this.get_data().width; this._height = this.get_data().height; this._x = b; this._y = c; a = this._check; b = mg.__name__; a.h[b] = q(this, this.collideMask); a = this._check; b = Kj.__name__; a.h[b] = q(this, this.collidePixelmask); a = this._check; b = nd.__name__; a.h[b] = q(this, this.collideHitbox) }; k["com.stencyl.models.collision.Pixelmask"] = Kj; Kj.__name__ = "com.stencyl.models.collision.Pixelmask"; Kj.__super__ = nd; Kj.prototype = u(nd.prototype, { threshold: null, collideMask: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._rect.x = a.parent.colX; this._rect.y = a.parent.colY; this._rect.width = a.parent.cacheWidth; this._rect.height = a.parent.cacheHeight; return !1 }, collideHitbox: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._rect.x = a.parent.colX + a._x; this._rect.y = a.parent.colY + a._y; this._rect.width = a._width; this._rect.height = a._height; return !1 }, collidePixelmask: function (a) { this._point.x = this.parent.colX + this._x; this._point.y = this.parent.colY + this._y; this._point2.x = a.parent.colX + a._x; this._point2.y = a.parent.colY + a._y; return !1 }, get_data: function () { return this._data }, set_data: function (a) { this._data = a; this._width = a.width; this._height = a.height; this.update(); return this._data }, _data: null, _rect: null, _point: null, _point2: null, __class__: Kj, __properties__: u(nd.prototype.__properties__, {set_data: "set_data", get_data: "get_data"}) }); var Yk = function (a, b, c, d, e, g, f, v, p, m, h, n) { this.elementID = a; this.x = b; this.y = c; this.scaleX = d; this.scaleY = e; this.layerID = g; this.orderInLayer = f; this.angle = v; this.groupID = p; this.actorID = m; this.behaviorValues = h; this.isCustomized = n; this.actorType = w.__cast(pc.get().resources.get(m), gg) }; k["com.stencyl.models.scene.ActorInstance"] = Yk; Yk.__name__ = "com.stencyl.models.scene.ActorInstance"; Yk.prototype = { elementID: null, x: null, y: null, scaleX: null, scaleY: null, layerID: null, orderInLayer: null, angle: null, groupID: null, actorID: null, isCustomized: null, behaviorValues: null, actorType: null, __class__: Yk }; var Ne = function () { }; k["com.stencyl.models.scene.Autotile"] = Ne; Ne.__name__ = "com.stencyl.models.scene.Autotile"; var lo = function (a, b, c, d, e) { this.animIndex = []; this.defaultAnimationIndex = 0; this.name = a; this.id = b; this.tilesAcross = c; this.tilesDown = d; a = 0; b = new Oc; c = 0; for (d = 256; c < d;) { var g = c++; null != b.h.__keys__[e[g].__id__] ? this.animIndex[g] = b.h[e[g].__id__] : (this.animIndex[g] = a, b.set(e[g], a), ++a) } this.defaultAnimationIndex = this.animIndex[255]; this.autotileArrayLength = a; this.animCorners = []; c = 0; for (d = 256; c < d;) g = c++, this.animCorners[this.animIndex[g]] = e[g] }; k["com.stencyl.models.scene.AutotileFormat"] = lo; lo.__name__ = "com.stencyl.models.scene.AutotileFormat"; lo.prototype = { autotileArrayLength: null, defaultAnimationIndex: null, name: null, id: null, tilesAcross: null, tilesDown: null, animIndex: null, animCorners: null, __class__: lo }; var ko = function (a, b, c, d) { this.tl = a; this.tr = b; this.bl = c; this.br = d }; k["com.stencyl.models.scene.Corners"] = ko; ko.__name__ = "com.stencyl.models.scene.Corners"; ko.prototype = { tl: null, tr: null, bl: null, br: null, toString: function () { return "TL: " + z.string(this.tl) + ", TR: " + z.string(this.tr) + ", BL: " + z.string(this.bl) + ", BR: " + z.string(this.br) }, __class__: ko }; var Qn = function (a, b, c, d) { this.type = a; this.x = b; this.y = c; this.layer = d }; k["com.stencyl.models.scene.DeferredActor"] = Qn; Qn.__name__ = "com.stencyl.models.scene.DeferredActor"; Qn.prototype = {type: null, x: null, y: null, layer: null, __class__: Qn}; var Bg = function (a, b, c, d, e, g, f) { Ca.call(this); this.ID = a; this.set_name(b); this.layerName = b; this.order = c; this.scrollFactorX = d; this.scrollFactorY = e; this.set_alpha(g); this.set_blendMode(f) }; k["com.stencyl.models.scene.layers.RegularLayer"] = Bg; Bg.__name__ = "com.stencyl.models.scene.layers.RegularLayer"; Bg.__super__ = Ca; Bg.prototype = u(Ca.prototype, { ID: null, layerName: null, order: null, scrollFactorX: null, scrollFactorY: null, opacity: null, alphaTween: null, updatePosition: function (a, b, c) { }, __class__: Bg }); var Jc = function (a, b, c, d, e, g, f, v) { this.cameraOldX = this.cameraOldY = -1; this.cameraMoved = !0; Bg.call(this, a, b, c, d, e, g, f); this.tiles = v; null != this.tiles && (this.tiles.set_name(b + " - TileLayer"), this.tiles.set_blendMode(f)); this.actorContainer = new Ca; this.actorContainer.set_name(b + " - ActorLayer"); this.overlay = new Ca; this.overlay.set_name(b + " - Overlay"); null != this.tiles && this.addChild(this.tiles); this.addChild(this.actorContainer); this.addChild(this.overlay); this.attachedImages = [] }; k["com.stencyl.models.scene.Layer"] = Jc; Jc.__name__ = "com.stencyl.models.scene.Layer"; Jc.__super__ = Bg; Jc.prototype = u(Bg.prototype, { tiles: null, actorContainer: null, overlay: null, attachedImages: null, cameraMoved: null, cameraOldX: null, cameraOldY: null, updatePosition: function (a, b, c) { if (aa.pixelsnap) { c = a * this.scrollFactorX | 0; var d = b * this.scrollFactorY | 0; a = Math.round(a); b = Math.round(b); this.set_x(-(a * this.scrollFactorX | 0)); this.set_y(-(b * this.scrollFactorY | 0)); var e = c / (h.engine.scene.tileWidth * h.SCALE) | 0; var g = d / (h.engine.scene.tileHeight * h.SCALE) | 0 } else c = a * this.scrollFactorX, d = b * this.scrollFactorY, this.set_x(-a * this.scrollFactorX), this.set_y(-b * this.scrollFactorY), e = c / (h.engine.scene.tileWidth * h.SCALE), g = d / (h.engine.scene.tileHeight * h.SCALE); this.tiles.setPosition(c, d); this.overlay.set_x(a); this.overlay.set_y(b); this.cameraMoved = this.cameraMoved || this.cameraOldX != e || this.cameraOldY != g; this.cameraOldX = e; this.cameraOldY = g }, clear: function () { for (var a = 0, b = this.attachedImages; a < b.length;) { var c = b[a]; ++a; this.removeChild(c) } this.attachedImages = []; X.removeAllChildren(this.actorContainer); this.overlay.get_graphics().clear(); null != this.tiles && this.tiles.clear() }, __class__: Jc }); var Ai = function (a, b, c, d, e, g, f) { null == g && (g = 0); this.x = d; this.y = e; this.shapes = a; this.shape = this.shapes[0]; this.ID = b; this.name = c; this.shapeID = g; this.simpleBounds = f }; k["com.stencyl.models.scene.RegionDef"] = Ai; Ai.__name__ = "com.stencyl.models.scene.RegionDef"; Ai.prototype = { x: null, y: null, shape: null, shapes: null, ID: null, name: null, shapeID: null, simpleBounds: null, __class__: Ai }; var Qf = function (a, b, c, d, e, g, f) { null == f && (f = !0); null == g && (g = 0); null == e && (e = 0); null == d && (d = 0); Ca.call(this); this.curStep = 0; this.running = !0; this.repeats = f; this.image1 = new dd(a); this.addChild(this.image1); this.cacheWidth = this.image1.get_width(); this.cacheHeight = this.image1.get_height(); f && (this.image2 = new dd(a), this.image2.set_x(this.image1.get_x() - this.cacheWidth), this.addChild(this.image2), this.image3 = new dd(a), this.image3.set_x(this.image1.get_x() + this.cacheWidth), this.addChild(this.image3), this.image4 = new dd(a), this.image4.set_x(this.image1.get_x() - this.cacheWidth), this.image4.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image4), this.image5 = new dd(a), this.image5.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image5), this.image6 = new dd(a), this.image6.set_x(this.image1.get_x() + this.cacheWidth), this.image6.set_y(this.image1.get_y() - this.cacheHeight), this.addChild(this.image6), this.image7 = new dd(a), this.image7.set_x(this.image1.get_x() - this.cacheWidth), this.image7.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image7), this.image8 = new dd(a), this.image8.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image8), this.image9 = new dd(a), this.image9.set_x(this.image1.get_x() + this.cacheWidth), this.image9.set_y(this.image1.get_y() + this.cacheHeight), this.addChild(this.image9)); this.yPos = this.xPos = this.yP = this.xP = 0; this.xVelocity = b; this.yVelocity = c; this.parallaxX = d; this.parallaxY = e; this.scrolling = 0 != b || 0 != c; this.parallax = 0 != d || 0 != e; this.backgroundID = g }; k["com.stencyl.models.scene.ScrollingBitmap"] = Qf; Qf.__name__ = "com.stencyl.models.scene.ScrollingBitmap"; Qf.__super__ = Ca; Qf.prototype = u(Ca.prototype, { image1: null, image2: null, image3: null, image4: null, image5: null, image6: null, image7: null, image8: null, image9: null, speed: null, curStep: null, running: null, parallax: null, scrolling: null, cacheWidth: null, cacheHeight: null, xP: null, yP: null, xPos: null, yPos: null, xVelocity: null, yVelocity: null, parallaxX: null, parallaxY: null, backgroundID: null, repeats: null, update: function (a, b, c) { c = !1; this.parallax ? (this.xPos = -(a * this.parallaxX | 0), this.yPos = -(b * this.parallaxY | 0), c = !0) : this.running ? this.yPos = this.xPos = 0 : (this.xPos = this.xP, this.yPos = this.yP); if (this.scrolling && this.running) { a = this.cacheWidth; b = this.cacheHeight; this.xP += this.xVelocity / 10 * h.SCALE; this.yP += this.yVelocity / 10 * h.SCALE; if (this.repeats) { if (this.xP < -a || this.xP > a) this.xP = 0; if (this.yP < -b || this.yP > b) this.yP = 0 } this.xPos += Math.floor(this.xP); this.yPos += Math.floor(this.yP); this.curStep += 1; 1 <= this.curStep && (c = !0, this.curStep -= Math.floor(this.curStep)) } c && this.resetPositions() }, resetPositions: function () { this.cacheWidth = this.image1.get_width(); this.cacheHeight = this.image1.get_height(); this.repeats && (this.xPos < -this.cacheWidth && (this.xPos %= this.cacheWidth), this.yPos < -this.cacheHeight && (this.yPos %= this.cacheHeight)); this.image1.set_x(this.xPos); this.image1.set_y(this.yPos); this.repeats && (this.image2.set_x(this.xPos - this.cacheWidth), this.image2.set_y(this.yPos), this.image3.set_x(this.xPos + this.cacheWidth), this.image3.set_y(this.yPos), this.image4.set_x(this.xPos - this.cacheWidth), this.image4.set_y(this.yPos - this.cacheHeight), this.image5.set_x(this.xPos), this.image5.set_y(this.yPos - this.cacheHeight), this.image6.set_x(this.xPos + this.cacheWidth), this.image6.set_y(this.yPos - this.cacheHeight), this.image7.set_x(this.xPos - this.cacheWidth), this.image7.set_y(this.yPos + this.cacheHeight), this.image8.set_x(this.xPos), this.image8.set_y(this.yPos + this.cacheHeight), this.image9.set_x(this.xPos + this.cacheWidth), this.image9.set_y(this.yPos + this.cacheHeight)) }, start: function () { this.running = !0 }, stop: function () { this.running = !1 }, __class__: Qf }); var mo = function (a, b, c, d, e, g, f) { null == f && (f = 0); null == g && (g = 0); this.x = d; this.y = e; this.shapes = a; this.shape = this.shapes[0]; this.ID = b; this.name = c; this.groupID = g; 0 == this.fillColor && (c = b = a = 0, null == c && (c = 0), null == b && (b = 0), null == a && (a = 0), this.fillColor = a << 16 | b << 8 | c); this.fillColor = f }; k["com.stencyl.models.scene.TerrainDef"] = mo; mo.__name__ = "com.stencyl.models.scene.TerrainDef"; mo.prototype = { x: null, y: null, shape: null, shapes: null, ID: null, name: null, groupID: null, fillColor: null, __class__: mo }; var Rc = function (a, b, c, d, e, g, f, v) { this.tileID = a; this.collisionID = b; this.metadata = c; this.frameIndex = d; this.durations = e; this.parent = v; var r = zb.get().atlases.h[v.atlasID]; if (null != g) { this.autotileFormat = g; this.autotileMergeSet = f; f = []; var m = 0; for (g = g.autotileArrayLength; m < g;) m++, f.push(new Rc(a, b, c, d, e, null, null, v)); this.autotiles = f } null != r && r.active && this.loadGraphics(); this.currTime = this.currFrame = 0; this.updateSource = !1 }; k["com.stencyl.models.scene.Tile"] = Rc; Rc.__name__ = "com.stencyl.models.scene.Tile"; Rc.prototype = { tileID: null, collisionID: null, metadata: null, frameIndex: null, parent: null, autotileFormat: null, autotiles: null, autotileMergeSet: null, pixels: null, durations: null, frames: null, currFrame: null, currTime: null, updateSource: null, data: null, update: function (a) { 1 == this.durations.length || h.paused || (this.currTime += Math.floor(a), this.currTime > (this.durations[this.currFrame] | 0) && (this.currTime -= this.durations[this.currFrame] | 0, this.currFrame + 1 < this.durations.length ? this.currFrame++ : this.currFrame = 0, this.updateSource = !0)) }, getSource: function (a, b) { return new ba(this.currFrame * a * h.SCALE, 0, a * h.SCALE, b * h.SCALE) }, loadGraphics: function () { var a = null; if (1 < this.durations.length || null != this.autotileFormat) a = Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/tileset-" + this.parent.ID + "-" + this.tileID + ".png", !1); if (null != this.autotileFormat) { var b = 0, c = 0; for (a = this.createAutotileAnimations(a, this.autotileFormat); c < a.length;) { var d = a[c]; ++c; this.autotiles[b++].loadAnimationPixels(d) } } else this.loadAnimationPixels(a) }, unloadGraphics: function () { this.data = this.pixels = null; if (null != this.autotiles) for (var a = 0, b = this.autotiles; a < b.length;) { var c = b[a]; ++a; c.pixels = null; c.data = null } }, loadAnimationPixels: function (a) { if (null != a) { this.pixels = a; this.data = new xi(a); a = 0; for (var b = this.durations.length; a < b;) this.currFrame = a++, this.data.addRect(this.getSource(this.parent.tileWidth, this.parent.tileHeight)) } }, createAutotileAnimations: function (a, b) { var c = [], d = this.durations.length, e = a.width / d / b.tilesAcross | 0, g = a.height / b.tilesDown | 0, f = e / 2 | 0, v = g / 2 | 0; Rc.dummyRect.width = f; Rc.dummyRect.height = v; for (var p = 0, m = b.animCorners; p < m.length;) { var h = m[p]; ++p; for (var n = new ka(e * d, g), l = function (a, b) { return function (c, d) { a[0](b[0], c, d) } }([q(n, n.copyPixels)], [a]), k = 0, t = d; k < t;) { var ub = k++, u = e * b.tilesAcross * ub; ub *= e; var da = h.tl; Rc.dummyRect.x = u + da.x * Rc.dummyRect.width; Rc.dummyRect.y = da.y * Rc.dummyRect.height; l(Rc.dummyRect, new na(ub, 0)); da = h.tr; Rc.dummyRect.x = u + da.x * Rc.dummyRect.width; Rc.dummyRect.y = da.y * Rc.dummyRect.height; l(Rc.dummyRect, new na(ub + f, 0)); da = h.br; Rc.dummyRect.x = u + da.x * Rc.dummyRect.width; Rc.dummyRect.y = da.y * Rc.dummyRect.height; l(Rc.dummyRect, new na(ub + f, v)); da = h.bl; Rc.dummyRect.x = u + da.x * Rc.dummyRect.width; Rc.dummyRect.y = da.y * Rc.dummyRect.height; l(Rc.dummyRect, new na(ub, v)) } c.push(n) } return c }, sourceRect: function (a, b) { Rc.dummyRect.x = b + a.x * Rc.dummyRect.width; Rc.dummyRect.y = a.y * Rc.dummyRect.height; return Rc.dummyRect }, __class__: Rc }; var re = function (a, b, c, d) { Ca.call(this); this.layerID = a; this.scene = b; this.numRows = d; this.numCols = c; this.clear(); this.tilemaps = new Oc }; k["com.stencyl.models.scene.TileLayer"] = re; re.__name__ = "com.stencyl.models.scene.TileLayer"; re.__interfaces__ = [th]; re.resetStatics = function () { re.cacheSource = new eb }; re.__super__ = Ca; re.prototype = u(Ca.prototype, { layerID: null, rows: null, autotileData: null, grid: null, scene: null, numRows: null, numCols: null, tilemaps: null, noTiles: null, clear: function () { if (null != this.tilemaps) for (var a = this.tilemaps.iterator(); a.hasNext();) a.next().removeTiles(); this.noTiles = !0; this.rows = []; this.autotileData = []; a = 0; for (var b = this.numRows; a < b;) { var c = a++; this.rows[c] = []; this.autotileData[c] = []; for (var d = 0, e = this.numCols; d < e;) { var g = d++; this.rows[c][g] = null; this.autotileData[c][g] = 0 } } }, setPosition: function (a, b) { }, mountGrid: function () { if (null != this.grid) { var a = new wb(h.engine, 1E8, 1, 0, 0, -1, this.grid.get_width(), this.grid.get_height(), null, new xa, null, null, !1, !0, !1, !1, this.grid, h.NO_PHYSICS); a.set_name("Terrain"); a.typeID = -1; a.set_visible(!1); a.ignoreGravity = !0; h.engine.getGroup(1).addChild(a) } }, setTileAt: function (a, b, c, d) { null == d && (d = !0); if (!(0 > b || 0 > a || b >= this.numCols || a >= this.numRows)) { this.noTiles && null != c && (this.noTiles = !1); var e = this.rows[a][b]; d && (d = null != e && null != e.autotiles || null != c && null != c.autotiles); this.rows[a][b] = c; this.autotileData[a][b] = 0; d && this.updateAutotilesNear(a, b) } }, getTileAt: function (a, b) { return 0 > b || 0 > a || b >= this.numCols || a >= this.numRows ? null : this.rows[a][b] }, updateAutotilesNear: function (a, b) { var c = a - 1; for (a += 2; c < a;) for (var d = c++, e = b - 1, g = b + 2; e < g;) { var f = e++; 0 > f || 0 > d || f >= this.numCols || d >= this.numRows || this.updateAutotile(d, f) } }, updateAutotile: function (a, b) { var c = this.rows[a][b]; if (null != c && null != c.autotiles) { for (var d = 0, e = re.autotileFlagPointMap.keys(); e.hasNext();) { var g = e.next(), f = re.autotileFlagPointMap.h[g], v = b + f.x | 0; f = a + f.y | 0; 0 > v || 0 > f || v >= this.numCols || f >= this.numRows || this.rows[f][v] == c || (d |= g) } this.autotileData[a][b] = c.autotileFormat.animIndex[d] } }, draw: function (a, b) { if (!this.noTiles) { for (var c = this.tilemaps.iterator(); c.hasNext();) c.next().removeTiles(); a = Math.floor(a); b = Math.floor(b); var d = this.numRows; c = this.scene.tileWidth; var e = this.scene.tileHeight; a = a / h.SCALE / c | 0; var g = b / h.SCALE / e | 0; b = 2 + a + (h.screenWidth / c | 0); var f = 2 + g + (h.screenHeight / e | 0); b = Math.min(b, this.numCols) | 0; f = Math.min(f, d) | 0; for (d = g; d < f;) { for (g = a; g < b;) { var v = this.getTileAt(d, g); if (null != v && v.parent.graphicsLoaded) { if (null == re.cacheSource.h[1E6 * v.parent.ID + v.tileID] || v.updateSource) if (v.updateSource = !1, null == v.pixels && null == v.autotiles) { var p = re.cacheSource, m = 1E6 * v.parent.ID + v.tileID, l = v.parent.getImageSourceForTile(v.tileID, c, e); p.h[m] = l } else p = re.cacheSource, m = 1E6 * v.parent.ID + v.tileID, l = v.getSource(c, e), p.h[m] = l; null != re.cacheSource.h[1E6 * v.parent.ID + v.tileID] && (null != v.autotiles && (v = v.autotiles[this.autotileData[d][g]]), null == v.data ? (p = v.parent.sheetMap.h[v.tileID], this.getTilemap(v.parent.flTileset).addTile(new kg(p, g * c * h.SCALE, d * e * h.SCALE))) : (p = v.currFrame, this.getTilemap(v.data).addTile(new kg(p, g * c * h.SCALE, d * e * h.SCALE)))) } ++g } ++d } } }, updateScale: function () { for (var a = this.tilemaps.iterator(); a.hasNext();) { var b = a.next(); b.set_width(h.sceneWidth * h.SCALE); b.set_height(h.sceneHeight * h.SCALE) } }, getTilemap: function (a) { if (null == this.tilemaps.h.__keys__[a.__id__]) { var b = new lg(h.sceneWidth * h.SCALE | 0, h.sceneHeight * h.SCALE | 0, a, aa.antialias); this.tilemaps.set(a, b); this.addChild(b) } return this.tilemaps.h[a.__id__] }, __class__: re }); var wf = function (a, b, c, d, e, g, f, v, p) { od.call(this, a, c, b); this.framesAcross = d; this.framesDown = e; this.tileWidth = g; this.tileHeight = f; this.readableImages = v; this.tiles = p }; k["com.stencyl.models.scene.Tileset"] = wf; wf.__name__ = "com.stencyl.models.scene.Tileset"; wf.__super__ = od; wf.prototype = u(od.prototype, { framesAcross: null, framesDown: null, tileWidth: null, tileHeight: null, tiles: null, readableImages: null, pixels: null, graphicsLoaded: null, flTileset: null, sheetMap: null, setupFLTileset: function () { this.sheetMap = new eb; if (null != this.pixels) { this.flTileset = new xi(this.convertPixels(this.pixels)); for (var a = 0, b = this.tiles; a < b.length;) { var c = b[a]; ++a; if (null != c) { var d = this.getImageSourceForTile(c.tileID, this.tileWidth | 0, this.tileHeight | 0), e = this.sheetMap; c = c.tileID; d = this.flTileset.addRect(d); e.h[c] = d } } } }, getImageSourceForTile: function (a, b, c) { var d = this.tiles[a]; null == d ? (wf.temp.x = 0, wf.temp.y = 0) : (a = Math.floor(d.frameIndex / this.framesAcross), d = Math.floor(d.frameIndex % this.framesAcross), wf.temp.x = d * b * h.SCALE + 2 * d + 1, wf.temp.y = a * c * h.SCALE + 2 * a + 1); wf.temp.width = b * h.SCALE; wf.temp.height = c * h.SCALE; return wf.temp.clone() }, loadGraphics: function () { if (!this.graphicsLoaded) { this.pixels = Da.getBitmapData("assets/graphics/" + h.IMG_BASE + "/tileset-" + this.ID + ".png", !1); for (var a = 0, b = this.tiles; a < b.length;) { var c = b[a]; ++a; null != c && c.loadGraphics() } this.setupFLTileset(); aa.disposeImages && !this.readableImages && this.pixels.dispose(); this.graphicsLoaded = !0 } }, unloadGraphics: function () { if (this.graphicsLoaded) { this.pixels.readable && this.pixels.dispose(); this.flTileset = this.pixels = null; for (var a = 0, b = this.tiles; a < b.length;) { var c = b[a]; ++a; null != c && c.unloadGraphics() } this.graphicsLoaded = !1 } }, reloadGraphics: function (a) { if (-1 == a) { this.unloadGraphics(); this.loadGraphics(); a = 0; for (var b = this.tiles; a < b.length;) { var c = b[a]; ++a; null != c && (c.updateSource = !0) } } else a = this.tiles[a], null != a && (a.unloadGraphics(), a.loadGraphics()); h.engine.tileUpdated = !0 }, convertPixels: function (a) { for (var b = this.tileWidth * h.SCALE | 0, c = this.tileHeight * h.SCALE | 0, d = a.width / b | 0, e = a.height / c | 0, g = new ka(a.width + 2 * d | 0, a.height + 2 * e | 0, !0, 0), f, v, p, m, l = 0; l < e;) { for (f = 0; f < d;) v = f * b + 2 * f + 1 | 0, p = l * c + 2 * l + 1 | 0, m = new ba(f * b, l * c, b, c), v = new na(v, p), g.copyPixels(a, m, v), ++f; ++l } for (l = 0; l < e;) { for (f = 0; f < d;) { v = f * b + 2 * f + 1 | 0; p = l * c + 2 * l + 1 | 0; for (a = 0; a < b;) m = g.getPixel32(v + a, p), g.setPixel32(v + a, p - 1, m), m = g.getPixel32(v + a, p + c - 1), g.setPixel32(v + a, p + c, m), ++a; for (a = 0; a < c;) m = g.getPixel32(v, p + a), g.setPixel32(v - 1, p + a, m), m = g.getPixel32(v + b - 1, p + a), g.setPixel32(v + b, p + a, m), ++a; ++f } ++l } return g }, __class__: wf }); var no = function (a, b, c, d, e, g) { this.x = a; this.y = b; this.width = c; this.height = d; this.shape = e; this.shape2 = g }; k["com.stencyl.models.scene.Wireframe"] = no; no.__name__ = "com.stencyl.models.scene.Wireframe"; no.prototype = {x: null, y: null, shape: null, shape2: null, width: null, height: null, __class__: no}; var ae = function (a, b, c, d, e, g, f, v, p) { Bg.call(this, a, b, c, d, e, g, f); this.resourceID = v; this.customScroll = p; this.model = w.__cast(pc.get().resources.get(v), Dg) }; k["com.stencyl.models.scene.layers.BackgroundLayer"] = ae; ae.__name__ = "com.stencyl.models.scene.layers.BackgroundLayer"; ae.__super__ = Bg; ae.prototype = u(Bg.prototype, { model: null, bitmap: null, resourceID: null, customScroll: null, isAnimated: null, frameCount: null, currIndex: null, currTime: null, cacheIndex: null, cacheWidth: null, cacheHeight: null, bgChild: null, load: function () { if (null != this.model && null != this.model.img) { this.bitmap = new dd(this.model.img, 1, !0); this.bitmap.smoothing = aa.antialias; this.currTime = this.currIndex = 0; this.isAnimated = 1 < this.model.frames.length; this.frameCount = this.model.frames.length; this.model.repeats && !this.model.repeated && this.model.drawRepeated(this, h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0); var a = 0, b = 0; if (this.customScroll) a = this.scrollFactorX, b = this.scrollFactorY; else if (this.model.repeats) a = this.model.parallaxX, b = this.model.parallaxY; else { var c = this.model.img.width, d = this.model.img.height, e = h.screenWidth * h.SCALE | 0, g = h.screenHeight * h.SCALE | 0, f = h.sceneWidth * h.SCALE | 0, v = h.sceneHeight * h.SCALE | 0; c > e && c < f && (a = 1 - (f - c) / (f - e)); d > g && d < v && (b = 1 - (v - d) / (v - g)) } this.model instanceof xh ? (c = w.__cast(this.model, xh), a = new Qf(this.model.img, c.xVelocity, c.yVelocity, a, b, this.resourceID, this.model.repeats), this.addChild(this.bgChild = a)) : this.model.repeats ? (a = new Qf(this.model.img, 0, 0, a, b, this.resourceID), this.addChild(this.bgChild = a)) : (this.cacheWidth = this.model.img.width, this.cacheHeight = this.model.img.height, this.scrollFactorX = a, this.scrollFactorY = b, this.addChild(this.bgChild = this.bitmap)) } }, loadFromImg: function (a, b) { this.model = new xh(-1, -1, "", [100], 0, 0, b, 0, 0); this.model.img = a; this.model.frames = [a]; this.load() }, setScrollFactor: function (a, b) { this.scrollFactorX = a; this.scrollFactorY = b; if (this.bgChild instanceof Qf) { var c = w.__cast(this.bgChild, Qf); c.parallaxX = a; c.parallaxY = b; c.parallax = 0 != a || 0 != b } }, setScrollSpeed: function (a, b) { if (this.bgChild instanceof Qf) { var c = w.__cast(this.bgChild, Qf); c.xVelocity = a; c.yVelocity = b; c.scrolling = 0 != a || 0 != b } }, reload: function (a) { null != this.bgChild && (this.removeChild(this.bgChild), this.bgChild = null); this.resourceID = a; this.model = w.__cast(pc.get().resources.get(this.resourceID), Dg); this.load() }, setImage: function (a) { this.bitmap.set_bitmapData(a); this.currTime = this.currIndex = 0; this.isAnimated = 1 < this.model.frames.length; this.frameCount = this.model.frames.length }, updateAnimation: function (a) { this.currTime += a; null != this.model && this.currTime >= this.model.durations[this.currIndex] && (this.currTime = 0, this.currIndex++, this.currIndex >= this.frameCount && (this.currIndex = 0), this.bgChild instanceof Qf ? (this.cacheIndex = this.currIndex, this.model.repeats && this.model.drawRepeated(this, h.screenWidth * h.SCALE | 0, h.screenHeight * h.SCALE | 0), this.currIndex = this.cacheIndex, a = this.bgChild.image1, a.set_bitmapData(this.model.frames[this.currIndex]), this.model.repeats && (a = this.bgChild.image2, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image3, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image4, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image5, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image6, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image7, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image8, a.set_bitmapData(this.model.frames[this.currIndex]), a = this.bgChild.image9, a.set_bitmapData(this.model.frames[this.currIndex]))) : this.bitmap.set_bitmapData(this.model.frames[this.currIndex])) }, updatePosition: function (a, b, c) { this.bgChild instanceof Qf ? w.__cast(this.bgChild, Qf).update(a, b, c) : (this.set_x(-(a * this.scrollFactorX | 0)), this.set_y(-(b * this.scrollFactorY | 0))); this.isAnimated && this.updateAnimation(c) }, getBitmap: function () { return this.bgChild }, __class__: ae }); var Tc = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.a = a; this.r = b; this.g = c; this.b = d }; k["com.stencyl.utils.ARGB"] = Tc; Tc.__name__ = "com.stencyl.utils.ARGB"; Tc.setARGBi = function (a, b, c, d) { return (a & 255) << 24 | (b & 255) << 16 | (c & 255) << 8 | d & 255 }; Tc.setARGBf = function (a, b, c, d) { a = 255 * (0 > a ? 0 : 1 < a ? 1 : a); b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); c = 255 * (0 > c ? 0 : 1 < c ? 1 : c); d = 255 * (0 > d ? 0 : 1 < d ? 1 : d); return (((0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0) & 255) << 24 | (((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255) << 16 | (((0 < c ? c + .5 : 0 > c ? c - .5 : 0) | 0) & 255) << 8 | ((0 < d ? d + .5 : 0 > d ? d - .5 : 0) | 0) & 255 }; Tc.toARGB = function (a) { return new Tc(.00392156862745098 * (a >>> 24), .00392156862745098 * (a >>> 16 & 255), .00392156862745098 * (a >>> 8 & 255), .00392156862745098 * (a & 255)) }; Tc.getRGB = function (a) { return a & 16777215 }; Tc.setRGB = function (a, b, c, d) { return b << 16 | c << 8 | d | a & -16777216 }; Tc.getA = function (a) { return a >>> 24 }; Tc.getAf = function (a) { return .00392156862745098 * (a >>> 24) }; Tc.getR = function (a) { return a >>> 16 & 255 }; Tc.getRf = function (a) { return .00392156862745098 * (a >>> 16 & 255) }; Tc.getG = function (a) { return a >>> 8 & 255 }; Tc.getGf = function (a) { return .00392156862745098 * (a >>> 8 & 255) }; Tc.getB = function (a) { return a & 255 }; Tc.getBf = function (a) { return .00392156862745098 * (a & 255) }; Tc.setA = function (a, b) { return b << 24 | a & 16777215 }; Tc.setAf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) << 24 | a & 16777215 }; Tc.setR = function (a, b) { return (b & 255) << 16 | a & -16711681 }; Tc.setRf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255) << 16 | a & -16711681 }; Tc.setG = function (a, b) { return b << 8 | a & -65281 }; Tc.setGf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) << 8 | a & -65281 }; Tc.setB = function (a, b) { return b | a & -256 }; Tc.setBf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0 | a & -256 }; Tc.prototype = { a: null, r: null, g: null, b: null, set: function (a, b, c, d) { this.a = a; this.r = b; this.g = c; this.b = d }, lerp: function (a, b, c) { c.a = this.a + (a.a - this.a) * b; c.r = this.r + (a.r - this.r) * b; c.g = this.g + (a.g - this.g) * b; c.b = this.b + (a.b - this.b) * b }, getA8: function () { var a = 255 * this.a; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, getR8: function () { var a = 255 * this.r; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, getG8: function () { var a = 255 * this.g; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, getB8: function () { var a = 255 * this.b; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, get24: function () { var a = 255 * this.r, b = 255 * this.g, c = 255 * this.b; return ((0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0) << 16 | ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) << 8 | (0 < c ? c + .5 : 0 > c ? c - .5 : 0) | 0 }, set24: function (a, b, c) { this.a = this.a; this.r = .00392156862745098 * (a & 255); this.g = .00392156862745098 * (b & 255); this.b = .00392156862745098 * (c & 255) }, get32: function () { var a = 255 * this.a, b = 255 * this.r, c = 255 * this.g, d = 255 * this.b; return ((0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0) << 24 | ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) << 16 | ((0 < c ? c + .5 : 0 > c ? c - .5 : 0) | 0) << 8 | (0 < d ? d + .5 : 0 > d ? d - .5 : 0) | 0 }, set32: function (a, b, c, d) { this.a = .00392156862745098 * (a & 255); this.r = .00392156862745098 * (b & 255); this.g = .00392156862745098 * (c & 255); this.b = .00392156862745098 * (d & 255) }, copy: function (a) { a.a = this.a; a.r = this.r; a.g = this.g; a.b = this.b; return a }, __class__: Tc }; var Th = A["com.stencyl.utils.ColorDeficiencyTypes"] = { __ename__: "com.stencyl.utils.ColorDeficiencyTypes", __constructs__: null, Protanopia: { _hx_name: "Protanopia", _hx_index: 0, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Protanomaly: { _hx_name: "Protanomaly", _hx_index: 1, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Deuteranopia: { _hx_name: "Deuteranopia", _hx_index: 2, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Deuteranomaly: { _hx_name: "Deuteranomaly", _hx_index: 3, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Tritanopia: { _hx_name: "Tritanopia", _hx_index: 4, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Tritanomaly: { _hx_name: "Tritanomaly", _hx_index: 5, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Achromatopsia: { _hx_name: "Achromatopsia", _hx_index: 6, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t }, Achromatomaly: { _hx_name: "Achromatomaly", _hx_index: 7, __enum__: "com.stencyl.utils.ColorDeficiencyTypes", toString: t } }; Th.__constructs__ = [Th.Protanopia, Th.Protanomaly, Th.Deuteranopia, Th.Deuteranomaly, Th.Tritanopia, Th.Tritanomaly, Th.Achromatopsia, Th.Achromatomaly]; var bb = function () { this.identity(); this.matrix = [] }; k["com.stencyl.utils.ColorMatrix"] = bb; bb.__name__ = "com.stencyl.utils.ColorMatrix"; bb.mulMatrixMatrix = function (a, b, c) { var d = a.m11, e = a.m12, g = a.m13, f = a.m14; c.m11 = a.m11 * b.m11 + a.m12 * b.m21 + a.m13 * b.m31 + a.m14 * b.m41; c.m12 = d * b.m12 + a.m12 * b.m22 + a.m13 * b.m32 + a.m14 * b.m42; c.m13 = d * b.m13 + e * b.m23 + a.m13 * b.m33 + a.m14 * b.m43; c.m14 = d * b.m14 + e * b.m24 + g * b.m34 + a.m14 * b.m44; c.m15 = d * b.m15 + e * b.m25 + g * b.m35 + f * b.m45; d = a.m21; e = a.m22; g = a.m23; f = a.m24; c.m21 = a.m21 * b.m11 + a.m22 * b.m21 + a.m23 * b.m31 + a.m24 * b.m41; c.m22 = d * b.m12 + a.m22 * b.m22 + a.m23 * b.m32 + a.m24 * b.m42; c.m23 = d * b.m13 + e * b.m23 + a.m23 * b.m33 + a.m24 * b.m43; c.m24 = d * b.m14 + e * b.m24 + g * b.m34 + a.m24 * b.m44; c.m25 = d * b.m15 + e * b.m25 + g * b.m35 + f * b.m45; d = a.m31; e = a.m32; g = a.m33; f = a.m34; c.m31 = a.m31 * b.m11 + a.m32 * b.m21 + a.m33 * b.m31 + a.m34 * b.m41; c.m32 = d * b.m12 + a.m32 * b.m22 + a.m33 * b.m32 + a.m34 * b.m42; c.m33 = d * b.m13 + e * b.m23 + a.m33 * b.m33 + a.m34 * b.m43; c.m34 = d * b.m14 + e * b.m24 + g * b.m34 + a.m34 * b.m44; c.m35 = d * b.m15 + e * b.m25 + g * b.m35 + f * b.m45; d = a.m41; e = a.m42; g = a.m43; f = a.m44; c.m41 = a.m41 * b.m11 + a.m42 * b.m21 + a.m43 * b.m31 + a.m44 * b.m41; c.m42 = d * b.m12 + a.m42 * b.m22 + a.m43 * b.m32 + a.m44 * b.m42; c.m43 = d * b.m13 + e * b.m23 + a.m43 * b.m33 + a.m44 * b.m43; c.m44 = d * b.m14 + e * b.m24 + g * b.m34 + a.m44 * b.m44; c.m45 = d * b.m15 + e * b.m25 + g * b.m35 + f * b.m45; return c }; bb.blendMatrixMatrix = function (a, b, c, d) { var e = 1 - d; c.m11 = e * a.m11 + d * b.m11; c.m12 = e * a.m12 + d * b.m12; c.m13 = e * a.m13 + d * b.m13; c.m14 = e * a.m14 + d * b.m14; c.m15 = e * a.m15 + d * b.m15; c.m21 = e * a.m21 + d * b.m21; c.m22 = e * a.m22 + d * b.m22; c.m23 = e * a.m23 + d * b.m23; c.m24 = e * a.m24 + d * b.m24; c.m25 = e * a.m25 + d * b.m25; c.m31 = e * a.m31 + d * b.m31; c.m32 = e * a.m32 + d * b.m32; c.m33 = e * a.m33 + d * b.m33; c.m34 = e * a.m34 + d * b.m34; c.m35 = e * a.m35 + d * b.m35; c.m41 = e * a.m41 + d * b.m41; c.m42 = e * a.m42 + d * b.m42; c.m43 = e * a.m43 + d * b.m43; c.m44 = e * a.m44 + d * b.m44; c.m45 = e * a.m45 + d * b.m45; return c }; bb.prototype = { m11: null, m12: null, m13: null, m14: null, m15: null, m21: null, m22: null, m23: null, m24: null, m25: null, m31: null, m32: null, m33: null, m34: null, m35: null, m41: null, m42: null, m43: null, m44: null, m45: null, matrix: null, preHue: null, postHue: null, hueInitialized: null, getFilter: function () { var a = this.matrix; a[0] = this.m11; a[1] = this.m12; a[2] = this.m13; a[3] = this.m14; a[4] = this.m15; a[5] = this.m21; a[6] = this.m22; a[7] = this.m23; a[8] = this.m24; a[9] = this.m25; a[10] = this.m31; a[11] = this.m32; a[12] = this.m33; a[13] = this.m34; a[14] = this.m35; a[15] = this.m41; a[16] = this.m42; a[17] = this.m43; a[18] = this.m44; a[19] = this.m45; return new jg(this.matrix) }, identity: function () { this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = 1; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, invert: function () { var a = this.m11, b = this.m12, c = this.m13, d = this.m14; this.m11 = -1 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * a + -1 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + -1 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 255 * a + 255 * b + 255 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = -1 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * a + -1 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + -1 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 255 * a + 255 * b + 255 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = -1 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * a + -1 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + -1 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 255 * a + 255 * b + 255 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = -1 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * a + -1 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + -1 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 255 * a + 255 * b + 255 * c + 0 * d; return this }, adjustSaturation: function (a) { var b = 1 - a, c = b * bb.LUMA_R, d = b * bb.LUMA_G; b *= bb.LUMA_B; var e = c + a, g = d + a; a = b + a; var f = this.m11, v = this.m12, p = this.m13, m = this.m14; this.m11 = this.m11 * e + this.m12 * c + this.m13 * c + 0 * this.m14; this.m12 = f * d + this.m12 * g + this.m13 * d + 0 * this.m14; this.m13 = f * b + v * b + this.m13 * a + 0 * this.m14; this.m14 = 0 * f + 0 * v + 0 * p + this.m14; this.m15 = 0 * f + 0 * v + 0 * p + 0 * m; f = this.m21; v = this.m22; p = this.m23; m = this.m24; this.m21 = this.m21 * e + this.m22 * c + this.m23 * c + 0 * this.m24; this.m22 = f * d + this.m22 * g + this.m23 * d + 0 * this.m24; this.m23 = f * b + v * b + this.m23 * a + 0 * this.m24; this.m24 = 0 * f + 0 * v + 0 * p + this.m24; this.m25 = 0 * f + 0 * v + 0 * p + 0 * m; f = this.m31; v = this.m32; p = this.m33; m = this.m34; this.m31 = this.m31 * e + this.m32 * c + this.m33 * c + 0 * this.m34; this.m32 = f * d + this.m32 * g + this.m33 * d + 0 * this.m34; this.m33 = f * b + v * b + this.m33 * a + 0 * this.m34; this.m34 = 0 * f + 0 * v + 0 * p + this.m34; this.m35 = 0 * f + 0 * v + 0 * p + 0 * m; f = this.m41; v = this.m42; p = this.m43; m = this.m44; this.m41 = this.m41 * e + this.m42 * c + this.m43 * c + 0 * this.m44; this.m42 = f * d + this.m42 * g + this.m43 * d + 0 * this.m44; this.m43 = f * b + v * b + this.m43 * a + 0 * this.m44; this.m44 = 0 * f + 0 * v + 0 * p + this.m44; this.m45 = 0 * f + 0 * v + 0 * p + 0 * m; return this }, adjustBrightness: function (a) { this.adjustBrightnessRGB(a, a, a); return this }, adjustBrightnessRGB: function (a, b, c) { a *= 255; b *= 255; c *= 255; var d = this.m11, e = this.m12, g = this.m13, f = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * d + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * d + 0 * e + this.m13 + 0 * this.m14; this.m14 = 0 * d + 0 * e + 0 * g + this.m14; this.m15 = d * a + e * b + g * c + 0 * f; d = this.m21; e = this.m22; g = this.m23; f = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * d + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * d + 0 * e + this.m23 + 0 * this.m24; this.m24 = 0 * d + 0 * e + 0 * g + this.m24; this.m25 = d * a + e * b + g * c + 0 * f; d = this.m31; e = this.m32; g = this.m33; f = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * d + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * d + 0 * e + this.m33 + 0 * this.m34; this.m34 = 0 * d + 0 * e + 0 * g + this.m34; this.m35 = d * a + e * b + g * c + 0 * f; d = this.m41; e = this.m42; g = this.m43; f = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * d + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * d + 0 * e + this.m43 + 0 * this.m44; this.m44 = 0 * d + 0 * e + 0 * g + this.m44; this.m45 = d * a + e * b + g * c + 0 * f; return this }, adjustContrast: function (a) { this.adjustContrastRGB(a, a, a); return this }, adjustContrastRGB: function (a, b, c) { a += 1; b += 1; c += 1; var d = 128 * (1 - a), e = 128 * (1 - b), g = 128 * (1 - c), f = this.m11, v = this.m12, p = this.m13, m = this.m14; this.m11 = this.m11 * a + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * f + this.m12 * b + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * f + 0 * v + this.m13 * c + 0 * this.m14; this.m14 = 0 * f + 0 * v + 0 * p + this.m14; this.m15 = f * d + v * e + p * g + 0 * m; f = this.m21; v = this.m22; p = this.m23; m = this.m24; this.m21 = this.m21 * a + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * f + this.m22 * b + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * f + 0 * v + this.m23 * c + 0 * this.m24; this.m24 = 0 * f + 0 * v + 0 * p + this.m24; this.m25 = f * d + v * e + p * g + 0 * m; f = this.m31; v = this.m32; p = this.m33; m = this.m34; this.m31 = this.m31 * a + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * f + this.m32 * b + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * f + 0 * v + this.m33 * c + 0 * this.m34; this.m34 = 0 * f + 0 * v + 0 * p + this.m34; this.m35 = f * d + v * e + p * g + 0 * m; f = this.m41; v = this.m42; p = this.m43; m = this.m44; this.m41 = this.m41 * a + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * f + this.m42 * b + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * f + 0 * v + this.m43 * c + 0 * this.m44; this.m44 = 0 * f + 0 * v + 0 * p + this.m44; this.m45 = f * d + v * e + p * g + 0 * m; return this }, adjustHue: function (a) { a *= .01745329251994278; var b = Math.cos(a), c = Math.sin(a); a = bb.LUMA_R + b * (1 - bb.LUMA_R) + c * -bb.LUMA_R; var d = bb.LUMA_G + b * -bb.LUMA_G + c * -bb.LUMA_G, e = bb.LUMA_B + b * -bb.LUMA_B + c * (1 - bb.LUMA_B), g = bb.LUMA_R + b * -bb.LUMA_R + .143 * c, f = bb.LUMA_G + b * (1 - bb.LUMA_G) + .14 * c, v = bb.LUMA_B + b * -bb.LUMA_B + -.283 * c, p = bb.LUMA_R + b * -bb.LUMA_R + c * -(1 - bb.LUMA_R), m = bb.LUMA_G + b * -bb.LUMA_G + c * bb.LUMA_G; b = bb.LUMA_B + b * (1 - bb.LUMA_B) + c * bb.LUMA_B; c = this.m11; var h = this.m12, n = this.m13, l = this.m14; this.m11 = this.m11 * a + this.m12 * g + this.m13 * p + 0 * this.m14; this.m12 = c * d + this.m12 * f + this.m13 * m + 0 * this.m14; this.m13 = c * e + h * v + this.m13 * b + 0 * this.m14; this.m14 = 0 * c + 0 * h + 0 * n + this.m14; this.m15 = 0 * c + 0 * h + 0 * n + 0 * l; c = this.m21; h = this.m22; n = this.m23; l = this.m24; this.m21 = this.m21 * a + this.m22 * g + this.m23 * p + 0 * this.m24; this.m22 = c * d + this.m22 * f + this.m23 * m + 0 * this.m24; this.m23 = c * e + h * v + this.m23 * b + 0 * this.m24; this.m24 = 0 * c + 0 * h + 0 * n + this.m24; this.m25 = 0 * c + 0 * h + 0 * n + 0 * l; c = this.m31; h = this.m32; n = this.m33; l = this.m34; this.m31 = this.m31 * a + this.m32 * g + this.m33 * p + 0 * this.m34; this.m32 = c * d + this.m32 * f + this.m33 * m + 0 * this.m34; this.m33 = c * e + h * v + this.m33 * b + 0 * this.m34; this.m34 = 0 * c + 0 * h + 0 * n + this.m34; this.m35 = 0 * c + 0 * h + 0 * n + 0 * l; c = this.m41; h = this.m42; n = this.m43; l = this.m44; this.m41 = this.m41 * a + this.m42 * g + this.m43 * p + 0 * this.m44; this.m42 = c * d + this.m42 * f + this.m43 * m + 0 * this.m44; this.m43 = c * e + h * v + this.m43 * b + 0 * this.m44; this.m44 = 0 * c + 0 * h + 0 * n + this.m44; this.m45 = 0 * c + 0 * h + 0 * n + 0 * l; return this }, luminance2Alpha: function () { var a = bb.LUMA_R, b = bb.LUMA_G, c = bb.LUMA_B, d = this.m11, e = this.m12, g = this.m13, f = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * d + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * d + 0 * e + 0 * this.m13 + this.m14 * c; this.m14 = 0 * d + 0 * e + 0 * g + 0 * this.m14; this.m15 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m21; e = this.m22; g = this.m23; f = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * d + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * d + 0 * e + 0 * this.m23 + this.m24 * c; this.m24 = 0 * d + 0 * e + 0 * g + 0 * this.m24; this.m25 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m31; e = this.m32; g = this.m33; f = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * d + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * d + 0 * e + 0 * this.m33 + this.m34 * c; this.m34 = 0 * d + 0 * e + 0 * g + 0 * this.m34; this.m35 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m41; e = this.m42; g = this.m43; f = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * d + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * d + 0 * e + 0 * this.m43 + this.m44 * c; this.m44 = 0 * d + 0 * e + 0 * g + 0 * this.m44; this.m45 = 255 * d + 255 * e + 255 * g + 0 * f; return this }, adjustAlphaContrast: function (a) { a += 1; var b = 128 * (1 - a), c = this.m11, d = this.m12, e = this.m13, g = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * c + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * c + 0 * d + this.m13 + 0 * this.m14; this.m14 = 0 * c + 0 * d + 0 * e + this.m14 * a; this.m15 = 0 * c + 0 * d + 0 * e + g * b; c = this.m21; d = this.m22; e = this.m23; g = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * c + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * c + 0 * d + this.m23 + 0 * this.m24; this.m24 = 0 * c + 0 * d + 0 * e + this.m24 * a; this.m25 = 0 * c + 0 * d + 0 * e + g * b; c = this.m31; d = this.m32; e = this.m33; g = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * c + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * c + 0 * d + this.m33 + 0 * this.m34; this.m34 = 0 * c + 0 * d + 0 * e + this.m34 * a; this.m35 = 0 * c + 0 * d + 0 * e + g * b; c = this.m41; d = this.m42; e = this.m43; g = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * c + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * c + 0 * d + this.m43 + 0 * this.m44; this.m44 = 0 * c + 0 * d + 0 * e + this.m44 * a; this.m45 = 0 * c + 0 * d + 0 * e + g * b; return this }, colorize: function (a, b) { null == b && (b = 1); var c = .00392156862745098 * (a >>> 16 & 255), d = .00392156862745098 * (a >>> 8 & 255), e = .00392156862745098 * (a & 255), g = 1 - b; a = g + b * c * bb.LUMA_R; var f = b * c * bb.LUMA_G; c = b * c * bb.LUMA_B; var v = b * d * bb.LUMA_R, p = g + b * d * bb.LUMA_G; d = b * d * bb.LUMA_B; var m = b * e * bb.LUMA_R, h = b * e * bb.LUMA_G; b = g + b * e * bb.LUMA_B; e = this.m11; g = this.m12; var n = this.m13, l = this.m14; this.m11 = this.m11 * a + this.m12 * v + this.m13 * m + 0 * this.m14; this.m12 = e * f + this.m12 * p + this.m13 * h + 0 * this.m14; this.m13 = e * c + g * d + this.m13 * b + 0 * this.m14; this.m14 = 0 * e + 0 * g + 0 * n + this.m14; this.m15 = 0 * e + 0 * g + 0 * n + 0 * l; e = this.m21; g = this.m22; n = this.m23; l = this.m24; this.m21 = this.m21 * a + this.m22 * v + this.m23 * m + 0 * this.m24; this.m22 = e * f + this.m22 * p + this.m23 * h + 0 * this.m24; this.m23 = e * c + g * d + this.m23 * b + 0 * this.m24; this.m24 = 0 * e + 0 * g + 0 * n + this.m24; this.m25 = 0 * e + 0 * g + 0 * n + 0 * l; e = this.m31; g = this.m32; n = this.m33; l = this.m34; this.m31 = this.m31 * a + this.m32 * v + this.m33 * m + 0 * this.m34; this.m32 = e * f + this.m32 * p + this.m33 * h + 0 * this.m34; this.m33 = e * c + g * d + this.m33 * b + 0 * this.m34; this.m34 = 0 * e + 0 * g + 0 * n + this.m34; this.m35 = 0 * e + 0 * g + 0 * n + 0 * l; e = this.m41; g = this.m42; n = this.m43; l = this.m44; this.m41 = this.m41 * a + this.m42 * v + this.m43 * m + 0 * this.m44; this.m42 = e * f + this.m42 * p + this.m43 * h + 0 * this.m44; this.m43 = e * c + g * d + this.m43 * b + 0 * this.m44; this.m44 = 0 * e + 0 * g + 0 * n + this.m44; this.m45 = 0 * e + 0 * g + 0 * n + 0 * l; return this }, rotateHue: function (a) { if (!this.hueInitialized) { this.hueInitialized = !0; this.preHue = new bb; this.preHue.rotateRed(45); this.preHue.rotateGreen(-39.182655); var b = []; b[0] = bb.LUMA_R2; b[1] = bb.LUMA_G2; b[2] = bb.LUMA_B2; b[3] = 1; this.preHue.transformVector(b); var c = b[0] / b[2]; b = b[1] / b[2]; this.preHue.shearBlue(c, b); this.postHue = new bb; this.postHue.shearBlue(-c, -b); this.postHue.rotateGreen(39.182655); this.postHue.rotateRed(-45) } c = this.preHue; b = this.m11; var d = this.m12, e = this.m13, g = this.m14; this.m11 = this.m11 * c.m11 + this.m12 * c.m21 + this.m13 * c.m31 + this.m14 * c.m41; this.m12 = b * c.m12 + this.m12 * c.m22 + this.m13 * c.m32 + this.m14 * c.m42; this.m13 = b * c.m13 + d * c.m23 + this.m13 * c.m33 + this.m14 * c.m43; this.m14 = b * c.m14 + d * c.m24 + e * c.m34 + this.m14 * c.m44; this.m15 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m21; d = this.m22; e = this.m23; g = this.m24; this.m21 = this.m21 * c.m11 + this.m22 * c.m21 + this.m23 * c.m31 + this.m24 * c.m41; this.m22 = b * c.m12 + this.m22 * c.m22 + this.m23 * c.m32 + this.m24 * c.m42; this.m23 = b * c.m13 + d * c.m23 + this.m23 * c.m33 + this.m24 * c.m43; this.m24 = b * c.m14 + d * c.m24 + e * c.m34 + this.m24 * c.m44; this.m25 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m31; d = this.m32; e = this.m33; g = this.m34; this.m31 = this.m31 * c.m11 + this.m32 * c.m21 + this.m33 * c.m31 + this.m34 * c.m41; this.m32 = b * c.m12 + this.m32 * c.m22 + this.m33 * c.m32 + this.m34 * c.m42; this.m33 = b * c.m13 + d * c.m23 + this.m33 * c.m33 + this.m34 * c.m43; this.m34 = b * c.m14 + d * c.m24 + e * c.m34 + this.m34 * c.m44; this.m35 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m41; d = this.m42; e = this.m43; g = this.m44; this.m41 = this.m41 * c.m11 + this.m42 * c.m21 + this.m43 * c.m31 + this.m44 * c.m41; this.m42 = b * c.m12 + this.m42 * c.m22 + this.m43 * c.m32 + this.m44 * c.m42; this.m43 = b * c.m13 + d * c.m23 + this.m43 * c.m33 + this.m44 * c.m43; this.m44 = b * c.m14 + d * c.m24 + e * c.m34 + this.m44 * c.m44; this.m45 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; this.rotateBlue(a); c = this.postHue; b = this.m11; d = this.m12; e = this.m13; g = this.m14; this.m11 = this.m11 * c.m11 + this.m12 * c.m21 + this.m13 * c.m31 + this.m14 * c.m41; this.m12 = b * c.m12 + this.m12 * c.m22 + this.m13 * c.m32 + this.m14 * c.m42; this.m13 = b * c.m13 + d * c.m23 + this.m13 * c.m33 + this.m14 * c.m43; this.m14 = b * c.m14 + d * c.m24 + e * c.m34 + this.m14 * c.m44; this.m15 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m21; d = this.m22; e = this.m23; g = this.m24; this.m21 = this.m21 * c.m11 + this.m22 * c.m21 + this.m23 * c.m31 + this.m24 * c.m41; this.m22 = b * c.m12 + this.m22 * c.m22 + this.m23 * c.m32 + this.m24 * c.m42; this.m23 = b * c.m13 + d * c.m23 + this.m23 * c.m33 + this.m24 * c.m43; this.m24 = b * c.m14 + d * c.m24 + e * c.m34 + this.m24 * c.m44; this.m25 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m31; d = this.m32; e = this.m33; g = this.m34; this.m31 = this.m31 * c.m11 + this.m32 * c.m21 + this.m33 * c.m31 + this.m34 * c.m41; this.m32 = b * c.m12 + this.m32 * c.m22 + this.m33 * c.m32 + this.m34 * c.m42; this.m33 = b * c.m13 + d * c.m23 + this.m33 * c.m33 + this.m34 * c.m43; this.m34 = b * c.m14 + d * c.m24 + e * c.m34 + this.m34 * c.m44; this.m35 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; b = this.m41; d = this.m42; e = this.m43; g = this.m44; this.m41 = this.m41 * c.m11 + this.m42 * c.m21 + this.m43 * c.m31 + this.m44 * c.m41; this.m42 = b * c.m12 + this.m42 * c.m22 + this.m43 * c.m32 + this.m44 * c.m42; this.m43 = b * c.m13 + d * c.m23 + this.m43 * c.m33 + this.m44 * c.m43; this.m44 = b * c.m14 + d * c.m24 + e * c.m34 + this.m44 * c.m44; this.m45 = b * c.m15 + d * c.m25 + e * c.m35 + g * c.m45; return this }, setChannels: function (a, b, c, d) { null == d && (d = 8); null == c && (c = 4); null == b && (b = 2); null == a && (a = 1); var e = (1 == (a & 1) ? 1 : 0) + (2 == (a & 2) ? 1 : 0) + (4 == (a & 4) ? 1 : 0) + (8 == (a & 8) ? 1 : 0); 0 < e && (e = 1 / e); var g = (1 == (b & 1) ? 1 : 0) + (2 == (b & 2) ? 1 : 0) + (4 == (b & 4) ? 1 : 0) + (8 == (b & 8) ? 1 : 0); 0 < g && (g = 1 / g); var f = (1 == (c & 1) ? 1 : 0) + (2 == (c & 2) ? 1 : 0) + (4 == (c & 4) ? 1 : 0) + (8 == (c & 8) ? 1 : 0); 0 < f && (f = 1 / f); var v = (1 == (d & 1) ? 1 : 0) + (2 == (d & 2) ? 1 : 0) + (4 == (d & 4) ? 1 : 0) + (8 == (d & 8) ? 1 : 0); 0 < v && (v = 1 / v); var p = 1 == (a & 1) ? e : 0, m = 2 == (a & 2) ? e : 0, h = 4 == (a & 4) ? e : 0; a = 8 == (a & 8) ? e : 0; e = 1 == (b & 1) ? g : 0; var n = 2 == (b & 2) ? g : 0, l = 4 == (b & 4) ? g : 0; b = 8 == (b & 8) ? g : 0; g = 1 == (c & 1) ? f : 0; var k = 2 == (c & 2) ? f : 0, t = 4 == (c & 4) ? f : 0; c = 8 == (c & 8) ? f : 0; f = 1 == (d & 1) ? v : 0; var q = 2 == (d & 2) ? v : 0, u = 4 == (d & 4) ? v : 0; d = 8 == (d & 8) ? v : 0; v = this.m11; var da = this.m12, ja = this.m13, w = this.m14; this.m11 = this.m11 * p + this.m12 * e + this.m13 * g + this.m14 * f; this.m12 = v * m + this.m12 * n + this.m13 * k + this.m14 * q; this.m13 = v * h + da * l + this.m13 * t + this.m14 * u; this.m14 = v * a + da * b + ja * c + this.m14 * d; this.m15 = 0 * v + 0 * da + 0 * ja + 0 * w; v = this.m21; da = this.m22; ja = this.m23; w = this.m24; this.m21 = this.m21 * p + this.m22 * e + this.m23 * g + this.m24 * f; this.m22 = v * m + this.m22 * n + this.m23 * k + this.m24 * q; this.m23 = v * h + da * l + this.m23 * t + this.m24 * u; this.m24 = v * a + da * b + ja * c + this.m24 * d; this.m25 = 0 * v + 0 * da + 0 * ja + 0 * w; v = this.m31; da = this.m32; ja = this.m33; w = this.m34; this.m31 = this.m31 * p + this.m32 * e + this.m33 * g + this.m34 * f; this.m32 = v * m + this.m32 * n + this.m33 * k + this.m34 * q; this.m33 = v * h + da * l + this.m33 * t + this.m34 * u; this.m34 = v * a + da * b + ja * c + this.m34 * d; this.m35 = 0 * v + 0 * da + 0 * ja + 0 * w; v = this.m41; da = this.m42; ja = this.m43; w = this.m44; this.m41 = this.m41 * p + this.m42 * e + this.m43 * g + this.m44 * f; this.m42 = v * m + this.m42 * n + this.m43 * k + this.m44 * q; this.m43 = v * h + da * l + this.m43 * t + this.m44 * u; this.m44 = v * a + da * b + ja * c + this.m44 * d; this.m45 = 0 * v + 0 * da + 0 * ja + 0 * w; return this }, average: function (a, b, c) { null == c && (c = .33333333); null == b && (b = .33333333); null == a && (a = .33333333); var d = this.m11, e = this.m12, g = this.m13, f = this.m14; this.m11 = this.m11 * a + this.m12 * a + this.m13 * a + 0 * this.m14; this.m12 = d * b + this.m12 * b + this.m13 * b + 0 * this.m14; this.m13 = d * c + e * c + this.m13 * c + 0 * this.m14; this.m14 = 0 * d + 0 * e + 0 * g + this.m14; this.m15 = 0 * d + 0 * e + 0 * g + 0 * f; d = this.m21; e = this.m22; g = this.m23; f = this.m24; this.m21 = this.m21 * a + this.m22 * a + this.m23 * a + 0 * this.m24; this.m22 = d * b + this.m22 * b + this.m23 * b + 0 * this.m24; this.m23 = d * c + e * c + this.m23 * c + 0 * this.m24; this.m24 = 0 * d + 0 * e + 0 * g + this.m24; this.m25 = 0 * d + 0 * e + 0 * g + 0 * f; d = this.m31; e = this.m32; g = this.m33; f = this.m34; this.m31 = this.m31 * a + this.m32 * a + this.m33 * a + 0 * this.m34; this.m32 = d * b + this.m32 * b + this.m33 * b + 0 * this.m34; this.m33 = d * c + e * c + this.m33 * c + 0 * this.m34; this.m34 = 0 * d + 0 * e + 0 * g + this.m34; this.m35 = 0 * d + 0 * e + 0 * g + 0 * f; d = this.m41; e = this.m42; g = this.m43; f = this.m44; this.m41 = this.m41 * a + this.m42 * a + this.m43 * a + 0 * this.m44; this.m42 = d * b + this.m42 * b + this.m43 * b + 0 * this.m44; this.m43 = d * c + e * c + this.m43 * c + 0 * this.m44; this.m44 = 0 * d + 0 * e + 0 * g + this.m44; this.m45 = 0 * d + 0 * e + 0 * g + 0 * f; return this }, threshold: function (a, b) { null == b && (b = 256); var c = bb.LUMA_R * b, d = bb.LUMA_G * b, e = bb.LUMA_B * b, g = -b * a, f = bb.LUMA_R * b, v = bb.LUMA_G * b, p = bb.LUMA_B * b, m = -b * a, h = bb.LUMA_R * b, n = bb.LUMA_G * b, l = bb.LUMA_B * b; a *= -b; b = this.m11; var k = this.m12, t = this.m13, q = this.m14; this.m11 = this.m11 * c + this.m12 * f + this.m13 * h + 0 * this.m14; this.m12 = b * d + this.m12 * v + this.m13 * n + 0 * this.m14; this.m13 = b * e + k * p + this.m13 * l + 0 * this.m14; this.m14 = 0 * b + 0 * k + 0 * t + this.m14; this.m15 = b * g + k * m + t * a + 0 * q; b = this.m21; k = this.m22; t = this.m23; q = this.m24; this.m21 = this.m21 * c + this.m22 * f + this.m23 * h + 0 * this.m24; this.m22 = b * d + this.m22 * v + this.m23 * n + 0 * this.m24; this.m23 = b * e + k * p + this.m23 * l + 0 * this.m24; this.m24 = 0 * b + 0 * k + 0 * t + this.m24; this.m25 = b * g + k * m + t * a + 0 * q; b = this.m31; k = this.m32; t = this.m33; q = this.m34; this.m31 = this.m31 * c + this.m32 * f + this.m33 * h + 0 * this.m34; this.m32 = b * d + this.m32 * v + this.m33 * n + 0 * this.m34; this.m33 = b * e + k * p + this.m33 * l + 0 * this.m34; this.m34 = 0 * b + 0 * k + 0 * t + this.m34; this.m35 = b * g + k * m + t * a + 0 * q; b = this.m41; k = this.m42; t = this.m43; q = this.m44; this.m41 = this.m41 * c + this.m42 * f + this.m43 * h + 0 * this.m44; this.m42 = b * d + this.m42 * v + this.m43 * n + 0 * this.m44; this.m43 = b * e + k * p + this.m43 * l + 0 * this.m44; this.m44 = 0 * b + 0 * k + 0 * t + this.m44; this.m45 = b * g + k * m + t * a + 0 * q; return this }, desaturate: function () { var a = bb.LUMA_R, b = bb.LUMA_G, c = bb.LUMA_B, d = bb.LUMA_R, e = bb.LUMA_G, g = bb.LUMA_B, f = bb.LUMA_R, v = bb.LUMA_G, p = bb.LUMA_B, m = this.m11, h = this.m12, n = this.m13, l = this.m14; this.m11 = this.m11 * a + this.m12 * d + this.m13 * f + 0 * this.m14; this.m12 = m * b + this.m12 * e + this.m13 * v + 0 * this.m14; this.m13 = m * c + h * g + this.m13 * p + 0 * this.m14; this.m14 = 0 * m + 0 * h + 0 * n + this.m14; this.m15 = 0 * m + 0 * h + 0 * n + 0 * l; m = this.m21; h = this.m22; n = this.m23; l = this.m24; this.m21 = this.m21 * a + this.m22 * d + this.m23 * f + 0 * this.m24; this.m22 = m * b + this.m22 * e + this.m23 * v + 0 * this.m24; this.m23 = m * c + h * g + this.m23 * p + 0 * this.m24; this.m24 = 0 * m + 0 * h + 0 * n + this.m24; this.m25 = 0 * m + 0 * h + 0 * n + 0 * l; m = this.m31; h = this.m32; n = this.m33; l = this.m34; this.m31 = this.m31 * a + this.m32 * d + this.m33 * f + 0 * this.m34; this.m32 = m * b + this.m32 * e + this.m33 * v + 0 * this.m34; this.m33 = m * c + h * g + this.m33 * p + 0 * this.m34; this.m34 = 0 * m + 0 * h + 0 * n + this.m34; this.m35 = 0 * m + 0 * h + 0 * n + 0 * l; m = this.m41; h = this.m42; n = this.m43; l = this.m44; this.m41 = this.m41 * a + this.m42 * d + this.m43 * f + 0 * this.m44; this.m42 = m * b + this.m42 * e + this.m43 * v + 0 * this.m44; this.m43 = m * c + h * g + this.m43 * p + 0 * this.m44; this.m44 = 0 * m + 0 * h + 0 * n + this.m44; this.m45 = 0 * m + 0 * h + 0 * n + 0 * l; return this }, setMultiplicators: function (a, b, c, d) { null == d && (d = 1); null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); var e = this.m11, g = this.m12, f = this.m13, v = this.m14; this.m11 = this.m11 * a + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * e + this.m12 * b + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * e + 0 * g + this.m13 * c + 0 * this.m14; this.m14 = 0 * e + 0 * g + 0 * f + this.m14 * d; this.m15 = 0 * e + 0 * g + 0 * f + 0 * v; e = this.m21; g = this.m22; f = this.m23; v = this.m24; this.m21 = this.m21 * a + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * e + this.m22 * b + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * e + 0 * g + this.m23 * c + 0 * this.m24; this.m24 = 0 * e + 0 * g + 0 * f + this.m24 * d; this.m25 = 0 * e + 0 * g + 0 * f + 0 * v; e = this.m31; g = this.m32; f = this.m33; v = this.m34; this.m31 = this.m31 * a + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * e + this.m32 * b + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * e + 0 * g + this.m33 * c + 0 * this.m34; this.m34 = 0 * e + 0 * g + 0 * f + this.m34 * d; this.m35 = 0 * e + 0 * g + 0 * f + 0 * v; e = this.m41; g = this.m42; f = this.m43; v = this.m44; this.m41 = this.m41 * a + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * e + this.m42 * b + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * e + 0 * g + this.m43 * c + 0 * this.m44; this.m44 = 0 * e + 0 * g + 0 * f + this.m44 * d; this.m45 = 0 * e + 0 * g + 0 * f + 0 * v; return this }, clearChannels: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !1); null == b && (b = !1); null == a && (a = !1); a && (this.m11 = this.m12 = this.m13 = this.m14 = this.m15 = 0); b && (this.m21 = this.m22 = this.m23 = this.m24 = this.m25 = 0); c && (this.m31 = this.m32 = this.m33 = this.m34 = this.m35 = 0); d && (this.m41 = this.m42 = this.m43 = this.m44 = this.m45 = 0); return this }, thresholdAlpha: function (a, b) { null == b && (b = 256); a *= -b; var c = this.m11, d = this.m12, e = this.m13, g = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * c + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * c + 0 * d + this.m13 + 0 * this.m14; this.m14 = 0 * c + 0 * d + 0 * e + this.m14 * b; this.m15 = 0 * c + 0 * d + 0 * e + g * a; c = this.m21; d = this.m22; e = this.m23; g = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * c + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * c + 0 * d + this.m23 + 0 * this.m24; this.m24 = 0 * c + 0 * d + 0 * e + this.m24 * b; this.m25 = 0 * c + 0 * d + 0 * e + g * a; c = this.m31; d = this.m32; e = this.m33; g = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * c + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * c + 0 * d + this.m33 + 0 * this.m34; this.m34 = 0 * c + 0 * d + 0 * e + this.m34 * b; this.m35 = 0 * c + 0 * d + 0 * e + g * a; c = this.m41; d = this.m42; e = this.m43; g = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * c + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * c + 0 * d + this.m43 + 0 * this.m44; this.m44 = 0 * c + 0 * d + 0 * e + this.m44 * b; this.m45 = 0 * c + 0 * d + 0 * e + g * a; return this }, averageRGB2Alpha: function () { var a = bb.INV3, b = bb.INV3, c = bb.INV3, d = this.m11, e = this.m12, g = this.m13, f = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * d + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * d + 0 * e + 0 * this.m13 + this.m14 * c; this.m14 = 0 * d + 0 * e + 0 * g + 0 * this.m14; this.m15 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m21; e = this.m22; g = this.m23; f = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * d + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * d + 0 * e + 0 * this.m23 + this.m24 * c; this.m24 = 0 * d + 0 * e + 0 * g + 0 * this.m24; this.m25 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m31; e = this.m32; g = this.m33; f = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * d + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * d + 0 * e + 0 * this.m33 + this.m34 * c; this.m34 = 0 * d + 0 * e + 0 * g + 0 * this.m34; this.m35 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m41; e = this.m42; g = this.m43; f = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * d + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * d + 0 * e + 0 * this.m43 + this.m44 * c; this.m44 = 0 * d + 0 * e + 0 * g + 0 * this.m44; this.m45 = 255 * d + 255 * e + 255 * g + 0 * f; return this }, invertAlpha: function () { var a = this.m11, b = this.m12, c = this.m13, d = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * a + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + -1 * this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 255 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * a + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + -1 * this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 255 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * a + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + -1 * this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 255 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * a + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + -1 * this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 255 * d; return this }, rgb2Alpha: function (a, b, c) { var d = this.m11, e = this.m12, g = this.m13, f = this.m14; this.m11 = 0 * this.m11 + 0 * this.m12 + 0 * this.m13 + this.m14 * a; this.m12 = 0 * d + 0 * this.m12 + 0 * this.m13 + this.m14 * b; this.m13 = 0 * d + 0 * e + 0 * this.m13 + this.m14 * c; this.m14 = 0 * d + 0 * e + 0 * g + 0 * this.m14; this.m15 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m21; e = this.m22; g = this.m23; f = this.m24; this.m21 = 0 * this.m21 + 0 * this.m22 + 0 * this.m23 + this.m24 * a; this.m22 = 0 * d + 0 * this.m22 + 0 * this.m23 + this.m24 * b; this.m23 = 0 * d + 0 * e + 0 * this.m23 + this.m24 * c; this.m24 = 0 * d + 0 * e + 0 * g + 0 * this.m24; this.m25 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m31; e = this.m32; g = this.m33; f = this.m34; this.m31 = 0 * this.m31 + 0 * this.m32 + 0 * this.m33 + this.m34 * a; this.m32 = 0 * d + 0 * this.m32 + 0 * this.m33 + this.m34 * b; this.m33 = 0 * d + 0 * e + 0 * this.m33 + this.m34 * c; this.m34 = 0 * d + 0 * e + 0 * g + 0 * this.m34; this.m35 = 255 * d + 255 * e + 255 * g + 0 * f; d = this.m41; e = this.m42; g = this.m43; f = this.m44; this.m41 = 0 * this.m41 + 0 * this.m42 + 0 * this.m43 + this.m44 * a; this.m42 = 0 * d + 0 * this.m42 + 0 * this.m43 + this.m44 * b; this.m43 = 0 * d + 0 * e + 0 * this.m43 + this.m44 * c; this.m44 = 0 * d + 0 * e + 0 * g + 0 * this.m44; this.m45 = 255 * d + 255 * e + 255 * g + 0 * f; return this }, setAlpha: function (a) { var b = this.m11, c = this.m12, d = this.m13, e = this.m14; this.m11 = this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = 0 * b + this.m12 + 0 * this.m13 + 0 * this.m14; this.m13 = 0 * b + 0 * c + this.m13 + 0 * this.m14; this.m14 = 0 * b + 0 * c + 0 * d + this.m14 * a; this.m15 = 0 * b + 0 * c + 0 * d + 0 * e; b = this.m21; c = this.m22; d = this.m23; e = this.m24; this.m21 = this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = 0 * b + this.m22 + 0 * this.m23 + 0 * this.m24; this.m23 = 0 * b + 0 * c + this.m23 + 0 * this.m24; this.m24 = 0 * b + 0 * c + 0 * d + this.m24 * a; this.m25 = 0 * b + 0 * c + 0 * d + 0 * e; b = this.m31; c = this.m32; d = this.m33; e = this.m34; this.m31 = this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = 0 * b + this.m32 + 0 * this.m33 + 0 * this.m34; this.m33 = 0 * b + 0 * c + this.m33 + 0 * this.m34; this.m34 = 0 * b + 0 * c + 0 * d + this.m34 * a; this.m35 = 0 * b + 0 * c + 0 * d + 0 * e; b = this.m41; c = this.m42; d = this.m43; e = this.m44; this.m41 = this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = 0 * b + this.m42 + 0 * this.m43 + 0 * this.m44; this.m43 = 0 * b + 0 * c + this.m43 + 0 * this.m44; this.m44 = 0 * b + 0 * c + 0 * d + this.m44 * a; this.m45 = 0 * b + 0 * c + 0 * d + 0 * e; return this }, rotateRed: function (a) { a *= .01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = b; this.m23 = -a; this.m31 = this.m25 = this.m24 = 0; this.m32 = a; this.m33 = b; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, rotateGreen: function (a) { a *= .01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = b; this.m12 = 0; this.m13 = a; this.m21 = this.m15 = this.m14 = 0; this.m22 = 1; this.m25 = this.m24 = this.m23 = 0; this.m31 = -a; this.m32 = 0; this.m33 = b; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, rotateBlue: function (a) { a *= .01745329251994278; var b = Math.cos(a); a = Math.cos(a); this.m11 = b; this.m12 = -a; this.m15 = this.m14 = this.m13 = 0; this.m21 = a; this.m22 = b; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, shearRed: function (a, b) { this.m11 = 1; this.m12 = a; this.m13 = b; this.m21 = this.m15 = this.m14 = 0; this.m22 = 1; this.m32 = this.m31 = this.m25 = this.m24 = this.m23 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, shearGreen: function (a, b) { this.m11 = 1; this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m21 = a; this.m22 = 1; this.m23 = b; this.m32 = this.m31 = this.m25 = this.m24 = 0; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, shearBlue: function (a, b) { this.m11 = 1; this.m21 = this.m15 = this.m14 = this.m13 = this.m12 = 0; this.m22 = 1; this.m25 = this.m24 = this.m23 = 0; this.m31 = a; this.m32 = b; this.m33 = 1; this.m43 = this.m42 = this.m41 = this.m35 = this.m34 = 0; this.m44 = 1; this.m45 = 0; return this }, applyColorDeficiency: function (a) { switch (a._hx_index) { case 0: a = this.m11; var b = this.m12, c = this.m13, d = this.m14; this.m11 = .567 * this.m11 + .558 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .433 * a + .442 * this.m12 + .242 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + .758 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .567 * this.m21 + .558 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .433 * a + .442 * this.m22 + .242 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + .758 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .567 * this.m31 + .558 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .433 * a + .442 * this.m32 + .242 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + .758 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .567 * this.m41 + .558 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .433 * a + .442 * this.m42 + .242 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + .758 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 1: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .817 * this.m11 + .333 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .183 * a + .667 * this.m12 + .125 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + .875 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .817 * this.m21 + .333 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .183 * a + .667 * this.m22 + .125 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + .875 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .817 * this.m31 + .333 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .183 * a + .667 * this.m32 + .125 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + .875 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .817 * this.m41 + .333 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .183 * a + .667 * this.m42 + .125 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + .875 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 2: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .625 * this.m11 + .7 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .375 * a + .3 * this.m12 + .3 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + .7 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .625 * this.m21 + .7 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .375 * a + .3 * this.m22 + .3 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + .7 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .625 * this.m31 + .7 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .375 * a + .3 * this.m32 + .3 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + .7 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .625 * this.m41 + .7 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .375 * a + .3 * this.m42 + .3 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + .7 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 3: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .8 * this.m11 + .258 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .2 * a + .742 * this.m12 + .142 * this.m13 + 0 * this.m14; this.m13 = 0 * a + 0 * b + .858 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .8 * this.m21 + .258 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .2 * a + .742 * this.m22 + .142 * this.m23 + 0 * this.m24; this.m23 = 0 * a + 0 * b + .858 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .8 * this.m31 + .258 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .2 * a + .742 * this.m32 + .142 * this.m33 + 0 * this.m34; this.m33 = 0 * a + 0 * b + .858 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .8 * this.m41 + .258 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .2 * a + .742 * this.m42 + .142 * this.m43 + 0 * this.m44; this.m43 = 0 * a + 0 * b + .858 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 4: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .95 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .05 * a + .433 * this.m12 + .475 * this.m13 + 0 * this.m14; this.m13 = 0 * a + .567 * b + .525 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .95 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .05 * a + .433 * this.m22 + .475 * this.m23 + 0 * this.m24; this.m23 = 0 * a + .567 * b + .525 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .95 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .05 * a + .433 * this.m32 + .475 * this.m33 + 0 * this.m34; this.m33 = 0 * a + .567 * b + .525 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .95 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .05 * a + .433 * this.m42 + .475 * this.m43 + 0 * this.m44; this.m43 = 0 * a + .567 * b + .525 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 5: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .967 * this.m11 + 0 * this.m12 + 0 * this.m13 + 0 * this.m14; this.m12 = .033 * a + .733 * this.m12 + .183 * this.m13 + 0 * this.m14; this.m13 = 0 * a + .267 * b + .817 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .967 * this.m21 + 0 * this.m22 + 0 * this.m23 + 0 * this.m24; this.m22 = .033 * a + .733 * this.m22 + .183 * this.m23 + 0 * this.m24; this.m23 = 0 * a + .267 * b + .817 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .967 * this.m31 + 0 * this.m32 + 0 * this.m33 + 0 * this.m34; this.m32 = .033 * a + .733 * this.m32 + .183 * this.m33 + 0 * this.m34; this.m33 = 0 * a + .267 * b + .817 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .967 * this.m41 + 0 * this.m42 + 0 * this.m43 + 0 * this.m44; this.m42 = .033 * a + .733 * this.m42 + .183 * this.m43 + 0 * this.m44; this.m43 = 0 * a + .267 * b + .817 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 6: a = this.m11; b = this.m12; c = this.m13; d = this.m14; this.m11 = .299 * this.m11 + .299 * this.m12 + .299 * this.m13 + 0 * this.m14; this.m12 = .587 * a + .587 * this.m12 + .587 * this.m13 + 0 * this.m14; this.m13 = .114 * a + .114 * b + .114 * this.m13 + 0 * this.m14; this.m14 = 0 * a + 0 * b + 0 * c + this.m14; this.m15 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m21; b = this.m22; c = this.m23; d = this.m24; this.m21 = .299 * this.m21 + .299 * this.m22 + .299 * this.m23 + 0 * this.m24; this.m22 = .587 * a + .587 * this.m22 + .587 * this.m23 + 0 * this.m24; this.m23 = .114 * a + .114 * b + .114 * this.m23 + 0 * this.m24; this.m24 = 0 * a + 0 * b + 0 * c + this.m24; this.m25 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m31; b = this.m32; c = this.m33; d = this.m34; this.m31 = .299 * this.m31 + .299 * this.m32 + .299 * this.m33 + 0 * this.m34; this.m32 = .587 * a + .587 * this.m32 + .587 * this.m33 + 0 * this.m34; this.m33 = .114 * a + .114 * b + .114 * this.m33 + 0 * this.m34; this.m34 = 0 * a + 0 * b + 0 * c + this.m34; this.m35 = 0 * a + 0 * b + 0 * c + 0 * d; a = this.m41; b = this.m42; c = this.m43; d = this.m44; this.m41 = .299 * this.m41 + .299 * this.m42 + .299 * this.m43 + 0 * this.m44; this.m42 = .587 * a + .587 * this.m42 + .587 * this.m43 + 0 * this.m44; this.m43 = .114 * a + .114 * b + .114 * this.m43 + 0 * this.m44; this.m44 = 0 * a + 0 * b + 0 * c + this.m44; this.m45 = 0 * a + 0 * b + 0 * c + 0 * d; break; case 7: a = this.m11, b = this.m12, c = this.m13, d = this.m14, this.m11 = .618 * this.m11 + .163 * this.m12 + .163 * this.m13 + 0 * this.m14, this.m12 = .32 * a + .775 * this.m12 + .32 * this.m13 + 0 * this.m14, this.m13 = .062 * a + .062 * b + .516 * this.m13 + 0 * this.m14, this.m14 = 0 * a + 0 * b + 0 * c + this.m14, this.m15 = 0 * a + 0 * b + 0 * c + 0 * d, a = this.m21, b = this.m22, c = this.m23, d = this.m24, this.m21 = .618 * this.m21 + .163 * this.m22 + .163 * this.m23 + 0 * this.m24, this.m22 = .32 * a + .775 * this.m22 + .32 * this.m23 + 0 * this.m24, this.m23 = .062 * a + .062 * b + .516 * this.m23 + 0 * this.m24, this.m24 = 0 * a + 0 * b + 0 * c + this.m24, this.m25 = 0 * a + 0 * b + 0 * c + 0 * d, a = this.m31, b = this.m32, c = this.m33, d = this.m34, this.m31 = .618 * this.m31 + .163 * this.m32 + .163 * this.m33 + 0 * this.m34, this.m32 = .32 * a + .775 * this.m32 + .32 * this.m33 + 0 * this.m34, this.m33 = .062 * a + .062 * b + .516 * this.m33 + 0 * this.m34, this.m34 = 0 * a + 0 * b + 0 * c + this.m34, this.m35 = 0 * a + 0 * b + 0 * c + 0 * d, a = this.m41, b = this.m42, c = this.m43, d = this.m44, this.m41 = .618 * this.m41 + .163 * this.m42 + .163 * this.m43 + 0 * this.m44, this.m42 = .32 * a + .775 * this.m42 + .32 * this.m43 + 0 * this.m44, this.m43 = .062 * a + .062 * b + .516 * this.m43 + 0 * this.m44, this.m44 = 0 * a + 0 * b + 0 * c + this.m44, this.m45 = 0 * a + 0 * b + 0 * c + 0 * d } return this }, applyMatrix: function (a, b) { var c = a.a, d = a.r, e = a.g, g = a.b; a = X.clamp(.5 + d * this.m41 + e * this.m42 + g * this.m43 + c * this.m44 + this.m45 | 0, 0, 255); var f = X.clamp(.5 + d * this.m11 + e * this.m12 + g * this.m13 + c * this.m14 + this.m15 | 0, 0, 255), v = X.clamp(.5 + d * this.m21 + e * this.m22 + g * this.m23 + c * this.m24 + this.m25 | 0, 0, 255); c = X.clamp(.5 + d * this.m31 + e * this.m32 + g * this.m33 + c * this.m34 + this.m35 | 0, 0, 255); b.a = a; b.r = f; b.g = v; b.b = c; return b }, transformVector: function (a) { var b = a[0], c = a[1], d = a[2], e = a[3], g = b * this.m21 + c * this.m22 + d * this.m23 + e * this.m24 + this.m25, f = b * this.m31 + c * this.m32 + d * this.m33 + e * this.m34 + this.m35, v = b * this.m41 + c * this.m42 + d * this.m43 + e * this.m44 + this.m45; a[0] = b * this.m11 + c * this.m12 + d * this.m13 + e * this.m14 + this.m15; a[1] = g; a[2] = f; a[3] = v; return a }, initHue: function () { if (!this.hueInitialized) { this.hueInitialized = !0; this.preHue = new bb; this.preHue.rotateRed(45); this.preHue.rotateGreen(-39.182655); var a = []; a[0] = bb.LUMA_R2; a[1] = bb.LUMA_G2; a[2] = bb.LUMA_B2; a[3] = 1; this.preHue.transformVector(a); var b = a[0] / a[2]; a = a[1] / a[2]; this.preHue.shearBlue(b, a); this.postHue = new bb; this.postHue.shearBlue(-b, -a); this.postHue.rotateGreen(39.182655); this.postHue.rotateRed(-45) } }, toArray: function (a) { a[0] = this.m11; a[1] = this.m12; a[2] = this.m13; a[3] = this.m14; a[4] = this.m15; a[5] = this.m21; a[6] = this.m22; a[7] = this.m23; a[8] = this.m24; a[9] = this.m25; a[10] = this.m31; a[11] = this.m32; a[12] = this.m33; a[13] = this.m34; a[14] = this.m35; a[15] = this.m41; a[16] = this.m42; a[17] = this.m43; a[18] = this.m44; a[19] = this.m45; return a }, set: function (a, b, c, d, e, g, f, v, p, m, h, n, l, k, t, q, u, da, ja, w) { this.m11 = a; this.m12 = b; this.m13 = c; this.m14 = d; this.m15 = e; this.m21 = g; this.m22 = f; this.m23 = v; this.m24 = p; this.m25 = m; this.m31 = h; this.m32 = n; this.m33 = l; this.m34 = k; this.m35 = t; this.m41 = q; this.m42 = u; this.m43 = da; this.m44 = ja; this.m45 = w }, mul: function (a, b, c, d, e, g, f, v, p, m, h, n, l, k, t, q, u, da, ja, w) { var r = this.m11, Ke = this.m12, yb = this.m13, Og = this.m14; this.m11 = this.m11 * a + this.m12 * g + this.m13 * h + this.m14 * q; this.m12 = r * b + this.m12 * f + this.m13 * n + this.m14 * u; this.m13 = r * c + Ke * v + this.m13 * l + this.m14 * da; this.m14 = r * d + Ke * p + yb * k + this.m14 * ja; this.m15 = r * e + Ke * m + yb * t + Og * w; r = this.m21; Ke = this.m22; yb = this.m23; Og = this.m24; this.m21 = this.m21 * a + this.m22 * g + this.m23 * h + this.m24 * q; this.m22 = r * b + this.m22 * f + this.m23 * n + this.m24 * u; this.m23 = r * c + Ke * v + this.m23 * l + this.m24 * da; this.m24 = r * d + Ke * p + yb * k + this.m24 * ja; this.m25 = r * e + Ke * m + yb * t + Og * w; r = this.m31; Ke = this.m32; yb = this.m33; Og = this.m34; this.m31 = this.m31 * a + this.m32 * g + this.m33 * h + this.m34 * q; this.m32 = r * b + this.m32 * f + this.m33 * n + this.m34 * u; this.m33 = r * c + Ke * v + this.m33 * l + this.m34 * da; this.m34 = r * d + Ke * p + yb * k + this.m34 * ja; this.m35 = r * e + Ke * m + yb * t + Og * w; r = this.m41; Ke = this.m42; yb = this.m43; Og = this.m44; this.m41 = this.m41 * a + this.m42 * g + this.m43 * h + this.m44 * q; this.m42 = r * b + this.m42 * f + this.m43 * n + this.m44 * u; this.m43 = r * c + Ke * v + this.m43 * l + this.m44 * da; this.m44 = r * d + Ke * p + yb * k + this.m44 * ja; this.m45 = r * e + Ke * m + yb * t + Og * w }, __class__: bb }; var ds = function () { }; k["com.stencyl.utils.HaxeDefines"] = ds; ds.__name__ = "com.stencyl.utils.HaxeDefines"; var Qk = function (a, b) { this.map = a; this.initializer = b }; k["com.stencyl.utils.LazyIntMap"] = Qk; Qk.__name__ = "com.stencyl.utils.LazyIntMap"; Qk.prototype = { map: null, initializer: null, get: function (a) { var b = this.map.h[a]; null == b && (b = this.initializer(a), this.map.h[a] = b); return b }, set: function (a, b) { this.map.h[a] = b }, exists: function (a) { return this.map.h.hasOwnProperty(a) }, remove: function (a) { return this.map.remove(a) }, keys: function () { return this.map.keys() }, iterator: function () { return this.map.iterator() }, __class__: Qk }; var On = function (a, b) { this.map = a; this.initializer = b }; k["com.stencyl.utils.LazyStringMap"] = On; On.__name__ = "com.stencyl.utils.LazyStringMap"; On.prototype = { map: null, initializer: null, get: function (a) { var b = this.map.h[a]; null == b && (b = this.initializer(a), this.map.h[a] = b); return b }, set: function (a, b) { this.map.h[a] = b }, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.map.h, a) }, remove: function (a) { var b = this.map; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1 }, keys: function () { return new oj(this.map.h) }, iterator: function () { return new Bi(this.map.h) }, __class__: On }; var oo = function () { }; k["com.stencyl.utils.Mathematics"] = oo; oo.__name__ = "com.stencyl.utils.Mathematics"; oo.round = function (a) { return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }; oo.clamp = function (a, b, c) { return a < b ? b : a > c ? c : a }; oo.fclamp = function (a, b, c) { return a < b ? b : a > c ? c : a }; var Fc = function (a) { this.points = a; this.combineClosePoints(); this.combineColinearPoints(); this.makeCCW() }; k["com.stencyl.utils.PolyDecompBayazit"] = Fc; Fc.__name__ = "com.stencyl.utils.PolyDecompBayazit"; Fc.area = function (a, b, c) { return (b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y) }; Fc.right = function (a, b, c) { return 0 > Fc.area(a, b, c) }; Fc.rightOn = function (a, b, c) { return 0 >= Fc.area(a, b, c) }; Fc.left = function (a, b, c) { return 0 < Fc.area(a, b, c) }; Fc.leftOn = function (a, b, c) { return 0 <= Fc.area(a, b, c) }; Fc.sqdist = function (a, b) { var c = b.x - a.x; a = b.y - a.y; return c * c + a * a }; Fc.getIntersection = function (a, b, c, d) { var e = b.y - a.y; b = a.x - b.x; a = e * a.x + b * a.y; var g = d.y - c.y; d = c.x - d.x; c = g * c.x + d * c.y; var f = e * d - g * b; return Math.abs(f) > Number.MIN_VALUE ? new na((d * a - b * c) / f, (e * c - g * a) / f) : null }; Fc.prototype = { combineColinearPoints: function () { for (var a = [], b = 0, c = this.points.length; b < c;) { var d = b++, e = this.at(d - 1), g = this.at(d); d = this.at(d + 1); null != Fc.getIntersection(e, g, g, d) && a.push(g) } this.points = a }, points: null, combineClosePoints: function () { for (var a = [], b = 0, c = this.points.length; b < c;) { var d = b++, e = this.at(d); d = this.at(d + 1); Fc.sqdist(e, d) > Number.MIN_VALUE && a.push(e) } this.points = a }, at: function (a) { var b = this.points.length; return this.points[(a + b) % b] }, isReflex: function (a) { return Fc.right(this.at(a - 1), this.at(a), this.at(a + 1)) }, polyFromRange: function (a, b) { return a < b ? new Fc(this.points.slice(a, b + 1)) : new Fc(this.points.slice(a).concat(this.points.slice(0, b + 1))) }, decompose: function (a) { if (!(3 > this.points.length)) { for (var b = 0, c = this.points.length; b < c;) { var d = b++; if (this.isReflex(d)) { var e = Number.MAX_VALUE, g = null; b = 0; for (var f = Number.MAX_VALUE, v = null, p = c = 0, m = this.points.length; p < m;) { var h = p++; if (Fc.left(this.at(d - 1), this.at(d), this.at(h)) && Fc.rightOn(this.at(d - 1), this.at(d), this.at(h - 1))) { var n = Fc.getIntersection(this.at(d - 1), this.at(d), this.at(h), this.at(h - 1)); if (Fc.right(this.at(d + 1), this.at(d), n)) { var l = Fc.sqdist(this.at(d), n); l < f && (f = l, v = n, c = h) } } Fc.left(this.at(d + 1), this.at(d), this.at(h + 1)) && Fc.rightOn(this.at(d + 1), this.at(d), this.at(h)) && (n = Fc.getIntersection(this.at(d + 1), this.at(d), this.at(h), this.at(h + 1)), Fc.left(this.at(d - 1), this.at(d), n) && (l = Fc.sqdist(this.at(d), n), l < e && (e = l, g = n, b = h))) } if (c == (b + 1) % this.points.length) e = new na(.5 * (v.x + g.x), .5 * (v.y + g.y)), g = this.polyFromRange(d, b), g.points.push(e), d = d < b ? this.polyFromRange(c, d) : this.polyFromRange(0, d), d.points.push(e); else { c > b && (b += this.points.length); e = 0; for (g = Number.MAX_VALUE; c <= b;) Fc.leftOn(this.at(d - 1), this.at(d), this.at(c)) && Fc.rightOn(this.at(d + 1), this.at(d), this.at(c)) && (f = Fc.sqdist(this.at(d), this.at(c)), f < g && (g = f, this.at(c), e = c % this.points.length)), ++c; g = this.polyFromRange(d, e); d = this.polyFromRange(e, d) } g.points.length < d.points.length ? (g.decompose(a), d.decompose(a)) : (d.decompose(a), g.decompose(a)); return } } 3 <= this.points.length && a(this) } }, makeCCW: function () { for (var a = 0, b = 1, c = this.points.length; b < c;) { var d = b++; if (this.at(d).y < this.at(a).y || this.at(d).y == this.at(a).y && this.at(d).x > this.at(a).x) a = d } Fc.left(this.at(a - 1), this.at(a), this.at(a + 1)) || this.points.reverse() }, __class__: Fc }; var Od = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.r = a; this.g = b; this.b = c }; k["com.stencyl.utils.RGB"] = Od; Od.__name__ = "com.stencyl.utils.RGB"; Od.setRGBi = function (a, b, c) { return (a & 255) << 16 | (b & 255) << 8 | c & 255 }; Od.setRGBf = function (a, b, c) { a = 255 * (0 > a ? 0 : 1 < a ? 1 : a); b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); c = 255 * (0 > c ? 0 : 1 < c ? 1 : c); return (((0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0) & 255) << 16 | (((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255) << 8 | ((0 < c ? c + .5 : 0 > c ? c - .5 : 0) | 0) & 255 }; Od.getR = function (a) { return a >>> 16 & 255 }; Od.getRf = function (a) { return .00392156862745098 * (a >>> 16 & 255) }; Od.getG = function (a) { return a >>> 8 & 255 }; Od.getGf = function (a) { return .00392156862745098 * (a >>> 8 & 255) }; Od.getB = function (a) { return a & 255 }; Od.getBf = function (a) { return .00392156862745098 * (a & 255) }; Od.setR = function (a, b) { return (b & 255) << 16 | a & -16711681 }; Od.setRf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255) << 16 | a & -16711681 }; Od.setG = function (a, b) { return (b & 255) << 8 | a & -65281 }; Od.setGf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return (((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255) << 8 | a & -65281 }; Od.setB = function (a, b) { return b & 255 | a & -256 }; Od.setBf = function (a, b) { b = 255 * (0 > b ? 0 : 1 < b ? 1 : b); return ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) & 255 | a & -256 }; Od.prototype = { r: null, g: null, b: null, set: function (a, b, c) { this.r = a; this.g = b; this.b = c }, lerp: function (a, b, c) { b.r = this.r + (a.r - this.r) * c; b.g = this.g + (a.g - this.g) * c; b.b = this.b + (a.b - this.b) * c }, getR8: function () { var a = 255 * this.r; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, getG8: function () { var a = 255 * this.g; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, getB8: function () { var a = 255 * this.b; return (0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0 }, get24: function () { var a = 255 * this.r, b = 255 * this.g, c = 255 * this.b; return ((0 < a ? a + .5 : 0 > a ? a - .5 : 0) | 0) << 16 | ((0 < b ? b + .5 : 0 > b ? b - .5 : 0) | 0) << 8 | (0 < c ? c + .5 : 0 > c ? c - .5 : 0) | 0 }, set24: function (a, b, c) { this.r = .00392156862745098 * (a & 255); this.g = .00392156862745098 * (b & 255); this.b = .00392156862745098 * (c & 255) }, copy: function (a) { a.r = this.r; a.g = this.g; a.b = this.b; return a }, __class__: Od }; var of = function (a, b) { null == b && (b = 0); null == a && (a = 1); this.volume = a; this.pan = b; this.rightToRight = this.rightToLeft = this.leftToRight = this.leftToLeft = 0 }; k["openfl.media.SoundTransform"] = of; of.__name__ = "openfl.media.SoundTransform"; of.prototype = { leftToLeft: null, leftToRight: null, pan: null, rightToLeft: null, rightToRight: null, volume: null, clone: function () { return new of(this.volume, this.pan) }, __class__: of }; var xa = function () { this.h = Object.create(null) }; k["haxe.ds.StringMap"] = xa; xa.__name__ = "haxe.ds.StringMap"; xa.__interfaces__ = [jd]; xa.stringify = function (a) { var b = "{", c = !0, d; for (d in a) c ? c = !1 : b += ",", b += d + " => " + z.string(a[d]); return b + "}" }; xa.prototype = { h: null, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.h, a) }, get: function (a) { return this.h[a] }, set: function (a, b) { this.h[a] = b }, remove: function (a) { return Object.prototype.hasOwnProperty.call(this.h, a) ? (delete this.h[a], !0) : !1 }, keys: function () { return new oj(this.h) }, iterator: function () { return new Bi(this.h) }, keyValueIterator: function () { return new po(this.h) }, __class__: xa }; var eb = function () { this.h = {} }; k["haxe.ds.IntMap"] = eb; eb.__name__ = "haxe.ds.IntMap"; eb.__interfaces__ = [jd]; eb.prototype = { h: null, set: function (a, b) { this.h[a] = b }, get: function (a) { return this.h[a] }, exists: function (a) { return this.h.hasOwnProperty(a) }, remove: function (a) { if (!this.h.hasOwnProperty(a)) return !1; delete this.h[a]; return !0 }, keys: function () { var a = [], b; for (b in this.h) this.h.hasOwnProperty(b) && a.push(b | 0); return new Qe(a) }, iterator: function () { return { ref: this.h, it: this.keys(), hasNext: function () { return this.it.hasNext() }, next: function () { var a = this.it.next(); return this.ref[a] } } }, keyValueIterator: function () { return new kh(this) }, __class__: eb }; var Uh = function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = 0); null == d && (d = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 1); this.a = a; this.b = b; this.c = c; this.d = d; this.tx = e; this.ty = g }; k["lime.math.Matrix3"] = Uh; Uh.__name__ = "lime.math.Matrix3"; Uh.prototype = { a: null, b: null, c: null, d: null, tx: null, ty: null, clone: function () { return new Uh(this.a, this.b, this.c, this.d, this.tx, this.ty) }, concat: function (a) { var b = this.a * a.a + this.b * a.c; this.b = this.a * a.b + this.b * a.d; this.a = b; b = this.c * a.a + this.d * a.c; this.d = this.c * a.b + this.d * a.d; this.c = b; b = this.tx * a.a + this.ty * a.c + a.tx; this.ty = this.tx * a.b + this.ty * a.d + a.ty; this.tx = b }, copyColumnFrom: function (a, b) { if (2 < a) throw I.thrown("Column " + a + " out of bounds (2)"); 0 == a ? (this.a = b.x, this.b = b.y) : 1 == a ? (this.c = b.x, this.d = b.y) : (this.tx = b.x, this.ty = b.y) }, copyColumnTo: function (a, b) { if (2 < a) throw I.thrown("Column " + a + " out of bounds (2)"); 0 == a ? (b.x = this.a, b.y = this.b, b.z = 0) : 1 == a ? (b.x = this.c, b.y = this.d, b.z = 0) : (b.x = this.tx, b.y = this.ty, b.z = 1) }, copyFrom: function (a) { this.a = a.a; this.b = a.b; this.c = a.c; this.d = a.d; this.tx = a.tx; this.ty = a.ty }, copyRowFrom: function (a, b) { if (2 < a) throw I.thrown("Row " + a + " out of bounds (2)"); 0 == a ? (this.a = b.x, this.c = b.y, this.tx = b.z) : 1 == a && (this.b = b.x, this.d = b.y, this.ty = b.z) }, copyRowTo: function (a, b) { if (2 < a) throw I.thrown("Row " + a + " out of bounds (2)"); 0 == a ? (b.x = this.a, b.y = this.c, b.z = this.tx) : 1 == a ? (b.x = this.b, b.y = this.d, b.z = this.ty) : (b.x = 0, b.y = 0, b.z = 1) }, createBox: function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 0); if (0 != c) { var g = Math.cos(c); c = Math.sin(c); this.a = g * a; this.b = c * b; this.c = -c * a; this.d = g * b } else this.a = a, this.c = this.b = 0, this.d = b; this.tx = d; this.ty = e }, createGradientBox: function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 0); this.a = a / 1638.4; this.d = b / 1638.4; if (0 != c) { var g = Math.cos(c); c = Math.sin(c); this.b = c * this.d; this.c = -c * this.a; this.a *= g; this.d *= g } else this.c = this.b = 0; this.tx = d + a / 2; this.ty = e + b / 2 }, equals: function (a) { return null != a && this.tx == a.tx && this.ty == a.ty && this.a == a.a && this.b == a.b && this.c == a.c ? this.d == a.d : !1 }, deltaTransformVector: function (a, b) { null == b && (b = new be); b.x = a.x * this.a + a.y * this.c; b.y = a.x * this.b + a.y * this.d; return b }, identity: function () { this.a = 1; this.c = this.b = 0; this.d = 1; this.ty = this.tx = 0 }, invert: function () { var a = this.a * this.d - this.b * this.c; if (0 == a) this.a = this.b = this.c = this.d = 0, this.tx = -this.tx, this.ty = -this.ty; else { a = 1 / a; var b = this.d * a; this.d = this.a * a; this.a = b; this.b *= -a; this.c *= -a; a = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = a } return this }, rotate: function (a) { var b = Math.cos(a); a = Math.sin(a); var c = this.a * b - this.b * a; this.b = this.a * a + this.b * b; this.a = c; c = this.c * b - this.d * a; this.d = this.c * a + this.d * b; this.c = c; c = this.tx * b - this.ty * a; this.ty = this.tx * a + this.ty * b; this.tx = c }, scale: function (a, b) { this.a *= a; this.b *= b; this.c *= a; this.d *= b; this.tx *= a; this.ty *= b }, setRotation: function (a, b) { null == b && (b = 1); this.a = Math.cos(a) * b; this.c = Math.sin(a) * b; this.b = -this.c; this.d = this.a }, setTo: function (a, b, c, d, e, g) { this.a = a; this.b = b; this.c = c; this.d = d; this.tx = e; this.ty = g }, to3DString: function (a) { null == a && (a = !1); return a ? "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)" : "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)" }, toString: function () { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")" }, transformRect: function (a, b) { null == b && (b = new Vd); var c = this.a * a.x + this.c * a.y, d = c, e = this.b * a.x + this.d * a.y, g = e, f = this.a * (a.x + a.width) + this.c * a.y, v = this.b * (a.x + a.width) + this.d * a.y; f < c && (c = f); v < e && (e = v); f > d && (d = f); v > g && (g = v); f = this.a * (a.x + a.width) + this.c * (a.y + a.height); v = this.b * (a.x + a.width) + this.d * (a.y + a.height); f < c && (c = f); v < e && (e = v); f > d && (d = f); v > g && (g = v); f = this.a * a.x + this.c * (a.y + a.height); v = this.b * a.x + this.d * (a.y + a.height); f < c && (c = f); v < e && (e = v); f > d && (d = f); v > g && (g = v); b.setTo(c + f, e + v, d - c, g - e); return b }, transformVector: function (a, b) { null == b && (b = new be); b.x = a.x * this.a + a.y * this.c + this.tx; b.y = a.x * this.b + a.y * this.d + this.ty; return b }, translate: function (a, b) { this.tx += a; this.ty += b }, __class__: Uh }; var Ja = function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = 0); null == d && (d = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 1); this.a = a; this.b = b; this.c = c; this.d = d; this.tx = e; this.ty = g }; k["openfl.geom.Matrix"] = Ja; Ja.__name__ = "openfl.geom.Matrix"; Ja.prototype = { a: null, b: null, c: null, d: null, tx: null, ty: null, __array: null, clone: function () { return new Ja(this.a, this.b, this.c, this.d, this.tx, this.ty) }, concat: function (a) { var b = this.a * a.a + this.b * a.c; this.b = this.a * a.b + this.b * a.d; this.a = b; b = this.c * a.a + this.d * a.c; this.d = this.c * a.b + this.d * a.d; this.c = b; b = this.tx * a.a + this.ty * a.c + a.tx; this.ty = this.tx * a.b + this.ty * a.d + a.ty; this.tx = b }, copyColumnFrom: function (a, b) { if (2 < a) throw I.thrown("Column " + a + " out of bounds (2)"); 0 == a ? (this.a = b.x, this.b = b.y) : 1 == a ? (this.c = b.x, this.d = b.y) : (this.tx = b.x, this.ty = b.y) }, copyColumnTo: function (a, b) { if (2 < a) throw I.thrown("Column " + a + " out of bounds (2)"); 0 == a ? (b.x = this.a, b.y = this.b, b.z = 0) : 1 == a ? (b.x = this.c, b.y = this.d, b.z = 0) : (b.x = this.tx, b.y = this.ty, b.z = 1) }, copyFrom: function (a) { this.a = a.a; this.b = a.b; this.c = a.c; this.d = a.d; this.tx = a.tx; this.ty = a.ty }, copyRowFrom: function (a, b) { if (2 < a) throw I.thrown("Row " + a + " out of bounds (2)"); 0 == a ? (this.a = b.x, this.c = b.y, this.tx = b.z) : 1 == a && (this.b = b.x, this.d = b.y, this.ty = b.z) }, copyRowTo: function (a, b) { if (2 < a) throw I.thrown("Row " + a + " out of bounds (2)"); 0 == a ? (b.x = this.a, b.y = this.c, b.z = this.tx) : 1 == a ? (b.x = this.b, b.y = this.d, b.z = this.ty) : b.setTo(0, 0, 1) }, createBox: function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 0); if (0 != c) { var g = Math.cos(c); c = Math.sin(c); this.a = g * a; this.b = c * b; this.c = -c * a; this.d = g * b } else this.a = a, this.c = this.b = 0, this.d = b; this.tx = d; this.ty = e }, createGradientBox: function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 0); this.a = a / 1638.4; this.d = b / 1638.4; if (0 != c) { var g = Math.cos(c); c = Math.sin(c); this.b = c * this.d; this.c = -c * this.a; this.a *= g; this.d *= g } else this.c = this.b = 0; this.tx = d + a / 2; this.ty = e + b / 2 }, deltaTransformPoint: function (a) { return new na(a.x * this.a + a.y * this.c, a.x * this.b + a.y * this.d) }, equals: function (a) { return null != a && this.tx == a.tx && this.ty == a.ty && this.a == a.a && this.b == a.b && this.c == a.c ? this.d == a.d : !1 }, identity: function () { this.a = 1; this.c = this.b = 0; this.d = 1; this.ty = this.tx = 0 }, invert: function () { var a = this.a * this.d - this.b * this.c; if (0 == a) this.a = this.b = this.c = this.d = 0, this.tx = -this.tx, this.ty = -this.ty; else { a = 1 / a; var b = this.d * a; this.d = this.a * a; this.a = b; this.b *= -a; this.c *= -a; a = -this.a * this.tx - this.c * this.ty; this.ty = -this.b * this.tx - this.d * this.ty; this.tx = a } return this }, rotate: function (a) { var b = Math.cos(a); a = Math.sin(a); var c = this.a * b - this.b * a; this.b = this.a * a + this.b * b; this.a = c; c = this.c * b - this.d * a; this.d = this.c * a + this.d * b; this.c = c; c = this.tx * b - this.ty * a; this.ty = this.tx * a + this.ty * b; this.tx = c }, scale: function (a, b) { this.a *= a; this.b *= b; this.c *= a; this.d *= b; this.tx *= a; this.ty *= b }, setRotation: function (a, b) { null == b && (b = 1); this.a = Math.cos(a) * b; this.c = Math.sin(a) * b; this.b = -this.c; this.d = this.a }, setTo: function (a, b, c, d, e, g) { this.a = a; this.b = b; this.c = c; this.d = d; this.tx = e; this.ty = g }, to3DString: function (a) { null == a && (a = !1); return a ? "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + (this.tx | 0) + ", " + (this.ty | 0) + ", 0, 1)" : "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)" }, toMozString: function () { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)" }, toString: function () { return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")" }, transformPoint: function (a) { return new na(a.x * this.a + a.y * this.c + this.tx, a.x * this.b + a.y * this.d + this.ty) }, translate: function (a, b) { this.tx += a; this.ty += b }, toArray: function (a) { null == a && (a = !1); null == this.__array && (this.__array = new Float32Array(9)); a ? (this.__array[0] = this.a, this.__array[1] = this.b, this.__array[2] = 0, this.__array[3] = this.c, this.__array[4] = this.d, this.__array[5] = 0, this.__array[6] = this.tx, this.__array[7] = this.ty) : (this.__array[0] = this.a, this.__array[1] = this.c, this.__array[2] = this.tx, this.__array[3] = this.b, this.__array[4] = this.d, this.__array[5] = this.ty, this.__array[6] = 0, this.__array[7] = 0); this.__array[8] = 1; return this.__array }, __cleanValues: function () { this.a = Math.round(1E3 * this.a) / 1E3; this.b = Math.round(1E3 * this.b) / 1E3; this.c = Math.round(1E3 * this.c) / 1E3; this.d = Math.round(1E3 * this.d) / 1E3; this.tx = Math.round(10 * this.tx) / 10; this.ty = Math.round(10 * this.ty) / 10 }, __toMatrix3: function () { Ja.__matrix3.setTo(this.a, this.b, this.c, this.d, this.tx, this.ty); return Ja.__matrix3 }, __transformInversePoint: function (a) { var b = this.a * this.d - this.b * this.c; if (0 == b) a.x = -this.tx, a.y = -this.ty; else { var c = 1 / b * (this.c * (this.ty - a.y) + this.d * (a.x - this.tx)); a.y = 1 / b * (this.a * (a.y - this.ty) + this.b * (this.tx - a.x)); a.x = c } }, __transformInverseX: function (a, b) { var c = this.a * this.d - this.b * this.c; return 0 == c ? -this.tx : 1 / c * (this.c * (this.ty - b) + this.d * (a - this.tx)) }, __transformInverseY: function (a, b) { var c = this.a * this.d - this.b * this.c; return 0 == c ? -this.ty : 1 / c * (this.a * (b - this.ty) + this.b * (this.tx - a)) }, __transformPoint: function (a) { var b = a.x, c = a.y; a.x = b * this.a + c * this.c + this.tx; a.y = b * this.b + c * this.d + this.ty }, __transformX: function (a, b) { return a * this.a + b * this.c + this.tx }, __transformY: function (a, b) { return a * this.b + b * this.d + this.ty }, __translateTransformed: function (a, b) { this.tx = a * this.a + b * this.c + this.tx; this.ty = a * this.b + b * this.d + this.ty }, __class__: Ja }; var Pc = function (a, b, c, d, e, g, f, v) { null == v && (v = 0); null == f && (f = 0); null == g && (g = 0); null == e && (e = 0); null == d && (d = 1); null == c && (c = 1); null == b && (b = 1); null == a && (a = 1); this.redMultiplier = a; this.greenMultiplier = b; this.blueMultiplier = c; this.alphaMultiplier = d; this.redOffset = e; this.greenOffset = g; this.blueOffset = f; this.alphaOffset = v }; k["openfl.geom.ColorTransform"] = Pc; Pc.__name__ = "openfl.geom.ColorTransform"; Pc.prototype = { alphaMultiplier: null, alphaOffset: null, blueMultiplier: null, blueOffset: null, greenMultiplier: null, greenOffset: null, redMultiplier: null, redOffset: null, concat: function (a) { this.redOffset = a.redOffset * this.redMultiplier + this.redOffset; this.greenOffset = a.greenOffset * this.greenMultiplier + this.greenOffset; this.blueOffset = a.blueOffset * this.blueMultiplier + this.blueOffset; this.alphaOffset = a.alphaOffset * this.alphaMultiplier + this.alphaOffset; this.redMultiplier *= a.redMultiplier; this.greenMultiplier *= a.greenMultiplier; this.blueMultiplier *= a.blueMultiplier; this.alphaMultiplier *= a.alphaMultiplier }, toString: function () { return "(redMultiplier=" + this.redMultiplier + ", greenMultiplier=" + this.greenMultiplier + ", blueMultiplier=" + this.blueMultiplier + ", alphaMultiplier=" + this.alphaMultiplier + ", redOffset=" + this.redOffset + ", greenOffset=" + this.greenOffset + ", blueOffset=" + this.blueOffset + ", alphaOffset=" + this.alphaOffset + ")" }, __clone: function () { return new Pc(this.redMultiplier, this.greenMultiplier, this.blueMultiplier, this.alphaMultiplier, this.redOffset, this.greenOffset, this.blueOffset, this.alphaOffset) }, __copyFrom: function (a) { this.redMultiplier = a.redMultiplier; this.greenMultiplier = a.greenMultiplier; this.blueMultiplier = a.blueMultiplier; this.alphaMultiplier = a.alphaMultiplier; this.redOffset = a.redOffset; this.greenOffset = a.greenOffset; this.blueOffset = a.blueOffset; this.alphaOffset = a.alphaOffset }, __combine: function (a) { this.redMultiplier *= a.redMultiplier; this.greenMultiplier *= a.greenMultiplier; this.blueMultiplier *= a.blueMultiplier; this.alphaMultiplier *= a.alphaMultiplier; this.redOffset += a.redOffset; this.greenOffset += a.greenOffset; this.blueOffset += a.blueOffset; this.alphaOffset += a.alphaOffset }, __identity: function () { this.alphaMultiplier = this.blueMultiplier = this.greenMultiplier = this.redMultiplier = 1; this.alphaOffset = this.blueOffset = this.greenOffset = this.redOffset = 0 }, __invert: function () { this.redMultiplier = 0 != this.redMultiplier ? 1 / this.redMultiplier : 1; this.greenMultiplier = 0 != this.greenMultiplier ? 1 / this.greenMultiplier : 1; this.blueMultiplier = 0 != this.blueMultiplier ? 1 / this.blueMultiplier : 1; this.alphaMultiplier = 0 != this.alphaMultiplier ? 1 / this.alphaMultiplier : 1; this.redOffset = -this.redOffset; this.greenOffset = -this.greenOffset; this.blueOffset = -this.blueOffset; this.alphaOffset = -this.alphaOffset }, __equals: function (a, b) { return null == a || this.redMultiplier != a.redMultiplier || this.greenMultiplier != a.greenMultiplier || this.blueMultiplier != a.blueMultiplier || !b && this.alphaMultiplier != a.alphaMultiplier || this.redOffset != a.redOffset || this.greenOffset != a.greenOffset || this.blueOffset != a.blueOffset ? !1 : this.alphaOffset == a.alphaOffset }, __isDefault: function (a) { return a ? 1 == this.redMultiplier && 1 == this.greenMultiplier && 1 == this.blueMultiplier && 0 == this.redOffset && 0 == this.greenOffset && 0 == this.blueOffset ? 0 == this.alphaOffset : !1 : 1 == this.redMultiplier && 1 == this.greenMultiplier && 1 == this.blueMultiplier && 1 == this.alphaMultiplier && 0 == this.redOffset && 0 == this.greenOffset && 0 == this.blueOffset ? 0 == this.alphaOffset : !1 }, __setArrays: function (a, b) { a[0] = this.redMultiplier; a[1] = this.greenMultiplier; a[2] = this.blueMultiplier; a[3] = this.alphaMultiplier; b[0] = this.redOffset; b[1] = this.greenOffset; b[2] = this.blueOffset; b[3] = this.alphaOffset }, get_color: function () { return (this.redOffset | 0) << 16 | (this.greenOffset | 0) << 8 | this.blueOffset | 0 }, set_color: function (a) { this.redOffset = a >> 16 & 255; this.greenOffset = a >> 8 & 255; this.blueOffset = a & 255; this.blueMultiplier = this.greenMultiplier = this.redMultiplier = 0; return this.get_color() }, __toLimeColorMatrix: function () { if (null == Pc.__limeColorMatrix) { var a = new Float32Array(20); Pc.__limeColorMatrix = a } Pc.__limeColorMatrix[0] = this.redMultiplier; Pc.__limeColorMatrix[4] = this.redOffset / 255; Pc.__limeColorMatrix[6] = this.greenMultiplier; Pc.__limeColorMatrix[9] = this.greenOffset / 255; Pc.__limeColorMatrix[12] = this.blueMultiplier; Pc.__limeColorMatrix[14] = this.blueOffset / 255; Pc.__limeColorMatrix[18] = this.alphaMultiplier; Pc.__limeColorMatrix[19] = this.alphaOffset / 255; return Pc.__limeColorMatrix }, __class__: Pc, __properties__: {set_color: "set_color", get_color: "get_color"} }; var X = function () { }; k["com.stencyl.utils.Utils"] = X; X.__name__ = "com.stencyl.utils.Utils"; X.__properties__ = { set_time: "set_time", set_pan: "set_pan", get_pan: "get_pan", set_volume: "set_volume", get_volume: "get_volume" }; X.toBoolean = function (a) { return "true" == a ? !0 : !1 }; X.clear = function (a) { a.length = 0 }; X.removeValueFromArray = function (a, b) { for (var c = a.length - 1; -1 < c;) a[c] == b && a.splice(c, 1), --c }; X.contains = function (a, b) { if (null == a) return !1; for (var c = a.length - 1; -1 < c;) { if (a[c] == b) return !0; --c } return !1 }; X.mapContainsValue = function (a, b) { a = a.h; for (var c = Object.keys(a), d = c.length, e = 0; e < d;) if (a[c[e++]] == b) return !0; return !1 }; X.mapCount = function (a) { var b = 0; a = Object.keys(a.h).length; for (var c = 0; c < a;) c++, ++b; return b }; X.mapToList = function (a, b) { var c = []; if ("keys" == b) { b = a.h; b = Object.keys(b); for (var d = b.length, e = 0; e < d;) { var g = b[e++]; c.push(g) } } else for (a = b = a.h, b = Object.keys(b), d = b.length, e = 0; e < d;) g = a[b[e++]], c.push(g); return c }; X.clone = function (a) { return X.cloner.clone(a) }; X.copyMap = function (a) { for (var b = new xa, c = Object.keys(a.h), d = c.length, e = 0; e < d;) { var g = c[e++]; b.h[g] = a.h[g] } return b }; X.applyToAllChildren = function (a, b) { for (var c = 0, d = a.get_numChildren(); c < d;) { var e = c++; e = a.getChildAt(e); e instanceof ab && X.applyToAllChildren(e, b); b(e) } }; X.removeAllChildren = function (a) { for (; 0 < a.get_numChildren();) { var b = a.getChildAt(0); b instanceof ab && X.removeAllChildren(w.__cast(b, ab)); b instanceof lg && X.removeAllTiles(b); a.removeChild(b) } }; X.removeAllTiles = function (a) { for (; 0 < a.get_numTiles();) { var b = a.getTileAt(0); w.__implements(b, Ci) && X.removeAllTiles(b); a.removeTile(b) } }; X.demouse = function (a) { for (var b = 0, c = a.get_numChildren(); b < c;) { var d = b++; d = a.getChildAt(d); d instanceof ab && X.demouse(w.__cast(d, ab)); a.mouseChildren = !1; a.mouseEnabled = !1 } }; X.getAnchorPoint = function (a) { a = a.getRect(a); return new na(-1 * a.x, -1 * a.y) }; X.setCamera = function (a, b) { null == b && (b = 0); null == a && (a = 0); X.camera.x = a; X.camera.y = b }; X.resetCamera = function () { X.camera.x = X.camera.y = 0 }; X.get_volume = function () { return X._volume }; X.set_volume = function (a) { 0 > a && (a = 0); if (X._volume == a) return a; X._soundTransform.volume = X._volume = a; return X._volume }; X.get_pan = function () { return X._pan }; X.set_pan = function (a) { -1 > a && (a = -1); 1 < a && (a = 1); if (X._pan == a) return a; X._soundTransform.pan = X._pan = a; return X._pan }; X.sign = function (a) { return 0 > a ? -1 : 0 < a ? 1 : 0 }; X.approach = function (a, b, c) { return a < b ? b < a + c ? b : a + c : b > a - c ? b : a - c }; X.lerp = function (a, b, c) { null == c && (c = 1); return a + (b - a) * c }; X.colorLerp = function (a, b, c) { null == c && (c = 1); if (0 >= c) return a; if (1 <= c) return b; var d = a >> 24 & 255, e = a >> 16 & 255, g = a >> 8 & 255; a &= 255; return d + (((b >> 24 & 255) - d) * c | 0) << 24 | e + (((b >> 16 & 255) - e) * c | 0) << 16 | g + (((b >> 8 & 255) - g) * c | 0) << 8 | a + (((b & 255) - a) * c | 0) }; X.stepTowards = function (a, b, c, d) { null == d && (d = 1); X.point.x = b - a.x; X.point.y = c - a.y; X.point.get_length() <= d ? (a.x = b, a.y = c) : (X.point.normalize(d), a.x += X.point.x, a.y += X.point.y) }; X.anchorTo = function (a, b, c) { null == c && (c = 0); X.point.x = a.x - b.x; X.point.y = a.y - b.y; X.point.get_length() > c && X.point.normalize(c); a.x = b.x + X.point.x; a.y = b.y + X.point.y }; X.angle = function (a, b, c, d) { a = 57.29577951308402 * Math.atan2(d - b, c - a); return 0 > a ? a + 360 : a }; X.angleXY = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = 1); b *= .01745329251994278; a.x = Math.cos(b) * c + d; a.y = Math.sin(b) * c + e }; X.rotateAround = function (a, b, c, d) { null == d && (d = !0); null == c && (c = 0); d && (d = 57.29577951308402 * Math.atan2(a.y - b.y, a.x - b.x), c += 0 > d ? d + 360 : d); d = b.x; var e = b.y, g = a.x, f = a.y; null == f && (f = 0); null == g && (g = 0); d = Math.sqrt((g - d) * (g - d) + (f - e) * (f - e)); e = b.x; b = b.y; null == b && (b = 0); null == e && (e = 0); null == d && (d = 1); c *= .01745329251994278; a.x = Math.cos(c) * d + e; a.y = Math.sin(c) * d + b }; X.distance = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (d - b) * (d - b)) }; X.distanceSquared = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); return (c - a) * (c - a) + (d - b) * (d - b) }; X.distanceRects = function (a, b, c, d, e, g, f, v) { if (a < e + f && e < a + c) return b < g + v && g < b + d ? 0 : b > g ? b - (g + v) : g - (b + d); if (b < g + v && g < b + d) return a > e ? a - (e + f) : e - (a + c); if (a > e) { if (b > g) return e += f, g += v, null == g && (g = 0), null == e && (e = 0), Math.sqrt((e - a) * (e - a) + (g - b) * (g - b)); b += d; e += f; null == g && (g = 0); null == e && (e = 0); return Math.sqrt((e - a) * (e - a) + (g - b) * (g - b)) } if (b > g) return a += c, g += v, null == g && (g = 0), null == e && (e = 0), Math.sqrt((e - a) * (e - a) + (g - b) * (g - b)); a += c; b += d; null == g && (g = 0); null == e && (e = 0); return Math.sqrt((e - a) * (e - a) + (g - b) * (g - b)) }; X.distanceRectPoint = function (a, b, c, d, e, g) { if (a >= c && a <= c + e) return b >= d && b <= d + g ? 0 : b > d ? b - (d + g) : d - b; if (b >= d && b <= d + g) return a > c ? a - (c + e) : c - a; if (a > c) { if (b > d) return c += e, d += g, null == d && (d = 0), null == c && (c = 0), Math.sqrt((c - a) * (c - a) + (d - b) * (d - b)); c += e; null == d && (d = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (d - b) * (d - b)) } if (b > d) return d += g, null == d && (d = 0), null == c && (c = 0), Math.sqrt((c - a) * (c - a) + (d - b) * (d - b)); null == d && (d = 0); null == c && (c = 0); return Math.sqrt((c - a) * (c - a) + (d - b) * (d - b)) }; X.clamp = function (a, b, c) { if (c > b) return a < c || (a = c), a > b ? a : b; a < b || (a = b); return a > c ? a : c }; X.clampInRect = function (a, b, c, d, e, g) { null == g && (g = 0); a.x = X.clamp(a.x, b + g, b + d - g); a.y = X.clamp(a.y, c + g, c + e - g) }; X.scale = function (a, b, c, d, e) { return d + (a - b) / (c - b) * (e - d) }; X.scaleClamp = function (a, b, c, d, e) { a = d + (a - b) / (c - b) * (e - d); if (e > d) return a < e || (a = e), a > d ? a : d; a < d || (a = d); return a > e ? a : e }; X.indexOf = function (a, b) { for (var c = 0, d = 0; d < a.length;) { var e = a[d]; ++d; if (b == e) return c; ++c } return -1 }; X.next = function (a, b, c) { null == c && (c = !0); return c ? b[(X.indexOf(b, a) + 1) % b.length] : b[Math.max(X.indexOf(b, a) + 1, b.length - 1) | 0] }; X.prev = function (a, b, c) { null == c && (c = !0); return c ? b[(X.indexOf(b, a) - 1 + b.length) % b.length] : b[Math.max(X.indexOf(b, a) - 1, 0) | 0] }; X.swap = function (a, b, c) { return a == b ? c : b }; X.getColorRGB = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); return a << 16 | b << 8 | c }; X.getRed = function (a) { return a >> 16 & 255 }; X.getGreen = function (a) { return a >> 8 & 255 }; X.getBlue = function (a) { return a & 255 }; X.convertColor = function (a) { return 0 > a ? a + 16777216 : a }; X.timeFlag = function () { var a = (new Date).getTime() / 1E3, b = a - X._time; X._time = a; return b }; X.frames = function (a, b, c) { null == c && (c = 0); var d = []; ++c; if (a < b) for (; a <= b;) d.push(a), a += c; else for (; a >= b;) d.push(a), a -= c; return d }; X.set_time = function (a) { X._time = a; return X._time }; X.printCallstackIfAvailable = function () { return "\n" + pf.toString(pf.callStack()) }; X.printExceptionstackIfAvailable = function () { return "\n" + pf.toString(pf.exceptionStack()) }; X.saveToSharedObject = function (a, b, c) { try { a.data[b] = X.clone(c) } catch (d) { if (ra.lastError = d, a = I.caught(d).unwrap(), "string" == typeof a) { if ("deep clone" != a) throw I.thrown(a); } else throw d; } }; X.loadFromSharedObject = function (a, b) { return X.cloner.clone(V.field(a.data, b)) }; X.flushSharedObject = function (a, b) { var c = null; try { c = a.flush() } catch (d) { ra.lastError = d; null != b && b(!1); return } 0 == c && null != b && b(!0) }; X.saveMap = function (a, b, c) { b = qd.getLocal(b, zd.current.meta.h.localSavePath); for (var d = Object.keys(a.h), e = d.length, g = 0; g < e;) { var f = d[g++]; b.data[f] = a.h[f] } X.flushSharedObject(b, c) }; X.loadMap = function (a, b, c) { b = qd.getLocal(b, zd.current.meta.h.localSavePath); for (var d = 0, e = V.fields(b.data); d < e.length;) { var g = e[d]; ++d; a.h[g] = V.field(b.data, g) } null != c && c(!0) }; X.convertLegacySharedObject = function (a, b) { }; X.getFlatName = function (a) { a = T.replace(a, "/", "_"); a = T.replace(a, ".", "_"); return a = T.replace(a, "-", "_") }; X.getAssetClass = function (a) { a = "__ASSET__" + X.getFlatName(a); return k[a] }; X.getConfigBytes = function (a) { return zh.getBytes(X.getFlatName(a)) }; X.getConfigText = function (a) { return zh.getString(X.getFlatName(a)) }; X.getConfigBitmap = function (a) { try { var b = X.getFlatName(T.replace(a, ".png", ".txt")), c = zh.getString(b); return ka.loadFromBase64(c, "png").then(function (a) { return ob.withValue(new dd(a)) }) } catch (d) { ra.lastError = d; a = I.caught(d).unwrap(); if ("string" == typeof a) return ob.withError("(You probably have a old browser) Error occurred: " + a); throw d; } }; X.loadBytes = function (a) { a = Ha.createInstance(X.getAssetClass(a), []); return oc.ofData(Fb.toArrayBuffer(a)) }; X.loadText = function (a) { a = X.loadBytes(a); return a.getString(0, a.length) }; X.loadBitmapData = function (a) { a = Lb.fromFile(a); return ka.fromImage(a) }; X.resetStatics = function () { X.width = 0; X.height = 0; X.elapsed = 0; X.rate = 1; X.bounds = null; X.camera = new na; X._time = 0; X._updateTime = 0; X._renderTime = 0; X._gameTime = 0; X._flashTime = 0; X._bitmap = new xa; X._seed = 0; X._getSeed = 0; X._volume = 1; X._pan = 0; X._soundTransform = new of; X.stage = null; X.point = new na; X.point2 = new na; X.zero = new na; X.rect = new ba; X.matrix = new Ja; X.sprite = new Ca; X.collision = new Ac }; var Pa = function () { }; k["com.stencyl.utils.motion.EasingFunction"] = Pa; Pa.__name__ = "com.stencyl.utils.motion.EasingFunction"; Pa.prototype = { apply: function (a) { return 0 }, __class__: Pa }; var kl = function () { }; k["com.stencyl.utils.motion.BackIn"] = kl; kl.__name__ = "com.stencyl.utils.motion.BackIn"; kl.__super__ = Pa; kl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : a * a * (2.70158 * a - 1.70158) }, __class__: kl }); var ll = function () { }; k["com.stencyl.utils.motion.BackInOut"] = ll; ll.__name__ = "com.stencyl.utils.motion.BackInOut"; ll.__super__ = Pa; ll.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? .5 * a * a * (3.5949095 * a - 2.5949095) : .5 * ((a -= 2) * a * (3.5949095 * a + 2.5949095) + 2) }, __class__: ll }); var ml = function () { }; k["com.stencyl.utils.motion.BackOut"] = ml; ml.__name__ = "com.stencyl.utils.motion.BackOut"; ml.__super__ = Pa; ml.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : --a * a * (2.70158 * a + 1.70158) + 1 }, __class__: ml }); var nl = function () { }; k["com.stencyl.utils.motion.BackOutIn"] = nl; nl.__name__ = "com.stencyl.utils.motion.BackOutIn"; nl.__super__ = Pa; nl.prototype = u(Pa.prototype, { apply: function (a) { if (0 == a) return 0; if (1 == a) return 1; if (.5 > a) return a = 2 * a - 1, .5 * (a * a * (2.70158 * a + 1.70158) + 1); a = 2 * a - 1; return .5 * a * a * (2.70158 * a - 1.70158) + .5 }, __class__: nl }); var ol = function () { }; k["com.stencyl.utils.motion.BounceIn"] = ol; ol.__name__ = "com.stencyl.utils.motion.BounceIn"; ol.__super__ = Pa; ol.prototype = u(Pa.prototype, { apply: function (a) { a = 1 - a; return .36363636363636365 > a ? 1 - 7.5625 * a * a : .7272727272727273 > a ? 1 - (7.5625 * (a -= .5454545454545454) * a + .75) : .9090909090909091 > a ? 1 - (7.5625 * (a -= .8181818181818182) * a + .9375) : 1 - (7.5625 * (a -= .9545454545454546) * a + .984375) }, __class__: ol }); var pl = function () { }; k["com.stencyl.utils.motion.BounceInOut"] = pl; pl.__name__ = "com.stencyl.utils.motion.BounceInOut"; pl.__super__ = Pa; pl.prototype = u(Pa.prototype, { apply: function (a) { if (.5 > a) return a = 1 - 2 * a, .36363636363636365 > a ? .5 * (1 - 7.5625 * a * a) : .7272727272727273 > a ? .5 * (1 - (7.5625 * (a -= .5454545454545454) * a + .75)) : .9090909090909091 > a ? .5 * (1 - (7.5625 * (a -= .8181818181818182) * a + .9375)) : .5 * (1 - (7.5625 * (a -= .9545454545454546) * a + .984375)); a = 2 * a - 1; return .36363636363636365 > a ? 7.5625 * a * a * .5 + .5 : .7272727272727273 > a ? .5 * (7.5625 * (a -= .5454545454545454) * a + .75) + .5 : .9090909090909091 > a ? .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) + .5 : .5 * (7.5625 * (a -= .9545454545454546) * a + .984375) + .5 }, __class__: pl }); var ql = function () { }; k["com.stencyl.utils.motion.BounceOut"] = ql; ql.__name__ = "com.stencyl.utils.motion.BounceOut"; ql.__super__ = Pa; ql.prototype = u(Pa.prototype, { apply: function (a) { return .36363636363636365 > a ? 7.5625 * a * a : .7272727272727273 > a ? 7.5625 * (a -= .5454545454545454) * a + .75 : .9090909090909091 > a ? 7.5625 * (a -= .8181818181818182) * a + .9375 : 7.5625 * (a -= .9545454545454546) * a + .984375 }, __class__: ql }); var rl = function () { }; k["com.stencyl.utils.motion.BounceOutIn"] = rl; rl.__name__ = "com.stencyl.utils.motion.BounceOutIn"; rl.__super__ = Pa; rl.prototype = u(Pa.prototype, { apply: function (a) { if (.5 > a) return .36363636363636365 > (a *= 2) ? 3.78125 * a * a : .7272727272727273 > a ? .5 * (7.5625 * (a -= .5454545454545454) * a + .75) : .9090909090909091 > a ? .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) : .5 * (7.5625 * (a -= .9545454545454546) * a + .984375); a = 1 - (2 * a - 1); return .36363636363636365 > a ? .5 - 3.78125 * a * a + .5 : .7272727272727273 > a ? .5 - .5 * (7.5625 * (a -= .5454545454545454) * a + .75) + .5 : .9090909090909091 > a ? .5 - .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) + .5 : .5 - .5 * (7.5625 * (a -= .9545454545454546) * a + .984375) + .5 }, __class__: rl }); var sl = function () { }; k["com.stencyl.utils.motion.CircIn"] = sl; sl.__name__ = "com.stencyl.utils.motion.CircIn"; sl.__super__ = Pa; sl.prototype = u(Pa.prototype, { apply: function (a) { return -1 > a || 1 < a ? 0 : 1 - Math.sqrt(1 - a * a) }, __class__: sl }); var tl = function () { }; k["com.stencyl.utils.motion.CircInOut"] = tl; tl.__name__ = "com.stencyl.utils.motion.CircInOut"; tl.__super__ = Pa; tl.prototype = u(Pa.prototype, { apply: function (a) { return -.5 > a || 1.5 < a ? .5 : 1 > (a *= 2) ? -.5 * (Math.sqrt(1 - a * a) - 1) : .5 * (Math.sqrt(1 - (a -= 2) * a) + 1) }, __class__: tl }); var ul = function () { }; k["com.stencyl.utils.motion.CircOut"] = ul; ul.__name__ = "com.stencyl.utils.motion.CircOut"; ul.__super__ = Pa; ul.prototype = u(Pa.prototype, { apply: function (a) { return 0 > a || 2 < a ? 0 : Math.sqrt(a * (2 - a)) }, __class__: ul }); var vl = function () { }; k["com.stencyl.utils.motion.CircOutIn"] = vl; vl.__name__ = "com.stencyl.utils.motion.CircOutIn"; vl.__super__ = Pa; vl.prototype = u(Pa.prototype, { apply: function (a) { if (0 > a) return 0; if (1 < a) return 1; if (.5 > a) return a = 2 * a - 1, .5 * Math.sqrt(1 - a * a); a = 2 * a - 1; return -.5 * (Math.sqrt(1 - a * a) - 1 - 1) }, __class__: vl }); var wl = function () { }; k["com.stencyl.utils.motion.CubicIn"] = wl; wl.__name__ = "com.stencyl.utils.motion.CubicIn"; wl.__super__ = Pa; wl.prototype = u(Pa.prototype, { apply: function (a) { return a * a * a }, __class__: wl }); var xl = function () { }; k["com.stencyl.utils.motion.CubicInOut"] = xl; xl.__name__ = "com.stencyl.utils.motion.CubicInOut"; xl.__super__ = Pa; xl.prototype = u(Pa.prototype, { apply: function (a) { return 1 > (a *= 2) ? .5 * a * a * a : .5 * ((a -= 2) * a * a + 2) }, __class__: xl }); var yl = function () { }; k["com.stencyl.utils.motion.CubicOut"] = yl; yl.__name__ = "com.stencyl.utils.motion.CubicOut"; yl.__super__ = Pa; yl.prototype = u(Pa.prototype, { apply: function (a) { return --a * a * a + 1 }, __class__: yl }); var zl = function () { }; k["com.stencyl.utils.motion.CubicOutIn"] = zl; zl.__name__ = "com.stencyl.utils.motion.CubicOutIn"; zl.__super__ = Pa; zl.prototype = u(Pa.prototype, { apply: function (a) { a = 2 * a - 1; return .5 * (a * a * a + 1) }, __class__: zl }); var Al = function () { }; k["com.stencyl.utils.motion.ElasticIn"] = Al; Al.__name__ = "com.stencyl.utils.motion.ElasticIn"; Al.__super__ = Pa; Al.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : -(Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4)) }, __class__: Al }); var Bl = function () { }; k["com.stencyl.utils.motion.ElasticInOut"] = Bl; Bl.__name__ = "com.stencyl.utils.motion.ElasticInOut"; Bl.__super__ = Pa; Bl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? -.5 * Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) : Math.exp(-6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) * .5 + 1 }, __class__: Bl }); var Cl = function () { }; k["com.stencyl.utils.motion.ElasticOut"] = Cl; Cl.__name__ = "com.stencyl.utils.motion.ElasticOut"; Cl.__super__ = Pa; Cl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.exp(-6.931471805599453 * a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) + 1 }, __class__: Cl }); var Dl = function () { }; k["com.stencyl.utils.motion.ElasticOutIn"] = Dl; Dl.__name__ = "com.stencyl.utils.motion.ElasticOutIn"; Dl.__super__ = Pa; Dl.prototype = u(Pa.prototype, { apply: function (a) { if (.5 > a) return 0 == (a *= 2) ? 0 : .5 * Math.exp(-6.931471805599453 * a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) + .5; if (.5 == a) return .5; if (1 == a) return 1; a = 2 * a - 1; return -(.5 * Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4)) + .5 }, __class__: Dl }); var El = function () { }; k["com.stencyl.utils.motion.ExpoIn"] = El; El.__name__ = "com.stencyl.utils.motion.ExpoIn"; El.__super__ = Pa; El.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : Math.exp(6.931471805599453 * (a - 1)) }, __class__: El }); var Fl = function () { }; k["com.stencyl.utils.motion.ExpoInOut"] = Fl; Fl.__name__ = "com.stencyl.utils.motion.ExpoInOut"; Fl.__super__ = Pa; Fl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? .5 * Math.exp(6.931471805599453 * (a - 1)) : .5 * (2 - Math.exp(-6.931471805599453 * (a - 1))) }, __class__: Fl }); var Gl = function () { }; k["com.stencyl.utils.motion.ExpoOut"] = Gl; Gl.__name__ = "com.stencyl.utils.motion.ExpoOut"; Gl.__super__ = Pa; Gl.prototype = u(Pa.prototype, { apply: function (a) { return 1 == a ? 1 : 1 - Math.exp(-6.931471805599453 * a) }, __class__: Gl }); var Hl = function () { }; k["com.stencyl.utils.motion.ExpoOutIn"] = Hl; Hl.__name__ = "com.stencyl.utils.motion.ExpoOutIn"; Hl.__super__ = Pa; Hl.prototype = u(Pa.prototype, { apply: function (a) { return .5 > a ? .5 * (1 - Math.exp(-13.862943611198906 * a)) : .5 == a ? .5 : .5 * (Math.exp(13.862943611198906 * (a - 1)) + 1) }, __class__: Hl }); var Il = function () { }; k["com.stencyl.utils.motion.Linear"] = Il; Il.__name__ = "com.stencyl.utils.motion.Linear"; Il.__super__ = Pa; Il.prototype = u(Pa.prototype, { apply: function (a) { return a }, __class__: Il }); var Jl = function () { }; k["com.stencyl.utils.motion.QuadIn"] = Jl; Jl.__name__ = "com.stencyl.utils.motion.QuadIn"; Jl.__super__ = Pa; Jl.prototype = u(Pa.prototype, { apply: function (a) { return a * a }, __class__: Jl }); var Kl = function () { }; k["com.stencyl.utils.motion.QuadInOut"] = Kl; Kl.__name__ = "com.stencyl.utils.motion.QuadInOut"; Kl.__super__ = Pa; Kl.prototype = u(Pa.prototype, { apply: function (a) { return .5 > a ? 2 * a * a : -2 * --a * a + 1 }, __class__: Kl }); var Ll = function () { }; k["com.stencyl.utils.motion.QuadOut"] = Ll; Ll.__name__ = "com.stencyl.utils.motion.QuadOut"; Ll.__super__ = Pa; Ll.prototype = u(Pa.prototype, { apply: function (a) { return -a * (a - 2) }, __class__: Ll }); var Ml = function () { }; k["com.stencyl.utils.motion.QuadOutIn"] = Ml; Ml.__name__ = "com.stencyl.utils.motion.QuadOutIn"; Ml.__super__ = Pa; Ml.prototype = u(Pa.prototype, { apply: function (a) { if (.5 > a) return -.5 * (a *= 2) * (a - 2); a = 2 * a - 1; return .5 * a * a + .5 }, __class__: Ml }); var Nl = function () { }; k["com.stencyl.utils.motion.QuartIn"] = Nl; Nl.__name__ = "com.stencyl.utils.motion.QuartIn"; Nl.__super__ = Pa; Nl.prototype = u(Pa.prototype, { apply: function (a) { return (a *= a) * a }, __class__: Nl }); var Ol = function () { }; k["com.stencyl.utils.motion.QuartInOut"] = Ol; Ol.__name__ = "com.stencyl.utils.motion.QuartInOut"; Ol.__super__ = Pa; Ol.prototype = u(Pa.prototype, { apply: function (a) { if (1 > (a *= 2)) return .5 * (a *= a) * a; a *= a -= 2; return -.5 * (a * a - 2) }, __class__: Ol }); var Pl = function () { }; k["com.stencyl.utils.motion.QuartOut"] = Pl; Pl.__name__ = "com.stencyl.utils.motion.QuartOut"; Pl.__super__ = Pa; Pl.prototype = u(Pa.prototype, { apply: function (a) { a *= --a; return 1 - a * a }, __class__: Pl }); var Ql = function () { }; k["com.stencyl.utils.motion.QuartOutIn"] = Ql; Ql.__name__ = "com.stencyl.utils.motion.QuartOutIn"; Ql.__super__ = Pa; Ql.prototype = u(Pa.prototype, { apply: function (a) { if (.5 > a) return a = 2 * a - 1, -.5 * (a *= a) * a + .5; a = 2 * a - 1; return .5 * (a *= a) * a + .5 }, __class__: Ql }); var Rl = function () { }; k["com.stencyl.utils.motion.QuintIn"] = Rl; Rl.__name__ = "com.stencyl.utils.motion.QuintIn"; Rl.__super__ = Pa; Rl.prototype = u(Pa.prototype, { apply: function (a) { return a * (a *= a) * a }, __class__: Rl }); var Sl = function () { }; k["com.stencyl.utils.motion.QuintInOut"] = Sl; Sl.__name__ = "com.stencyl.utils.motion.QuintInOut"; Sl.__super__ = Pa; Sl.prototype = u(Pa.prototype, { apply: function (a) { return 1 > (a *= 2) ? .5 * a * (a *= a) * a : .5 * (a -= 2) * (a *= a) * a + 1 }, __class__: Sl }); var Tl = function () { }; k["com.stencyl.utils.motion.QuintOut"] = Tl; Tl.__name__ = "com.stencyl.utils.motion.QuintOut"; Tl.__super__ = Pa; Tl.prototype = u(Pa.prototype, { apply: function (a) { return --a * (a *= a) * a + 1 }, __class__: Tl }); var Ul = function () { }; k["com.stencyl.utils.motion.QuintOutIn"] = Ul; Ul.__name__ = "com.stencyl.utils.motion.QuintOutIn"; Ul.__super__ = Pa; Ul.prototype = u(Pa.prototype, { apply: function (a) { a = 2 * a - 1; return .5 * (a * (a *= a) * a + 1) }, __class__: Ul }); var Vl = function () { }; k["com.stencyl.utils.motion.SineIn"] = Vl; Vl.__name__ = "com.stencyl.utils.motion.SineIn"; Vl.__super__ = Pa; Vl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 - Math.cos(1.5707963267948966 * a) }, __class__: Vl }); var Wl = function () { }; k["com.stencyl.utils.motion.SineInOut"] = Wl; Wl.__name__ = "com.stencyl.utils.motion.SineInOut"; Wl.__super__ = Pa; Wl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : -.5 * (Math.cos(3.141592653589793 * a) - 1) }, __class__: Wl }); var Xl = function () { }; k["com.stencyl.utils.motion.SineOut"] = Xl; Xl.__name__ = "com.stencyl.utils.motion.SineOut"; Xl.__super__ = Pa; Xl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.sin(1.5707963267948966 * a) }, __class__: Xl }); var Yl = function () { }; k["com.stencyl.utils.motion.SineOutIn"] = Yl; Yl.__name__ = "com.stencyl.utils.motion.SineOutIn"; Yl.__super__ = Pa; Yl.prototype = u(Pa.prototype, { apply: function (a) { return 0 == a ? 0 : 1 == a ? 1 : .5 > a ? .5 * Math.sin(3.141592653589793 * a) : -.5 * Math.cos(1.5707963267948966 * (2 * a - 1)) + 1 }, __class__: Yl }); var Zl = function () { }; k["com.stencyl.utils.motion.WarpIn"] = Zl; Zl.__name__ = "com.stencyl.utils.motion.WarpIn"; Zl.__super__ = Pa; Zl.prototype = u(Pa.prototype, { apply: function (a) { return 1 > a ? 0 : 1 }, __class__: Zl }); var $l = function () { }; k["com.stencyl.utils.motion.WarpInOut"] = $l; $l.__name__ = "com.stencyl.utils.motion.WarpInOut"; $l.__super__ = Pa; $l.prototype = u(Pa.prototype, { apply: function (a) { return .5 > a ? 0 : 1 }, __class__: $l }); var am = function () { }; k["com.stencyl.utils.motion.WarpOut"] = am; am.__name__ = "com.stencyl.utils.motion.WarpOut"; am.__super__ = Pa; am.prototype = u(Pa.prototype, { apply: function (a) { return 0 >= a ? 0 : 1 }, __class__: am }); var bm = function () { }; k["com.stencyl.utils.motion.WarpOutIn"] = bm; bm.__name__ = "com.stencyl.utils.motion.WarpOutIn"; bm.__super__ = Pa; bm.prototype = u(Pa.prototype, { apply: function (a) { return 0 >= a ? 0 : 1 > a ? .5 : 1 }, __class__: bm }); var Wa = function () { }; k["com.stencyl.utils.motion.Easing"] = Wa; Wa.__name__ = "com.stencyl.utils.motion.Easing"; var Vh = function () { }; k["com.stencyl.utils.motion.EasingConstants"] = Vh; Vh.__name__ = "com.stencyl.utils.motion.EasingConstants"; var ng = function () { this.paused = this.finished = this.active = !1 }; k["com.stencyl.utils.motion.TweenObject"] = ng; ng.__name__ = "com.stencyl.utils.motion.TweenObject"; ng.prototype = { easing: null, time: null, duration: null, active: null, paused: null, updated: null, finished: null, onUpdate: null, onComplete: null, _tween: function (a, b) { null == a && (a = Wa.linear); this.easing = a; this.duration = b; this.active || nb.markActive(this); this.time = 0; this.active = !0; this.paused = this.finished = this.updated = !1; 0 == b && (this.duration = 1, nb.finish(this)) }, update: function (a) { if (!this.paused) if (this.time += a, this.time > this.duration && (this.time = this.duration), this.updateValue(), this.updated = !0, this.time == this.duration) { this.active = !1; this.finished = !0; if (null != this.onUpdate) this.onUpdate(); if (null != this.onComplete) this.onComplete() } else if (null != this.onUpdate) this.onUpdate() }, updateValue: function () { }, doOnUpdate: function (a) { this.onUpdate = a; return this }, doOnComplete: function (a) { this.onComplete = a; return this }, __class__: ng }; var ce = function () { ng.call(this) }; k["com.stencyl.utils.motion.TweenFloat"] = ce; ce.__name__ = "com.stencyl.utils.motion.TweenFloat"; ce.__super__ = ng; ce.prototype = u(ng.prototype, { startValue: null, endValue: null, value: null, tween: function (a, b, c, d) { this.startValue = a; this.endValue = b; this.value = a; this._tween(c, d); return this }, updateValue: function () { var a = this.easing.apply(this.time / this.duration); this.value = this.startValue * (1 - a) + this.endValue * a }, __class__: ce }); var Of = function () { ng.call(this) }; k["com.stencyl.utils.motion.TweenFloat2"] = Of; Of.__name__ = "com.stencyl.utils.motion.TweenFloat2"; Of.__super__ = ng; Of.prototype = u(ng.prototype, { startValue1: null, endValue1: null, value1: null, startValue2: null, endValue2: null, value2: null, tween: function (a, b, c, d, e, g) { this.startValue1 = a; this.endValue1 = b; this.value1 = a; this.startValue2 = c; this.endValue2 = d; this.value2 = c; this._tween(e, g); return this }, updateValue: function () { var a = this.easing.apply(this.time / this.duration); this.value1 = this.startValue1 * (1 - a) + this.endValue1 * a; this.value2 = this.startValue2 * (1 - a) + this.endValue2 * a }, __class__: Of }); var nb = function () { }; k["com.stencyl.utils.motion.TweenManager"] = nb; nb.__name__ = "com.stencyl.utils.motion.TweenManager"; nb.resetStatics = function () { nb.activeObjects = []; nb.finishedObjects = [] }; nb.markActive = function (a) { nb.activeObjects.push(a) }; nb.cancel = function (a) { var b = nb.activeObjects.indexOf(a); -1 != b && (a.active = !1, a.updated = !1, a.finished = !1, a.paused = !1, nb.activeObjects[b] = nb.activeObjects[nb.activeObjects.length - 1], nb.activeObjects.pop()) }; nb.finish = function (a) { var b = nb.activeObjects.indexOf(a); -1 != b && (a.update(a.duration - a.time), nb.activeObjects[b] = nb.activeObjects[nb.activeObjects.length - 1], nb.activeObjects.pop(), nb.finishedObjects.push(a)) }; nb.update = function (a) { for (var b = nb.finishedObjects.length; 0 < b--;) nb.finishedObjects.pop().updated = !1; for (b = nb.activeObjects.length; 0 < b--;) { var c = nb.activeObjects[b]; c.update(a); c.finished && (nb.activeObjects[b] = nb.activeObjects[nb.activeObjects.length - 1], nb.activeObjects.pop(), nb.finishedObjects.push(c)) } }; nb.timer = function (a) { return (new cm).tween(a) }; var cm = function () { ng.call(this) }; k["com.stencyl.utils.motion.TweenTimer"] = cm; cm.__name__ = "com.stencyl.utils.motion.TweenTimer"; cm.__super__ = ng; cm.prototype = u(ng.prototype, { tween: function (a) { this._tween(Wa.linear, a); return this }, updateValue: function () { }, __class__: cm }); var og = A["haxe.StackItem"] = { __ename__: "haxe.StackItem", __constructs__: null, CFunction: {_hx_name: "CFunction", _hx_index: 0, __enum__: "haxe.StackItem", toString: t}, Module: (x = function (a) { return {_hx_index: 1, m: a, __enum__: "haxe.StackItem", toString: t} }, x._hx_name = "Module", x.__params__ = ["m"], x), FilePos: (x = function (a, b, c, d) { return { _hx_index: 2, s: a, file: b, line: c, column: d, __enum__: "haxe.StackItem", toString: t } }, x._hx_name = "FilePos", x.__params__ = ["s", "file", "line", "column"], x), Method: (x = function (a, b) { return {_hx_index: 3, classname: a, method: b, __enum__: "haxe.StackItem", toString: t} }, x._hx_name = "Method", x.__params__ = ["classname", "method"], x), LocalFunction: (x = function (a) { return {_hx_index: 4, v: a, __enum__: "haxe.StackItem", toString: t} }, x._hx_name = "LocalFunction", x.__params__ = ["v"], x) }; og.__constructs__ = [og.CFunction, og.Module, og.FilePos, og.Method, og.LocalFunction]; var pf = { callStack: function () { return ra.toHaxe(ra.callStack()) }, exceptionStack: function (a) { null == a && (a = !1); var b = ra.toHaxe(ra.exceptionStack()); return a ? b : pf.subtract(b, pf.callStack()) }, toString: function (a) { for (var b = new Sa, c = 0; c < a.length;) { var d = a[c]; ++c; b.b += "\nCalled from "; pf.itemToString(b, d) } return b.b }, subtract: function (a, b) { for (var c = -1, d = -1; ++d < a.length;) { for (var e = 0, g = b.length; e < g;) { var f = e++; if (pf.equalItems(a[d], b[f])) { if (0 > c && (c = d), ++d, d >= a.length) break } else c = -1 } if (0 <= c) break } return 0 <= c ? a.slice(0, c) : a }, equalItems: function (a, b) { if (null == a) return null == b ? !0 : !1; switch (a._hx_index) { case 0: return null == b ? !1 : 0 == b._hx_index ? !0 : !1; case 1: return null == b ? !1 : 1 == b._hx_index ? a.m == b.m : !1; case 2: if (null == b) return !1; if (2 == b._hx_index) { var c = b.s, d = b.line, e = b.column, g = a.column, f = a.line, v = a.s; return a.file == b.file && f == d && g == e ? pf.equalItems(v, c) : !1 } return !1; case 3: return null == b ? !1 : 3 == b._hx_index ? (c = b.method, d = a.method, a.classname == b.classname ? d == c : !1) : !1; case 4: return null == b ? !1 : 4 == b._hx_index ? a.v == b.v : !1 } }, itemToString: function (a, b) { switch (b._hx_index) { case 0: a.b += "a C function"; break; case 1: b = b.m; a.b += "module "; a.b += null == b ? "null" : "" + b; break; case 2: var c = b.s, d = b.file, e = b.line; b = b.column; null != c && (pf.itemToString(a, c), a.b += " ("); a.b += null == d ? "null" : "" + d; a.b += " line "; a.b += null == e ? "null" : "" + e; null != b && (a.b += " column ", a.b += null == b ? "null" : "" + b); null != c && (a.b += ")"); break; case 3: c = b.classname; b = b.method; a.b += z.string(null == c ? "" : c); a.b += "."; a.b += null == b ? "null" : "" + b; break; case 4: b = b.v, a.b += "local function #", a.b += null == b ? "null" : "" + b } } }, I = function (a, b, c) { Error.call(this, a); this.message = a; this.__previousException = b; this.__nativeException = null != c ? c : this; this.__skipStack = 0; a = Error.prepareStackTrace; Error.prepareStackTrace = function (a) { return a.stack }; if (c instanceof Error) this.stack = c.stack; else { c = null; if (Error.captureStackTrace) Error.captureStackTrace(this, I), c = this; else if (c = Error(), "undefined" == typeof c.stack) { try { throw c; } catch (d) { } this.__skipStack++ } this.stack = c.stack } Error.prepareStackTrace = a }; k["haxe.Exception"] = I; I.__name__ = "haxe.Exception"; I.caught = function (a) { return a instanceof I ? a : a instanceof Error ? new I(a.message, null, a) : new Lj(a, null, a) }; I.thrown = function (a) { if (a instanceof I) return a.get_native(); if (a instanceof Error) return a; a = new Lj(a); a.__skipStack++; return a }; I.__super__ = Error; I.prototype = u(Error.prototype, { __skipStack: null, __nativeException: null, __previousException: null, unwrap: function () { return this.__nativeException }, toString: function () { return this.get_message() }, __shiftStack: function () { this.__skipStack++ }, get_message: function () { return this.message }, get_native: function () { return this.__nativeException }, get_stack: function () { var a = this.__exceptionStack; null == a && (a = ra.toHaxe(ra.normalize(this.stack), this.__skipStack), this.setProperty("__exceptionStack", a)); return a }, setProperty: function (a, b) { try { Object.defineProperty(this, a, {value: b}) } catch (c) { this[a] = b } }, __class__: I, __properties__: {get_native: "get_native", get_stack: "get_stack", get_message: "get_message"} }); var qo = { ucompare: function (a, b) { return 0 > a ? 0 > b ? ~b - ~a | 0 : 1 : 0 > b ? -1 : a - b | 0 } }, es = { toString: function (a) { var b = a; if (0 == b.high && 0 == b.low) return "0"; var c = "", d = !1; 0 > b.high && (d = !0); for (var e = a = new db(0, 10); 0 != b.high || 0 != b.low;) if (a = es.divMod(b, e), 0 > a.modulus.high) { var g = a.modulus; b = ~g.high; g = ~g.low + 1 | 0; 0 == g && b++; c = g + c; b = a.quotient; a = ~b.high; b = ~b.low + 1 | 0; 0 == b && (a++, a |= 0); b = a = new db(a, b) } else c = a.modulus.low + c, b = a.quotient; d && (c = "-" + c); return c }, divMod: function (a, b) { if (0 == b.high) switch (b.low) { case 0: throw I.thrown("divide by zero"); case 1: var c = new db(a.high, a.low), d = new db(0, 0); return {quotient: c, modulus: d} } var e = 0 > a.high != 0 > b.high; if (0 > a.high) { var g = ~a.high; c = ~a.low + 1 | 0; 0 == c && (g++, g |= 0); c = new db(g, c) } else c = new db(a.high, a.low); var f = c; 0 > b.high && (g = ~b.high, c = ~b.low + 1 | 0, 0 == c && (g++, g |= 0), b = c = new db(g, c)); for (var v = c = new db(0, 0), p = c = new db(0, 1); !(0 > b.high || (g = qo.ucompare(b.high, f.high), g = 0 != g ? g : qo.ucompare(b.low, f.low), c = 1, c &= 63, b = 0 == c ? c = new db(b.high, b.low) : 32 > c ? d = new db(b.high << c | b.low >>> 32 - c, b.low << c) : c = new db(b.low << c - 32, 0), c = 1, c &= 63, p = 0 == c ? new db(p.high, p.low) : 32 > c ? new db(p.high << c | p.low >>> 32 - c, p.low << c) : c = new db(p.low << c - 32, 0), 0 <= g));) ; for (; 0 != p.high || 0 != p.low;) g = qo.ucompare(f.high, b.high), 0 <= (0 != g ? g : qo.ucompare(f.low, b.low)) && (v = c = new db(v.high | p.high, v.low | p.low), g = f.high - b.high | 0, c = f.low - b.low | 0, 0 > qo.ucompare(f.low, b.low) && (g--, g |= 0), f = d = new db(g, c)), c = 1, c &= 63, p = 0 == c ? c = new db(p.high, p.low) : 32 > c ? new db(p.high >>> c, p.high << 32 - c | p.low >>> c) : new db(0, p.high >>> c - 32), c = 1, c &= 63, b = 0 == c ? c = new db(b.high, b.low) : 32 > c ? new db(b.high >>> c, b.high << 32 - c | b.low >>> c) : new db(0, b.high >>> c - 32); e && (g = ~v.high, c = ~v.low + 1 | 0, 0 == c && (g++, g |= 0), v = c = new db(g, c)); 0 > a.high && (g = ~f.high, c = ~f.low + 1 | 0, 0 == c && (g++, g |= 0), f = c = new db(g, c)); return {quotient: v, modulus: f} } }, db = function (a, b) { this.high = a; this.low = b }; k["haxe._Int64.___Int64"] = db; db.__name__ = "haxe._Int64.___Int64"; db.prototype = {high: null, low: null, __class__: db}; var lh = function () { }; k["haxe.Log"] = lh; lh.__name__ = "haxe.Log"; lh.formatOutput = function (a, b) { var c = z.string(a); if (null == b) return c; var d = b.fileName + ":" + b.lineNumber; if (null != b.customParams) { var e = 0; for (b = b.customParams; e < b.length;) a = b[e], ++e, c += ", " + z.string(a) } return d + ": " + c }; lh.trace = function (a, b) { a = lh.formatOutput(a, b); "undefined" != typeof console && null != console.log && console.log(a) }; var ra = function () { }; k["haxe.NativeStackTrace"] = ra; ra.__name__ = "haxe.NativeStackTrace"; ra.saveStack = function (a) { ra.lastError = a }; ra.callStack = function () { var a = Error(""), b = ra.tryHaxeStack(a); if ("undefined" == typeof b) { try { throw a; } catch (c) { } b = a.stack } return ra.normalize(b, 2) }; ra.exceptionStack = function () { return ra.normalize(ra.tryHaxeStack(ra.lastError)) }; ra.toHaxe = function (a, b) { null == b && (b = 0); if (null == a) return []; if ("string" == typeof a) { a = a.split("\n"); "Error" == a[0] && a.shift(); for (var c = [], d = 0, e = a.length; d < e;) { var g = d++; if (!(b > g)) { var f = a[g]; g = f.match(/^ at ([A-Za-z0-9_. ]+) \(([^)]+):([0-9]+):([0-9]+)\)$/); if (null != g) { f = g[1].split("."); "$hxClasses" == f[0] && f.shift(); var v = f.pop(), p = g[2], m = z.parseInt(g[3]); g = z.parseInt(g[4]); c.push(og.FilePos("Anonymous function" == v ? og.LocalFunction() : "Global code" == v ? null : og.Method(f.join("."), v), p, m, g)) } else c.push(og.Module(T.trim(f))) } } return c } return 0 < b && Array.isArray(a) ? a.slice(b) : a }; ra.tryHaxeStack = function (a) { if (null == a) return []; var b = Error.prepareStackTrace; Error.prepareStackTrace = ra.prepareHxStackTrace; a = a.stack; Error.prepareStackTrace = b; return a }; ra.prepareHxStackTrace = function (a, b) { a = []; for (var c = 0; c < b.length;) { var d = b[c]; ++c; null != ra.wrapCallSite && (d = ra.wrapCallSite(d)); var e = null, g = d.getFunctionName(); if (null != g) { var f = g.lastIndexOf("."); 0 <= f ? (e = g.substring(0, f), g = g.substring(f + 1), e = og.Method(e, g)) : e = og.Method(null, g) } g = d.getFileName(); f = null == g ? -1 : g.indexOf("file:"); null != ra.wrapCallSite && 0 < f && (g = g.substring(f + 6)); a.push(og.FilePos(e, g, d.getLineNumber(), d.getColumnNumber())) } return a }; ra.normalize = function (a, b) { null == b && (b = 0); if (Array.isArray(a) && 0 < b) return a.slice(b); if ("string" == typeof a) { switch (a.substring(0, 6)) { case "Error\n": case "Error:": ++b } return ra.skipLines(a, b) } return a }; ra.skipLines = function (a, b, c) { null == c && (c = 0); return 0 < b ? (c = a.indexOf("\n", c), 0 > c ? "" : ra.skipLines(a, --b, c + 1)) : a.substring(c) }; var zh = function () { }; k["haxe.Resource"] = zh; zh.__name__ = "haxe.Resource"; zh.getString = function (a) { for (var b = 0, c = zh.content; b < c.length;) { var d = c[b]; ++b; if (d.name == a) return null != d.str ? d.str : Ah.decode(d.data).toString() } return null }; zh.getBytes = function (a) { for (var b = 0, c = zh.content; b < c.length;) { var d = c[b]; ++b; if (d.name == a) return null != d.str ? lb.ofString(d.str) : Ah.decode(d.data) } return null }; var Ge = function () { this.buf = new Sa; this.cache = []; this.useCache = Ge.USE_CACHE; this.useEnumIndex = Ge.USE_ENUM_INDEX; this.shash = new xa; this.scount = 0 }; k["haxe.Serializer"] = Ge; Ge.__name__ = "haxe.Serializer"; Ge.run = function (a) { var b = new Ge; b.serialize(a); return b.toString() }; Ge.prototype = { buf: null, cache: null, shash: null, scount: null, useCache: null, useEnumIndex: null, toString: function () { return this.buf.b }, serializeString: function (a) { var b = this.shash.h[a]; null != b ? (this.buf.b += "R", this.buf.b += null == b ? "null" : "" + b) : (this.shash.h[a] = this.scount++, this.buf.b += "y", a = encodeURIComponent(a), this.buf.b += z.string(a.length), this.buf.b += ":", this.buf.b += null == a ? "null" : "" + a) }, serializeRef: function (a) { for (var b = typeof a, c = 0, d = this.cache.length; c < d;) { var e = c++, g = this.cache[e]; if (typeof g == b && g == a) return this.buf.b += "r", this.buf.b += null == e ? "null" : "" + e, !0 } this.cache.push(a); return !1 }, serializeFields: function (a) { for (var b = 0, c = V.fields(a); b < c.length;) { var d = c[b]; ++b; this.serializeString(d); this.serialize(V.field(a, d)) } this.buf.b += "g" }, serialize: function (a) { var b = Ha.typeof(a); switch (b._hx_index) { case 0: this.buf.b += "n"; break; case 1: if (0 == a) { this.buf.b += "z"; break } this.buf.b += "i"; this.buf.b += null == a ? "null" : "" + a; break; case 2: isNaN(a) ? this.buf.b += "k" : isFinite(a) ? (this.buf.b += "d", this.buf.b += null == a ? "null" : "" + a) : this.buf.b += 0 > a ? "m" : "p"; break; case 3: this.buf.b += a ? "t" : "f"; break; case 4: w.__instanceof(a, jr) ? (a = a.__name__, this.buf.b += "A", this.serializeString(a)) : w.__instanceof(a, fs) ? (this.buf.b += "B", this.serializeString(a.__ename__)) : this.useCache && this.serializeRef(a) || (this.buf.b += "o", this.serializeFields(a)); break; case 5: throw I.thrown("Cannot serialize function"); case 6: b = b.c; if (b == String) { this.serializeString(a); break } if (this.useCache && this.serializeRef(a)) break; switch (b) { case Array: var c = 0; this.buf.b += "a"; for (var d = 0, e = a.length; d < e;) b = d++, null == a[b] ? ++c : (0 < c && (1 == c ? this.buf.b += "n" : (this.buf.b += "u", this.buf.b += null == c ? "null" : "" + c), c = 0), this.serialize(a[b])); 0 < c && (1 == c ? this.buf.b += "n" : (this.buf.b += "u", this.buf.b += null == c ? "null" : "" + c)); this.buf.b += "h"; break; case Date: this.buf.b += "v"; this.buf.b += z.string(a.getTime()); break; case eb: this.buf.b += "q"; for (b = a.keys(); b.hasNext();) c = b.next(), this.buf.b += ":", this.buf.b += null == c ? "null" : "" + c, this.serialize(a.h[c]); this.buf.b += "h"; break; case E: this.buf.b += "l"; for (a = a.h; null != a;) b = a.item, a = a.next, this.serialize(b); this.buf.b += "h"; break; case Oc: this.buf.b += "M"; for (b = a.keys(); b.hasNext();) { c = b.next(); var g = V.field(c, "__id__"); V.deleteField(c, "__id__"); this.serialize(c); c.__id__ = g; this.serialize(a.h[c.__id__]) } this.buf.b += "h"; break; case xa: this.buf.b += "b"; c = Object.keys(a.h); g = c.length; for (d = 0; d < g;) b = c[d++], this.serializeString(b), this.serialize(a.h[b]); this.buf.b += "h"; break; case lb: this.buf.b += "s"; this.buf.b += z.string(Math.ceil(8 * a.length / 6)); this.buf.b += ":"; b = 0; c = a.length - 2; g = Ge.BASE64_CODES; if (null == g) { g = Array(Ge.BASE64.length); d = 0; for (e = Ge.BASE64.length; d < e;) { var f = d++; g[f] = K.cca(Ge.BASE64, f) } Ge.BASE64_CODES = g } for (; b < c;) d = a.b[b++], e = a.b[b++], f = a.b[b++], this.buf.b += String.fromCodePoint(g[d >> 2]), this.buf.b += String.fromCodePoint(g[(d << 4 | e >> 4) & 63]), this.buf.b += String.fromCodePoint(g[(e << 2 | f >> 6) & 63]), this.buf.b += String.fromCodePoint(g[f & 63]); b == c ? (d = a.b[b++], e = a.b[b++], this.buf.b += String.fromCodePoint(g[d >> 2]), this.buf.b += String.fromCodePoint(g[(d << 4 | e >> 4) & 63]), this.buf.b += String.fromCodePoint(g[e << 2 & 63])) : b == c + 1 && (d = a.b[b++], this.buf.b += String.fromCodePoint(g[d >> 2]), this.buf.b += String.fromCodePoint(g[d << 4 & 63])); break; default: this.useCache && this.cache.pop(), null != a.hxSerialize ? (this.buf.b += "C", this.serializeString(b.__name__), this.useCache && this.cache.push(a), a.hxSerialize(this), this.buf.b += "g") : (this.buf.b += "c", this.serializeString(b.__name__), this.useCache && this.cache.push(a), this.serializeFields(a)) } break; case 7: b = b.e; if (this.useCache) { if (this.serializeRef(a)) break; this.cache.pop() } this.buf.b += z.string(this.useEnumIndex ? "j" : "w"); this.serializeString(b.__ename__); this.useEnumIndex ? (this.buf.b += ":", this.buf.b += z.string(a._hx_index)) : (b = a, this.serializeString(A[b.__enum__].__constructs__[b._hx_index]._hx_name)); this.buf.b += ":"; c = Ha.enumParameters(a); this.buf.b += z.string(c.length); for (b = 0; b < c.length;) g = c[b], ++b, this.serialize(g); this.useCache && this.cache.push(a); break; default: throw I.thrown("Cannot serialize " + z.string(a)); } }, __class__: Ge }; var Ve = function (a) { var b = this; this.id = setInterval(function () { b.run() }, a) }; k["haxe.Timer"] = Ve; Ve.__name__ = "haxe.Timer"; Ve.delay = function (a, b) { var c = new Ve(b); c.run = function () { c.stop(); a() }; return c }; Ve.measure = function (a, b) { var c = (new Date).getTime() / 1E3; a = a(); lh.trace((new Date).getTime() / 1E3 - c + "s", b); return a }; Ve.stamp = function () { return (new Date).getTime() / 1E3 }; Ve.prototype = { id: null, stop: function () { null != this.id && (clearInterval(this.id), this.id = null) }, run: function () { }, __class__: Ve }; var dm = function () { }; k["haxe._Unserializer.DefaultResolver"] = dm; dm.__name__ = "haxe._Unserializer.DefaultResolver"; dm.prototype = { resolveClass: function (a) { return k[a] }, resolveEnum: function (a) { return A[a] }, __class__: dm }; var Oe = function (a) { this.buf = a; this.length = this.buf.length; this.pos = 0; this.scache = []; this.cache = []; a = Oe.DEFAULT_RESOLVER; null == a && (a = new dm, Oe.DEFAULT_RESOLVER = a); this.resolver = a }; k["haxe.Unserializer"] = Oe; Oe.__name__ = "haxe.Unserializer"; Oe.initCodes = function () { for (var a = [], b = 0, c = Oe.BASE64.length; b < c;) { var d = b++; a[Oe.BASE64.charCodeAt(d)] = d } return a }; Oe.run = function (a) { return (new Oe(a)).unserialize() }; Oe.prototype = { buf: null, pos: null, length: null, cache: null, scache: null, resolver: null, setResolver: function (a) { null == a ? (null == Di.instance && (Di.instance = new Di), this.resolver = Di.instance) : this.resolver = a }, readDigits: function () { for (var a = 0, b = !1, c = this.pos; ;) { var d = this.buf.charCodeAt(this.pos); if (d != d) break; if (45 == d) { if (this.pos != c) break; b = !0 } else { if (48 > d || 57 < d) break; a = 10 * a + (d - 48) } this.pos++ } b && (a *= -1); return a }, readFloat: function () { for (var a = this.pos; ;) { var b = this.buf.charCodeAt(this.pos); if (b != b) break; if (43 <= b && 58 > b || 101 == b || 69 == b) this.pos++; else break } return parseFloat(K.substr(this.buf, a, this.pos - a)) }, unserializeObject: function (a) { for (; ;) { if (this.pos >= this.length) throw I.thrown("Invalid object"); if (103 == this.buf.charCodeAt(this.pos)) break; var b = this.unserialize(); if ("string" != typeof b) throw I.thrown("Invalid object key"); var c = this.unserialize(); a[b] = c } this.pos++ }, unserializeEnum: function (a, b) { if (58 != this.buf.charCodeAt(this.pos++)) throw I.thrown("Invalid enum format"); var c = this.readDigits(); if (0 == c) return Ha.createEnum(a, b); for (var d = []; 0 < c--;) d.push(this.unserialize()); return Ha.createEnum(a, b, d) }, unserialize: function () { switch (this.buf.charCodeAt(this.pos++)) { case 65: var a = this.unserialize(), b = this.resolver.resolveClass(a); if (null == b) throw I.thrown("Class not found " + a); return b; case 66: a = this.unserialize(); b = this.resolver.resolveEnum(a); if (null == b) throw I.thrown("Enum not found " + a); return b; case 67: a = this.unserialize(); b = this.resolver.resolveClass(a); if (null == b) throw I.thrown("Class not found " + a); b = Object.create(b.prototype); this.cache.push(b); b.hxUnserialize(this); if (103 != this.buf.charCodeAt(this.pos++)) throw I.thrown("Invalid custom data"); return b; case 77: a = new Oc; this.cache.push(a); for (var c; 104 != this.buf.charCodeAt(this.pos);) b = this.unserialize(), a.set(b, this.unserialize()); this.pos++; return a; case 82: a = this.readDigits(); if (0 > a || a >= this.scache.length) throw I.thrown("Invalid string reference"); return this.scache[a]; case 97: b = []; for (this.cache.push(b); ;) { c = this.buf.charCodeAt(this.pos); if (104 == c) { this.pos++; break } 117 == c ? (this.pos++, a = this.readDigits(), b[b.length + a - 1] = null) : b.push(this.unserialize()) } return b; case 98: a = new xa; for (this.cache.push(a); 104 != this.buf.charCodeAt(this.pos);) b = this.unserialize(), c = this.unserialize(), a.h[b] = c; this.pos++; return a; case 99: a = this.unserialize(); b = this.resolver.resolveClass(a); if (null == b) throw I.thrown("Class not found " + a); b = Object.create(b.prototype); this.cache.push(b); this.unserializeObject(b); return b; case 100: return this.readFloat(); case 102: return !1; case 105: return this.readDigits(); case 106: a = this.unserialize(); c = this.resolver.resolveEnum(a); if (null == c) throw I.thrown("Enum not found " + a); this.pos++; for (var d = this.readDigits(), e = c.__constructs__, g = Array(e.length), f = 0, v = e.length; f < v;) b = f++, g[b] = e[b]._hx_name; b = g[d]; if (null == b) throw I.thrown("Unknown enum index " + a + "@" + d); b = this.unserializeEnum(c, b); this.cache.push(b); return b; case 107: return NaN; case 108: b = new E; for (this.cache.push(b); 104 != this.buf.charCodeAt(this.pos);) b.add(this.unserialize()); this.pos++; return b; case 109: return -Infinity; case 110: return null; case 111: return b = {}, this.cache.push(b), this.unserializeObject(b), b; case 112: return Infinity; case 113: a = new eb; this.cache.push(a); for (c = this.buf.charCodeAt(this.pos++); 58 == c;) b = this.readDigits(), c = this.unserialize(), a.h[b] = c, c = this.buf.charCodeAt(this.pos++); if (104 != c) throw I.thrown("Invalid IntMap format"); return a; case 114: a = this.readDigits(); if (0 > a || a >= this.cache.length) throw I.thrown("Invalid reference"); return this.cache[a]; case 115: a = this.readDigits(); c = this.buf; if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw I.thrown("Invalid bytes length"); d = Oe.CODES; null == d && (d = Oe.initCodes(), Oe.CODES = d); b = this.pos; e = a & 3; g = b + (a - e); f = new lb(new ArrayBuffer(3 * (a >> 2) + (2 <= e ? e - 1 : 0))); for (v = 0; b < g;) { var p = d[c.charCodeAt(b++)], m = d[c.charCodeAt(b++)]; f.b[v++] = (p << 2 | m >> 4) & 255; p = d[c.charCodeAt(b++)]; f.b[v++] = (m << 4 | p >> 2) & 255; m = d[c.charCodeAt(b++)]; f.b[v++] = (p << 6 | m) & 255 } 2 <= e && (p = d[c.charCodeAt(b++)], m = d[c.charCodeAt(b++)], f.b[v++] = (p << 2 | m >> 4) & 255, 3 == e && (p = d[c.charCodeAt(b++)], f.b[v++] = (m << 4 | p >> 2) & 255)); this.pos += a; this.cache.push(f); return f; case 116: return !0; case 118: return 48 <= this.buf.charCodeAt(this.pos) && 57 >= this.buf.charCodeAt(this.pos) && 48 <= this.buf.charCodeAt(this.pos + 1) && 57 >= this.buf.charCodeAt(this.pos + 1) && 48 <= this.buf.charCodeAt(this.pos + 2) && 57 >= this.buf.charCodeAt(this.pos + 2) && 48 <= this.buf.charCodeAt(this.pos + 3) && 57 >= this.buf.charCodeAt(this.pos + 3) && 45 == this.buf.charCodeAt(this.pos + 4) ? (b = K.strDate(K.substr(this.buf, this.pos, 19)), this.pos += 19) : b = new Date(this.readFloat()), this.cache.push(b), b; case 119: a = this.unserialize(); c = this.resolver.resolveEnum(a); if (null == c) throw I.thrown("Enum not found " + a); b = this.unserializeEnum(c, this.unserialize()); this.cache.push(b); return b; case 120: throw I.thrown(this.unserialize()); case 121: a = this.readDigits(); if (58 != this.buf.charCodeAt(this.pos++) || this.length - this.pos < a) throw I.thrown("Invalid string length"); b = K.substr(this.buf, this.pos, a); this.pos += a; b = decodeURIComponent(b.split("+").join(" ")); this.scache.push(b); return b; case 122: return 0 } this.pos--; throw I.thrown("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos); }, __class__: Oe }; var Di = function () { }; k["haxe._Unserializer.NullResolver"] = Di; Di.__name__ = "haxe._Unserializer.NullResolver"; Di.prototype = { resolveClass: function (a) { return null }, resolveEnum: function (a) { return null }, __class__: Di }; var Lj = function (a, b, c) { I.call(this, String(a), b, c); this.value = a; this.__skipStack++ }; k["haxe.ValueException"] = Lj; Lj.__name__ = "haxe.ValueException"; Lj.__super__ = I; Lj.prototype = u(I.prototype, { value: null, unwrap: function () { return this.value }, __class__: Lj }); var Ei = function () { this.a1 = 1; this.a2 = 0 }; k["haxe.crypto.Adler32"] = Ei; Ei.__name__ = "haxe.crypto.Adler32"; Ei.read = function (a) { var b = new Ei, c = a.readByte(), d = a.readByte(), e = a.readByte(); a = a.readByte(); b.a1 = e << 8 | a; b.a2 = c << 8 | d; return b }; Ei.prototype = { a1: null, a2: null, update: function (a, b, c) { var d = this.a1, e = this.a2, g = b; for (b += c; g < b;) c = g++, d = (d + a.b[c]) % 65521, e = (e + d) % 65521; this.a1 = d; this.a2 = e }, equals: function (a) { return a.a1 == this.a1 ? a.a2 == this.a2 : !1 }, __class__: Ei }; var lb = function (a) { this.length = a.byteLength; this.b = new Uint8Array(a); this.b.bufferValue = a; a.hxBytes = this; a.bytes = this.b }; k["haxe.io.Bytes"] = lb; lb.__name__ = "haxe.io.Bytes"; lb.alloc = function (a) { return new lb(new ArrayBuffer(a)) }; lb.ofString = function (a, b) { b = []; for (var c = 0; c < a.length;) { var d = a.charCodeAt(c++); 55296 <= d && 56319 >= d && (d = d - 55232 << 10 | a.charCodeAt(c++) & 1023); 127 >= d ? b.push(d) : (2047 >= d ? b.push(192 | d >> 6) : (65535 >= d ? b.push(224 | d >> 12) : (b.push(240 | d >> 18), b.push(128 | d >> 12 & 63)), b.push(128 | d >> 6 & 63)), b.push(128 | d & 63)) } return new lb((new Uint8Array(b)).buffer) }; lb.ofData = function (a) { var b = a.hxBytes; return null != b ? b : new lb(a) }; lb.ofHex = function (a) { if (0 != (a.length & 1)) throw I.thrown("Not a hex string (odd number of digits)"); for (var b = [], c = 0, d = a.length >> 1; c < d;) { var e = a.charCodeAt(2 * c), g = a.charCodeAt(2 * c + 1); e = (e & 15) + 9 * ((e & 64) >> 6); g = (g & 15) + 9 * ((g & 64) >> 6); b.push((e << 4 | g) & 255); ++c } return new lb((new Uint8Array(b)).buffer) }; lb.fastGet = function (a, b) { return a.bytes[b] }; lb.prototype = { length: null, b: null, data: null, get: function (a) { return this.b[a] }, set: function (a, b) { this.b[a] = b & 255 }, blit: function (a, b, c, d) { if (0 > a || 0 > c || 0 > d || a + d > this.length || c + d > b.length) throw I.thrown(Rf.OutsideBounds); 0 == c && d == b.b.byteLength ? this.b.set(b.b, a) : this.b.set(b.b.subarray(c, c + d), a) }, fill: function (a, b, c) { for (var d = 0; d < b;) d++, this.b[a++] = c & 255 }, sub: function (a, b) { if (0 > a || 0 > b || a + b > this.length) throw I.thrown(Rf.OutsideBounds); return new lb(this.b.buffer.slice(a + this.b.byteOffset, a + this.b.byteOffset + b)) }, compare: function (a) { for (var b = this.b, c = a.b, d = 0, e = this.length < a.length ? this.length : a.length; d < e;) { var g = d++; if (b[g] != c[g]) return b[g] - c[g] } return this.length - a.length }, initData: function () { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)) }, getDouble: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getFloat64(a, !0) }, getFloat: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getFloat32(a, !0) }, setDouble: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setFloat64(a, b, !0) }, setFloat: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setFloat32(a, b, !0) }, getUInt16: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getUint16(a, !0) }, setUInt16: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setUint16(a, b, !0) }, getInt32: function (a) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); return this.data.getInt32(a, !0) }, setInt32: function (a, b) { null == this.data && (this.data = new DataView(this.b.buffer, this.b.byteOffset, this.b.byteLength)); this.data.setInt32(a, b, !0) }, getInt64: function (a) { return new db(this.getInt32(a + 4), this.getInt32(a)) }, setInt64: function (a, b) { this.setInt32(a, b.low); this.setInt32(a + 4, b.high) }, getString: function (a, b, c) { if (0 > a || 0 > b || a + b > this.length) throw I.thrown(Rf.OutsideBounds); c = ""; var d = this.b, e = Kd.fromCharCode, g = a; for (a += b; g < a;) if (b = d[g++], 128 > b) { if (0 == b) break; c += e(b) } else if (224 > b) c += e((b & 63) << 6 | d[g++] & 127); else if (240 > b) { var f = d[g++]; c += e((b & 31) << 12 | (f & 127) << 6 | d[g++] & 127) } else { f = d[g++]; var v = d[g++]; b = (b & 15) << 18 | (f & 127) << 12 | (v & 127) << 6 | d[g++] & 127; c += e((b >> 10) + 55232); c += e(b & 1023 | 56320) } return c }, readString: function (a, b) { return this.getString(a, b) }, toString: function () { return this.getString(0, this.length) }, toHex: function () { for (var a = "", b = [], c = 0, d = 16; c < d;) { var e = c++; b.push(K.cca("0123456789abcdef", e)) } c = 0; for (d = this.length; c < d;) e = c++, e = this.b[e], a += String.fromCodePoint(b[e >> 4]), a += String.fromCodePoint(b[e & 15]); return a }, getData: function () { return this.b.bufferValue }, __class__: lb }; var Ah = function () { }; k["haxe.crypto.Base64"] = Ah; Ah.__name__ = "haxe.crypto.Base64"; Ah.decode = function (a, b) { null == b && (b = !0); if (b) for (; 61 == K.cca(a, a.length - 1);) a = K.substr(a, 0, -1); return (new Gj(Ah.BYTES)).decodeBytes(lb.ofString(a)) }; var Gj = function (a) { for (var b = a.length, c = 1; b > 1 << c;) ++c; if (8 < c || b != 1 << c) throw I.thrown("BaseCode : base length must be a power of two."); this.base = a; this.nbits = c }; k["haxe.crypto.BaseCode"] = Gj; Gj.__name__ = "haxe.crypto.BaseCode"; Gj.prototype = { base: null, nbits: null, tbl: null, encodeBytes: function (a) { for (var b = this.nbits, c = this.base, d = 8 * a.length / b | 0, e = new lb(new ArrayBuffer(d + (0 == 8 * a.length % b ? 0 : 1))), g = 0, f = 0, v = (1 << b) - 1, p = 0, m = 0; m < d;) { for (; f < b;) f += 8, g <<= 8, g |= a.b[p++]; f -= b; e.b[m++] = c.b[g >> f & v] & 255 } 0 < f && (e.b[m++] = c.b[g << b - f & v] & 255); return e }, initTable: function () { for (var a = [], b = 0; 256 > b;) { var c = b++; a[c] = -1 } b = 0; for (var d = this.base.length; b < d;) c = b++, a[this.base.b[c]] = c; this.tbl = a }, decodeBytes: function (a) { var b = this.nbits; null == this.tbl && this.initTable(); for (var c = this.tbl, d = a.length * b >> 3, e = new lb(new ArrayBuffer(d)), g = 0, f = 0, v = 0, p = 0; p < d;) { for (; 8 > f;) { f += b; g <<= b; var m = c[a.b[v++]]; if (-1 == m) throw I.thrown("BaseCode : invalid encoded char"); g |= m } f -= 8; e.b[p++] = g >> f & 255 } return e }, __class__: Gj }; var me = function () { }; k["haxe.ds.ArraySort"] = me; me.__name__ = "haxe.ds.ArraySort"; me.sort = function (a, b) { me.rec(a, b, 0, a.length) }; me.rec = function (a, b, c, d) { var e = c + d >> 1; if (12 > d - c) { if (!(d <= c)) for (e = c + 1; e < d;) for (var g = e++; g > c;) { if (0 > b(a[g], a[g - 1])) me.swap(a, g - 1, g); else break; --g } } else me.rec(a, b, c, e), me.rec(a, b, e, d), me.doMerge(a, b, c, e, d, e - c, d - e) }; me.doMerge = function (a, b, c, d, e, g, f) { if (0 != g && 0 != f) if (2 == g + f) 0 > b(a[d], a[c]) && me.swap(a, d, c); else { if (g > f) { var r = g >> 1; var p = c + r; var m = me.lower(a, b, d, e, p); var h = m - d } else h = f >> 1, m = d + h, p = me.upper(a, b, c, d, m), r = p - c; me.rotate(a, b, p, d, m); d = p + h; me.doMerge(a, b, c, p, d, r, h); me.doMerge(a, b, d, m, e, g - r, f - h) } }; me.rotate = function (a, b, c, d, e) { if (c != d && d != e) for (b = me.gcd(e - c, d - c); 0 != b--;) { for (var g = a[c + b], f = d - c, v = c + b, p = c + b + f; p != c + b;) a[v] = a[p], v = p, p = e - p > f ? p + f : c + (f - (e - p)); a[v] = g } }; me.gcd = function (a, b) { for (; 0 != b;) { var c = a % b; a = b; b = c } return a }; me.upper = function (a, b, c, d, e) { d -= c; for (var g, f; 0 < d;) g = d >> 1, f = c + g, 0 > b(a[e], a[f]) ? d = g : (c = f + 1, d = d - g - 1); return c }; me.lower = function (a, b, c, d, e) { d -= c; for (var g, f; 0 < d;) g = d >> 1, f = c + g, 0 > b(a[f], a[e]) ? (c = f + 1, d = d - g - 1) : d = g; return c }; me.swap = function (a, b, c) { var d = a[b]; a[b] = a[c]; a[c] = d }; var Yg = function () { }; k["haxe.ds.BalancedTree"] = Yg; Yg.__name__ = "haxe.ds.BalancedTree"; Yg.__interfaces__ = [jd]; Yg.iteratorLoop = function (a, b) { null != a && (Yg.iteratorLoop(a.left, b), b.push(a.value), Yg.iteratorLoop(a.right, b)) }; Yg.prototype = { root: null, set: function (a, b) { this.root = this.setLoop(a, b, this.root) }, get: function (a) { for (var b = this.root; null != b;) { var c = this.compare(a, b.key); if (0 == c) return b.value; b = 0 > c ? b.left : b.right } return null }, remove: function (a) { try { return this.root = this.removeLoop(a, this.root), !0 } catch (b) { ra.lastError = b; if ("string" == typeof I.caught(b).unwrap()) return !1; throw b; } }, exists: function (a) { for (var b = this.root; null != b;) { var c = this.compare(a, b.key); if (0 == c) return !0; b = 0 > c ? b.left : b.right } return !1 }, iterator: function () { var a = []; Yg.iteratorLoop(this.root, a); return new Qe(a) }, keyValueIterator: function () { return new kh(this) }, keys: function () { var a = []; this.keysLoop(this.root, a); return new Qe(a) }, setLoop: function (a, b, c) { if (null == c) return new ef(null, a, b, null); var d = this.compare(a, c.key); if (0 == d) return new ef(c.left, a, b, c.right, null == c ? 0 : c._height); if (0 > d) return a = this.setLoop(a, b, c.left), this.balance(a, c.key, c.value, c.right); a = this.setLoop(a, b, c.right); return this.balance(c.left, c.key, c.value, a) }, removeLoop: function (a, b) { if (null == b) throw I.thrown("Not_found"); var c = this.compare(a, b.key); return 0 == c ? this.merge(b.left, b.right) : 0 > c ? this.balance(this.removeLoop(a, b.left), b.key, b.value, b.right) : this.balance(b.left, b.key, b.value, this.removeLoop(a, b.right)) }, keysLoop: function (a, b) { null != a && (this.keysLoop(a.left, b), b.push(a.key), this.keysLoop(a.right, b)) }, merge: function (a, b) { if (null == a) return b; if (null == b) return a; var c = this.minBinding(b); return this.balance(a, c.key, c.value, this.removeMinBinding(b)) }, minBinding: function (a) { if (null == a) throw I.thrown("Not_found"); return null == a.left ? a : this.minBinding(a.left) }, removeMinBinding: function (a) { return null == a.left ? a.right : this.balance(this.removeMinBinding(a.left), a.key, a.value, a.right) }, balance: function (a, b, c, d) { var e = null == a ? 0 : a._height, g = null == d ? 0 : d._height; return e > g + 2 ? (e = a.left, g = a.right, (null == e ? 0 : e._height) >= (null == g ? 0 : g._height) ? new ef(a.left, a.key, a.value, new ef(a.right, b, c, d)) : new ef(new ef(a.left, a.key, a.value, a.right.left), a.right.key, a.right.value, new ef(a.right.right, b, c, d))) : g > e + 2 ? (e = d.right, g = d.left, (null == e ? 0 : e._height) > (null == g ? 0 : g._height) ? new ef(new ef(a, b, c, d.left), d.key, d.value, d.right) : new ef(new ef(a, b, c, d.left.left), d.left.key, d.left.value, new ef(d.left.right, d.key, d.value, d.right))) : new ef(a, b, c, d, (e > g ? e : g) + 1) }, compare: function (a, b) { return V.compare(a, b) }, __class__: Yg }; var ef = function (a, b, c, d, e) { null == e && (e = -1); this.left = a; this.key = b; this.value = c; this.right = d; -1 == e ? (a = this.left, b = this.right, a = (null == a ? 0 : a._height) > (null == b ? 0 : b._height) ? this.left : this.right, this._height = (null == a ? 0 : a._height) + 1) : this._height = e }; k["haxe.ds.TreeNode"] = ef; ef.__name__ = "haxe.ds.TreeNode"; ef.prototype = {left: null, right: null, key: null, value: null, _height: null, __class__: ef}; var Mj = function () { }; k["haxe.ds.EnumValueMap"] = Mj; Mj.__name__ = "haxe.ds.EnumValueMap"; Mj.__interfaces__ = [jd]; Mj.__super__ = Yg; Mj.prototype = u(Yg.prototype, { compare: function (a, b) { var c = a._hx_index - b._hx_index; if (0 != c) return c; a = Ha.enumParameters(a); b = Ha.enumParameters(b); return 0 == a.length && 0 == b.length ? 0 : this.compareArgs(a, b) }, compareArgs: function (a, b) { var c = a.length - b.length; if (0 != c) return c; c = 0; for (var d = a.length; c < d;) { var e = c++; e = this.compareArg(a[e], b[e]); if (0 != e) return e } return 0 }, compareArg: function (a, b) { return V.isEnumValue(a) && V.isEnumValue(b) ? this.compare(a, b) : a instanceof Array && b instanceof Array ? this.compareArgs(a, b) : V.compare(a, b) }, __class__: Mj }); var rk = function (a, b) { this.item = a; this.next = b }; k["haxe.ds._List.ListNode"] = rk; rk.__name__ = "haxe.ds._List.ListNode"; rk.prototype = {item: null, next: null, __class__: rk}; var yn = function (a) { this.head = a }; k["haxe.ds._List.ListIterator"] = yn; yn.__name__ = "haxe.ds._List.ListIterator"; yn.prototype = { head: null, hasNext: function () { return null != this.head }, next: function () { var a = this.head.item; this.head = this.head.next; return a }, __class__: yn }; var oj = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0 }; k["haxe.ds._StringMap.StringMapKeyIterator"] = oj; oj.__name__ = "haxe.ds._StringMap.StringMapKeyIterator"; oj.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length }, next: function () { return this.keys[this.current++] }, __class__: oj }; var Bi = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0 }; k["haxe.ds._StringMap.StringMapValueIterator"] = Bi; Bi.__name__ = "haxe.ds._StringMap.StringMapValueIterator"; Bi.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length }, next: function () { return this.h[this.keys[this.current++]] }, __class__: Bi }; var po = function (a) { this.h = a; this.keys = Object.keys(a); this.length = this.keys.length; this.current = 0 }; k["haxe.ds._StringMap.StringMapKeyValueIterator"] = po; po.__name__ = "haxe.ds._StringMap.StringMapKeyValueIterator"; po.prototype = { h: null, keys: null, length: null, current: null, hasNext: function () { return this.current < this.length }, next: function () { var a = this.keys[this.current++]; return {key: a, value: this.h[a]} }, __class__: po }; var Fi = function (a, b, c) { I.call(this, a, b); this.posInfos = null == c ? { fileName: "(unknown)", lineNumber: 0, className: "(unknown)", methodName: "(unknown)" } : c; this.__skipStack++ }; k["haxe.exceptions.PosException"] = Fi; Fi.__name__ = "haxe.exceptions.PosException"; Fi.__super__ = I; Fi.prototype = u(I.prototype, { posInfos: null, toString: function () { return "" + I.prototype.toString.call(this) + " in " + this.posInfos.className + "." + this.posInfos.methodName + " at " + this.posInfos.fileName + ":" + this.posInfos.lineNumber }, __class__: Fi }); var em = function (a, b, c) { null == a && (a = "Not implemented"); Fi.call(this, a, b, c); this.__skipStack++ }; k["haxe.exceptions.NotImplementedException"] = em; em.__name__ = "haxe.exceptions.NotImplementedException"; em.__super__ = Fi; em.prototype = u(Fi.prototype, {__class__: em}); var fm = function () { this.size = this.pos = 0 }; k["haxe.io.BytesBuffer"] = fm; fm.__name__ = "haxe.io.BytesBuffer"; fm.prototype = { buffer: null, view: null, u8: null, pos: null, size: null, addByte: function (a) { this.pos == this.size && this.grow(1); this.view.setUint8(this.pos++, a) }, add: function (a) { this.pos + a.length > this.size && this.grow(a.length); if (0 != this.size) { var b = new Uint8Array(a.b.buffer, a.b.byteOffset, a.length); this.u8.set(b, this.pos); this.pos += a.length } }, addBytes: function (a, b, c) { if (0 > b || 0 > c || b + c > a.length) throw I.thrown(Rf.OutsideBounds); this.pos + c > this.size && this.grow(c); 0 != this.size && (a = new Uint8Array(a.b.buffer, a.b.byteOffset + b, c), this.u8.set(a, this.pos), this.pos += c) }, grow: function (a) { var b = this.pos + a; for (a = 0 == this.size ? 16 : this.size; a < b;) a = 3 * a >> 1; b = new ArrayBuffer(a); var c = new Uint8Array(b); 0 < this.size && c.set(this.u8); this.size = a; this.buffer = b; this.u8 = c; this.view = new DataView(this.buffer) }, getBytes: function () { if (0 == this.size) return new lb(new ArrayBuffer(0)); var a = new lb(this.buffer); a.length = this.pos; return a }, __class__: fm }; var gm = function () { }; k["haxe.io.Input"] = gm; gm.__name__ = "haxe.io.Input"; gm.prototype = { bigEndian: null, readByte: function () { throw new em(null, null, { fileName: "haxe/io/Input.hx", lineNumber: 53, className: "haxe.io.Input", methodName: "readByte" }); }, readBytes: function (a, b, c) { var d = c, e = a.b; if (0 > b || 0 > c || b + c > a.length) throw I.thrown(Rf.OutsideBounds); try { for (; 0 < d;) e[b] = this.readByte(), ++b, --d } catch (g) { if (ra.lastError = g, !(I.caught(g).unwrap() instanceof Nj)) throw g; } return c - d }, readFullBytes: function (a, b, c) { for (; 0 < c;) { var d = this.readBytes(a, b, c); if (0 == d) throw I.thrown(Rf.Blocked); b += d; c -= d } }, read: function (a) { for (var b = new lb(new ArrayBuffer(a)), c = 0; 0 < a;) { var d = this.readBytes(b, c, a); if (0 == d) throw I.thrown(Rf.Blocked); c += d; a -= d } return b }, readInt16: function () { var a = this.readByte(), b = this.readByte(); a = this.bigEndian ? b | a << 8 : a | b << 8; return 0 != (a & 32768) ? a - 65536 : a }, readUInt16: function () { var a = this.readByte(), b = this.readByte(); return this.bigEndian ? b | a << 8 : a | b << 8 }, readInt32: function () { var a = this.readByte(), b = this.readByte(), c = this.readByte(), d = this.readByte(); return this.bigEndian ? d | c << 8 | b << 16 | a << 24 : a | b << 8 | c << 16 | d << 24 }, readString: function (a, b) { var c = new lb(new ArrayBuffer(a)); this.readFullBytes(c, 0, a); return c.getString(0, a, b) }, __class__: gm }; var hm = function (a, b, c) { null == b && (b = 0); null == c && (c = a.length - b); if (0 > b || 0 > c || b + c > a.length) throw I.thrown(Rf.OutsideBounds); this.b = a.b; this.pos = b; this.totlen = this.len = c }; k["haxe.io.BytesInput"] = hm; hm.__name__ = "haxe.io.BytesInput"; hm.__super__ = gm; hm.prototype = u(gm.prototype, { b: null, pos: null, len: null, totlen: null, readByte: function () { if (0 == this.len) throw I.thrown(new Nj); this.len--; return this.b[this.pos++] }, readBytes: function (a, b, c) { if (0 > b || 0 > c || b + c > a.length) throw I.thrown(Rf.OutsideBounds); if (0 == this.len && 0 < c) throw I.thrown(new Nj); this.len < c && (c = this.len); var d = this.b; a = a.b; for (var e = 0, g = c; e < g;) { var f = e++; a[b + f] = d[this.pos + f] } this.pos += c; this.len -= c; return c }, __class__: hm }); var Tr = A["haxe.io.Encoding"] = { __ename__: "haxe.io.Encoding", __constructs__: null, UTF8: {_hx_name: "UTF8", _hx_index: 0, __enum__: "haxe.io.Encoding", toString: t}, RawNative: {_hx_name: "RawNative", _hx_index: 1, __enum__: "haxe.io.Encoding", toString: t} }; Tr.__constructs__ = [Tr.UTF8, Tr.RawNative]; var Nj = function () { }; k["haxe.io.Eof"] = Nj; Nj.__name__ = "haxe.io.Eof"; Nj.prototype = { toString: function () { return "Eof" }, __class__: Nj }; var Rf = A["haxe.io.Error"] = { __ename__: "haxe.io.Error", __constructs__: null, Blocked: { _hx_name: "Blocked", _hx_index: 0, __enum__: "haxe.io.Error", toString: t }, Overflow: {_hx_name: "Overflow", _hx_index: 1, __enum__: "haxe.io.Error", toString: t}, OutsideBounds: {_hx_name: "OutsideBounds", _hx_index: 2, __enum__: "haxe.io.Error", toString: t}, Custom: (x = function (a) { return {_hx_index: 3, e: a, __enum__: "haxe.io.Error", toString: t} }, x._hx_name = "Custom", x.__params__ = ["e"], x) }; Rf.__constructs__ = [Rf.Blocked, Rf.Overflow, Rf.OutsideBounds, Rf.Custom]; var ee = function () { }; k["haxe.io.FPHelper"] = ee; ee.__name__ = "haxe.io.FPHelper"; ee.i32ToFloat = function (a) { ee.helper.setInt32(0, a, !0); return ee.helper.getFloat32(0, !0) }; ee.floatToI32 = function (a) { ee.helper.setFloat32(0, a, !0); return ee.helper.getInt32(0, !0) }; ee.i64ToDouble = function (a, b) { ee.helper.setInt32(0, a, !0); ee.helper.setInt32(4, b, !0); return ee.helper.getFloat64(0, !0) }; ee.doubleToI64 = function (a) { var b = ee.i64tmp; ee.helper.setFloat64(0, a, !0); b.low = ee.helper.getInt32(0, !0); b.high = ee.helper.getInt32(4, !0); return b }; var Bh = function (a) { switch (a) { case ".": case "..": this.dir = a; this.file = ""; return } var b = a.lastIndexOf("/"), c = a.lastIndexOf("\\"); b < c ? (this.dir = K.substr(a, 0, c), a = K.substr(a, c + 1, null), this.backslash = !0) : c < b ? (this.dir = K.substr(a, 0, b), a = K.substr(a, b + 1, null)) : this.dir = null; b = a.lastIndexOf("."); -1 != b ? (this.ext = K.substr(a, b + 1, null), this.file = K.substr(a, 0, b)) : (this.ext = null, this.file = a) }; k["haxe.io.Path"] = Bh; Bh.__name__ = "haxe.io.Path"; Bh.directory = function (a) { a = new Bh(a); return null == a.dir ? "" : a.dir }; Bh.prototype = {dir: null, file: null, ext: null, backslash: null, __class__: Bh}; var Qe = function (a) { this.current = 0; this.array = a }; k["haxe.iterators.ArrayIterator"] = Qe; Qe.__name__ = "haxe.iterators.ArrayIterator"; Qe.prototype = { array: null, current: null, hasNext: function () { return this.current < this.array.length }, next: function () { return this.array[this.current++] }, __class__: Qe }; var kh = function (a) { this.map = a; this.keys = a.keys() }; k["haxe.iterators.MapKeyValueIterator"] = kh; kh.__name__ = "haxe.iterators.MapKeyValueIterator"; kh.prototype = { map: null, keys: null, hasNext: function () { return this.keys.hasNext() }, next: function () { var a = this.keys.next(); return {value: this.map.get(a), key: a} }, __class__: kh }; var cs = { resolve: function (a, b) { var c = a.elementsNamed(b).next(); if (null == c) { if (a.nodeType == S.Document) a = "Document"; else { if (a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); a = a.nodeName } throw I.thrown(a + " is missing element " + b); } if (c.nodeType != S.Document && c.nodeType != S.Element) throw I.thrown("Invalid nodeType " + (null == c.nodeType ? "null" : sa.toString(c.nodeType))); return c } }, ns = { resolve: function (a, b) { return a.elementsNamed(b).hasNext() } }, bs = { __properties__: {get_innerData: "get_innerData"}, get_innerData: function (a) { if (a.nodeType != S.Document && a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); var b = 0, c = a.children; if (b >= c.length) { if (a.nodeType == S.Document) var d = "Document"; else { if (a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); d = a.nodeName } throw I.thrown(d + " does not have data"); } d = c[b++]; if (b < c.length) { var e = c[b++]; if (d.nodeType == S.PCData && e.nodeType == S.CData) { if (d.nodeType == S.Document || d.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); d = "" == T.trim(d.nodeValue) } else d = !1; if (d) { if (b >= c.length) { if (e.nodeType == S.Document || e.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == e.nodeType ? "null" : sa.toString(e.nodeType))); return e.nodeValue } d = c[b++]; if (d.nodeType == S.PCData) { if (d.nodeType == S.Document || d.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); d = "" == T.trim(d.nodeValue) } else d = !1; if (d && b >= c.length) { if (e.nodeType == S.Document || e.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == e.nodeType ? "null" : sa.toString(e.nodeType))); return e.nodeValue } } if (a.nodeType == S.Document) d = "Document"; else { if (a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); d = a.nodeName } throw I.thrown(d + " does not only have data"); } if (d.nodeType != S.PCData && d.nodeType != S.CData) { if (a.nodeType == S.Document) d = "Document"; else { if (a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); d = a.nodeName } throw I.thrown(d + " does not have data"); } if (d.nodeType == S.Document || d.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); return d.nodeValue } }, ne = function (a, b, c) { this.xml = b; this.message = a; this.position = c; this.lineNumber = 1; for (a = this.positionAtLine = 0; a < c;) { var d = a++; d = b.charCodeAt(d); 10 == d ? (this.lineNumber++, this.positionAtLine = 0) : 13 != d && this.positionAtLine++ } }; k["haxe.xml.XmlParserException"] = ne; ne.__name__ = "haxe.xml.XmlParserException"; ne.prototype = { message: null, lineNumber: null, positionAtLine: null, position: null, xml: null, toString: function () { return w.getClass(this).__name__ + ": " + this.message + " at line " + this.lineNumber + " char " + this.positionAtLine }, __class__: ne }; var mh = function () { }; k["haxe.xml.Parser"] = mh; mh.__name__ = "haxe.xml.Parser"; mh.parse = function (a, b) { null == b && (b = !1); var c = S.createDocument(); mh.doParse(a, b, 0, c); return c }; mh.doParse = function (a, b, c, d) { null == c && (c = 0); for (var e = null, g = 1, f = 1, v = null, p = 0, m = 0, h = 0, n = new Sa, l = 1, k = -1; c < a.length;) { var t = a.charCodeAt(c); switch (g) { case 0: switch (t) { case 9: case 10: case 13: case 32: break; default: g = f; continue } break; case 1: if (60 == t) g = 0, f = 2; else { p = c; g = 13; continue } break; case 2: switch (t) { case 33: if (91 == a.charCodeAt(c + 1)) { c += 2; if ("CDATA[" != K.substr(a, c, 6).toUpperCase()) throw I.thrown(new ne("Expected = t || 65 <= t && 90 >= t || 48 <= t && 57 >= t || 58 == t || 46 == t || 95 == t || 45 == t)) { if (c == p) throw I.thrown(new ne("Expected node name", a, c)); e = S.createElement(K.substr(a, p, c - p)); d.addChild(e); ++m; g = 0; f = 4; continue } break; case 4: switch (t) { case 47: g = 11; break; case 62: g = 9; break; default: g = 5; p = c; continue } break; case 5: if (!(97 <= t && 122 >= t || 65 <= t && 90 >= t || 48 <= t && 57 >= t || 58 == t || 46 == t || 95 == t || 45 == t)) { if (p == c) throw I.thrown(new ne("Expected attribute name", a, c)); v = K.substr(a, p, c - p); if (e.exists(v)) throw I.thrown(new ne("Duplicate attribute [" + v + "]", a, c)); g = 0; f = 6; continue } break; case 6: if (61 == t) g = 0, f = 7; else throw I.thrown(new ne("Expected =", a, c)); break; case 7: switch (t) { case 34: case 39: n = new Sa; g = 8; p = c + 1; k = t; break; default: throw I.thrown(new ne('Expected "', a, c)); } break; case 8: switch (t) { case 38: l = c - p; n.b += null == l ? K.substr(a, p, null) : K.substr(a, p, l); g = 18; l = 8; p = c + 1; break; case 60: case 62: if (b) throw I.thrown(new ne("Invalid unescaped " + String.fromCodePoint(t) + " in attribute value", a, c)); t == k && (f = c - p, n.b += null == f ? K.substr(a, p, null) : K.substr(a, p, f), f = n.b, n = new Sa, e.set(v, f), g = 0, f = 4); break; default: t == k && (f = c - p, n.b += null == f ? K.substr(a, p, null) : K.substr(a, p, f), f = n.b, n = new Sa, e.set(v, f), g = 0, f = 4) } break; case 9: p = c = mh.doParse(a, b, c, e); g = 1; break; case 10: if (!(97 <= t && 122 >= t || 65 <= t && 90 >= t || 48 <= t && 57 >= t || 58 == t || 46 == t || 95 == t || 45 == t)) { if (p == c) throw I.thrown(new ne("Expected node name", a, c)); f = K.substr(a, p, c - p); if (null == d || 0 != d.nodeType) throw I.thrown(new ne("Unexpected , tag is not open", a, c)); if (d.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); if (f != d.nodeName) { if (d.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); throw I.thrown(new ne("Expected ", a, c)); } g = 0; f = 12; continue } break; case 11: if (62 == t) g = 1; else throw I.thrown(new ne("Expected >", a, c)); break; case 12: if (62 == t) return 0 == m && d.addChild(S.createPCData("")), c; throw I.thrown(new ne("Expected >", a, c)); case 13: 60 == t ? (f = c - p, n.b += null == f ? K.substr(a, p, null) : K.substr(a, p, f), f = S.createPCData(n.b), n = new Sa, d.addChild(f), ++m, g = 0, f = 2) : 38 == t && (l = c - p, n.b += null == l ? K.substr(a, p, null) : K.substr(a, p, l), g = 18, l = 13, p = c + 1); break; case 14: 63 == t && 62 == a.charCodeAt(c + 1) && (++c, g = K.substr(a, p + 1, c - p - 2), d.addChild(S.createProcessingInstruction(g)), ++m, g = 1); break; case 15: 45 == t && 45 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && (d.addChild(S.createComment(K.substr(a, p, c - p))), ++m, c += 2, g = 1); break; case 16: 91 == t ? ++h : 93 == t ? --h : 62 == t && 0 == h && (d.addChild(S.createDocType(K.substr(a, p, c - p))), ++m, g = 1); break; case 17: 93 == t && 93 == a.charCodeAt(c + 1) && 62 == a.charCodeAt(c + 2) && (g = S.createCData(K.substr(a, p, c - p)), d.addChild(g), ++m, c += 2, g = 1); break; case 18: if (59 == t) { p = K.substr(a, p, c - p); if (35 == p.charCodeAt(0)) p = 120 == p.charCodeAt(1) ? z.parseInt("0" + K.substr(p, 1, p.length - 1)) : z.parseInt(K.substr(p, 1, p.length - 1)), n.b += String.fromCodePoint(p); else if (Object.prototype.hasOwnProperty.call(mh.escapes.h, p)) n.b += z.string(mh.escapes.h[p]); else { if (b) throw I.thrown(new ne("Undefined entity: " + p, a, c)); n.b += z.string("&" + p + ";") } p = c + 1; g = l } else if (!(97 <= t && 122 >= t || 65 <= t && 90 >= t || 48 <= t && 57 >= t || 58 == t || 46 == t || 95 == t || 45 == t) && 35 != t) { if (b) throw I.thrown(new ne("Invalid character in entity: " + String.fromCodePoint(t), a, c)); n.b += String.fromCodePoint(38); g = c - p; n.b += null == g ? K.substr(a, p, null) : K.substr(a, p, g); --c; p = c + 1; g = l } } ++c } 1 == g && (p = c, g = 13); if (13 == g) { if (0 == d.nodeType) { if (d.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == d.nodeType ? "null" : sa.toString(d.nodeType))); throw I.thrown(new ne("Unclosed node <" + d.nodeName + ">", a, c)); } if (c != p || 0 == m) l = c - p, n.b += null == l ? K.substr(a, p, null) : K.substr(a, p, l), d.addChild(S.createPCData(n.b)); return c } if (!b && 18 == g && 13 == l) return n.b += String.fromCodePoint(38), l = c - p, n.b += null == l ? K.substr(a, p, null) : K.substr(a, p, l), d.addChild(S.createPCData(n.b)), c; throw I.thrown(new ne("Unexpected end", a, c)); }; var pj = function (a) { this.output = new Sa; this.pretty = a }; k["haxe.xml.Printer"] = pj; pj.__name__ = "haxe.xml.Printer"; pj.print = function (a, b) { null == b && (b = !1); b = new pj(b); b.writeNode(a, ""); return b.output.b }; pj.prototype = { output: null, pretty: null, writeNode: function (a, b) { switch (a.nodeType) { case 0: this.output.b += z.string(b + "<"); if (a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); this.output.b += z.string(a.nodeName); for (var c = a.attributes(); c.hasNext();) { var d = c.next(); this.output.b += z.string(" " + d + '="'); d = T.htmlEscape(a.get(d), !0); this.output.b += z.string(d); this.output.b += '"' } if (this.hasChildren(a)) { this.output.b += ">"; this.pretty && (this.output.b += "\n"); if (a.nodeType != S.Document && a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); c = 0; for (d = a.children; c < d.length;) { var e = d[c++]; this.writeNode(e, this.pretty ? b + "\t" : b) } this.output.b += z.string(b + "" } else this.output.b += "/>"; this.pretty && (this.output.b += "\n"); break; case 1: if (a.nodeType == S.Document || a.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); a = a.nodeValue; 0 != a.length && (d = b + T.htmlEscape(a), this.output.b += z.string(d), this.pretty && (this.output.b += "\n")); break; case 2: this.output.b += z.string(b + ""); this.pretty && (this.output.b += "\n"); break; case 5: if (a.nodeType == S.Document || a.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); this.output.b += z.string(""); this.pretty && (this.output.b += "\n"); break; case 6: if (a.nodeType != S.Document && a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); c = 0; for (d = a.children; c < d.length;) e = d[c++], this.writeNode(e, b) } }, hasChildren: function (a) { if (a.nodeType != S.Document && a.nodeType != S.Element) throw I.thrown("Bad node type, expected Element or Document but found " + (null == a.nodeType ? "null" : sa.toString(a.nodeType))); var b = 0; for (a = a.children; b < a.length;) { var c = a[b++]; switch (c.nodeType) { case 0: case 1: return !0; case 2: case 3: if (c.nodeType == S.Document || c.nodeType == S.Element) throw I.thrown("Bad node type, unexpected " + (null == c.nodeType ? "null" : sa.toString(c.nodeType))); if (0 != T.ltrim(c.nodeValue).length) return !0 } } return !1 }, __class__: pj }; var Gi = A["haxe.zip.ExtraField"] = { __ename__: "haxe.zip.ExtraField", __constructs__: null, FUnknown: (x = function (a, b) { return {_hx_index: 0, tag: a, bytes: b, __enum__: "haxe.zip.ExtraField", toString: t} }, x._hx_name = "FUnknown", x.__params__ = ["tag", "bytes"], x), FInfoZipUnicodePath: (x = function (a, b) { return {_hx_index: 1, name: a, crc: b, __enum__: "haxe.zip.ExtraField", toString: t} }, x._hx_name = "FInfoZipUnicodePath", x.__params__ = ["name", "crc"], x), FUtf8: {_hx_name: "FUtf8", _hx_index: 2, __enum__: "haxe.zip.ExtraField", toString: t} }; Gi.__constructs__ = [Gi.FUnknown, Gi.FInfoZipUnicodePath, Gi.FUtf8]; var pg = A["haxe.zip.Huffman"] = { __ename__: "haxe.zip.Huffman", __constructs__: null, Found: (x = function (a) { return {_hx_index: 0, i: a, __enum__: "haxe.zip.Huffman", toString: t} }, x._hx_name = "Found", x.__params__ = ["i"], x), NeedBit: (x = function (a, b) { return {_hx_index: 1, left: a, right: b, __enum__: "haxe.zip.Huffman", toString: t} }, x._hx_name = "NeedBit", x.__params__ = ["left", "right"], x), NeedBits: (x = function (a, b) { return {_hx_index: 2, n: a, table: b, __enum__: "haxe.zip.Huffman", toString: t} }, x._hx_name = "NeedBits", x.__params__ = ["n", "table"], x) }; pg.__constructs__ = [pg.Found, pg.NeedBit, pg.NeedBits]; var ro = function () { }; k["haxe.zip.HuffTools"] = ro; ro.__name__ = "haxe.zip.HuffTools"; ro.prototype = { treeDepth: function (a) { switch (a._hx_index) { case 0: return 0; case 1: var b = a.right; a = this.treeDepth(a.left); b = this.treeDepth(b); return 1 + (a < b ? a : b); case 2: throw I.thrown("assert"); } }, treeCompress: function (a) { var b = this.treeDepth(a); if (0 == b) return a; if (1 == b) { if (1 == a._hx_index) return b = a.right, pg.NeedBit(this.treeCompress(a.left), this.treeCompress(b)); throw I.thrown("assert"); } for (var c = [], d = 0, e = 1 << b; d < e;) d++, c.push(pg.Found(-1)); this.treeWalk(c, 0, 0, b, a); return pg.NeedBits(b, c) }, treeWalk: function (a, b, c, d, e) { if (1 == e._hx_index) { var g = e.left, f = e.right; 0 < d ? (this.treeWalk(a, b, c + 1, d - 1, g), this.treeWalk(a, b | 1 << c, c + 1, d - 1, f)) : a[b] = this.treeCompress(e) } else a[b] = this.treeCompress(e) }, treeMake: function (a, b, c, d) { if (d > b) throw I.thrown("Invalid huffman"); var e = c << 5 | d; if (a.h.hasOwnProperty(e)) return pg.Found(a.h[e]); c <<= 1; ++d; return pg.NeedBit(this.treeMake(a, b, c, d), this.treeMake(a, b, c | 1, d)) }, make: function (a, b, c, d) { if (1 == c) return pg.NeedBit(pg.Found(0), pg.Found(0)); var e = [], g = []; if (32 < d) throw I.thrown("Invalid huffman"); for (var f = 0, v = d; f < v;) f++, e.push(0), g.push(0); f = 0; for (v = c; f < v;) { var p = f++; p = a[p + b]; if (p >= d) throw I.thrown("Invalid huffman"); e[p]++ } var m = 0; f = 1; for (v = d - 1; f < v;) p = f++, m = m + e[p] << 1, g[p] = m; e = new eb; f = 0; for (v = c; f < v;) p = f++, c = a[p + b], 0 != c && (m = g[c - 1], g[c - 1] = m + 1, e.h[m << 5 | c] = p); return this.treeCompress(pg.NeedBit(this.treeMake(e, d, 0, 1), this.treeMake(e, d, 1, 1))) }, __class__: ro }; var so = function (a) { this.buffer = new lb(new ArrayBuffer(65536)); this.pos = 0; a && (this.crc = new Ei) }; k["haxe.zip._InflateImpl.Window"] = so; so.__name__ = "haxe.zip._InflateImpl.Window"; so.prototype = { buffer: null, pos: null, crc: null, slide: function () { null != this.crc && this.crc.update(this.buffer, 0, 32768); var a = new lb(new ArrayBuffer(65536)); this.pos -= 32768; a.blit(0, this.buffer, 32768, this.pos); this.buffer = a }, addBytes: function (a, b, c) { 65536 < this.pos + c && this.slide(); this.buffer.blit(this.pos, a, b, c); this.pos += c }, addByte: function (a) { 65536 == this.pos && this.slide(); this.buffer.b[this.pos] = a & 255; this.pos++ }, getLastChar: function () { return this.buffer.b[this.pos - 1] }, available: function () { return this.pos }, checksum: function () { null != this.crc && this.crc.update(this.buffer, 0, this.pos); return this.crc }, __class__: so }; var Xd = A["haxe.zip._InflateImpl.State"] = { __ename__: "haxe.zip._InflateImpl.State", __constructs__: null, Head: {_hx_name: "Head", _hx_index: 0, __enum__: "haxe.zip._InflateImpl.State", toString: t}, Block: {_hx_name: "Block", _hx_index: 1, __enum__: "haxe.zip._InflateImpl.State", toString: t}, CData: {_hx_name: "CData", _hx_index: 2, __enum__: "haxe.zip._InflateImpl.State", toString: t}, Flat: { _hx_name: "Flat", _hx_index: 3, __enum__: "haxe.zip._InflateImpl.State", toString: t }, Crc: {_hx_name: "Crc", _hx_index: 4, __enum__: "haxe.zip._InflateImpl.State", toString: t}, Dist: {_hx_name: "Dist", _hx_index: 5, __enum__: "haxe.zip._InflateImpl.State", toString: t}, DistOne: {_hx_name: "DistOne", _hx_index: 6, __enum__: "haxe.zip._InflateImpl.State", toString: t}, Done: {_hx_name: "Done", _hx_index: 7, __enum__: "haxe.zip._InflateImpl.State", toString: t} }; Xd.__constructs__ = [Xd.Head, Xd.Block, Xd.CData, Xd.Flat, Xd.Crc, Xd.Dist, Xd.DistOne, Xd.Done]; var He = function (a, b, c) { null == c && (c = !0); null == b && (b = !0); this.isFinal = !1; this.htools = new ro; this.huffman = this.buildFixedHuffman(); this.huffdist = null; this.dist = this.len = 0; this.state = b ? Xd.Head : Xd.Block; this.input = a; this.needed = this.nbits = this.bits = 0; this.output = null; this.outpos = 0; this.lengths = []; this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.lengths.push(-1); this.window = new so(c) }; k["haxe.zip.InflateImpl"] = He; He.__name__ = "haxe.zip.InflateImpl"; He.prototype = { nbits: null, bits: null, state: null, isFinal: null, huffman: null, huffdist: null, htools: null, len: null, dist: null, needed: null, output: null, outpos: null, input: null, lengths: null, window: null, buildFixedHuffman: function () { if (null != He.FIXED_HUFFMAN) return He.FIXED_HUFFMAN; for (var a = [], b = 0; 288 > b;) { var c = b++; a.push(143 >= c ? 8 : 255 >= c ? 9 : 279 >= c ? 7 : 8) } He.FIXED_HUFFMAN = this.htools.make(a, 0, 288, 10); return He.FIXED_HUFFMAN }, readBytes: function (a, b, c) { this.needed = c; this.outpos = b; this.output = a; if (0 < c) for (; this.inflateLoop();) ; return c - this.needed }, getBits: function (a) { for (; this.nbits < a;) this.bits |= this.input.readByte() << this.nbits, this.nbits += 8; var b = this.bits & (1 << a) - 1; this.nbits -= a; this.bits >>= a; return b }, getBit: function () { 0 == this.nbits && (this.nbits = 8, this.bits = this.input.readByte()); var a = 1 == (this.bits & 1); this.nbits--; this.bits >>= 1; return a }, getRevBits: function (a) { return 0 == a ? 0 : this.getBit() ? 1 << a - 1 | this.getRevBits(a - 1) : this.getRevBits(a - 1) }, resetBits: function () { this.nbits = this.bits = 0 }, addBytes: function (a, b, c) { this.window.addBytes(a, b, c); this.output.blit(this.outpos, a, b, c); this.needed -= c; this.outpos += c }, addByte: function (a) { this.window.addByte(a); this.output.b[this.outpos] = a & 255; this.needed--; this.outpos++ }, addDistOne: function (a) { for (var b = this.window.getLastChar(), c = 0; c < a;) c++, this.addByte(b) }, addDist: function (a, b) { this.addBytes(this.window.buffer, this.window.pos - a, b) }, applyHuffman: function (a) { switch (a._hx_index) { case 0: var b = a.i; return b; case 1: return b = a.left, a = a.right, this.applyHuffman(this.getBit() ? a : b); case 2: return b = a.n, this.applyHuffman(a.table[this.getBits(b)]) } }, inflateLengths: function (a, b) { for (var c = 0, d = 0; c < b;) { var e = this.applyHuffman(this.huffman); switch (e) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: d = e; a[c] = e; ++c; break; case 16: e = c + 3 + this.getBits(2); if (e > b) throw I.thrown("Invalid data"); for (; c < e;) a[c] = d, ++c; break; case 17: c += 3 + this.getBits(3); if (c > b) throw I.thrown("Invalid data"); break; case 18: c += 11 + this.getBits(7); if (c > b) throw I.thrown("Invalid data"); break; default: throw I.thrown("Invalid data"); } } }, inflateLoop: function () { switch (this.state._hx_index) { case 0: var a = this.input.readByte(); if (8 != (a & 15)) throw I.thrown("Invalid data"); var b = this.input.readByte(), c = 0 != (b & 32); if (0 != ((a << 8) + b) % 31) throw I.thrown("Invalid data"); if (c) throw I.thrown("Unsupported dictionary"); this.state = Xd.Block; return !0; case 1: switch (this.isFinal = this.getBit(), this.getBits(2)) { case 0: this.len = this.input.readUInt16(); if (this.input.readUInt16() != 65535 - this.len) throw I.thrown("Invalid data"); this.state = Xd.Flat; a = this.inflateLoop(); this.resetBits(); return a; case 1: return this.huffman = this.buildFixedHuffman(), this.huffdist = null, this.state = Xd.CData, !0; case 2: a = this.getBits(5) + 257; b = this.getBits(5) + 1; var d = this.getBits(4) + 4; c = 0; for (var e = d; c < e;) { var g = c++; this.lengths[He.CODE_LENGTHS_POS[g]] = this.getBits(3) } c = d; for (e = 19; c < e;) g = c++, this.lengths[He.CODE_LENGTHS_POS[g]] = 0; this.huffman = this.htools.make(this.lengths, 0, 19, 8); d = []; c = 0; for (e = a + b; c < e;) c++, d.push(0); this.inflateLengths(d, a + b); this.huffdist = this.htools.make(d, a, b, 16); this.huffman = this.htools.make(d, 0, a, 16); this.state = Xd.CData; return !0; default: throw I.thrown("Invalid data"); } case 2: b = this.applyHuffman(this.huffman); if (256 > b) return this.addByte(b), 0 < this.needed; if (256 == b) this.state = this.isFinal ? Xd.Crc : Xd.Block; else { b -= 257; a = He.LEN_EXTRA_BITS_TBL[b]; if (-1 == a) throw I.thrown("Invalid data"); this.len = He.LEN_BASE_VAL_TBL[b] + this.getBits(a); b = null == this.huffdist ? this.getRevBits(5) : this.applyHuffman(this.huffdist); a = He.DIST_EXTRA_BITS_TBL[b]; if (-1 == a) throw I.thrown("Invalid data"); this.dist = He.DIST_BASE_VAL_TBL[b] + this.getBits(a); if (this.dist > this.window.available()) throw I.thrown("Invalid data"); this.state = 1 == this.dist ? Xd.DistOne : Xd.Dist } return !0; case 3: return a = this.len < this.needed ? this.len : this.needed, b = this.input.read(a), this.len -= a, this.addBytes(b, 0, a), 0 == this.len && (this.state = this.isFinal ? Xd.Crc : Xd.Block), 0 < this.needed; case 4: a = this.window.checksum(); if (null == a) return this.state = Xd.Done, !0; b = Ei.read(this.input); if (!a.equals(b)) throw I.thrown("Invalid CRC"); this.state = Xd.Done; return !0; case 5: for (; 0 < this.len && 0 < this.needed;) a = this.len < this.dist ? this.len : this.dist, a = this.needed < a ? this.needed : a, this.addDist(this.dist, a), this.len -= a; 0 == this.len && (this.state = Xd.CData); return 0 < this.needed; case 6: return a = this.len < this.needed ? this.len : this.needed, this.addDistOne(a), this.len -= a, 0 == this.len && (this.state = Xd.CData), 0 < this.needed; case 7: return !1 } }, __class__: He }; var Hi = function (a) { this.i = a }; k["haxe.zip.Reader"] = Hi; Hi.__name__ = "haxe.zip.Reader"; Hi.readZip = function (a) { return (new Hi(a)).read() }; Hi.unzip = function (a) { if (!a.compressed) return a.data; throw I.thrown("No uncompress support"); }; Hi.prototype = { i: null, readZipDate: function () { var a = this.i.readUInt16(), b = a >> 11 & 31, c = a >> 5 & 63; a &= 31; var d = this.i.readUInt16(); return new Date((d >> 9) + 1980, (d >> 5 & 15) - 1, d & 31, b, c, a << 1) }, readExtraFields: function (a) { for (var b = new E; 0 < a;) { if (4 > a) throw I.thrown("Invalid extra fields data"); var c = this.i.readUInt16(), d = this.i.readUInt16(); if (a < d) throw I.thrown("Invalid extra fields data"); if (28789 == c) { var e = this.i.readByte(); if (1 != e) { var g = new fm; g.addByte(e); g.add(this.i.read(d - 1)); b.add(Gi.FUnknown(c, g.getBytes())) } else c = this.i.readInt32(), e = this.i.read(d - 5).toString(), b.add(Gi.FInfoZipUnicodePath(e, c)) } else b.add(Gi.FUnknown(c, this.i.read(d))); a -= 4 + d } return b }, readEntryHeader: function () { var a = this.i, b = a.readInt32(); if (33639248 == b || 101010256 == b) return null; if (67324752 != b) throw I.thrown("Invalid Zip Data"); a.readUInt16(); b = a.readUInt16(); var c = 0 != (b & 2048), d = a.readUInt16(), e = 0 != d; if (e && 8 != d) throw I.thrown("Unsupported compression " + d); d = this.readZipDate(); var g = a.readInt32(), f = a.readInt32(), v = a.readInt32(), p = a.readInt16(), m = a.readInt16(); a = a.readString(p); m = this.readExtraFields(m); c && m.push(Gi.FUtf8); 0 != (b & 8) && (f = -1); return { fileName: a, fileSize: v, fileTime: d, compressed: e, dataSize: f, data: null, crc32: g, extraFields: m } }, read: function () { for (var a = new E, b = null; ;) { var c = this.readEntryHeader(); if (null == c) break; if (0 > c.dataSize) { null == b && (b = new lb(new ArrayBuffer(65536))); for (var d = new fm, e = new He(this.i, !1, !1); ;) { var g = e.readBytes(b, 0, 65536); d.addBytes(b, 0, g); if (65536 > g) break } c.data = d.getBytes(); c.crc32 = this.i.readInt32(); 134695760 == c.crc32 && (c.crc32 = this.i.readInt32()); c.dataSize = this.i.readInt32(); c.fileSize = this.i.readInt32(); c.dataSize = c.fileSize; c.compressed = !1 } else c.data = this.i.read(c.dataSize); a.add(c) } return a }, __class__: Hi }; var w = function () { }; k["js.Boot"] = w; w.__name__ = "js.Boot"; w.getClass = function (a) { if (null == a) return null; if (a instanceof Array) return Array; var b = a.__class__; if (null != b) return b; a = w.__nativeClassName(a); return null != a ? w.__resolveNativeClass(a) : null }; w.__string_rec = function (a, b) { if (null == a) return "null"; if (5 <= b.length) return "<...>"; var c = typeof a; "function" == c && (a.__name__ || a.__ename__) && (c = "object"); switch (c) { case "function": return ""; case "object": if (a.__enum__) { var d = A[a.__enum__].__constructs__[a._hx_index]; c = d._hx_name; if (d.__params__) { b += "\t"; var e = [], g = 0; for (d = d.__params__; g < d.length;) { var f = d[g]; g += 1; e.push(w.__string_rec(a[f], b)) } return c + "(" + e.join(",") + ")" } return c } if (a instanceof Array) { c = "["; b += "\t"; e = 0; for (g = a.length; e < g;) d = e++, c += (0 < d ? "," : "") + w.__string_rec(a[d], b); return c + "]" } try { e = a.toString } catch (v) { return ra.lastError = v, "???" } if (null != e && e != Object.toString && "function" == typeof e && (c = a.toString(), "[object Object]" != c)) return c; c = "{\n"; b += "\t"; e = null != a.hasOwnProperty; g = null; for (g in a) e && !a.hasOwnProperty(g) || "prototype" == g || "__class__" == g || "__super__" == g || "__interfaces__" == g || "__properties__" == g || (2 != c.length && (c += ", \n"), c += b + g + " : " + w.__string_rec(a[g], b)); b = b.substring(1); return c + ("\n" + b + "}"); case "string": return a; default: return String(a) } }; w.__interfLoop = function (a, b) { if (null == a) return !1; if (a == b) return !0; var c = a.__interfaces__; if (null != c) for (var d = 0, e = c.length; d < e;) { var g = d++; g = c[g]; if (g == b || w.__interfLoop(g, b)) return !0 } return w.__interfLoop(a.__super__, b) }; w.__instanceof = function (a, b) { if (null == b) return !1; switch (b) { case Array: return a instanceof Array; case La: return "boolean" == typeof a; case os: return null != a; case Ka: return "number" == typeof a; case Ia: return "number" == typeof a ? (a | 0) === a : !1; case String: return "string" == typeof a; default: if (null != a) if ("function" == typeof b) { if (w.__downcastCheck(a, b)) return !0 } else { if ("object" == typeof b && w.__isNativeObj(b) && a instanceof b) return !0 } else return !1; return b == jr && null != a.__name__ || b == fs && null != a.__ename__ ? !0 : null != a.__enum__ ? A[a.__enum__] == b : !1 } }; w.__downcastCheck = function (a, b) { return a instanceof b ? !0 : b.__isInterface__ ? w.__interfLoop(w.getClass(a), b) : !1 }; w.__implements = function (a, b) { return w.__interfLoop(w.getClass(a), b) }; w.__cast = function (a, b) { if (null == a || w.__instanceof(a, b)) return a; throw I.thrown("Cannot cast " + z.string(a) + " to " + z.string(b)); }; w.__nativeClassName = function (a) { a = w.__toStr.call(a).slice(8, -1); return "Object" == a || "Function" == a || "Math" == a || "JSON" == a ? null : a }; w.__isNativeObj = function (a) { return null != w.__nativeClassName(a) }; w.__resolveNativeClass = function (a) { return R[a] }; var Zg = function () { }; k["js.Browser"] = Zg; Zg.__name__ = "js.Browser"; Zg.__properties__ = {get_supported: "get_supported"}; Zg.get_supported = function () { return "undefined" != typeof window && "undefined" != typeof window.location ? "string" == typeof window.location.protocol : !1 }; Zg.getLocalStorage = function () { try { var a = window.localStorage; a.getItem(""); if (0 == a.length) { var b = "_hx_" + Math.random(); a.setItem(b, b); a.removeItem(b) } return a } catch (c) { return ra.lastError = c, null } }; var kr = function () { }; k["js.html._CanvasElement.CanvasUtil"] = kr; kr.__name__ = "js.html._CanvasElement.CanvasUtil"; kr.getContextWebGL = function (a, b) { var c = a.getContext("webgl", b); if (null != c) return c; c = a.getContext("experimental-webgl", b); return null != c ? c : null }; var lr = function () { }; k["js.lib._ArrayBuffer.ArrayBufferCompat"] = lr; lr.__name__ = "js.lib._ArrayBuffer.ArrayBufferCompat"; lr.sliceImpl = function (a, b) { a = new Uint8Array(this, a, null == b ? null : b - a); b = new Uint8Array(a.byteLength); b.set(a); return b.buffer }; var to = function (a) { this.gameDeviceCache = new eb; this.parent = a; this.nextUpdate = this.lastUpdate = this.currentUpdate = 0; this.framePeriod = -1; Dc.init(); this.accelerometer = Sf.registerSensor(Ur.ACCELEROMETER, 0) }; k["lime._internal.backend.html5.HTML5Application"] = to; to.__name__ = "lime._internal.backend.html5.HTML5Application"; to.prototype = { accelerometer: null, currentUpdate: null, deltaTime: null, framePeriod: null, gameDeviceCache: null, hidden: null, lastUpdate: null, nextUpdate: null, parent: null, convertKeyCode: function (a) { if (65 <= a && 90 >= a) return a + 32; switch (a) { case 12: return 1073741980; case 16: return 1073742049; case 17: return 1073742048; case 18: return 1073742050; case 19: return 1073741896; case 20: return 1073741881; case 33: return 1073741899; case 34: return 1073741902; case 35: return 1073741901; case 36: return 1073741898; case 37: return 1073741904; case 38: return 1073741906; case 39: return 1073741903; case 40: return 1073741905; case 41: return 1073741943; case 43: return 1073741940; case 44: return 1073741894; case 45: return 1073741897; case 46: return 127; case 91: return 1073742051; case 92: return 1073742055; case 93: return 1073742055; case 95: return 1073742106; case 96: return 1073741922; case 97: return 1073741913; case 98: return 1073741914; case 99: return 1073741915; case 100: return 1073741916; case 101: return 1073741917; case 102: return 1073741918; case 103: return 1073741919; case 104: return 1073741920; case 105: return 1073741921; case 106: return 1073741909; case 107: return 1073741911; case 108: return 1073741923; case 109: return 1073741910; case 110: return 1073741923; case 111: return 1073741908; case 112: return 1073741882; case 113: return 1073741883; case 114: return 1073741884; case 115: return 1073741885; case 116: return 1073741886; case 117: return 1073741887; case 118: return 1073741888; case 119: return 1073741889; case 120: return 1073741890; case 121: return 1073741891; case 122: return 1073741892; case 123: return 1073741893; case 124: return 1073741928; case 125: return 1073741929; case 126: return 1073741930; case 127: return 1073741931; case 128: return 1073741932; case 129: return 1073741933; case 130: return 1073741934; case 131: return 1073741935; case 132: return 1073741936; case 133: return 1073741937; case 134: return 1073741938; case 135: return 1073741939; case 144: return 1073741907; case 145: return 1073741895; case 160: return 94; case 161: return 33; case 163: return 35; case 164: return 36; case 166: return 1073742094; case 167: return 1073742095; case 168: return 1073742097; case 169: return 41; case 170: return 42; case 171: return 96; case 172: return 1073741898; case 173: return 45; case 174: return 1073741953; case 175: return 1073741952; case 176: return 1073742082; case 177: return 1073742083; case 178: return 1073742084; case 179: return 1073742085; case 180: return 1073742089; case 181: return 1073742086; case 182: return 1073741953; case 183: return 1073741952; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 193: return 63; case 194: return 1073741923; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39; case 223: return 96; case 224: return 1073742051; case 226: return 92 } return a }, exec: function () { window.addEventListener("keydown", q(this, this.handleKeyEvent), !1); window.addEventListener("keyup", q(this, this.handleKeyEvent), !1); window.addEventListener("focus", q(this, this.handleWindowEvent), !1); window.addEventListener("blur", q(this, this.handleWindowEvent), !1); window.addEventListener("resize", q(this, this.handleWindowEvent), !1); window.addEventListener("beforeunload", q(this, this.handleWindowEvent), !1); window.addEventListener("devicemotion", q(this, this.handleSensorEvent), !1); CanvasRenderingContext2D.prototype.isPointInStroke || (CanvasRenderingContext2D.prototype.isPointInStroke = function (a, b, c) { return !1 }); CanvasRenderingContext2D.prototype.isPointInPath || (CanvasRenderingContext2D.prototype.isPointInPath = function (a, b, c) { return !1 }); 0 == "performance" in window && (window.performance = {}); if (0 == "now" in window.performance) { var a = Date.now(); performance.timing && performance.timing.navigationStart && (a = performance.timing.navigationStart); window.performance.now = function () { return Date.now() - a } } for (var b = 0, c = ["ms", "moz", "webkit", "o"], d = 0; d < c.length && !window.requestAnimationFrame; ++d) window.requestAnimationFrame = window[c[d] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[c[d] + "CancelAnimationFrame"] || window[c[d] + "CancelRequestAnimationFrame"]; window.requestAnimationFrame || (window.requestAnimationFrame = function (a, c) { var d = (new Date).getTime(), e = Math.max(0, 16 - (d - b)); c = window.setTimeout(function () { a(d + e) }, e); b = d + e; return c }); window.cancelAnimationFrame || (window.cancelAnimationFrame = function (a) { clearTimeout(a) }); window.requestAnimFrame = window.requestAnimationFrame; this.lastUpdate = (new Date).getTime(); this.handleApplicationEvent(); return 0 }, exit: function () { }, handleApplicationEvent: function (a) { a = 0; for (var b = this.parent.__windows; a < b.length;) { var c = b[a]; ++a; c.__backend.updateSize() } this.updateGameDevices(); this.currentUpdate = (new Date).getTime(); if (this.currentUpdate >= this.nextUpdate) { this.deltaTime = this.currentUpdate - this.lastUpdate; a = 0; for (b = this.parent.__windows; a < b.length;) c = b[a], ++a, this.parent.onUpdate.dispatch(this.deltaTime | 0), null != c.context && c.onRender.dispatch(c.context); this.nextUpdate = 0 > this.framePeriod ? this.currentUpdate : this.currentUpdate - this.currentUpdate % this.framePeriod + this.framePeriod; this.lastUpdate = this.currentUpdate } window.requestAnimationFrame(q(this, this.handleApplicationEvent)) }, handleKeyEvent: function (a) { if (null != this.parent.__window) { switch (a.keyCode) { case 32: case 37: case 38: case 39: case 40: a.preventDefault() } var b = this.convertKeyCode(null != a.keyCode ? a.keyCode : a.which), c = (a.shiftKey ? 3 : 0) | (a.ctrlKey ? 192 : 0) | (a.altKey ? 768 : 0) | (a.metaKey ? 3072 : 0); "keydown" == a.type ? (this.parent.__window.onKeyDown.dispatch(b, c), this.parent.__window.onKeyDown.canceled && a.cancelable && a.preventDefault()) : (this.parent.__window.onKeyUp.dispatch(b, c), this.parent.__window.onKeyUp.canceled && a.cancelable && a.preventDefault()) } }, handleSensorEvent: function (a) { this.accelerometer.onUpdate.dispatch(a.accelerationIncludingGravity.x, a.accelerationIncludingGravity.y, a.accelerationIncludingGravity.z) }, handleWindowEvent: function (a) { if (null != this.parent.__window) switch (a.type) { case "blur": this.hidden || (this.parent.__window.onFocusOut.dispatch(), this.parent.__window.onDeactivate.dispatch(), this.hidden = !0); break; case "focus": this.hidden && (this.parent.__window.onFocusIn.dispatch(), this.parent.__window.onActivate.dispatch(), this.hidden = !1); break; case "resize": this.parent.__window.__backend.handleResizeEvent(a); break; case "visibilitychange": window.document.hidden ? this.hidden || (this.parent.__window.onFocusOut.dispatch(), this.parent.__window.onDeactivate.dispatch(), this.hidden = !0) : this.hidden && (this.parent.__window.onFocusIn.dispatch(), this.parent.__window.onActivate.dispatch(), this.hidden = !1) } }, updateGameDevices: function () { var a = bd.__getDeviceData(); if (null != a) for (var b, c, d, e, g, f = 0, v = a.length; f < v;) if (b = f++, e = a[b], null != e) { if (!this.gameDeviceCache.h.hasOwnProperty(b)) { g = new uo; g.id = b; g.connected = e.connected; c = 0; for (d = e.buttons.length; c < d;) { var p = c++; g.buttons.push(e.buttons[p].value) } c = 0; for (d = e.axes.length; c < d;) p = c++, g.axes.push(e.axes[p]); "standard" == e.mapping && (g.isGamepad = !0); this.gameDeviceCache.h[b] = g; e.connected && (bd.__connect(b), g.isGamepad && Pd.__connect(b)) } g = this.gameDeviceCache.h[b]; d = bd.devices.h[b]; c = Pd.devices.h[b]; if (e.connected) { for (var m = 0, h = e.buttons.length; m < h;) { var n = m++; p = e.buttons[n].value; if (p != g.buttons[n]) { if (6 == n) d.onAxisMove.dispatch(e.axes.length, p), null != c && c.onAxisMove.dispatch(4, p); else if (7 == n) d.onAxisMove.dispatch(e.axes.length + 1, p), null != c && c.onAxisMove.dispatch(5, p); else if (0 < p ? d.onButtonDown.dispatch(n) : d.onButtonUp.dispatch(n), null != c) { switch (n) { case 0: b = 0; break; case 1: b = 1; break; case 2: b = 2; break; case 3: b = 3; break; case 4: b = 9; break; case 5: b = 10; break; case 8: b = 4; break; case 9: b = 6; break; case 10: b = 7; break; case 11: b = 8; break; case 12: b = 11; break; case 13: b = 12; break; case 14: b = 13; break; case 15: b = 14; break; case 16: b = 5; break; default: continue } 0 < p ? c.onButtonDown.dispatch(b) : c.onButtonUp.dispatch(b) } g.buttons[n] = p } } b = 0; for (p = e.axes.length; b < p;) m = b++, e.axes[m] != g.axes[m] && (d.onAxisMove.dispatch(m, e.axes[m]), null != c && c.onAxisMove.dispatch(m, e.axes[m]), g.axes[m] = e.axes[m]) } else g.connected && (g.connected = !1, bd.__disconnect(b), Pd.__disconnect(b)) } }, __class__: to }; var uo = function () { this.connected = !0; this.buttons = []; this.axes = [] }; k["lime._internal.backend.html5.GameDeviceData"] = uo; uo.__name__ = "lime._internal.backend.html5.GameDeviceData"; uo.prototype = {connected: null, id: null, isGamepad: null, buttons: null, axes: null, __class__: uo}; var vo = function (a) { this.parent = a; this.id = -1; this.gain = 1 }; k["lime._internal.backend.html5.HTML5AudioSource"] = vo; vo.__name__ = "lime._internal.backend.html5.HTML5AudioSource"; vo.prototype = { completed: null, gain: null, id: null, length: null, loops: null, parent: null, playing: null, dispose: function () { }, init: function () { }, play: function () { if (!this.playing && null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { this.playing = !0; var a = this.getCurrentTime(); this.completed = !1; var b = this.parent.buffer.__srcHowl._volume; this.parent.buffer.__srcHowl._volume = this.parent.get_gain(); this.id = this.parent.buffer.__srcHowl.play(); this.parent.buffer.__srcHowl._volume = b; null != this.parent.get_pan() && this.setPan(this.parent.get_pan()); null != this.parent.get_position() && this.setPosition(this.parent.get_position()); this.parent.buffer.__srcHowl.on("end", q(this, this.howl_onEnd), this.id); this.setCurrentTime(a) } }, pause: function () { this.playing = !1; null != this.parent.buffer && null != this.parent.buffer.__srcHowl && this.parent.buffer.__srcHowl.pause(this.id) }, stop: function () { this.playing = !1; null != this.parent.buffer && null != this.parent.buffer.__srcHowl && (this.parent.buffer.__srcHowl.stop(this.id), this.parent.buffer.__srcHowl.off("end", q(this, this.howl_onEnd), this.id)) }, update: function () { }, howl_onEnd: function () { this.playing = !1; 0 < this.loops ? (this.loops--, this.stop(), this.play()) : (null != this.parent.buffer && null != this.parent.buffer.__srcHowl && (this.parent.buffer.__srcHowl.stop(this.id), this.parent.buffer.__srcHowl.off("end", q(this, this.howl_onEnd), this.id)), this.completed = !0, this.parent.onComplete.dispatch()) }, getCurrentTime: function () { if (-1 == this.id) return 0; if (this.completed) return this.getLength(); if (null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { var a = (1E3 * this.parent.buffer.__srcHowl.seek(this.id) | 0) - this.parent.offset; return 0 > a ? 0 : a } return 0 }, setCurrentTime: function (a) { if (null != this.parent.buffer && null != this.parent.buffer.__srcHowl) { var b = (a + this.parent.offset) / 1E3; 0 > b && (b = 0); this.parent.buffer.__srcHowl.seek(b, this.id) } return a }, getGain: function () { return this.gain }, setGain: function (a) { null != this.parent.buffer && null != this.parent.buffer.__srcHowl && -1 != this.id && this.parent.buffer.__srcHowl.volume(a, this.id); return this.gain = a }, getLength: function () { return 0 != this.length ? this.length : null != this.parent.buffer && null != this.parent.buffer.__srcHowl ? 1E3 * this.parent.buffer.__srcHowl.duration() | 0 : 0 }, setLength: function (a) { return this.length = a }, getLoops: function () { return this.loops }, setLoops: function (a) { return this.loops = a }, setPan: function (a) { null != this.parent.buffer.__srcHowl && null != this.parent.buffer.__srcHowl.stereo && this.parent.buffer.__srcHowl.stereo(a, this.id); return a }, setPosition: function (a) { null != this.parent.buffer.__srcHowl && null != this.parent.buffer.__srcHowl.pos && this.parent.buffer.__srcHowl.pos(a.x, a.y, a.z, this.id); return a }, __class__: vo }; var Ua = function () { this.validStatus0 = (new fb("Tizen", "gi")).match(window.navigator.userAgent) }; k["lime._internal.backend.html5.HTML5HTTPRequest"] = Ua; Ua.__name__ = "lime._internal.backend.html5.HTML5HTTPRequest"; Ua.loadImage = function (a) { var b = new fe; Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, Ua.__loadImage(a, b, 0)) : Ua.requestQueue.add({instance: null, uri: a, promise: b, type: "IMAGE", options: 0}); return b.future }; Ua.loadImageFromBytes = function (a, b) { var c = URL.createObjectURL(new Blob([a.b.bufferValue], {type: b})); return null != c ? (a = new fe, Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, Ua.__loadImage(c, a, 1)) : Ua.requestQueue.add({ instance: null, uri: c, promise: a, type: "IMAGE", options: 1 }), a.future) : Ua.loadImage("data:" + b + ";base64," + Tf.encode(a)) }; Ua.processQueue = function () { if (Ua.activeRequests < Ua.requestLimit && 0 < Ua.requestQueue.length) { Ua.activeRequests++; var a = Ua.requestQueue.pop(); switch (a.type) { case "BINARY": a.instance.__loadData(a.uri, a.promise); break; case "IMAGE": Ua.__loadImage(a.uri, a.promise, a.options); break; case "TEXT": a.instance.__loadText(a.uri, a.promise); break; default: Ua.activeRequests-- } } }; Ua.__createBlobURIFromBytes = function (a, b) { return URL.createObjectURL(new Blob([a.b.bufferValue], {type: b})) }; Ua.__fixHostname = function (a) { return null == a ? "" : a }; Ua.__fixPort = function (a, b) { if (null == a || "" == a) switch (b) { case "ftp:": return "21"; case "gopher:": return "70"; case "http:": return "80"; case "https:": return "443"; case "ws:": return "80"; case "wss:": return "443"; default: return "" } return a }; Ua.__fixProtocol = function (a) { return null == a || "" == a ? "http:" : a }; Ua.__isInMemoryURI = function (a) { return T.startsWith(a, "data:") ? !0 : T.startsWith(a, "blob:") }; Ua.__isSameOrigin = function (a) { if (null == a || "" == a || Ua.__isInMemoryURI(a)) return !0; null == Ua.originElement && (Ua.originElement = window.document.createElement("a"), Ua.originHostname = Ua.__fixHostname(R.location.hostname), Ua.originProtocol = Ua.__fixProtocol(R.location.protocol), Ua.originPort = Ua.__fixPort(R.location.port, Ua.originProtocol)); var b = Ua.originElement; b.href = a; "" == b.hostname && (b.href = b.href); var c = Ua.__fixHostname(b.hostname); a = Ua.__fixProtocol(b.protocol); b = Ua.__fixPort(b.port, a); c = "" == c || c == Ua.originHostname; b = "" == b || b == Ua.originPort; return "file:" != a && c ? b : !1 }; Ua.__loadImage = function (a, b, c) { var d = new Image; Ua.__isSameOrigin(a) || (d.crossOrigin = "Anonymous"); null == Ua.supportsImageProgress && (Ua.supportsImageProgress = "onprogress" in d); if (Ua.supportsImageProgress || Ua.__isInMemoryURI(a)) d.addEventListener("load", function (e) { Ua.__revokeBlobURI(a, c); e = new Uf(null, d.width, d.height); e.__srcImage = d; Ua.activeRequests--; Ua.processQueue(); b.complete(new Lb(e)) }, !1), d.addEventListener("progress", function (a) { b.progress(a.loaded, a.total) }, !1), d.addEventListener("error", function (d) { Ua.__revokeBlobURI(a, c); Ua.activeRequests--; Ua.processQueue(); b.error(d.detail) }, !1), d.src = a; else { var e = new XMLHttpRequest; e.onload = function (a) { Ua.activeRequests--; Ua.processQueue(); (new Lb).__fromBytes(lb.ofData(e.response), function (a) { b.complete(a) }) }; e.onerror = function (a) { b.error(a.message) }; e.onprogress = function (a) { a.lengthComputable && b.progress(a.loaded, a.total) }; e.open("GET", a, !0); e.responseType = "arraybuffer"; e.overrideMimeType("text/plain; charset=x-user-defined"); e.send(null) } }; Ua.__revokeBlobURI = function (a, b) { 0 != (b & 1) && URL.revokeObjectURL(a) }; Ua.prototype = { binary: null, parent: null, request: null, validStatus0: null, cancel: function () { null != this.request && this.request.abort() }, init: function (a) { this.parent = a }, load: function (a, b, c) { this.request = new XMLHttpRequest; "POST" == this.parent.method ? this.request.upload.addEventListener("progress", b, !1) : this.request.addEventListener("progress", b, !1); this.request.onreadystatechange = c; b = ""; if (null == this.parent.data) { c = Object.keys(this.parent.formData.h); for (var d = c.length, e = 0; e < d;) { var g = c[e++]; 0 < b.length && (b += "&"); var f = this.parent.formData.h[g]; if (-1 < g.indexOf("[]") && f instanceof Array) { var v = []; for (f = H(f); f.hasNext();) { var p = f.next(); v.push(encodeURIComponent(p)) } v = v.join("&" + g + "="); b += encodeURIComponent(g) + "=" + v } else v = encodeURIComponent(g) + "=", g = z.string(f), b += v + encodeURIComponent(g) } "GET" == this.parent.method && "" != b && (a = -1 < a.indexOf("?") ? a + ("&" + b) : a + ("?" + b), b = "") } this.request.open(z.string(this.parent.method), a, !0); 0 < this.parent.timeout && (this.request.timeout = this.parent.timeout); this.binary && (this.request.responseType = "arraybuffer"); a = null; v = 0; for (c = this.parent.headers; v < c.length;) d = c[v], ++v, "Content-Type" == d.name ? a = d.value : this.request.setRequestHeader(d.name, d.value); null != this.parent.contentType && (a = this.parent.contentType); null == a && (null != this.parent.data ? a = "application/octet-stream" : "" != b && (a = "application/x-www-form-urlencoded")); null != a && this.request.setRequestHeader("Content-Type", a); this.parent.withCredentials && (this.request.withCredentials = !0); null != this.parent.data ? this.request.send(this.parent.data.b.bufferValue) : this.request.send(b) }, loadData: function (a) { var b = new fe; Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, this.__loadData(a, b)) : Ua.requestQueue.add({ instance: this, uri: a, promise: b, type: "BINARY", options: 0 }); return b.future }, loadText: function (a) { var b = new fe; Ua.activeRequests < Ua.requestLimit ? (Ua.activeRequests++, this.__loadText(a, b)) : Ua.requestQueue.add({ instance: this, uri: a, promise: b, type: "TEXT", options: 0 }); return b.future }, processResponse: function () { if (this.parent.enableResponseHeaders) { this.parent.responseHeaders = []; for (var a, b, c = 0, d = this.request.getAllResponseHeaders().split("\n"); c < d.length;) b = d[c], ++c, a = T.trim(K.substr(b, 0, b.indexOf(":"))), b = T.trim(K.substr(b, b.indexOf(":") + 1, null)), "" != a && this.parent.responseHeaders.push(new im(a, b)) } this.parent.responseStatus = this.request.status }, __loadData: function (a, b) { var c = this; this.binary = !0; this.load(a, function (a) { b.progress(a.loaded, a.total) }, function (a) { 4 == c.request.readyState && (null != c.request.status && (200 <= c.request.status && 400 > c.request.status || c.validStatus0 && 0 == c.request.status) ? (a = null, "" == c.request.responseType ? null != c.request.responseText && (a = lb.ofString(c.request.responseText)) : null != c.request.response && (a = lb.ofData(c.request.response)), c.processResponse(), b.complete(a)) : (c.processResponse(), b.error(c.request.status)), c.request = null, Ua.activeRequests--, Ua.processQueue()) }) }, __loadText: function (a, b) { var c = this; this.binary = !1; this.load(a, function (a) { b.progress(a.loaded, a.total) }, function (a) { 4 == c.request.readyState && (null != c.request.status && (200 <= c.request.status && 400 >= c.request.status || c.validStatus0 && 0 == c.request.status) ? (c.processResponse(), b.complete(c.request.responseText)) : (c.processResponse(), b.error(c.request.status)), c.request = null, Ua.activeRequests--, Ua.processQueue()) }) }, __class__: Ua }; var rb = function (a) { this.inputing = !1; this.unusedTouchesPool = new E; this.scale = 1; this.currentTouches = new eb; this.parent = a; this.cursor = rc.DEFAULT; this.cacheMouseY = this.cacheMouseX = 0; var b = a.__attributes; Object.prototype.hasOwnProperty.call(b, "context") || (b.context = {}); this.renderType = b.context.type; Object.prototype.hasOwnProperty.call(b, "element") && (a.element = b.element); var c = a.element; Object.prototype.hasOwnProperty.call(b, "allowHighDPI") && b.allowHighDPI && "dom" != this.renderType && (this.scale = window.devicePixelRatio); a.__scale = this.scale; this.setWidth = Object.prototype.hasOwnProperty.call(b, "width") ? b.width : 0; this.setHeight = Object.prototype.hasOwnProperty.call(b, "height") ? b.height : 0; a.__width = this.setWidth; a.__height = this.setHeight; a.id = rb.windowID++; c instanceof HTMLCanvasElement ? this.canvas = c : "dom" == this.renderType ? this.div = window.document.createElement("div") : this.canvas = window.document.createElement("canvas"); if (null != this.canvas) { var d = this.canvas.style; d.setProperty("-webkit-transform", "translateZ(0)", null); d.setProperty("transform", "translateZ(0)", null) } else null != this.div && (d = this.div.style, d.setProperty("-webkit-transform", "translate3D(0,0,0)", null), d.setProperty("transform", "translate3D(0,0,0)", null), d.position = "relative", d.overflow = "hidden", d.setProperty("-webkit-user-select", "none", null), d.setProperty("-moz-user-select", "none", null), d.setProperty("-ms-user-select", "none", null), d.setProperty("-o-user-select", "none", null)); 0 == a.__width && 0 == a.__height && (null != c ? (a.__width = c.clientWidth, a.__height = c.clientHeight) : (a.__width = window.innerWidth, a.__height = window.innerHeight), this.cacheElementWidth = a.__width, this.cacheElementHeight = a.__height, this.resizeElement = !0); null != this.canvas ? (this.canvas.width = Math.round(a.__width * this.scale), this.canvas.height = Math.round(a.__height * this.scale), this.canvas.style.width = a.__width + "px", this.canvas.style.height = a.__height + "px") : (this.div.style.width = a.__width + "px", this.div.style.height = a.__height + "px"); if (Object.prototype.hasOwnProperty.call(b, "resizable") && b.resizable || !Object.prototype.hasOwnProperty.call(b, "width") && 0 == this.setWidth && 0 == this.setHeight) a.__resizable = !0; this.updateSize(); if (null != c) { null != this.canvas ? c != this.canvas && c.appendChild(this.canvas) : c.appendChild(this.div); b = "mousedown mouseenter mouseleave mousemove mouseup wheel".split(" "); for (d = 0; d < b.length;) { var e = b[d]; ++d; c.addEventListener(e, q(this, this.handleMouseEvent), !0) } c.addEventListener("contextmenu", q(this, this.handleContextMenuEvent), !0); c.addEventListener("dragstart", q(this, this.handleDragEvent), !0); c.addEventListener("dragover", q(this, this.handleDragEvent), !0); c.addEventListener("drop", q(this, this.handleDragEvent), !0); c.addEventListener("touchstart", q(this, this.handleTouchEvent), !0); c.addEventListener("touchmove", q(this, this.handleTouchEvent), !0); c.addEventListener("touchend", q(this, this.handleTouchEvent), !0); c.addEventListener("touchcancel", q(this, this.handleTouchEvent), !0); c.addEventListener("gamepadconnected", q(this, this.handleGamepadEvent), !0); c.addEventListener("gamepaddisconnected", q(this, this.handleGamepadEvent), !0) } this.createContext(); "webgl" == a.context.type && (this.canvas.addEventListener("webglcontextlost", q(this, this.handleContextEvent), !1), this.canvas.addEventListener("webglcontextrestored", q(this, this.handleContextEvent), !1)) }; k["lime._internal.backend.html5.HTML5Window"] = rb; rb.__name__ = "lime._internal.backend.html5.HTML5Window"; rb.prototype = { canvas: null, div: null, cacheElementHeight: null, cacheElementWidth: null, cacheMouseX: null, cacheMouseY: null, cursor: null, currentTouches: null, isFullscreen: null, parent: null, primaryTouch: null, renderType: null, requestedFullscreen: null, resizeElement: null, scale: null, setHeight: null, setWidth: null, textInputEnabled: null, unusedTouchesPool: null, alert: function (a, b) { null != a && window.alert(z.string(a)) }, close: function () { this.parent.application.__removeWindow(this.parent) }, createContext: function () { var a = new wo, b = this.parent.__attributes.context; a.window = this.parent; a.attributes = b; if (null != this.div) a.dom = this.div, a.type = "dom", a.version = ""; else if (null != this.canvas) { var c = null, d = "canvas" == this.renderType, e = "opengl" == this.renderType || "opengles" == this.renderType || "webgl" == this.renderType, g = !Object.prototype.hasOwnProperty.call(b, "version") || "1" != b.version, f = !1; if (e || !d && (!Object.prototype.hasOwnProperty.call(b, "hardware") || b.hardware)) { d = Object.prototype.hasOwnProperty.call(b, "background") && null == b.background; e = Object.prototype.hasOwnProperty.call(b, "colorDepth") ? b.colorDepth : 16; var v = Object.prototype.hasOwnProperty.call(b, "antialiasing") && 0 < b.antialiasing, p = Object.prototype.hasOwnProperty.call(b, "depth") ? b.depth : !0; b = Object.prototype.hasOwnProperty.call(b, "stencil") && b.stencil; b = { alpha: d || 16 < e, antialias: v, depth: p, premultipliedAlpha: !0, stencil: b, preserveDrawingBuffer: !1, failIfMajorPerformanceCaveat: !1 }; d = ["webgl", "experimental-webgl"]; g && d.unshift("webgl2"); for (g = 0; g < d.length && (e = d[g], ++g, c = this.canvas.getContext(e, b), null != c && "webgl2" == e && (f = !0), null == c);) ; } null == c ? (a.canvas2D = this.canvas.getContext("2d"), a.type = "canvas", a.version = "") : (a.webgl = fc.fromWebGL2RenderContext(c), f && (a.webgl2 = c), null == l.context && (l.context = c, l.type = "webgl", l.version = f ? 2 : 1), a.type = "webgl", a.version = f ? "2" : "1") } this.parent.context = a }, focus: function () { }, getCursor: function () { return this.cursor }, getDisplay: function () { return $a.getDisplay(0) }, getDisplayMode: function () { return $a.getDisplay(0).currentMode }, getFrameRate: function () { return null == this.parent.application ? 0 : 0 > this.parent.application.__backend.framePeriod ? 60 : 1E3 == this.parent.application.__backend.framePeriod ? 0 : 1E3 / this.parent.application.__backend.framePeriod }, getMouseLock: function () { return !1 }, getTextInputEnabled: function () { return this.textInputEnabled }, handleContextEvent: function (a) { switch (a.type) { case "webglcontextlost": a.cancelable && a.preventDefault(); this.parent.context = null; this.parent.onRenderContextLost.dispatch(); break; case "webglcontextrestored": this.createContext(), this.parent.onRenderContextRestored.dispatch(this.parent.context) } }, handleContextMenuEvent: function (a) { (this.parent.onMouseUp.canceled || this.parent.onMouseDown.canceled) && a.cancelable && a.preventDefault() }, handleCutOrCopyEvent: function (a) { a.clipboardData.setData("text/plain", oe.get_text()); a.cancelable && a.preventDefault() }, handleDragEvent: function (a) { switch (a.type) { case "dragover": return a.preventDefault(), !1; case "dragstart": if ("img" == w.__cast(a.target, HTMLElement).nodeName.toLowerCase() && a.cancelable) return a.preventDefault(), !1; break; case "drop": if (null != a.dataTransfer && 0 < a.dataTransfer.files.length) return this.parent.onDropFile.dispatch(a.dataTransfer.files), a.preventDefault(), !1 } return !0 }, handleFocusEvent: function (a) { var b = this; this.textInputEnabled && (null == a.relatedTarget || this.isDescendent(a.relatedTarget)) && Ve.delay(function () { b.textInputEnabled && rb.textInput.focus() }, 20) }, handleFullscreenEvent: function (a) { if (null != (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement)) this.isFullscreen = !0, this.parent.__fullscreen = !0, this.requestedFullscreen && (this.requestedFullscreen = !1, this.parent.onFullscreen.dispatch()); else { this.isFullscreen = !1; this.parent.__fullscreen = !1; this.parent.onRestore.dispatch(); a = ["fullscreenchange", "mozfullscreenchange", "webkitfullscreenchange", "MSFullscreenChange"]; for (var b = ["fullscreenerror", "mozfullscreenerror", "webkitfullscreenerror", "MSFullscreenError"], c = 0, d = a.length; c < d;) { var e = c++; window.document.removeEventListener(a[e], q(this, this.handleFullscreenEvent), !1); window.document.removeEventListener(b[e], q(this, this.handleFullscreenEvent), !1) } } }, handleGamepadEvent: function (a) { switch (a.type) { case "gamepadconnected": bd.__connect(a.gamepad.index); "standard" == a.gamepad.mapping && Pd.__connect(a.gamepad.index); break; case "gamepaddisconnected": bd.__disconnect(a.gamepad.index), Pd.__disconnect(a.gamepad.index) } }, handleInputEvent: function (a) { this.inputing || rb.textInput.value == rb.dummyCharacter || (a = T.replace(rb.textInput.value, rb.dummyCharacter, ""), 0 < a.length && this.parent.onTextInput.dispatch(a), rb.textInput.value = rb.dummyCharacter) }, handleMouseEvent: function (a) { if ("wheel" != a.type) { if (null != this.parent.element) if (null != this.canvas) { var b = this.canvas.getBoundingClientRect(); var c = this.parent.__width / b.width * (a.clientX - b.left); b = this.parent.__height / b.height * (a.clientY - b.top) } else null != this.div ? (b = this.div.getBoundingClientRect(), c = a.clientX - b.left, b = a.clientY - b.top) : (b = this.parent.element.getBoundingClientRect(), c = this.parent.__width / b.width * (a.clientX - b.left), b = this.parent.__height / b.height * (a.clientY - b.top)); else c = a.clientX, b = a.clientY; switch (a.type) { case "mousedown": a.currentTarget == this.parent.element && window.addEventListener("mouseup", q(this, this.handleMouseEvent)); this.parent.onMouseDown.dispatch(c, b, a.button); this.parent.onMouseDown.canceled && a.cancelable && a.preventDefault(); break; case "mouseenter": a.target == this.parent.element && (this.parent.onEnter.dispatch(), this.parent.onEnter.canceled && a.cancelable && a.preventDefault()); break; case "mouseleave": a.target == this.parent.element && (this.parent.onLeave.dispatch(), this.parent.onLeave.canceled && a.cancelable && a.preventDefault()); break; case "mousemove": if (c != this.cacheMouseX || b != this.cacheMouseY) this.parent.onMouseMove.dispatch(c, b), this.parent.onMouseMoveRelative.dispatch(c - this.cacheMouseX, b - this.cacheMouseY), (this.parent.onMouseMove.canceled || this.parent.onMouseMoveRelative.canceled) && a.cancelable && a.preventDefault(); break; case "mouseup": window.removeEventListener("mouseup", q(this, this.handleMouseEvent)), a.currentTarget == this.parent.element && a.stopPropagation(), this.parent.onMouseUp.dispatch(c, b, a.button), this.parent.onMouseUp.canceled && a.cancelable && a.preventDefault() } this.cacheMouseX = c; this.cacheMouseY = b } else { switch (a.deltaMode) { case 0: c = Ch.PIXELS; break; case 1: c = Ch.LINES; break; case 2: c = Ch.PAGES; break; default: c = Ch.UNKNOWN } this.parent.onMouseWheel.dispatch(a.deltaX, -a.deltaY, c); this.parent.onMouseWheel.canceled && a.cancelable && a.preventDefault() } }, handlePasteEvent: function (a) { if (-1 < a.clipboardData.types.indexOf("text/plain")) { var b = a.clipboardData.getData("text/plain"); oe.set_text(b); this.textInputEnabled && this.parent.onTextInput.dispatch(b); a.cancelable && a.preventDefault() } }, handleResizeEvent: function (a) { this.primaryTouch = null; this.updateSize() }, handleTouchEvent: function (a) { a.cancelable && a.preventDefault(); var b = null; null != this.parent.element && (b = null != this.canvas ? this.canvas.getBoundingClientRect() : null != this.div ? this.div.getBoundingClientRect() : this.parent.element.getBoundingClientRect()); var c = this.setWidth, d = this.setHeight; if (0 == c || 0 == d) null != b ? (c = b.width, d = b.height) : d = c = 1; for (var e, g, f, v, p, m = 0, h = a.changedTouches; m < h.length;) { var n = h[m]; ++m; null != b ? (g = c / b.width * (n.clientX - b.left), f = d / b.height * (n.clientY - b.top)) : (g = n.clientX, f = n.clientY); if ("touchstart" == a.type) e = this.unusedTouchesPool.pop(), null == e ? e = new sd(g / c, f / d, n.identifier, 0, 0, n.force, this.parent.id) : (e.x = g / c, e.y = f / d, e.id = n.identifier, e.dx = 0, e.dy = 0, e.pressure = n.force, e.device = this.parent.id), this.currentTouches.h[n.identifier] = e, sd.onStart.dispatch(e), null == this.primaryTouch && (this.primaryTouch = e), e == this.primaryTouch && this.parent.onMouseDown.dispatch(g, f, 0); else if (e = this.currentTouches.h[n.identifier], null != e) switch (v = e.x, p = e.y, e.x = g / c, e.y = f / d, e.dx = e.x - v, e.dy = e.y - p, e.pressure = n.force, a.type) { case "touchcancel": sd.onCancel.dispatch(e); this.currentTouches.remove(n.identifier); this.unusedTouchesPool.add(e); e == this.primaryTouch && (this.primaryTouch = null); break; case "touchend": sd.onEnd.dispatch(e); this.currentTouches.remove(n.identifier); this.unusedTouchesPool.add(e); e == this.primaryTouch && (this.parent.onMouseUp.dispatch(g, f, 0), this.primaryTouch = null); break; case "touchmove": sd.onMove.dispatch(e), e == this.primaryTouch && this.parent.onMouseMove.dispatch(g, f) } } }, isDescendent: function (a) { if (a == this.parent.element) return !0; for (; null != a;) { if (a.parentNode == this.parent.element) return !0; a = a.parentNode } return !1 }, move: function (a, b) { }, readPixels: function (a) { if (null != this.canvas) { var b = new Vd(0, 0, this.canvas.width, this.canvas.height); null == a ? a = b : a.intersection(b, a); if (0 < a.width && 0 < a.height) return b = window.document.createElement("canvas"), b.width = a.width | 0, b.height = a.height | 0, b.getContext("2d").drawImage(this.canvas, -a.x, -a.y), Lb.fromCanvas(b) } return null }, resize: function (a, b) { }, setBorderless: function (a) { return a }, setClipboard: function (a) { null == rb.textArea && (rb.textArea = window.document.createElement("textarea"), rb.textArea.style.height = "0px", rb.textArea.style.left = "-100px", rb.textArea.style.opacity = "0", rb.textArea.style.position = "fixed", rb.textArea.style.top = "-100px", rb.textArea.style.width = "0px", window.document.body.appendChild(rb.textArea)); rb.textArea.value = a; rb.textArea.focus(); rb.textArea.select(); window.document.queryCommandEnabled("copy") && window.document.execCommand("copy") }, setCursor: function (a) { if (this.cursor != a) { if (null == a) this.parent.element.style.cursor = "none"; else { switch (a._hx_index) { case 0: var b = "default"; break; case 1: b = "crosshair"; break; case 3: b = "move"; break; case 4: b = "pointer"; break; case 5: b = "nesw-resize"; break; case 6: b = "ns-resize"; break; case 7: b = "nwse-resize"; break; case 8: b = "ew-resize"; break; case 9: b = "text"; break; case 10: b = "wait"; break; case 11: b = "wait"; break; default: b = "auto" } this.parent.element.style.cursor = b } this.cursor = a } return this.cursor }, setDisplayMode: function (a) { return a }, setFrameRate: function (a) { null != this.parent.application && (60 <= a ? this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = -1) : 0 < a ? this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = 1E3 / a) : this.parent == this.parent.application.__window && (this.parent.application.__backend.framePeriod = 1E3)); return a }, setFullscreen: function (a) { a ? this.requestedFullscreen || this.isFullscreen || (this.requestedFullscreen = !0, (x = this.parent.element, q(x, x.requestFullscreen)) ? (document.addEventListener("fullscreenchange", q(this, this.handleFullscreenEvent), !1), document.addEventListener("fullscreenerror", q(this, this.handleFullscreenEvent), !1), this.parent.element.requestFullscreen()) : this.parent.element.mozRequestFullScreen ? (document.addEventListener("mozfullscreenchange", q(this, this.handleFullscreenEvent), !1), document.addEventListener("mozfullscreenerror", q(this, this.handleFullscreenEvent), !1), this.parent.element.mozRequestFullScreen()) : this.parent.element.webkitRequestFullscreen ? (document.addEventListener("webkitfullscreenchange", q(this, this.handleFullscreenEvent), !1), document.addEventListener("webkitfullscreenerror", q(this, this.handleFullscreenEvent), !1), this.parent.element.webkitRequestFullscreen()) : this.parent.element.msRequestFullscreen && (document.addEventListener("MSFullscreenChange", q(this, this.handleFullscreenEvent), !1), document.addEventListener("MSFullscreenError", q(this, this.handleFullscreenEvent), !1), this.parent.element.msRequestFullscreen())) : this.isFullscreen && (this.requestedFullscreen = !1, document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen ? document.webkitExitFullscreen() : document.msExitFullscreen && document.msExitFullscreen()); return a }, setIcon: function (a) { va.convertToCanvas(a); var b = window.document.querySelector("link[rel*='icon']"); null == b && (b = window.document.createElement("link")); b.type = "image/x-icon"; b.rel = "shortcut icon"; b.href = a.buffer.get_src().toDataURL("image/x-icon"); window.document.getElementsByTagName("head")[0].appendChild(b) }, setMaximized: function (a) { return !1 }, setMinimized: function (a) { return !1 }, setMouseLock: function (a) { }, setResizable: function (a) { return a }, setTextInputEnabled: function (a) { a ? (null == rb.textInput && (rb.textInput = window.document.createElement("input"), rb.textInput.type = "text", rb.textInput.style.position = "absolute", rb.textInput.style.opacity = "0", rb.textInput.style.color = "transparent", rb.textInput.value = rb.dummyCharacter, rb.textInput.autocapitalize = "off", rb.textInput.autocorrect = "off", rb.textInput.autocomplete = "off", rb.textInput.style.left = "0px", rb.textInput.style.top = "50%", (new fb("(iPad|iPhone|iPod).*OS 8_", "gi")).match(window.navigator.userAgent) ? (rb.textInput.style.fontSize = "0px", rb.textInput.style.width = "0px", rb.textInput.style.height = "0px") : (rb.textInput.style.width = "1px", rb.textInput.style.height = "1px"), rb.textInput.style.pointerEvents = "none", rb.textInput.style.zIndex = "-10000000"), null == rb.textInput.parentNode && this.parent.element.appendChild(rb.textInput), this.textInputEnabled || (rb.textInput.addEventListener("input", q(this, this.handleInputEvent), !0), rb.textInput.addEventListener("blur", q(this, this.handleFocusEvent), !0), rb.textInput.addEventListener("cut", q(this, this.handleCutOrCopyEvent), !0), rb.textInput.addEventListener("copy", q(this, this.handleCutOrCopyEvent), !0), rb.textInput.addEventListener("paste", q(this, this.handlePasteEvent), !0), rb.textInput.addEventListener("compositionstart", q(this, this.handleCompositionstartEvent), !0), rb.textInput.addEventListener("compositionend", q(this, this.handleCompositionendEvent), !0)), rb.textInput.focus(), rb.textInput.select()) : null != rb.textInput && (rb.textInput.removeEventListener("input", q(this, this.handleInputEvent), !0), rb.textInput.removeEventListener("blur", q(this, this.handleFocusEvent), !0), rb.textInput.removeEventListener("cut", q(this, this.handleCutOrCopyEvent), !0), rb.textInput.removeEventListener("copy", q(this, this.handleCutOrCopyEvent), !0), rb.textInput.removeEventListener("paste", q(this, this.handlePasteEvent), !0), rb.textInput.removeEventListener("compositionstart", q(this, this.handleCompositionstartEvent), !0), rb.textInput.removeEventListener("compositionend", q(this, this.handleCompositionendEvent), !0), rb.textInput.blur()); return this.textInputEnabled = a }, inputing: null, handleCompositionstartEvent: function (a) { this.inputing = !0 }, handleCompositionendEvent: function (a) { this.inputing = !1; this.handleInputEvent(a) }, setTitle: function (a) { null != a && (window.document.title = a); return a }, updateSize: function () { if (this.parent.__resizable) { if (null != this.parent.element) { var a = this.parent.element.clientWidth; var b = this.parent.element.clientHeight } else a = window.innerWidth, b = window.innerHeight; if (a != this.cacheElementWidth || b != this.cacheElementHeight) { this.cacheElementWidth = a; this.cacheElementHeight = b; var c = this.resizeElement || 0 == this.setWidth && 0 == this.setHeight; if (null != this.parent.element && (null == this.div || null != this.div && c)) if (c) { if (this.parent.__width != a || this.parent.__height != b) this.parent.__width = a, this.parent.__height = b, null != this.canvas ? this.parent.element != this.canvas && (this.canvas.width = Math.round(a * this.scale), this.canvas.height = Math.round(b * this.scale), this.canvas.style.width = a + "px", this.canvas.style.height = b + "px") : (this.div.style.width = a + "px", this.div.style.height = b + "px"), this.parent.onResize.dispatch(a, b) } else { c = 0 != this.setWidth ? a / this.setWidth : 1; var d = 0 != this.setHeight ? b / this.setHeight : 1, e = a, g = b, f = 0, v = 0; c < d ? (g = Math.floor(this.setHeight * c), v = Math.floor((b - g) / 2)) : (e = Math.floor(this.setWidth * d), f = Math.floor((a - e) / 2)); null != this.canvas ? this.parent.element != this.canvas && (this.canvas.style.width = e + "px", this.canvas.style.height = g + "px", this.canvas.style.marginLeft = f + "px", this.canvas.style.marginTop = v + "px") : (this.div.style.width = e + "px", this.div.style.height = g + "px", this.div.style.marginLeft = f + "px", this.div.style.marginTop = v + "px") } } } }, warpMouse: function (a, b) { }, __class__: rb }; var gs = function () { }; k["lime._internal.backend.native.NativeCFFI"] = gs; gs.__name__ = "lime._internal.backend.native.NativeCFFI"; var mr = function () { }; k["lime._internal.format.BMP"] = mr; mr.__name__ = "lime._internal.format.BMP"; mr.encode = function (a, b) { if (a.get_premultiplied() || 0 != a.get_format()) a = a.clone(), a.set_premultiplied(!1), a.set_format(0); null == b && (b = Wh.RGB); var c = 14, d = 40, e = a.width * a.height * 4; if (null != b) switch (b._hx_index) { case 0: e = (3 * a.width + 3 * a.width % 4) * a.height; break; case 1: d = 108; break; case 2: c = 0, e += a.width * a.height } var g = new lb(new ArrayBuffer(c + d + e)), f = 0; 0 < c && (g.b[f++] = 66, g.b[f++] = 77, g.setInt32(f, g.length), f += 4, g.setUInt16(f, 0), f += 2, g.setUInt16(f, 0), f += 2, g.setInt32(f, c + d), f += 4); g.setInt32(f, d); f += 4; g.setInt32(f, a.width); f += 4; g.setInt32(f, b == Wh.ICO ? 2 * a.height : a.height); f += 4; g.setUInt16(f, 1); f += 2; g.setUInt16(f, b == Wh.RGB ? 24 : 32); f += 2; g.setInt32(f, b == Wh.BITFIELD ? 3 : 0); f += 4; g.setInt32(f, e); f += 4; g.setInt32(f, 11824); f += 4; g.setInt32(f, 11824); f += 4; g.setInt32(f, 0); f += 4; g.setInt32(f, 0); f += 4; if (b == Wh.BITFIELD) for (g.setInt32(f, 16711680), f += 4, g.setInt32(f, 65280), f += 4, g.setInt32(f, 255), f += 4, g.setInt32(f, -16777216), f += 4, g.b[f++] = 32, g.b[f++] = 110, g.b[f++] = 105, g.b[f++] = 87, c = 0; 48 > c;) c++, g.b[f++] = 0; d = a.getPixels(new Vd(0, 0, a.width, a.height), 1); if (null != b) switch (b._hx_index) { case 0: c = 0; for (b = a.height; c < b;) { var v = c++; v = 4 * (a.height - 1 - v) * a.width; for (var p = 0, m = a.width; p < m;) { p++; v++; var h = d.b[v++]; var n = d.b[v++]; var l = d.b[v++]; g.b[f++] = l & 255; g.b[f++] = n & 255; g.b[f++] = h & 255 } e = 0; for (var k = 3 * a.width % 4; e < k;) e++, g.b[f++] = 0 } break; case 1: c = 0; for (b = a.height; c < b;) for (v = c++, v = 4 * (a.height - 1 - v) * a.width, p = 0, m = a.width; p < m;) { p++; var t = d.b[v++]; h = d.b[v++]; n = d.b[v++]; l = d.b[v++]; g.b[f++] = l & 255; g.b[f++] = n & 255; g.b[f++] = h & 255; g.b[f++] = t & 255 } break; case 2: e = new lb(new ArrayBuffer(a.width * a.height)); c = k = 0; for (b = a.height; c < b;) for (v = c++, v = 4 * (a.height - 1 - v) * a.width, p = 0, m = a.width; p < m;) p++, t = d.b[v++], h = d.b[v++], n = d.b[v++], l = d.b[v++], g.b[f++] = l & 255, g.b[f++] = n & 255, g.b[f++] = h & 255, g.b[f++] = t & 255, e.b[k++] = 0; g.blit(f, e, 0, a.width * a.height) } return g }; var Wh = A["lime._internal.format.BMPType"] = { __ename__: "lime._internal.format.BMPType", __constructs__: null, RGB: {_hx_name: "RGB", _hx_index: 0, __enum__: "lime._internal.format.BMPType", toString: t}, BITFIELD: { _hx_name: "BITFIELD", _hx_index: 1, __enum__: "lime._internal.format.BMPType", toString: t }, ICO: {_hx_name: "ICO", _hx_index: 2, __enum__: "lime._internal.format.BMPType", toString: t} }; Wh.__constructs__ = [Wh.RGB, Wh.BITFIELD, Wh.ICO]; var Tf = function () { }; k["lime._internal.format.Base64"] = Tf; Tf.__name__ = "lime._internal.format.Base64"; Tf.decode = function (a) { return Ah.decode(a) }; Tf.encode = function (a) { var b = [], c = Tf.DICTIONARY, d = Tf.EXTENDED_DICTIONARY, e = a.length, g = Math.floor(e / 3), f = 2 * g; b.length = 2 * Math.ceil(e / 3); for (var v = 0, p = 0, m; p < f;) m = a.b[v] << 16 | a.b[v + 1] << 8 | a.b[v + 2], b[p] = d[m >> 12 & 4095], b[p + 1] = d[m & 4095], v += 3, p += 2; switch (e - 3 * g) { case 1: m = a.b[v] << 16; b[p] = d[m >> 12 & 4095]; b[p + 1] = "=="; break; case 2: m = a.b[v] << 16 | a.b[v + 1] << 8, b[p] = d[m >> 12 & 4095], b[p + 1] = c[m >> 6 & 63] + "=" } return b.join("") }; var jm = function () { }; k["lime._internal.format.Deflate"] = jm; jm.__name__ = "lime._internal.format.Deflate"; jm.compress = function (a) { a = pako.deflateRaw(a.b.bufferValue); return lb.ofData(a) }; jm.decompress = function (a) { a = pako.inflateRaw(a.b.bufferValue); return lb.ofData(a) }; var km = function () { }; k["lime._internal.format.GZip"] = km; km.__name__ = "lime._internal.format.GZip"; km.compress = function (a) { a = pako.gzip(a.b.bufferValue); return lb.ofData(a) }; km.decompress = function (a) { a = pako.ungzip(a.b.bufferValue); return lb.ofData(a) }; var lm = function () { }; k["lime._internal.format.JPEG"] = lm; lm.__name__ = "lime._internal.format.JPEG"; lm.decodeBytes = function (a, b) { return null }; lm.decodeFile = function (a, b) { return null }; lm.encode = function (a, b) { if (a.get_premultiplied() || 0 != a.get_format()) a = a.clone(), a.set_premultiplied(!1), a.set_format(0); va.convertToCanvas(a, !1); if (null != a.buffer.__srcCanvas) { a = a.buffer.__srcCanvas.toDataURL("image/jpeg", b / 100); a = window.atob(a.split(";base64,")[1]); b = new lb(new ArrayBuffer(a.length)); for (var c = 0, d = a.length; c < d;) { var e = c++; b.b[e] = K.cca(a, e) & 255 } return b } return null }; var mm = function () { }; k["lime._internal.format.LZMA"] = mm; mm.__name__ = "lime._internal.format.LZMA"; mm.compress = function (a) { return null }; mm.decompress = function (a) { return null }; var Oj = function () { }; k["lime._internal.format.PNG"] = Oj; Oj.__name__ = "lime._internal.format.PNG"; Oj.decodeBytes = function (a, b) { return null }; Oj.decodeFile = function (a, b) { return null }; Oj.encode = function (a) { if (a.get_premultiplied() || 0 != a.get_format()) a = a.clone(), a.set_premultiplied(!1), a.set_format(0); va.convertToCanvas(a, !1); if (null != a.buffer.__srcCanvas) { a = a.buffer.__srcCanvas.toDataURL("image/png"); a = window.atob(a.split(";base64,")[1]); for (var b = new lb(new ArrayBuffer(a.length)), c = 0, d = a.length; c < d;) { var e = c++; b.b[e] = K.cca(a, e) & 255 } return b } return null }; var nm = function () { }; k["lime._internal.format.Zlib"] = nm; nm.__name__ = "lime._internal.format.Zlib"; nm.compress = function (a) { a = pako.deflate(a.b.bufferValue); return lb.ofData(a) }; nm.decompress = function (a) { a = pako.inflate(a.b.bufferValue); return lb.ofData(a) }; var va = function () { }; k["lime._internal.graphics.ImageCanvasUtil"] = va; va.__name__ = "lime._internal.graphics.ImageCanvasUtil"; va.colorTransform = function (a, b, c) { va.convertToData(a); Va.colorTransform(a, b, c) }; va.convertToCanvas = function (a, b) { null == b && (b = !1); var c = a.buffer; null != c.__srcImage ? (null == c.__srcCanvas && (va.createCanvas(a, c.__srcImage.width, c.__srcImage.height), c.__srcContext.drawImage(c.__srcImage, 0, 0)), c.__srcImage = null) : null == c.__srcCanvas && null != c.data ? (a.set_transparent(!0), va.createCanvas(a, c.width, c.height), va.createImageData(a), c.__srcContext.putImageData(c.__srcImageData, 0, 0)) : a.type == De.DATA && null != c.__srcImageData && a.dirty && (c.__srcContext.putImageData(c.__srcImageData, 0, 0), a.dirty = !1); b ? (c.data = null, c.__srcImageData = null) : null == c.data && null != c.__srcImageData && (c.data = c.__srcImageData.data); a.type = De.CANVAS }; va.convertToData = function (a, b) { null == b && (b = !1); var c = a.buffer; null != c.__srcImage && va.convertToCanvas(a); if (null != c.__srcCanvas && null == c.data) va.createImageData(a), a.type == De.CANVAS && (a.dirty = !1); else if (a.type == De.CANVAS && null != c.__srcCanvas && a.dirty) { if (null == c.__srcImageData) va.createImageData(a); else { c.__srcImageData = c.__srcContext.getImageData(0, 0, c.width, c.height); var d = c.__srcImageData.data.buffer; d = null != d ? new Uint8Array(d) : null; c.data = d } a.dirty = !1 } b && (a.buffer.__srcCanvas = null, a.buffer.__srcContext = null); a.type = De.DATA }; va.copyChannel = function (a, b, c, d, e, g) { va.convertToData(b); va.convertToData(a); Va.copyChannel(a, b, c, d, e, g) }; va.copyPixels = function (a, b, c, d, e, g, f) { null == f && (f = !1); null == d || d.x >= a.width || d.y >= a.height || null == c || 1 > c.width || 1 > c.height || (null != e && e.get_transparent() && (null == g && (g = new be), b = b.clone(), b.copyChannel(e, new Vd(c.x + g.x, c.y + g.y, c.width, c.height), new be(c.x, c.y), qf.ALPHA, qf.ALPHA)), va.convertToCanvas(a, !0), f || a.get_transparent() && b.get_transparent() && a.buffer.__srcContext.clearRect(d.x + a.offsetX, d.y + a.offsetY, c.width + a.offsetX, c.height + a.offsetY), va.convertToCanvas(b), null != b.buffer.get_src() && (a.buffer.__srcContext.globalCompositeOperation = "source-over", a.buffer.__srcContext.drawImage(b.buffer.get_src(), c.x + b.offsetX | 0, c.y + b.offsetY | 0, c.width | 0, c.height | 0, d.x + a.offsetX | 0, d.y + a.offsetY | 0, c.width | 0, c.height | 0)), a.dirty = !0, a.version++) }; va.createCanvas = function (a, b, c) { var d = a.buffer; null == d.__srcCanvas && (d.__srcCanvas = window.document.createElement("canvas"), d.__srcCanvas.width = b, d.__srcCanvas.height = c, a.get_transparent() ? d.__srcContext = d.__srcCanvas.getContext("2d") : (a.get_transparent() || d.__srcCanvas.setAttribute("moz-opaque", "true"), d.__srcContext = d.__srcCanvas.getContext("2d", {alpha: !1}))) }; va.createImageData = function (a) { a = a.buffer; if (null == a.__srcImageData) { null == a.data ? a.__srcImageData = a.__srcContext.getImageData(0, 0, a.width, a.height) : (a.__srcImageData = a.__srcContext.createImageData(a.width, a.height), a.__srcImageData.data.set(a.data)); var b = a.__srcImageData.data.buffer; b = null != b ? new Uint8Array(b) : null; a.data = b } }; va.fillRect = function (a, b, c, d) { va.convertToCanvas(a); if (1 == d) { d = c >> 16 & 255; var e = c >> 8 & 255; var g = c & 255; c = a.get_transparent() ? c >> 24 & 255 : 255 } else d = c >> 24 & 255, e = c >> 16 & 255, g = c >> 8 & 255, c = a.get_transparent() ? c & 255 : 255; 0 == b.x && 0 == b.y && b.width == a.width && b.height == a.height && a.get_transparent() && 0 == c ? a.buffer.__srcCanvas.width = a.buffer.width : (255 > c && a.buffer.__srcContext.clearRect(b.x + a.offsetX, b.y + a.offsetY, b.width + a.offsetX, b.height + a.offsetY), 0 < c && (a.buffer.__srcContext.fillStyle = "rgba(" + d + ", " + e + ", " + g + ", " + c / 255 + ")", a.buffer.__srcContext.fillRect(b.x + a.offsetX, b.y + a.offsetY, b.width + a.offsetX, b.height + a.offsetY)), a.dirty = !0, a.version++) }; va.floodFill = function (a, b, c, d, e) { va.convertToData(a); Va.floodFill(a, b, c, d, e) }; va.getPixel = function (a, b, c, d) { va.convertToData(a); return Va.getPixel(a, b, c, d) }; va.getPixel32 = function (a, b, c, d) { va.convertToData(a); return Va.getPixel32(a, b, c, d) }; va.getPixels = function (a, b, c) { va.convertToData(a); return Va.getPixels(a, b, c) }; va.merge = function (a, b, c, d, e, g, f, v) { va.convertToData(b); va.convertToData(a); Va.merge(a, b, c, d, e, g, f, v) }; va.resize = function (a, b, c) { var d = a.buffer; if (null == d.__srcCanvas) va.createCanvas(a, b, c), d.__srcContext.drawImage(d.get_src(), 0, 0, b, c); else { va.convertToCanvas(a, !0); var e = d.__srcCanvas; d.__srcCanvas = null; va.createCanvas(a, b, c); d.__srcContext.drawImage(e, 0, 0, b, c) } d.__srcImageData = null; d.data = null; a.dirty = !0; a.version++ }; va.scroll = function (a, b, c) { if (0 != b % a.width || 0 != c % a.height) { var d = a.clone(); va.convertToCanvas(a, !0); a.buffer.__srcContext.clearRect(b, c, a.width, a.height); a.buffer.__srcContext.drawImage(d.get_src(), b, c); a.dirty = !0; a.version++ } }; va.setPixel = function (a, b, c, d, e) { va.convertToData(a); Va.setPixel(a, b, c, d, e) }; va.setPixel32 = function (a, b, c, d, e) { va.convertToData(a); Va.setPixel32(a, b, c, d, e) }; va.setPixels = function (a, b, c, d, e) { va.convertToData(a); Va.setPixels(a, b, c, d, e) }; va.sync = function (a, b) { null != a && (a.type != De.CANVAS || null == a.buffer.__srcCanvas && null == a.buffer.data ? a.type == De.DATA && va.convertToData(a, b) : va.convertToCanvas(a, b)) }; var Va = function () { }; k["lime._internal.graphics.ImageDataUtil"] = Va; Va.__name__ = "lime._internal.graphics.ImageDataUtil"; Va.displaceMap = function (a, b, c, d, e, g, f) { var r = a.buffer.data, p = b.buffer.data, m = c.buffer.data, h = a.buffer.format, n = b.buffer.format, l = c.buffer.format, k = a.get_premultiplied(), t = b.get_premultiplied(), q = c.get_premultiplied(); b = new Pe(b); c = new Pe(c); for (var u, da, ja = 0, w = 0, N, x, A, J = 0, z = 0, B = 0, ma = 0, C, F = 0, I = b.height; F < I;) { var G = F++; u = b.byteOffset + b.stride * G; for (var y = 0, E = b.width; y < E;) { var K = y++; da = u + 4 * K; A = d.x | 0; N = d.y | 0; if (f) { w = b.byteOffset + b.stride * (G - N + 1) + 4 * (K - A); x = l; C = q; null == C && (C = !1); null == x && (x = 0); switch (x) { case 0: J = (m[w] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w + 2] & 255) << 8 | m[w + 3] & 255; break; case 1: J = (m[w + 1] & 255) << 24 | (m[w + 2] & 255) << 16 | (m[w + 3] & 255) << 8 | m[w] & 255; break; case 2: J = (m[w + 2] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w] & 255) << 8 | m[w + 3] & 255 } C && 0 != (J & 255) && 255 != (J & 255) && (D.unmult = 255 / (J & 255), J = (D.__clamp[Math.round((J >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((J >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((J >>> 8 & 255) * D.unmult)] & 255) << 8 | J & 255); w = b.byteOffset + b.stride * (G - N) + 4 * (K - A + 1); x = l; C = q; null == C && (C = !1); null == x && (x = 0); switch (x) { case 0: z = (m[w] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w + 2] & 255) << 8 | m[w + 3] & 255; break; case 1: z = (m[w + 1] & 255) << 24 | (m[w + 2] & 255) << 16 | (m[w + 3] & 255) << 8 | m[w] & 255; break; case 2: z = (m[w + 2] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w] & 255) << 8 | m[w + 3] & 255 } C && 0 != (z & 255) && 255 != (z & 255) && (D.unmult = 255 / (z & 255), z = (D.__clamp[Math.round((z >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((z >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((z >>> 8 & 255) * D.unmult)] & 255) << 8 | z & 255); w = b.byteOffset + b.stride * (G - N + 1) + 4 * (K - A + 1); x = l; C = q; null == C && (C = !1); null == x && (x = 0); switch (x) { case 0: B = (m[w] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w + 2] & 255) << 8 | m[w + 3] & 255; break; case 1: B = (m[w + 1] & 255) << 24 | (m[w + 2] & 255) << 16 | (m[w + 3] & 255) << 8 | m[w] & 255; break; case 2: B = (m[w + 2] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w] & 255) << 8 | m[w + 3] & 255 } C && 0 != (B & 255) && 255 != (B & 255) && (D.unmult = 255 / (B & 255), B = (D.__clamp[Math.round((B >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((B >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((B >>> 8 & 255) * D.unmult)] & 255) << 8 | B & 255); w = b.byteOffset + b.stride * (G - N) + 4 * (K - A); x = l; C = q; null == C && (C = !1); null == x && (x = 0); switch (x) { case 0: ma = (m[w] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w + 2] & 255) << 8 | m[w + 3] & 255; break; case 1: ma = (m[w + 1] & 255) << 24 | (m[w + 2] & 255) << 16 | (m[w + 3] & 255) << 8 | m[w] & 255; break; case 2: ma = (m[w + 2] & 255) << 24 | (m[w + 1] & 255) << 16 | (m[w] & 255) << 8 | m[w + 3] & 255 } C && 0 != (ma & 255) && 255 != (ma & 255) && (D.unmult = 255 / (ma & 255), ma = (D.__clamp[Math.round((ma >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((ma >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((ma >>> 8 & 255) * D.unmult)] & 255) << 8 | ma & 255); w = Va.bilinear(J, z, B, ma, d.x - A, d.y - N) } else { A = c.byteOffset + c.stride * (G - N) + 4 * (K - A); N = l; x = q; null == x && (x = !1); null == N && (N = 0); switch (N) { case 0: w = (m[A] & 255) << 24 | (m[A + 1] & 255) << 16 | (m[A + 2] & 255) << 8 | m[A + 3] & 255; break; case 1: w = (m[A + 1] & 255) << 24 | (m[A + 2] & 255) << 16 | (m[A + 3] & 255) << 8 | m[A] & 255; break; case 2: w = (m[A + 2] & 255) << 24 | (m[A + 1] & 255) << 16 | (m[A] & 255) << 8 | m[A + 3] & 255 } x && 0 != (w & 255) && 255 != (w & 255) && (D.unmult = 255 / (w & 255), w = (D.__clamp[Math.round((w >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((w >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((w >>> 8 & 255) * D.unmult)] & 255) << 8 | w & 255) } A = (w & 255) / 255; N = ((w >>> 24 & 255) - 128) / 255 * A; x = ((w >>> 16 & 255) - 128) / 255 * A; A = N * e.x + x * g.x; C = N * e.y + x * g.y; N = Math.floor(A * b.width); x = Math.floor(C * b.height); if (f) { ja = b.byteOffset + b.stride * (G + x + 1) + 4 * (K + N); var L = n, M = t; null == M && (M = !1); null == L && (L = 0); switch (L) { case 0: J = (p[ja] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja + 2] & 255) << 8 | p[ja + 3] & 255; break; case 1: J = (p[ja + 1] & 255) << 24 | (p[ja + 2] & 255) << 16 | (p[ja + 3] & 255) << 8 | p[ja] & 255; break; case 2: J = (p[ja + 2] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja] & 255) << 8 | p[ja + 3] & 255 } M && 0 != (J & 255) && 255 != (J & 255) && (D.unmult = 255 / (J & 255), J = (D.__clamp[Math.round((J >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((J >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((J >>> 8 & 255) * D.unmult)] & 255) << 8 | J & 255); ja = b.byteOffset + b.stride * (G + x) + 4 * (K + N + 1); L = n; M = t; null == M && (M = !1); null == L && (L = 0); switch (L) { case 0: z = (p[ja] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja + 2] & 255) << 8 | p[ja + 3] & 255; break; case 1: z = (p[ja + 1] & 255) << 24 | (p[ja + 2] & 255) << 16 | (p[ja + 3] & 255) << 8 | p[ja] & 255; break; case 2: z = (p[ja + 2] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja] & 255) << 8 | p[ja + 3] & 255 } M && 0 != (z & 255) && 255 != (z & 255) && (D.unmult = 255 / (z & 255), z = (D.__clamp[Math.round((z >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((z >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((z >>> 8 & 255) * D.unmult)] & 255) << 8 | z & 255); ja = b.byteOffset + b.stride * (G + x + 1) + 4 * (K + N + 1); L = n; M = t; null == M && (M = !1); null == L && (L = 0); switch (L) { case 0: B = (p[ja] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja + 2] & 255) << 8 | p[ja + 3] & 255; break; case 1: B = (p[ja + 1] & 255) << 24 | (p[ja + 2] & 255) << 16 | (p[ja + 3] & 255) << 8 | p[ja] & 255; break; case 2: B = (p[ja + 2] & 255) << 24 | (p[ja + 1] & 255) << 16 | (p[ja] & 255) << 8 | p[ja + 3] & 255 } M && 0 != (B & 255) && 255 != (B & 255) && (D.unmult = 255 / (B & 255), B = (D.__clamp[Math.round((B >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((B >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((B >>> 8 & 255) * D.unmult)] & 255) << 8 | B & 255); K = b.byteOffset + b.stride * (G + x) + 4 * (K + N); ja = n; L = t; null == L && (L = !1); null == ja && (ja = 0); switch (ja) { case 0: ma = (p[K] & 255) << 24 | (p[K + 1] & 255) << 16 | (p[K + 2] & 255) << 8 | p[K + 3] & 255; break; case 1: ma = (p[K + 1] & 255) << 24 | (p[K + 2] & 255) << 16 | (p[K + 3] & 255) << 8 | p[K] & 255; break; case 2: ma = (p[K + 2] & 255) << 24 | (p[K + 1] & 255) << 16 | (p[K] & 255) << 8 | p[K + 3] & 255 } L && 0 != (ma & 255) && 255 != (ma & 255) && (D.unmult = 255 / (ma & 255), ma = (D.__clamp[Math.round((ma >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((ma >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((ma >>> 8 & 255) * D.unmult)] & 255) << 8 | ma & 255); ja = Va.bilinear(J, z, B, ma, A * b.width - N, C * b.height - x) } else { K = b.byteOffset + b.stride * (G + x) + 4 * (K + N); A = n; N = t; null == N && (N = !1); null == A && (A = 0); switch (A) { case 0: ja = (p[K] & 255) << 24 | (p[K + 1] & 255) << 16 | (p[K + 2] & 255) << 8 | p[K + 3] & 255; break; case 1: ja = (p[K + 1] & 255) << 24 | (p[K + 2] & 255) << 16 | (p[K + 3] & 255) << 8 | p[K] & 255; break; case 2: ja = (p[K + 2] & 255) << 24 | (p[K + 1] & 255) << 16 | (p[K] & 255) << 8 | p[K + 3] & 255 } N && 0 != (ja & 255) && 255 != (ja & 255) && (D.unmult = 255 / (ja & 255), ja = (D.__clamp[Math.round((ja >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((ja >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((ja >>> 8 & 255) * D.unmult)] & 255) << 8 | ja & 255) } K = h; A = k; null == A && (A = !1); null == K && (K = 0); A && (0 == (ja & 255) ? 0 != ja && (ja = 0) : 255 != (ja & 255) && (D.a16 = D.__alpha16[ja & 255], ja = ((ja >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((ja >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((ja >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | ja & 255)); switch (K) { case 0: r[da] = ja >>> 24 & 255; r[da + 1] = ja >>> 16 & 255; r[da + 2] = ja >>> 8 & 255; r[da + 3] = ja & 255; break; case 1: r[da] = ja & 255; r[da + 1] = ja >>> 24 & 255; r[da + 2] = ja >>> 16 & 255; r[da + 3] = ja >>> 8 & 255; break; case 2: r[da] = ja >>> 8 & 255, r[da + 1] = ja >>> 16 & 255, r[da + 2] = ja >>> 24 & 255, r[da + 3] = ja & 255 } } } a.dirty = !0; a.version++ }; Va.bilinear = function (a, b, c, d, e, g) { return Va.lerpRGBA(Va.lerpRGBA(d, b, e), Va.lerpRGBA(a, c, e), g) }; Va.lerpRGBA = function (a, b, c) { var d = 0, e = Math.floor(Va.lerp(a >>> 24 & 255, b >>> 24 & 255, c)); d = (e & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | d & 255; e = Math.floor(Va.lerp(a >>> 16 & 255, b >>> 16 & 255, c)); d = (d >>> 24 & 255) << 24 | (e & 255) << 16 | (d >>> 8 & 255) << 8 | d & 255; e = Math.floor(Va.lerp(a >>> 8 & 255, b >>> 8 & 255, c)); d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (e & 255) << 8 | d & 255; e = Math.floor(Va.lerp(a & 255, b & 255, c)); return (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | e & 255 }; Va.lerp4f = function (a, b, c) { return new Gc(Va.lerp(a.x, b.x, c), Va.lerp(a.y, b.y, c), Va.lerp(a.z, b.z, c), Va.lerp(a.w, b.w, c)) }; Va.lerp = function (a, b, c) { return (1 - c) * a + c * b }; Va.colorTransform = function (a, b, c) { var d = a.buffer.data; if (null != d) { var e = a.buffer.format, g = a.buffer.premultiplied; b = new Pe(a, b); var f = Qd.getAlphaTable(c), v = Qd.getRedTable(c), p = Qd.getGreenTable(c); c = Qd.getBlueTable(c); for (var m, h, n = 0, l = 0, k = b.height; l < k;) { m = l++; m = b.byteOffset + b.stride * m; for (var t = 0, q = b.width; t < q;) { h = t++; h = m + 4 * h; var w = e, da = g; null == da && (da = !1); null == w && (w = 0); switch (w) { case 0: n = (d[h] & 255) << 24 | (d[h + 1] & 255) << 16 | (d[h + 2] & 255) << 8 | d[h + 3] & 255; break; case 1: n = (d[h + 1] & 255) << 24 | (d[h + 2] & 255) << 16 | (d[h + 3] & 255) << 8 | d[h] & 255; break; case 2: n = (d[h + 2] & 255) << 24 | (d[h + 1] & 255) << 16 | (d[h] & 255) << 8 | d[h + 3] & 255 } da && 0 != (n & 255) && 255 != (n & 255) && (D.unmult = 255 / (n & 255), n = (D.__clamp[Math.round((n >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((n >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((n >>> 8 & 255) * D.unmult)] & 255) << 8 | n & 255); n = (v[n >>> 24 & 255] & 255) << 24 | (p[n >>> 16 & 255] & 255) << 16 | (c[n >>> 8 & 255] & 255) << 8 | f[n & 255] & 255; w = e; da = g; null == da && (da = !1); null == w && (w = 0); da && (0 == (n & 255) ? 0 != n && (n = 0) : 255 != (n & 255) && (D.a16 = D.__alpha16[n & 255], n = ((n >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((n >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((n >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | n & 255)); switch (w) { case 0: d[h] = n >>> 24 & 255; d[h + 1] = n >>> 16 & 255; d[h + 2] = n >>> 8 & 255; d[h + 3] = n & 255; break; case 1: d[h] = n & 255; d[h + 1] = n >>> 24 & 255; d[h + 2] = n >>> 16 & 255; d[h + 3] = n >>> 8 & 255; break; case 2: d[h] = n >>> 8 & 255, d[h + 1] = n >>> 16 & 255, d[h + 2] = n >>> 24 & 255, d[h + 3] = n & 255 } } } a.dirty = !0; a.version++ } }; Va.copyChannel = function (a, b, c, d, e, g) { switch (g._hx_index) { case 0: var f = 0; break; case 1: f = 1; break; case 2: f = 2; break; case 3: f = 3 } switch (e._hx_index) { case 0: var v = 0; break; case 1: v = 1; break; case 2: v = 2; break; case 3: v = 3 } e = b.buffer.data; g = a.buffer.data; if (null != e && null != g) { c = new Pe(b, c); d = new Pe(a, new Vd(d.x, d.y, c.width, c.height)); var p = b.buffer.format, m = a.buffer.format; b = b.buffer.premultiplied; for (var h = a.buffer.premultiplied, n, l, k = 0, t = 0, q = 0, w = 0, da = d.height; w < da;) { l = w++; n = c.byteOffset + c.stride * l; l = d.byteOffset + d.stride * l; for (var u = 0, N = d.width; u < N;) { u++; var x = p, A = b; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: k = (e[n] & 255) << 24 | (e[n + 1] & 255) << 16 | (e[n + 2] & 255) << 8 | e[n + 3] & 255; break; case 1: k = (e[n + 1] & 255) << 24 | (e[n + 2] & 255) << 16 | (e[n + 3] & 255) << 8 | e[n] & 255; break; case 2: k = (e[n + 2] & 255) << 24 | (e[n + 1] & 255) << 16 | (e[n] & 255) << 8 | e[n + 3] & 255 } A && 0 != (k & 255) && 255 != (k & 255) && (D.unmult = 255 / (k & 255), k = (D.__clamp[Math.round((k >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((k >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((k >>> 8 & 255) * D.unmult)] & 255) << 8 | k & 255); x = m; A = h; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: t = (g[l] & 255) << 24 | (g[l + 1] & 255) << 16 | (g[l + 2] & 255) << 8 | g[l + 3] & 255; break; case 1: t = (g[l + 1] & 255) << 24 | (g[l + 2] & 255) << 16 | (g[l + 3] & 255) << 8 | g[l] & 255; break; case 2: t = (g[l + 2] & 255) << 24 | (g[l + 1] & 255) << 16 | (g[l] & 255) << 8 | g[l + 3] & 255 } A && 0 != (t & 255) && 255 != (t & 255) && (D.unmult = 255 / (t & 255), t = (D.__clamp[Math.round((t >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((t >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((t >>> 8 & 255) * D.unmult)] & 255) << 8 | t & 255); switch (v) { case 0: q = k >>> 24 & 255; break; case 1: q = k >>> 16 & 255; break; case 2: q = k >>> 8 & 255; break; case 3: q = k & 255 } switch (f) { case 0: t = (q & 255) << 24 | (t >>> 16 & 255) << 16 | (t >>> 8 & 255) << 8 | t & 255; break; case 1: t = (t >>> 24 & 255) << 24 | (q & 255) << 16 | (t >>> 8 & 255) << 8 | t & 255; break; case 2: t = (t >>> 24 & 255) << 24 | (t >>> 16 & 255) << 16 | (q & 255) << 8 | t & 255; break; case 3: t = (t >>> 24 & 255) << 24 | (t >>> 16 & 255) << 16 | (t >>> 8 & 255) << 8 | q & 255 } x = m; A = h; null == A && (A = !1); null == x && (x = 0); A && (0 == (t & 255) ? 0 != t && (t = 0) : 255 != (t & 255) && (D.a16 = D.__alpha16[t & 255], t = ((t >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((t >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((t >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | t & 255)); switch (x) { case 0: g[l] = t >>> 24 & 255; g[l + 1] = t >>> 16 & 255; g[l + 2] = t >>> 8 & 255; g[l + 3] = t & 255; break; case 1: g[l] = t & 255; g[l + 1] = t >>> 24 & 255; g[l + 2] = t >>> 16 & 255; g[l + 3] = t >>> 8 & 255; break; case 2: g[l] = t >>> 8 & 255, g[l + 1] = t >>> 16 & 255, g[l + 2] = t >>> 24 & 255, g[l + 3] = t & 255 } n += 4; l += 4 } } a.dirty = !0; a.version++ } }; Va.copyPixels = function (a, b, c, d, e, g, f) { null == f && (f = !1); if (a.width == b.width && a.height == b.height && c.width == b.width && c.height == b.height && 0 == c.x && 0 == c.y && 0 == d.x && 0 == d.y && null == e && null == g && 0 == f && a.get_format() == b.get_format()) a.buffer.data.set(b.buffer.data); else { var r = b.buffer.data, p = a.buffer.data; if (null == r || null == p) return; c = new Pe(b, c); var m = new Vd(d.x, d.y, c.width, c.height); m = new Pe(a, m); var h = b.buffer.format, n = a.buffer.format, l = 0, k = 0, t = b.buffer.premultiplied, q = a.buffer.premultiplied, w = b.buffer.bitsPerPixel / 8 | 0, da = a.buffer.bitsPerPixel / 8 | 0, u = null != e && e.get_transparent(), N = f || u && !a.get_transparent() || !f && !a.get_transparent() && b.get_transparent(); if (u) if (da = e.buffer.data, b = e.buffer.format, f = 0, e = new Pe(e, new Vd(c.x + (null == g ? 0 : g.x), c.y + (null == g ? 0 : g.y), c.width, c.height)), m.clip(d.x | 0, d.y | 0, e.width, e.height), N) for (N = 0, w = m.height; N < w;) for (u = N++, d = c.byteOffset + c.stride * u, g = m.byteOffset + m.stride * u, u = e.byteOffset + e.stride * u, B = 0, ma = m.width; B < ma;) { B++; var x = h; var A = t; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: l = (r[d] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d + 2] & 255) << 8 | r[d + 3] & 255; break; case 1: l = (r[d + 1] & 255) << 24 | (r[d + 2] & 255) << 16 | (r[d + 3] & 255) << 8 | r[d] & 255; break; case 2: l = (r[d + 2] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d] & 255) << 8 | r[d + 3] & 255 } A && 0 != (l & 255) && 255 != (l & 255) && (D.unmult = 255 / (l & 255), l = (D.__clamp[Math.round((l >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((l >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((l >>> 8 & 255) * D.unmult)] & 255) << 8 | l & 255); x = n; A = q; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: k = (p[g] & 255) << 24 | (p[g + 1] & 255) << 16 | (p[g + 2] & 255) << 8 | p[g + 3] & 255; break; case 1: k = (p[g + 1] & 255) << 24 | (p[g + 2] & 255) << 16 | (p[g + 3] & 255) << 8 | p[g] & 255; break; case 2: k = (p[g + 2] & 255) << 24 | (p[g + 1] & 255) << 16 | (p[g] & 255) << 8 | p[g + 3] & 255 } A && 0 != (k & 255) && 255 != (k & 255) && (D.unmult = 255 / (k & 255), k = (D.__clamp[Math.round((k >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((k >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((k >>> 8 & 255) * D.unmult)] & 255) << 8 | k & 255); x = b; A = !1; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: f = (da[u] & 255) << 24 | (da[u + 1] & 255) << 16 | (da[u + 2] & 255) << 8 | da[u + 3] & 255; break; case 1: f = (da[u + 1] & 255) << 24 | (da[u + 2] & 255) << 16 | (da[u + 3] & 255) << 8 | da[u] & 255; break; case 2: f = (da[u + 2] & 255) << 24 | (da[u + 1] & 255) << 16 | (da[u] & 255) << 8 | da[u + 3] & 255 } A && 0 != (f & 255) && 255 != (f & 255) && (D.unmult = 255 / (f & 255), f = (D.__clamp[Math.round((f >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((f >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((f >>> 8 & 255) * D.unmult)] & 255) << 8 | f & 255); A = (f & 255) / 255 * ((l & 255) / 255); if (0 < A) { var J = (k & 255) / 255; var z = 1 - A; x = A + J * z; C = D.__clamp[Math.round(((l >>> 24 & 255) * A + (k >>> 24 & 255) * J * z) / x)]; k = (C & 255) << 24 | (k >>> 16 & 255) << 16 | (k >>> 8 & 255) << 8 | k & 255; C = D.__clamp[Math.round(((l >>> 16 & 255) * A + (k >>> 16 & 255) * J * z) / x)]; k = (k >>> 24 & 255) << 24 | (C & 255) << 16 | (k >>> 8 & 255) << 8 | k & 255; A = D.__clamp[Math.round(((l >>> 8 & 255) * A + (k >>> 8 & 255) * J * z) / x)]; k = (k >>> 24 & 255) << 24 | (k >>> 16 & 255) << 16 | (A & 255) << 8 | k & 255; x = D.__clamp[Math.round(255 * x)]; k = (k >>> 24 & 255) << 24 | (k >>> 16 & 255) << 16 | (k >>> 8 & 255) << 8 | x & 255; x = n; A = q; null == A && (A = !1); null == x && (x = 0); A && (0 == (k & 255) ? 0 != k && (k = 0) : 255 != (k & 255) && (D.a16 = D.__alpha16[k & 255], k = ((k >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((k >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((k >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | k & 255)); switch (x) { case 0: p[g] = k >>> 24 & 255; p[g + 1] = k >>> 16 & 255; p[g + 2] = k >>> 8 & 255; p[g + 3] = k & 255; break; case 1: p[g] = k & 255; p[g + 1] = k >>> 24 & 255; p[g + 2] = k >>> 16 & 255; p[g + 3] = k >>> 8 & 255; break; case 2: p[g] = k >>> 8 & 255, p[g + 1] = k >>> 16 & 255, p[g + 2] = k >>> 24 & 255, p[g + 3] = k & 255 } } d += 4; g += 4; u += 4 } else for (N = 0, w = m.height; N < w;) for (u = N++, d = c.byteOffset + c.stride * u, g = m.byteOffset + m.stride * u, u = e.byteOffset + e.stride * u, B = 0, ma = m.width; B < ma;) { B++; x = h; A = t; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: l = (r[d] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d + 2] & 255) << 8 | r[d + 3] & 255; break; case 1: l = (r[d + 1] & 255) << 24 | (r[d + 2] & 255) << 16 | (r[d + 3] & 255) << 8 | r[d] & 255; break; case 2: l = (r[d + 2] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d] & 255) << 8 | r[d + 3] & 255 } A && 0 != (l & 255) && 255 != (l & 255) && (D.unmult = 255 / (l & 255), l = (D.__clamp[Math.round((l >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((l >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((l >>> 8 & 255) * D.unmult)] & 255) << 8 | l & 255); x = b; A = !1; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: f = (da[u] & 255) << 24 | (da[u + 1] & 255) << 16 | (da[u + 2] & 255) << 8 | da[u + 3] & 255; break; case 1: f = (da[u + 1] & 255) << 24 | (da[u + 2] & 255) << 16 | (da[u + 3] & 255) << 8 | da[u] & 255; break; case 2: f = (da[u + 2] & 255) << 24 | (da[u + 1] & 255) << 16 | (da[u] & 255) << 8 | da[u + 3] & 255 } A && 0 != (f & 255) && 255 != (f & 255) && (D.unmult = 255 / (f & 255), f = (D.__clamp[Math.round((f >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((f >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((f >>> 8 & 255) * D.unmult)] & 255) << 8 | f & 255); C = Math.round((f & 255) / 255 * (l & 255)); l = (l >>> 24 & 255) << 24 | (l >>> 16 & 255) << 16 | (l >>> 8 & 255) << 8 | C & 255; x = n; A = q; null == A && (A = !1); null == x && (x = 0); A && (0 == (l & 255) ? 0 != l && (l = 0) : 255 != (l & 255) && (D.a16 = D.__alpha16[l & 255], l = ((l >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((l >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((l >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | l & 255)); switch (x) { case 0: p[g] = l >>> 24 & 255; p[g + 1] = l >>> 16 & 255; p[g + 2] = l >>> 8 & 255; p[g + 3] = l & 255; break; case 1: p[g] = l & 255; p[g + 1] = l >>> 24 & 255; p[g + 2] = l >>> 16 & 255; p[g + 3] = l >>> 8 & 255; break; case 2: p[g] = l >>> 8 & 255, p[g + 1] = l >>> 16 & 255, p[g + 2] = l >>> 24 & 255, p[g + 3] = l & 255 } d += 4; g += 4; u += 4 } else if (N) for (N = 0, w = m.height; N < w;) { u = N++; d = c.byteOffset + c.stride * u; g = m.byteOffset + m.stride * u; for (var B = 0, ma = m.width; B < ma;) { B++; x = h; A = t; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: l = (r[d] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d + 2] & 255) << 8 | r[d + 3] & 255; break; case 1: l = (r[d + 1] & 255) << 24 | (r[d + 2] & 255) << 16 | (r[d + 3] & 255) << 8 | r[d] & 255; break; case 2: l = (r[d + 2] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d] & 255) << 8 | r[d + 3] & 255 } A && 0 != (l & 255) && 255 != (l & 255) && (D.unmult = 255 / (l & 255), l = (D.__clamp[Math.round((l >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((l >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((l >>> 8 & 255) * D.unmult)] & 255) << 8 | l & 255); x = n; A = q; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: k = (p[g] & 255) << 24 | (p[g + 1] & 255) << 16 | (p[g + 2] & 255) << 8 | p[g + 3] & 255; break; case 1: k = (p[g + 1] & 255) << 24 | (p[g + 2] & 255) << 16 | (p[g + 3] & 255) << 8 | p[g] & 255; break; case 2: k = (p[g + 2] & 255) << 24 | (p[g + 1] & 255) << 16 | (p[g] & 255) << 8 | p[g + 3] & 255 } A && 0 != (k & 255) && 255 != (k & 255) && (D.unmult = 255 / (k & 255), k = (D.__clamp[Math.round((k >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((k >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((k >>> 8 & 255) * D.unmult)] & 255) << 8 | k & 255); A = (l & 255) / 255; J = (k & 255) / 255; z = 1 - A; x = A + J * z; if (0 == x) k = 0; else { var C = D.__clamp[Math.round(((l >>> 24 & 255) * A + (k >>> 24 & 255) * J * z) / x)]; k = (C & 255) << 24 | (k >>> 16 & 255) << 16 | (k >>> 8 & 255) << 8 | k & 255; C = D.__clamp[Math.round(((l >>> 16 & 255) * A + (k >>> 16 & 255) * J * z) / x)]; k = (k >>> 24 & 255) << 24 | (C & 255) << 16 | (k >>> 8 & 255) << 8 | k & 255; A = D.__clamp[Math.round(((l >>> 8 & 255) * A + (k >>> 8 & 255) * J * z) / x)]; k = (k >>> 24 & 255) << 24 | (k >>> 16 & 255) << 16 | (A & 255) << 8 | k & 255; x = D.__clamp[Math.round(255 * x)]; k = (k >>> 24 & 255) << 24 | (k >>> 16 & 255) << 16 | (k >>> 8 & 255) << 8 | x & 255 } x = n; A = q; null == A && (A = !1); null == x && (x = 0); A && (0 == (k & 255) ? 0 != k && (k = 0) : 255 != (k & 255) && (D.a16 = D.__alpha16[k & 255], k = ((k >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((k >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((k >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | k & 255)); switch (x) { case 0: p[g] = k >>> 24 & 255; p[g + 1] = k >>> 16 & 255; p[g + 2] = k >>> 8 & 255; p[g + 3] = k & 255; break; case 1: p[g] = k & 255; p[g + 1] = k >>> 24 & 255; p[g + 2] = k >>> 16 & 255; p[g + 3] = k >>> 8 & 255; break; case 2: p[g] = k >>> 8 & 255, p[g + 1] = k >>> 16 & 255, p[g + 2] = k >>> 24 & 255, p[g + 3] = k & 255 } d += 4; g += 4 } } else if (h == n && t == q && w == da) for (N = 0, w = m.height; N < w;) u = N++, d = c.byteOffset + c.stride * u, g = m.byteOffset + m.stride * u, p.set(r.subarray(d, d + m.width * da), g); else for (N = 0, w = m.height; N < w;) for (u = N++, d = c.byteOffset + c.stride * u, g = m.byteOffset + m.stride * u, B = 0, ma = m.width; B < ma;) { B++; x = h; A = t; null == A && (A = !1); null == x && (x = 0); switch (x) { case 0: l = (r[d] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d + 2] & 255) << 8 | r[d + 3] & 255; break; case 1: l = (r[d + 1] & 255) << 24 | (r[d + 2] & 255) << 16 | (r[d + 3] & 255) << 8 | r[d] & 255; break; case 2: l = (r[d + 2] & 255) << 24 | (r[d + 1] & 255) << 16 | (r[d] & 255) << 8 | r[d + 3] & 255 } A && 0 != (l & 255) && 255 != (l & 255) && (D.unmult = 255 / (l & 255), l = (D.__clamp[Math.round((l >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((l >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((l >>> 8 & 255) * D.unmult)] & 255) << 8 | l & 255); x = n; A = q; null == A && (A = !1); null == x && (x = 0); A && (0 == (l & 255) ? 0 != l && (l = 0) : 255 != (l & 255) && (D.a16 = D.__alpha16[l & 255], l = ((l >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((l >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((l >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | l & 255)); switch (x) { case 0: p[g] = l >>> 24 & 255; p[g + 1] = l >>> 16 & 255; p[g + 2] = l >>> 8 & 255; p[g + 3] = l & 255; break; case 1: p[g] = l & 255; p[g + 1] = l >>> 24 & 255; p[g + 2] = l >>> 16 & 255; p[g + 3] = l >>> 8 & 255; break; case 2: p[g] = l >>> 8 & 255, p[g + 1] = l >>> 16 & 255, p[g + 2] = l >>> 24 & 255, p[g + 3] = l & 255 } d += 4; g += 4 } } a.dirty = !0; a.version++ }; Va.fillRect = function (a, b, c, d) { switch (d) { case 1: c = (c >>> 16 & 255) << 24 | (c >>> 8 & 255) << 16 | (c & 255) << 8 | c >>> 24 & 255; break; case 2: c = (c >>> 8 & 255) << 24 | (c >>> 16 & 255) << 16 | (c >>> 24 & 255) << 8 | c & 255 } a.get_transparent() || (c = (c >>> 24 & 255) << 24 | (c >>> 16 & 255) << 16 | (c >>> 8 & 255) << 8 | 255); var e = a.buffer.data; if (null != e) { d = a.buffer.format; var g = a.buffer.premultiplied; g && (0 == (c & 255) ? 0 != c && (c = 0) : 255 != (c & 255) && (D.a16 = D.__alpha16[c & 255], c = ((c >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((c >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((c >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | c & 255)); b = new Pe(a, b); for (var f, v = 0, p = b.height; v < p;) { g = v++; f = b.byteOffset + b.stride * g; for (var m = 0, h = b.width; m < h;) { g = m++; var n = f + 4 * g, l = d; g = !1; null == g && (g = !1); null == l && (l = 0); g && (0 == (c & 255) ? 0 != c && (c = 0) : 255 != (c & 255) && (D.a16 = D.__alpha16[c & 255], c = ((c >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((c >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((c >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | c & 255)); switch (l) { case 0: e[n] = c >>> 24 & 255; e[n + 1] = c >>> 16 & 255; e[n + 2] = c >>> 8 & 255; e[n + 3] = c & 255; break; case 1: e[n] = c & 255; e[n + 1] = c >>> 24 & 255; e[n + 2] = c >>> 16 & 255; e[n + 3] = c >>> 8 & 255; break; case 2: e[n] = c >>> 8 & 255, e[n + 1] = c >>> 16 & 255, e[n + 2] = c >>> 24 & 255, e[n + 3] = c & 255 } } } a.dirty = !0; a.version++ } }; Va.floodFill = function (a, b, c, d, e) { var g = a.buffer.data; if (null != g) { 1 == e && (d = (d & 16777215) << 8 | d >> 24 & 255); e = a.buffer.format; var f = a.buffer.premultiplied, v = 0, p = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX), m = e, h = f; null == h && (h = !1); null == m && (m = 0); switch (m) { case 0: v = (g[p] & 255) << 24 | (g[p + 1] & 255) << 16 | (g[p + 2] & 255) << 8 | g[p + 3] & 255; break; case 1: v = (g[p + 1] & 255) << 24 | (g[p + 2] & 255) << 16 | (g[p + 3] & 255) << 8 | g[p] & 255; break; case 2: v = (g[p + 2] & 255) << 24 | (g[p + 1] & 255) << 16 | (g[p] & 255) << 8 | g[p + 3] & 255 } h && 0 != (v & 255) && 255 != (v & 255) && (D.unmult = 255 / (v & 255), v = (D.__clamp[Math.round((v >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((v >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((v >>> 8 & 255) * D.unmult)] & 255) << 8 | v & 255); a.get_transparent() || (d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | 255, v = (v >>> 24 & 255) << 24 | (v >>> 16 & 255) << 16 | (v >>> 8 & 255) << 8 | 255); if (d != v) { f && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); p = [0, -1, 1, 0]; var n = [-1, 0, 0, 1], l = -a.offsetX, k = -a.offsetY, t = l + a.width, q = k + a.height, w = []; w.push(b); w.push(c); for (var u, x, A, N = 0; 0 < w.length;) { c = w.pop(); b = w.pop(); for (var J = 0; 4 > J;) if (m = J++, u = b + p[m], x = c + n[m], !(u < l || x < k || u >= t || x >= q)) { A = 4 * (x * a.width + u); m = e; h = f; null == h && (h = !1); null == m && (m = 0); switch (m) { case 0: N = (g[A] & 255) << 24 | (g[A + 1] & 255) << 16 | (g[A + 2] & 255) << 8 | g[A + 3] & 255; break; case 1: N = (g[A + 1] & 255) << 24 | (g[A + 2] & 255) << 16 | (g[A + 3] & 255) << 8 | g[A] & 255; break; case 2: N = (g[A + 2] & 255) << 24 | (g[A + 1] & 255) << 16 | (g[A] & 255) << 8 | g[A + 3] & 255 } h && 0 != (N & 255) && 255 != (N & 255) && (D.unmult = 255 / (N & 255), N = (D.__clamp[Math.round((N >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((N >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((N >>> 8 & 255) * D.unmult)] & 255) << 8 | N & 255); if (N == v) { m = e; h = !1; null == h && (h = !1); null == m && (m = 0); h && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); switch (m) { case 0: g[A] = d >>> 24 & 255; g[A + 1] = d >>> 16 & 255; g[A + 2] = d >>> 8 & 255; g[A + 3] = d & 255; break; case 1: g[A] = d & 255; g[A + 1] = d >>> 24 & 255; g[A + 2] = d >>> 16 & 255; g[A + 3] = d >>> 8 & 255; break; case 2: g[A] = d >>> 8 & 255, g[A + 1] = d >>> 16 & 255, g[A + 2] = d >>> 24 & 255, g[A + 3] = d & 255 } w.push(u); w.push(x) } } } a.dirty = !0; a.version++ } } }; Va.gaussianBlur = function (a, b, c, d, e, g, f, v, p) { null == f && (f = 1); null == g && (g = 4); null == e && (e = 4); (v = a.get_premultiplied()) && a.set_premultiplied(!1); ff.blur(a, b, c, d, e, g, f); a.dirty = !0; a.version++; v && a.set_premultiplied(!0); return a }; Va.getColorBoundsRect = function (a, b, c, d, e) { var g = a.width + 1, f = 0, v = a.height + 1, p = 0; switch (e) { case 1: e = c; c = (e >>> 16 & 255) << 24 | (e >>> 8 & 255) << 16 | (e & 255) << 8 | e >>> 24 & 255; e = b; b = (e >>> 16 & 255) << 24 | (e >>> 8 & 255) << 16 | (e & 255) << 8 | e >>> 24 & 255; break; case 2: e = c, c = (e >>> 8 & 255) << 24 | (e >>> 16 & 255) << 16 | (e >>> 24 & 255) << 8 | e & 255, e = b, b = (e >>> 8 & 255) << 24 | (e >>> 16 & 255) << 16 | (e >>> 24 & 255) << 8 | e & 255 } a.get_transparent() || (c = (c >>> 24 & 255) << 24 | (c >>> 16 & 255) << 16 | (c >>> 8 & 255) << 8 | 255, b = (b >>> 24 & 255) << 24 | (b >>> 16 & 255) << 16 | (b >>> 8 & 255) << 8 | 255); e = 0; for (var m = a.width; e < m;) { var h = e++; var n = !1; for (var l = 0, k = a.height; l < k;) { var t = l++; n = a.getPixel32(h, t, 0); if (n = d ? (n & b) == c : (n & b) != c) { h < g && (g = h); break } } if (n) break } e = 0; for (m = a.width; e < m;) { h = e++; h = a.width - 1 - h; n = !1; l = 0; for (k = a.height; l < k;) if (t = l++, n = a.getPixel32(h, t, 0), n = d ? (n & b) == c : (n & b) != c) { h > f && (f = h); break } if (n) break } e = 0; for (m = a.height; e < m;) { t = e++; n = !1; l = 0; for (k = a.width; l < k;) if (h = l++, n = a.getPixel32(h, t, 0), n = d ? (n & b) == c : (n & b) != c) { t < v && (v = t); break } if (n) break } e = 0; for (m = a.height; e < m;) { t = e++; t = a.height - 1 - t; n = !1; l = 0; for (k = a.width; l < k;) if (h = l++, n = a.getPixel32(h, t, 0), n = d ? (n & b) == c : (n & b) != c) { t > p && (p = t); break } if (n) break } d = f - g; c = p - v; 0 < d && ++d; 0 < c && ++c; 0 > d && (d = 0); 0 > c && (c = 0); g == f && (d = 1); v == p && (c = 1); g > a.width && (g = 0); v > a.height && (v = 0); return new Vd(g, v, d, c) }; Va.getPixel = function (a, b, c, d) { var e = 0, g = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); c = a.buffer.format; a = a.buffer.premultiplied; null == a && (a = !1); null == c && (c = 0); switch (c) { case 0: e = (g[b] & 255) << 24 | (g[b + 1] & 255) << 16 | (g[b + 2] & 255) << 8 | g[b + 3] & 255; break; case 1: e = (g[b + 1] & 255) << 24 | (g[b + 2] & 255) << 16 | (g[b + 3] & 255) << 8 | g[b] & 255; break; case 2: e = (g[b + 2] & 255) << 24 | (g[b + 1] & 255) << 16 | (g[b] & 255) << 8 | g[b + 3] & 255 } a && 0 != (e & 255) && 255 != (e & 255) && (D.unmult = 255 / (e & 255), e = (D.__clamp[Math.round((e >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((e >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((e >>> 8 & 255) * D.unmult)] & 255) << 8 | e & 255); e = (e >>> 24 & 255) << 24 | (e >>> 16 & 255) << 16 | (e >>> 8 & 255) << 8 | 0; switch (d) { case 1: return (e & 255) << 24 | (e >>> 24 & 255) << 16 | (e >>> 16 & 255) << 8 | e >>> 8 & 255; case 2: return (e >>> 8 & 255) << 24 | (e >>> 16 & 255) << 16 | (e >>> 24 & 255) << 8 | e & 255; default: return e } }; Va.getPixel32 = function (a, b, c, d) { var e = 0, g = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); c = a.buffer.format; a = a.buffer.premultiplied; null == a && (a = !1); null == c && (c = 0); switch (c) { case 0: e = (g[b] & 255) << 24 | (g[b + 1] & 255) << 16 | (g[b + 2] & 255) << 8 | g[b + 3] & 255; break; case 1: e = (g[b + 1] & 255) << 24 | (g[b + 2] & 255) << 16 | (g[b + 3] & 255) << 8 | g[b] & 255; break; case 2: e = (g[b + 2] & 255) << 24 | (g[b + 1] & 255) << 16 | (g[b] & 255) << 8 | g[b + 3] & 255 } a && 0 != (e & 255) && 255 != (e & 255) && (D.unmult = 255 / (e & 255), e = (D.__clamp[Math.round((e >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((e >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((e >>> 8 & 255) * D.unmult)] & 255) << 8 | e & 255); switch (d) { case 1: return (e & 255) << 24 | (e >>> 24 & 255) << 16 | (e >>> 16 & 255) << 8 | e >>> 8 & 255; case 2: return (e >>> 8 & 255) << 24 | (e >>> 16 & 255) << 16 | (e >>> 24 & 255) << 8 | e & 255; default: return e } }; Va.getPixels = function (a, b, c) { if (null == a.buffer.data) return null; var d = new lb(new ArrayBuffer(4 * (b.width * b.height | 0))), e = a.buffer.data, g = a.buffer.format, f = a.buffer.premultiplied; a = new Pe(a, b); for (var v, p, m = b = p = 0, h = a.height; m < h;) { v = m++; v = a.byteOffset + a.stride * v; for (var n = 0, l = a.width; n < l;) { n++; var k = g, t = f; null == t && (t = !1); null == k && (k = 0); switch (k) { case 0: p = (e[v] & 255) << 24 | (e[v + 1] & 255) << 16 | (e[v + 2] & 255) << 8 | e[v + 3] & 255; break; case 1: p = (e[v + 1] & 255) << 24 | (e[v + 2] & 255) << 16 | (e[v + 3] & 255) << 8 | e[v] & 255; break; case 2: p = (e[v + 2] & 255) << 24 | (e[v + 1] & 255) << 16 | (e[v] & 255) << 8 | e[v + 3] & 255 } t && 0 != (p & 255) && 255 != (p & 255) && (D.unmult = 255 / (p & 255), p = (D.__clamp[Math.round((p >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((p >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((p >>> 8 & 255) * D.unmult)] & 255) << 8 | p & 255); switch (c) { case 1: p = (p & 255) << 24 | (p >>> 24 & 255) << 16 | (p >>> 16 & 255) << 8 | p >>> 8 & 255; break; case 2: p = (p >>> 8 & 255) << 24 | (p >>> 16 & 255) << 16 | (p >>> 24 & 255) << 8 | p & 255 } d.b[b++] = p >>> 24 & 255; d.b[b++] = p >>> 16 & 255; d.b[b++] = p >>> 8 & 255; d.b[b++] = p & 255; v += 4 } } return d }; Va.merge = function (a, b, c, d, e, g, f, v) { if (null != a.buffer.data && null != b.buffer.data) { c = new Pe(b, c); d = new Pe(a, new Vd(d.x, d.y, c.width, c.height)); var r = b.buffer.data, m = a.buffer.data, h = b.buffer.format, n = a.buffer.format; b = b.buffer.premultiplied; for (var l = a.buffer.premultiplied, k, t, q = 0, w = 0, u = 0, x = d.height; u < x;) { t = u++; k = c.byteOffset + c.stride * t; t = d.byteOffset + d.stride * t; for (var A = 0, N = d.width; A < N;) { A++; var J = h, z = b; null == z && (z = !1); null == J && (J = 0); switch (J) { case 0: q = (r[k] & 255) << 24 | (r[k + 1] & 255) << 16 | (r[k + 2] & 255) << 8 | r[k + 3] & 255; break; case 1: q = (r[k + 1] & 255) << 24 | (r[k + 2] & 255) << 16 | (r[k + 3] & 255) << 8 | r[k] & 255; break; case 2: q = (r[k + 2] & 255) << 24 | (r[k + 1] & 255) << 16 | (r[k] & 255) << 8 | r[k + 3] & 255 } z && 0 != (q & 255) && 255 != (q & 255) && (D.unmult = 255 / (q & 255), q = (D.__clamp[Math.round((q >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((q >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((q >>> 8 & 255) * D.unmult)] & 255) << 8 | q & 255); J = n; z = l; null == z && (z = !1); null == J && (J = 0); switch (J) { case 0: w = (m[t] & 255) << 24 | (m[t + 1] & 255) << 16 | (m[t + 2] & 255) << 8 | m[t + 3] & 255; break; case 1: w = (m[t + 1] & 255) << 24 | (m[t + 2] & 255) << 16 | (m[t + 3] & 255) << 8 | m[t] & 255; break; case 2: w = (m[t + 2] & 255) << 24 | (m[t + 1] & 255) << 16 | (m[t] & 255) << 8 | m[t + 3] & 255 } z && 0 != (w & 255) && 255 != (w & 255) && (D.unmult = 255 / (w & 255), w = (D.__clamp[Math.round((w >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((w >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((w >>> 8 & 255) * D.unmult)] & 255) << 8 | w & 255); w = ((((q >>> 24 & 255) * e + (w >>> 24 & 255) * (256 - e)) / 256 | 0) & 255) << 24 | (w >>> 16 & 255) << 16 | (w >>> 8 & 255) << 8 | w & 255; w = (w >>> 24 & 255) << 24 | ((((q >>> 16 & 255) * g + (w >>> 16 & 255) * (256 - g)) / 256 | 0) & 255) << 16 | (w >>> 8 & 255) << 8 | w & 255; w = (w >>> 24 & 255) << 24 | (w >>> 16 & 255) << 16 | ((((q >>> 8 & 255) * f + (w >>> 8 & 255) * (256 - f)) / 256 | 0) & 255) << 8 | w & 255; w = (w >>> 24 & 255) << 24 | (w >>> 16 & 255) << 16 | (w >>> 8 & 255) << 8 | (((q & 255) * v + (w & 255) * (256 - v)) / 256 | 0) & 255; J = n; z = l; null == z && (z = !1); null == J && (J = 0); z && (0 == (w & 255) ? 0 != w && (w = 0) : 255 != (w & 255) && (D.a16 = D.__alpha16[w & 255], w = ((w >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((w >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((w >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | w & 255)); switch (J) { case 0: m[t] = w >>> 24 & 255; m[t + 1] = w >>> 16 & 255; m[t + 2] = w >>> 8 & 255; m[t + 3] = w & 255; break; case 1: m[t] = w & 255; m[t + 1] = w >>> 24 & 255; m[t + 2] = w >>> 16 & 255; m[t + 3] = w >>> 8 & 255; break; case 2: m[t] = w >>> 8 & 255, m[t + 1] = w >>> 16 & 255, m[t + 2] = w >>> 24 & 255, m[t + 3] = w & 255 } k += 4; t += 4 } } a.dirty = !0; a.version++ } }; Va.multiplyAlpha = function (a) { var b = a.buffer.data; if (null != b && a.buffer.transparent) { for (var c = a.buffer.format, d = 0, e = 0, g = b.length / 4 | 0; e < g;) { var f = e++, v = 4 * f, p = c, m = !1; null == m && (m = !1); null == p && (p = 0); switch (p) { case 0: d = (b[v] & 255) << 24 | (b[v + 1] & 255) << 16 | (b[v + 2] & 255) << 8 | b[v + 3] & 255; break; case 1: d = (b[v + 1] & 255) << 24 | (b[v + 2] & 255) << 16 | (b[v + 3] & 255) << 8 | b[v] & 255; break; case 2: d = (b[v + 2] & 255) << 24 | (b[v + 1] & 255) << 16 | (b[v] & 255) << 8 | b[v + 3] & 255 } m && 0 != (d & 255) && 255 != (d & 255) && (D.unmult = 255 / (d & 255), d = (D.__clamp[Math.round((d >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((d >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((d >>> 8 & 255) * D.unmult)] & 255) << 8 | d & 255); f *= 4; v = c; p = !0; null == p && (p = !1); null == v && (v = 0); p && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); switch (v) { case 0: b[f] = d >>> 24 & 255; b[f + 1] = d >>> 16 & 255; b[f + 2] = d >>> 8 & 255; b[f + 3] = d & 255; break; case 1: b[f] = d & 255; b[f + 1] = d >>> 24 & 255; b[f + 2] = d >>> 16 & 255; b[f + 3] = d >>> 8 & 255; break; case 2: b[f] = d >>> 8 & 255, b[f + 1] = d >>> 16 & 255, b[f + 2] = d >>> 24 & 255, b[f + 3] = d & 255 } } a.buffer.premultiplied = !0; a.dirty = !0; a.version++ } }; Va.resize = function (a, b, c) { var d = a.buffer; if (d.width != b || d.height != c) { var e = b * c * 4; e = null != e ? new Uint8Array(e) : null; e = new Uf(e, b, c); for (var g = a.width, f = a.height, v = a.get_data(), p = e.data, m, h, n, l, k, t, q, w, u, x = 0; x < c;) for (var A = x++, N = 0, J = b; N < J;) k = N++, w = (k + .5) / b * g - .5, u = (A + .5) / c * f - .5, t = w | 0, q = u | 0, m = 4 * (q * g + t), h = t < g - 1 ? m + 4 : m, n = q < f - 1 ? m + 4 * g : m, l = h != m ? n + 4 : n, k = 4 * (A * b + k), t = w - t, q = u - q, u = 1 - t, w = 1 - q, p[k] = (Ba.toFloat(v[m]) * u + Ba.toFloat(v[h]) * t) * w + (Ba.toFloat(v[n]) * u + Ba.toFloat(v[l]) * t) * q | 0, p[k + 1] = (Ba.toFloat(v[m + 1]) * u + Ba.toFloat(v[h + 1]) * t) * w + (Ba.toFloat(v[n + 1]) * u + Ba.toFloat(v[l + 1]) * t) * q | 0, p[k + 2] = (Ba.toFloat(v[m + 2]) * u + Ba.toFloat(v[h + 2]) * t) * w + (Ba.toFloat(v[n + 2]) * u + Ba.toFloat(v[l + 2]) * t) * q | 0, p[k + 3] = 0 == v[h + 3] || 0 == v[n + 3] || 0 == v[l + 3] ? 0 : v[m + 3]; d.data = e.data; d.width = b; d.height = c; d.__srcImage = null; d.__srcImageData = null; d.__srcCanvas = null; d.__srcContext = null; a.dirty = !0; a.version++ } }; Va.resizeBuffer = function (a, b, c) { var d = a.buffer, e = a.get_data(), g = b * c * 4; g = null != g ? new Uint8Array(g) : null; for (var f, v, p = 0, m = d.height; p < m;) for (var h = p++, n = 0, l = d.width; n < l;) v = n++, f = 4 * (h * d.width + v), v = 4 * (h * b + v), g[v] = e[f], g[v + 1] = e[f + 1], g[v + 2] = e[f + 2], g[v + 3] = e[f + 3]; d.data = g; d.width = b; d.height = c; d.__srcImage = null; d.__srcImageData = null; d.__srcCanvas = null; d.__srcContext = null; a.dirty = !0; a.version++ }; Va.setFormat = function (a, b) { var c = a.buffer.data; if (null != c) { var d = c.length / 4 | 0; switch (a.get_format()) { case 0: var e = 0; var g = 1; var f = 2; var v = 3; break; case 1: e = 1; g = 2; f = 3; v = 0; break; case 2: e = 2, g = 1, f = 0, v = 3 } switch (b) { case 0: var p = 0; var m = 1; var h = 2; var n = 3; break; case 1: p = 1; m = 2; h = 3; n = 0; break; case 2: p = 2, m = 1, h = 0, n = 3 } for (var l = 0; l < d;) { var k = 4 * l++; var t = c[k + e]; var q = c[k + g]; var w = c[k + f]; var u = c[k + v]; c[k + p] = t; c[k + m] = q; c[k + h] = w; c[k + n] = u } a.buffer.format = b; a.dirty = !0; a.version++ } }; Va.setPixel = function (a, b, c, d, e) { switch (e) { case 1: d = (d >>> 16 & 255) << 24 | (d >>> 8 & 255) << 16 | (d & 255) << 8 | d >>> 24 & 255; break; case 2: d = (d >>> 8 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 24 & 255) << 8 | d & 255 } var g = 0, f = a.buffer.data, v = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); e = a.buffer.format; var p = a.buffer.premultiplied; null == p && (p = !1); null == e && (e = 0); switch (e) { case 0: g = (f[v] & 255) << 24 | (f[v + 1] & 255) << 16 | (f[v + 2] & 255) << 8 | f[v + 3] & 255; break; case 1: g = (f[v + 1] & 255) << 24 | (f[v + 2] & 255) << 16 | (f[v + 3] & 255) << 8 | f[v] & 255; break; case 2: g = (f[v + 2] & 255) << 24 | (f[v + 1] & 255) << 16 | (f[v] & 255) << 8 | f[v + 3] & 255 } p && 0 != (g & 255) && 255 != (g & 255) && (D.unmult = 255 / (g & 255), g = (D.__clamp[Math.round((g >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((g >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((g >>> 8 & 255) * D.unmult)] & 255) << 8 | g & 255); d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | g & 255; f = a.buffer.data; v = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); e = a.buffer.format; p = a.buffer.premultiplied; null == p && (p = !1); null == e && (e = 0); p && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); switch (e) { case 0: f[v] = d >>> 24 & 255; f[v + 1] = d >>> 16 & 255; f[v + 2] = d >>> 8 & 255; f[v + 3] = d & 255; break; case 1: f[v] = d & 255; f[v + 1] = d >>> 24 & 255; f[v + 2] = d >>> 16 & 255; f[v + 3] = d >>> 8 & 255; break; case 2: f[v] = d >>> 8 & 255, f[v + 1] = d >>> 16 & 255, f[v + 2] = d >>> 24 & 255, f[v + 3] = d & 255 } a.dirty = !0; a.version++ }; Va.setPixel32 = function (a, b, c, d, e) { switch (e) { case 1: d = (d >>> 16 & 255) << 24 | (d >>> 8 & 255) << 16 | (d & 255) << 8 | d >>> 24 & 255; break; case 2: d = (d >>> 8 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 24 & 255) << 8 | d & 255 } a.get_transparent() || (d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | 255); var g = a.buffer.data; b = 4 * (c + a.offsetY) * a.buffer.width + 4 * (b + a.offsetX); e = a.buffer.format; c = a.buffer.premultiplied; null == c && (c = !1); null == e && (e = 0); c && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); switch (e) { case 0: g[b] = d >>> 24 & 255; g[b + 1] = d >>> 16 & 255; g[b + 2] = d >>> 8 & 255; g[b + 3] = d & 255; break; case 1: g[b] = d & 255; g[b + 1] = d >>> 24 & 255; g[b + 2] = d >>> 16 & 255; g[b + 3] = d >>> 8 & 255; break; case 2: g[b] = d >>> 8 & 255, g[b + 1] = d >>> 16 & 255, g[b + 2] = d >>> 24 & 255, g[b + 3] = d & 255 } a.dirty = !0; a.version++ }; Va.setPixels = function (a, b, c, d, e) { if (null != a.buffer.data) { var g = a.buffer.data, f = a.buffer.format, v = a.buffer.premultiplied; b = new Pe(a, b); var p = a.get_transparent(), m = c.bytes; c = c.offset; e = e != Eg.BIG_ENDIAN; for (var h = 0, n = b.height; h < n;) { var l = h++; l = b.byteOffset + b.stride * l; for (var k = 0, t = b.width; k < t;) { var q = k++; var w = e ? m.getInt32(c) : m.b[c + 3] | m.b[c + 2] << 8 | m.b[c + 1] << 16 | m.b[c] << 24; c += 4; switch (d) { case 1: w = (w >>> 16 & 255) << 24 | (w >>> 8 & 255) << 16 | (w & 255) << 8 | w >>> 24 & 255; break; case 2: w = (w >>> 8 & 255) << 24 | (w >>> 16 & 255) << 16 | (w >>> 24 & 255) << 8 | w & 255 } p || (w = (w >>> 24 & 255) << 24 | (w >>> 16 & 255) << 16 | (w >>> 8 & 255) << 8 | 255); q = l + 4 * q; var u = f, x = v; null == x && (x = !1); null == u && (u = 0); x && (0 == (w & 255) ? 0 != w && (w = 0) : 255 != (w & 255) && (D.a16 = D.__alpha16[w & 255], w = ((w >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((w >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((w >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | w & 255)); switch (u) { case 0: g[q] = w >>> 24 & 255; g[q + 1] = w >>> 16 & 255; g[q + 2] = w >>> 8 & 255; g[q + 3] = w & 255; break; case 1: g[q] = w & 255; g[q + 1] = w >>> 24 & 255; g[q + 2] = w >>> 16 & 255; g[q + 3] = w >>> 8 & 255; break; case 2: g[q] = w >>> 8 & 255, g[q + 1] = w >>> 16 & 255, g[q + 2] = w >>> 24 & 255, g[q + 3] = w & 255 } } } a.dirty = !0; a.version++ } }; Va.threshold = function (a, b, c, d, e, g, f, v, p, m) { switch (m) { case 1: var r = f; f = (r >>> 16 & 255) << 24 | (r >>> 8 & 255) << 16 | (r & 255) << 8 | r >>> 24 & 255; r = v; v = (r >>> 16 & 255) << 24 | (r >>> 8 & 255) << 16 | (r & 255) << 8 | r >>> 24 & 255; r = g; g = (r >>> 16 & 255) << 24 | (r >>> 8 & 255) << 16 | (r & 255) << 8 | r >>> 24 & 255; break; case 2: r = f, f = (r >>> 8 & 255) << 24 | (r >>> 16 & 255) << 16 | (r >>> 24 & 255) << 8 | r & 255, r = v, v = (r >>> 8 & 255) << 24 | (r >>> 16 & 255) << 16 | (r >>> 24 & 255) << 8 | r & 255, r = g, g = (r >>> 8 & 255) << 24 | (r >>> 16 & 255) << 16 | (r >>> 24 & 255) << 8 | r & 255 } switch (e) { case "!=": e = 0; break; case "<": e = 2; break; case "<=": e = 3; break; case "==": e = 1; break; case ">": e = 4; break; case ">=": e = 5; break; default: e = -1 } if (-1 == e) return 0; r = b.buffer.data; var n = a.buffer.data; if (null == r || null == n) return 0; var h = 0; c = new Pe(b, c); d = new Pe(a, new Vd(d.x, d.y, c.width, c.height)); var l = b.buffer.format, k = a.buffer.format; b = b.buffer.premultiplied; for (var t = a.buffer.premultiplied, q, w, u = 0, x = 0, A = d.height; x < A;) { w = x++; q = c.byteOffset + c.stride * w; w = d.byteOffset + d.stride * w; for (var N = 0, J = d.width; N < J;) { N++; m = l; var z = b; null == z && (z = !1); null == m && (m = 0); switch (m) { case 0: u = (r[q] & 255) << 24 | (r[q + 1] & 255) << 16 | (r[q + 2] & 255) << 8 | r[q + 3] & 255; break; case 1: u = (r[q + 1] & 255) << 24 | (r[q + 2] & 255) << 16 | (r[q + 3] & 255) << 8 | r[q] & 255; break; case 2: u = (r[q + 2] & 255) << 24 | (r[q + 1] & 255) << 16 | (r[q] & 255) << 8 | r[q + 3] & 255 } z && 0 != (u & 255) && 255 != (u & 255) && (D.unmult = 255 / (u & 255), u = (D.__clamp[Math.round((u >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((u >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((u >>> 8 & 255) * D.unmult)] & 255) << 8 | u & 255); m = u & v; z = m >>> 24 & 255; var B = g >>> 24 & 255; z != B ? m = Ba.gt(z, B) ? 1 : -1 : (z = m >>> 16 & 255, B = g >>> 16 & 255, z != B ? m = Ba.gt(z, B) ? 1 : -1 : (z = m >>> 8 & 255, B = g >>> 8 & 255, z != B ? m = Ba.gt(z, B) ? 1 : -1 : (z = m & 255, B = g & 255, m = z != B ? Ba.gt(z, B) ? 1 : -1 : 0))); switch (e) { case 0: m = 0 != m; break; case 1: m = 0 == m; break; case 2: m = -1 == m; break; case 3: m = 0 == m || -1 == m; break; case 4: m = 1 == m; break; case 5: m = 0 == m || 1 == m; break; default: m = !1 } if (m) { m = k; z = t; null == z && (z = !1); null == m && (m = 0); z && (0 == (f & 255) ? 0 != f && (f = 0) : 255 != (f & 255) && (D.a16 = D.__alpha16[f & 255], f = ((f >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((f >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((f >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | f & 255)); switch (m) { case 0: n[w] = f >>> 24 & 255; n[w + 1] = f >>> 16 & 255; n[w + 2] = f >>> 8 & 255; n[w + 3] = f & 255; break; case 1: n[w] = f & 255; n[w + 1] = f >>> 24 & 255; n[w + 2] = f >>> 16 & 255; n[w + 3] = f >>> 8 & 255; break; case 2: n[w] = f >>> 8 & 255, n[w + 1] = f >>> 16 & 255, n[w + 2] = f >>> 24 & 255, n[w + 3] = f & 255 } ++h } else if (p) switch (m = k, z = t, null == z && (z = !1), null == m && (m = 0), z && (0 == (u & 255) ? 0 != u && (u = 0) : 255 != (u & 255) && (D.a16 = D.__alpha16[u & 255], u = ((u >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((u >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((u >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | u & 255)), m) { case 0: n[w] = u >>> 24 & 255; n[w + 1] = u >>> 16 & 255; n[w + 2] = u >>> 8 & 255; n[w + 3] = u & 255; break; case 1: n[w] = u & 255; n[w + 1] = u >>> 24 & 255; n[w + 2] = u >>> 16 & 255; n[w + 3] = u >>> 8 & 255; break; case 2: n[w] = u >>> 8 & 255, n[w + 1] = u >>> 16 & 255, n[w + 2] = u >>> 24 & 255, n[w + 3] = u & 255 } q += 4; w += 4 } } 0 < h && (a.dirty = !0, a.version++); return h }; Va.unmultiplyAlpha = function (a) { var b = a.buffer.data; if (null != b) { for (var c = a.buffer.format, d = 0, e = 0, g = b.length / 4 | 0; e < g;) { var f = e++, v = 4 * f, p = c, m = !0; null == m && (m = !1); null == p && (p = 0); switch (p) { case 0: d = (b[v] & 255) << 24 | (b[v + 1] & 255) << 16 | (b[v + 2] & 255) << 8 | b[v + 3] & 255; break; case 1: d = (b[v + 1] & 255) << 24 | (b[v + 2] & 255) << 16 | (b[v + 3] & 255) << 8 | b[v] & 255; break; case 2: d = (b[v + 2] & 255) << 24 | (b[v + 1] & 255) << 16 | (b[v] & 255) << 8 | b[v + 3] & 255 } m && 0 != (d & 255) && 255 != (d & 255) && (D.unmult = 255 / (d & 255), d = (D.__clamp[Math.round((d >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((d >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((d >>> 8 & 255) * D.unmult)] & 255) << 8 | d & 255); f *= 4; v = c; p = !1; null == p && (p = !1); null == v && (v = 0); p && (0 == (d & 255) ? 0 != d && (d = 0) : 255 != (d & 255) && (D.a16 = D.__alpha16[d & 255], d = ((d >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((d >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((d >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | d & 255)); switch (v) { case 0: b[f] = d >>> 24 & 255; b[f + 1] = d >>> 16 & 255; b[f + 2] = d >>> 8 & 255; b[f + 3] = d & 255; break; case 1: b[f] = d & 255; b[f + 1] = d >>> 24 & 255; b[f + 2] = d >>> 16 & 255; b[f + 3] = d >>> 8 & 255; break; case 2: b[f] = d >>> 8 & 255, b[f + 1] = d >>> 16 & 255, b[f + 2] = d >>> 24 & 255, b[f + 3] = d & 255 } } a.buffer.premultiplied = !1; a.dirty = !0; a.version++ } }; Va.__boxBlur = function (a, b, c, d, e, g) { b.set(a); e |= 0; g |= 0; Va.__boxBlurH(b, a, c, d, e, 0); Va.__boxBlurH(b, a, c, d, e, 1); Va.__boxBlurH(b, a, c, d, e, 2); Va.__boxBlurH(b, a, c, d, e, 3); e = 1 / (g + g + 1); for (var f = 4 * c, v, p, m, h, n, l, k = 0, t = c; k < t;) { v = k++; p = v *= 4; m = v + g * f; h = a[v]; n = a[v + f * (d - 1)]; l = (g + 1) * h; for (var q = 0, w = g; q < w;) { var u = q++; l += a[v + u * f] } q = 0; for (w = g + 1; q < w;) q++, l += a[m] - h, b[v] = Math.round(Ba.toFloat(l) * e), m += f, v += f; h = g + 1; for (q = d - g; h < q;) h++, l += a[m] - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, m += f, v += f; m = d - g; for (h = d; m < h;) m++, l += n - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, v += f } e = 1 / (g + g + 1); f = 4 * c; k = 0; for (t = c; k < t;) { v = k++; p = v = 4 * v + 1; m = v + g * f; h = a[v]; n = a[v + f * (d - 1)]; l = (g + 1) * h; q = 0; for (w = g; q < w;) u = q++, l += a[v + u * f]; q = 0; for (w = g + 1; q < w;) q++, l += a[m] - h, b[v] = Math.round(Ba.toFloat(l) * e), m += f, v += f; h = g + 1; for (q = d - g; h < q;) h++, l += a[m] - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, m += f, v += f; m = d - g; for (h = d; m < h;) m++, l += n - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, v += f } e = 1 / (g + g + 1); f = 4 * c; k = 0; for (t = c; k < t;) { v = k++; p = v = 4 * v + 2; m = v + g * f; h = a[v]; n = a[v + f * (d - 1)]; l = (g + 1) * h; q = 0; for (w = g; q < w;) u = q++, l += a[v + u * f]; q = 0; for (w = g + 1; q < w;) q++, l += a[m] - h, b[v] = Math.round(Ba.toFloat(l) * e), m += f, v += f; h = g + 1; for (q = d - g; h < q;) h++, l += a[m] - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, m += f, v += f; m = d - g; for (h = d; m < h;) m++, l += n - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, v += f } e = 1 / (g + g + 1); f = 4 * c; k = 0; for (t = c; k < t;) { v = k++; p = v = 4 * v + 3; m = v + g * f; h = a[v]; n = a[v + f * (d - 1)]; l = (g + 1) * h; q = 0; for (w = g; q < w;) u = q++, l += a[v + u * f]; q = 0; for (w = g + 1; q < w;) q++, l += a[m] - h, b[v] = Math.round(Ba.toFloat(l) * e), m += f, v += f; h = g + 1; for (q = d - g; h < q;) h++, l += a[m] - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, m += f, v += f; m = d - g; for (h = d; m < h;) m++, l += n - a[p], b[v] = Math.round(Ba.toFloat(l) * e), p += f, v += f } }; Va.__boxBlurH = function (a, b, c, d, e, g) { for (var f = 1 / (e + e + 1), v, p, m, h, n, l, k = 0; k < d;) { p = v = k++ * c; m = v + e; h = a[4 * v + g]; n = a[4 * (v + c - 1) + g]; l = (e + 1) * h; for (var t = 0, q = e; t < q;) { var w = t++; l += a[4 * (v + w) + g] } t = 0; for (q = e + 1; t < q;) t++, l += a[4 * m + g] - h, b[4 * v + g] = Math.round(Ba.toFloat(l) * f), ++m, ++v; h = e + 1; for (t = c - e; h < t;) h++, l += a[4 * m + g] - a[4 * p + g], b[4 * v + g] = Math.round(Ba.toFloat(l) * f), ++m, ++p, ++v; m = c - e; for (h = c; m < h;) m++, l += n - a[4 * p + g], b[4 * v + g] = Math.round(Ba.toFloat(l) * f), ++p, ++v } }; Va.__boxBlurT = function (a, b, c, d, e, g) { for (var f = 1 / (e + e + 1), v = 4 * c, p, m, h, n, l, k, t = 0; t < c;) { m = p = 4 * t++ + g; h = p + e * v; n = a[p]; l = a[p + v * (d - 1)]; k = (e + 1) * n; for (var q = 0, w = e; q < w;) { var u = q++; k += a[p + u * v] } q = 0; for (w = e + 1; q < w;) q++, k += a[h] - n, b[p] = Math.round(Ba.toFloat(k) * f), h += v, p += v; n = e + 1; for (q = d - e; n < q;) n++, k += a[h] - a[m], b[p] = Math.round(Ba.toFloat(k) * f), m += v, h += v, p += v; h = d - e; for (n = d; h < n;) h++, k += l - a[m], b[p] = Math.round(Ba.toFloat(k) * f), m += v, p += v } }; Va.__calculateSourceOffset = function (a, b, c, d) { c -= b.x | 0; b = d - (b.y | 0); return 0 > c || 0 > b || c >= a.width || b >= a.height ? -1 : 4 * (b * (a.width | 0) + c) }; Va.__getBoxesForGaussianBlur = function (a, b) { var c = Math.floor(Math.sqrt(12 * a * a / b + 1)); 0 == c % 2 && --c; var d = c + 2; a = Math.round((12 * a * a - b * c * c - 4 * b * c - 3 * b) / (-4 * c - 4)); for (var e = [], g = 0; g < b;) { var f = g++; e.push(f < a ? c : d) } return e }; Va.__pixelCompare = function (a, b) { var c = a >>> 24 & 255, d = b >>> 24 & 255; if (c != d) return Ba.gt(c, d) ? 1 : -1; c = a >>> 16 & 255; d = b >>> 16 & 255; if (c != d) return Ba.gt(c, d) ? 1 : -1; c = a >>> 8 & 255; d = b >>> 8 & 255; if (c != d) return Ba.gt(c, d) ? 1 : -1; c = a & 255; d = b & 255; return c != d ? Ba.gt(c, d) ? 1 : -1 : 0 }; Va.__translatePixel = function (a, b, c, d, e, g, f) { c = 4 * (g * (c.width | 0) + e); b = Va.__calculateSourceOffset(b, d, e, g); 0 > b ? a[c] = a[c + 1] = a[c + 2] = a[c + 3] = 0 : (a[c] = a[b], a[c + 1] = a[b + 1], a[c + 2] = a[b + 2], f = Ba.toFloat(a[b + 3]) * f | 0, a[c + 3] = 0 > f ? 0 : 255 < f ? 255 : f) }; var Pe = function (a, b) { this.image = a; null == b ? this.rect = a.get_rect() : (0 > b.x && (b.x = 0), 0 > b.y && (b.y = 0), b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), 0 > b.width && (b.width = 0), 0 > b.height && (b.height = 0), this.rect = b); this.stride = a.buffer.get_stride(); this.__update() }; k["lime._internal.graphics._ImageDataUtil.ImageDataView"] = Pe; Pe.__name__ = "lime._internal.graphics._ImageDataUtil.ImageDataView"; Pe.prototype = { x: null, y: null, height: null, width: null, byteOffset: null, image: null, rect: null, stride: null, tempRect: null, clip: function (a, b, c, d) { null == this.tempRect && (this.tempRect = new Vd); this.tempRect.setTo(a, b, c, d); this.rect.intersection(this.tempRect, this.rect); this.__update() }, hasRow: function (a) { return 0 <= a ? a < this.height : !1 }, offset: function (a, b) { 0 > a ? (this.rect.x += a, 0 > this.rect.x && (this.rect.x = 0)) : (this.rect.x += a, this.rect.width -= a); 0 > b ? (this.rect.y += b, 0 > this.rect.y && (this.rect.y = 0)) : (this.rect.y += b, this.rect.height -= b); this.__update() }, row: function (a) { return this.byteOffset + this.stride * a }, __update: function () { this.x = Math.ceil(this.rect.x); this.y = Math.ceil(this.rect.y); this.width = Math.floor(this.rect.width); this.height = Math.floor(this.rect.height); this.byteOffset = this.stride * (this.y + this.image.offsetY) + 4 * (this.x + this.image.offsetX) }, __class__: Pe }; var ff = function () { }; k["lime._internal.graphics.StackBlur"] = ff; ff.__name__ = "lime._internal.graphics.StackBlur"; ff.blur = function (a, b, c, d, e, g, f) { a.copyPixels(b, c, d); ff.__stackBlurCanvasRGBA(a, c.width | 0, c.height | 0, e, g, f) }; ff.__stackBlurCanvasRGBA = function (a, b, c, d, e, g) { d = Math.round(d) >> 1; e = Math.round(e) >> 1; if (null != ff.MUL_TABLE && (d >= ff.MUL_TABLE.length && (d = ff.MUL_TABLE.length - 1), e >= ff.MUL_TABLE.length && (e = ff.MUL_TABLE.length - 1), !(0 > d || 0 > e))) { 1 > g && (g = 1); 3 < g && (g = 3); a = a.get_data(); var f, v, p = d + d + 1; var m = e + e + 1; var h = b - 1, n = c - 1, l = d + 1, k = e + 1, t = new Ii, q = t; var w = 1; for (var u = p; w < u;) w++, q = q.n = new Ii; q.n = t; var x = p = new Ii; w = 1; for (u = m; w < u;) w++, x = x.n = new Ii; x.n = p; for (var A = ff.MUL_TABLE[d], N = ff.SHG_TABLE[d], J = ff.MUL_TABLE[e], z = ff.SHG_TABLE[e]; 0 < g;) { --g; var B = v = 0; var ma = A, C = N; for (f = c; ;) { var K = a[v]; m = l * K; var F = a[v + 1]; var I = l * F; var G = a[v + 2]; var D = l * G; w = a[v + 3]; var y = l * w; q = t; for (x = l; q.r = K, q.g = F, q.b = G, q.a = w, q = q.n, -1 < --x;) ; w = 1; for (u = l; w < u;) x = w++, x = v + ((h < x ? h : x) << 2), m += q.r = a[x], I += q.g = a[x + 1], D += q.b = a[x + 2], y += q.a = a[x + 3], q = q.n; u = t; q = 0; for (w = b; q < w;) x = q++, a[v++] = m * ma >>> C, a[v++] = I * ma >>> C, a[v++] = D * ma >>> C, a[v++] = y * ma >>> C, x = x + d + 1, x = B + (x < h ? x : h) << 2, m -= u.r - (u.r = a[x]), I -= u.g - (u.g = a[x + 1]), D -= u.b - (u.b = a[x + 2]), y -= u.a - (u.a = a[x + 3]), u = u.n; B += b; if (!(0 < --f)) break } ma = J; C = z; f = 0; for (B = b; f < B;) { q = f++; v = q << 2; K = a[v]; m = k * K; F = a[v + 1]; I = k * F; G = a[v + 2]; D = k * G; w = a[v + 3]; y = k * w; x = p; v = 0; for (u = k; v < u;) v++, x.r = K, x.g = F, x.b = G, x.a = w, x = x.n; w = b; u = 1; for (K = e + 1; u < K;) F = u++, v = w + q << 2, m += x.r = a[v], I += x.g = a[v + 1], D += x.b = a[v + 2], y += x.a = a[v + 3], x = x.n, F < n && (w += b); v = q; u = p; if (0 < g) for (K = 0, F = c; K < F;) G = K++, x = v << 2, w = y * ma >>> C, a[x + 3] = w, 0 < w ? (a[x] = m * ma >>> C, a[x + 1] = I * ma >>> C, a[x + 2] = D * ma >>> C) : a[x] = a[x + 1] = a[x + 2] = 0, x = G + k, x = q + (x < n ? x : n) * b << 2, m -= u.r - (u.r = a[x]), I -= u.g - (u.g = a[x + 1]), D -= u.b - (u.b = a[x + 2]), y -= u.a - (u.a = a[x + 3]), u = u.n, v += b; else for (var E = 0, L = c; E < L;) { var M = E++; x = v << 2; w = y * ma >>> C; a[x + 3] = w; 0 < w ? (w = 255 / w, K = (m * ma >>> C) * w | 0, F = (I * ma >>> C) * w | 0, G = (D * ma >>> C) * w | 0, a[x] = 255 < K ? 255 : K, a[x + 1] = 255 < F ? 255 : F, a[x + 2] = 255 < G ? 255 : G) : a[x] = a[x + 1] = a[x + 2] = 0; x = M + k; x = q + (x < n ? x : n) * b << 2; m -= u.r - (u.r = a[x]); I -= u.g - (u.g = a[x + 1]); D -= u.b - (u.b = a[x + 2]); y -= u.a - (u.a = a[x + 3]); u = u.n; v += b } } } } }; var Ii = function () { this.a = this.b = this.g = this.r = 0; this.n = null }; k["lime._internal.graphics.BlurStack"] = Ii; Ii.__name__ = "lime._internal.graphics.BlurStack"; Ii.prototype = {r: null, g: null, b: null, a: null, n: null, __class__: Ii}; var hs = function () { }; k["lime._internal.macros.AssetsMacro"] = hs; hs.__name__ = "lime._internal.macros.AssetsMacro"; var xo = function (a) { this.i = 0; this.string = a; this.index = 0; this.endIndex = a.length }; k["lime._internal.unifill.CodePointIter"] = xo; xo.__name__ = "lime._internal.unifill.CodePointIter"; xo.prototype = { string: null, index: null, endIndex: null, hasNext: function () { return this.index < this.endIndex }, i: null, next: function () { var a = this.i = this.index, b = this.string; b = b.charCodeAt(this.index); this.index = a + (55296 <= b && 56319 >= b ? 2 : 1); b = this.string; return ig.codePointAt(b, this.i) }, __class__: xo }; var Ji = function () { }; k["lime._internal.unifill.Exception"] = Ji; Ji.__name__ = "lime._internal.unifill.Exception"; Ji.prototype = { toString: function () { throw I.thrown(null); }, __class__: Ji }; var yo = function (a) { this.code = a }; k["lime._internal.unifill.InvalidCodePoint"] = yo; yo.__name__ = "lime._internal.unifill.InvalidCodePoint"; yo.__super__ = Ji; yo.prototype = u(Ji.prototype, { code: null, toString: function () { return "InvalidCodePoint(code: " + this.code + ")" }, __class__: yo }); var Dh = function (a) { this.index = a }; k["lime._internal.unifill.InvalidCodeUnitSequence"] = Dh; Dh.__name__ = "lime._internal.unifill.InvalidCodeUnitSequence"; Dh.__super__ = Ji; Dh.prototype = u(Ji.prototype, { index: null, toString: function () { return "InvalidCodeUnitSequence(index: " + this.index + ")" }, __class__: Dh }); var gf = function () { }; k["lime._internal.unifill.InternalEncoding"] = gf; gf.__name__ = "lime._internal.unifill.InternalEncoding"; gf.__properties__ = {get_internalEncoding: "get_internalEncoding"}; gf.get_internalEncoding = function () { return "UTF-16" }; gf.codeUnitAt = function (a, b) { return a.charCodeAt(b) }; gf.codePointAt = function (a, b) { return ig.codePointAt(a, b) }; gf.charAt = function (a, b) { var c = a.charCodeAt(b); return b = K.substr(a, b, 55296 <= c && 56319 >= c ? 2 : 1) }; gf.codePointCount = function (a, b, c) { return ig.codePointCount(a, b, c) }; gf.codePointWidthAt = function (a, b) { a = a.charCodeAt(b); return 55296 <= a && 56319 >= a ? 2 : 1 }; gf.codePointWidthBefore = function (a, b) { a = a.charCodeAt(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1 }; gf.offsetByCodePoints = function (a, b, c) { if (0 <= c) for (var d = a.length, e = 0; e < c && b < d;) { var g = a.charCodeAt(b); b += 55296 <= g && 56319 >= g ? 2 : 1; ++e } else for (d = 0; d < -c && 0 < b;) g = a.charCodeAt(b - 1), b -= 56320 <= g && 57343 >= g ? 2 : 1, ++d; return b }; gf.backwardOffsetByCodePoints = function (a, b, c) { c = -c; if (0 <= c) for (var d = a.length, e = 0; e < c && b < d;) { var g = a.charCodeAt(b); b += 55296 <= g && 56319 >= g ? 2 : 1; ++e } else for (d = 0; d < -c && 0 < b;) g = a.charCodeAt(b - 1), b -= 56320 <= g && 57343 >= g ? 2 : 1, ++d; return b }; gf.fromCodePoint = function (a) { return 65535 >= a ? String.fromCodePoint(a) : String.fromCodePoint((a >> 10) + 55232) + String.fromCodePoint(a & 1023 | 56320) }; gf.fromCodePoints = function (a) { var b = ""; for (a = H(a); a.hasNext();) { var c = a.next(); 65535 >= c ? b += String.fromCodePoint(c) : (b += String.fromCodePoint((c >> 10) + 55232), b += String.fromCodePoint(c & 1023 | 56320)) } return b }; gf.validate = function (a) { ig.validate(a) }; gf.isValidString = function (a) { try { return ig.validate(a), !0 } catch (b) { ra.lastError = b; if (I.caught(b).unwrap() instanceof Dh) return !1; throw b; } }; gf.encodeWith = function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a(b & 1023 | 56320)) }; var nr = function (a, b, c) { this.i = 0; this.string = a; this.index = b; this.endIndex = c }; k["lime._internal.unifill.InternalEncodingIter"] = nr; nr.__name__ = "lime._internal.unifill.InternalEncodingIter"; nr.prototype = { string: null, index: null, endIndex: null, hasNext: function () { return this.index < this.endIndex }, i: null, next: function () { var a = this.i = this.index, b = this.string.charCodeAt(this.index); this.index = a + (55296 <= b && 56319 >= b ? 2 : 1); return this.i }, __class__: nr }; var Vf = function () { }; k["lime._internal.unifill.Unicode"] = Vf; Vf.__name__ = "lime._internal.unifill.Unicode"; Vf.decodeSurrogate = function (a, b) { return a - 55232 << 10 | b & 1023 }; Vf.encodeHighSurrogate = function (a) { return (a >> 10) + 55232 }; Vf.encodeLowSurrogate = function (a) { return a & 1023 | 56320 }; Vf.isScalar = function (a) { return 0 <= a && 1114111 >= a && !(55296 <= a && 56319 >= a) ? !(56320 <= a && 57343 >= a) : !1 }; Vf.isHighSurrogate = function (a) { return 55296 <= a ? 56319 >= a : !1 }; Vf.isLowSurrogate = function (a) { return 56320 <= a ? 57343 >= a : !1 }; var yf = function () { }; k["lime._internal.unifill.Unifill"] = yf; yf.__name__ = "lime._internal.unifill.Unifill"; yf.uLength = function (a) { return ig.codePointCount(a, 0, a.length) }; yf.uCharAt = function (a, b) { var c = a; if (0 <= b) for (var d = 0, e = c.length, g = 0; g < b && d < e;) { var f = c.charCodeAt(d); d += 55296 <= f && 56319 >= f ? 2 : 1; ++g } else for (e = d = 0; e < -b && 0 < d;) f = c.charCodeAt(d - 1), d -= 56320 <= f && 57343 >= f ? 2 : 1, ++e; b = d; c = a; f = c.charCodeAt(b); return a = K.substr(c, b, 55296 <= f && 56319 >= f ? 2 : 1) }; yf.uCharCodeAt = function (a, b) { var c = a; if (0 <= b) for (var d = 0, e = c.length, g = 0; g < b && d < e;) { var f = c.charCodeAt(d); d += 55296 <= f && 56319 >= f ? 2 : 1; ++g } else for (e = d = 0; e < -b && 0 < d;) f = c.charCodeAt(d - 1), d -= 56320 <= f && 57343 >= f ? 2 : 1, ++e; return ig.codePointAt(a, d) }; yf.uCodePointAt = function (a, b) { var c = a; if (0 <= b) for (var d = 0, e = c.length, g = 0; g < b && d < e;) { var f = c.charCodeAt(d); d += 55296 <= f && 56319 >= f ? 2 : 1; ++g } else for (e = d = 0; e < -b && 0 < d;) f = c.charCodeAt(d - 1), d -= 56320 <= f && 57343 >= f ? 2 : 1, ++e; return ig.codePointAt(a, d) }; yf.uIndexOf = function (a, b, c) { null == c && (c = 0); var d = a; if (0 <= c) for (var e = 0, g = d.length, f = 0; f < c && e < g;) { var v = d.charCodeAt(e); e += 55296 <= v && 56319 >= v ? 2 : 1; ++f } else for (g = e = 0; g < -c && 0 < e;) v = d.charCodeAt(e - 1), e -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; e = a.indexOf(b, e); return 0 <= e ? ig.codePointCount(a, 0, e) : -1 }; yf.uLastIndexOf = function (a, b, c) { null == c && (c = a.length - 1); var d = a; if (0 <= c) for (var e = 0, g = d.length, f = 0; f < c && e < g;) { var v = d.charCodeAt(e); e += 55296 <= v && 56319 >= v ? 2 : 1; ++f } else for (g = e = 0; g < -c && 0 < e;) v = d.charCodeAt(e - 1), e -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; e = a.lastIndexOf(b, e); return 0 <= e ? ig.codePointCount(a, 0, e) : -1 }; yf.uSplit = function (a, b) { if (0 == b.length) { b = []; for (var c, d = 0, e = a.length; d < e;) { c = d; var g = a.charCodeAt(d); d += 55296 <= g && 56319 >= g ? 2 : 1; g = a; var f = g.charCodeAt(c); c = K.substr(g, c, 55296 <= f && 56319 >= f ? 2 : 1); b.push(c) } return b } return a.split(b) }; yf.uSubstr = function (a, b, c) { var d = 0 <= b ? 0 : a.length; var e = a; if (0 <= b) for (var g = e.length, f = 0; f < b && d < g;) { var v = e.charCodeAt(d); d += 55296 <= v && 56319 >= v ? 2 : 1; ++f } else for (g = 0; g < -b && 0 < d;) v = e.charCodeAt(d - 1), d -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; b = d; if (null == c) c = a.length; else if (0 > c) c = b; else { e = a; if (0 <= c) for (d = b, g = e.length, f = 0; f < c && d < g;) v = e.charCodeAt(d), d += 55296 <= v && 56319 >= v ? 2 : 1, ++f; else for (d = b, g = 0; g < -c && 0 < d;) v = e.charCodeAt(d - 1), d -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; c = d } return a.substring(b, c) }; yf.uSubstring = function (a, b, c) { if (0 > b) b = 0; else { var d = a; if (0 <= b) for (var e = 0, g = d.length, f = 0; f < b && e < g;) { var v = d.charCodeAt(e); e += 55296 <= v && 56319 >= v ? 2 : 1; ++f } else for (g = e = 0; g < -b && 0 < e;) v = d.charCodeAt(e - 1), e -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; b = e } if (null == c) c = a.length; else if (0 > c) c = 0; else { d = a; if (0 <= c) for (e = 0, g = d.length, f = 0; f < c && e < g;) v = d.charCodeAt(e), e += 55296 <= v && 56319 >= v ? 2 : 1, ++f; else for (g = e = 0; g < -c && 0 < e;) v = d.charCodeAt(e - 1), e -= 56320 <= v && 57343 >= v ? 2 : 1, ++g; c = e } return a.substring(b, c) }; yf.uIterator = function (a) { return new xo(a) }; yf.uCompare = function (a, b) { for (var c, d = 0, e = a.length, g, f = 0, v = b.length; d < e && f < v;) { c = d; g = a.charCodeAt(d); d += 55296 <= g && 56319 >= g ? 2 : 1; c = ig.codePointAt(a, c); g = f; var p = b.charCodeAt(f); f += 55296 <= p && 56319 >= p ? 2 : 1; g = ig.codePointAt(b, g); if (c < g) return -1; if (c > g) return 1 } return f < v ? -1 : d < e ? 1 : 0 }; yf.uToString = function (a) { var b = ""; for (a = H(a); a.hasNext();) { var c = a.next(); 65535 >= c ? b += String.fromCodePoint(c) : (b += String.fromCodePoint((c >> 10) + 55232), b += String.fromCodePoint(c & 1023 | 56320)) } return b }; yf.uAddChar = function (a, b) { 65535 >= b ? a.b += String.fromCodePoint(b) : (a.b += String.fromCodePoint((b >> 10) + 55232), a.b += String.fromCodePoint(b & 1023 | 56320)) }; var ig = { __properties__: {get_length: "get_length"}, fromCodePoint: function (a) { return 65535 >= a ? String.fromCodePoint(a) : String.fromCodePoint((a >> 10) + 55232) + String.fromCodePoint(a & 1023 | 56320) }, fromCodePoints: function (a) { var b = ""; for (a = H(a); a.hasNext();) { var c = a.next(); 65535 >= c ? b += String.fromCodePoint(c) : (b += String.fromCodePoint((c >> 10) + 55232), b += String.fromCodePoint(c & 1023 | 56320)) } return b }, fromString: function (a) { return a }, fromArray: function (a) { for (var b = "", c = 0; c < a.length;) { var d = a[c]; ++c; b += String.fromCodePoint(d) } return b }, encodeWith: function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a(b & 1023 | 56320)) }, codeUnitAt: function (a, b) { return a.charCodeAt(b) }, codePointAt: function (a, b) { return Ki.decode_code_point(a.length, function (b) { return a.charCodeAt(b) }, b) }, charAt: function (a, b) { var c = a.charCodeAt(b); return K.substr(a, b, 55296 <= c && 56319 >= c ? 2 : 1) }, codePointCount: function (a, b, c) { for (var d = 0; b < c;) { var e = a.charCodeAt(b); b += 55296 <= e && 56319 >= e ? 2 : 1; ++d } return d }, codePointWidthAt: function (a, b) { a = a.charCodeAt(b); return 55296 <= a && 56319 >= a ? 2 : 1 }, codePointWidthBefore: function (a, b) { a = a.charCodeAt(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1 }, offsetByCodePoints: function (a, b, c) { if (0 <= c) for (var d = a.length, e = 0; e < c && b < d;) { var g = a.charCodeAt(b); b += 55296 <= g && 56319 >= g ? 2 : 1; ++e } else for (d = 0; d < -c && 0 < b;) g = a.charCodeAt(b - 1), b -= 56320 <= g && 57343 >= g ? 2 : 1, ++d; return b }, substr: function (a, b, c) { return K.substr(a, b, c) }, validate: function (a) { for (var b = a.length, c = function (b) { return a.charCodeAt(b) }, d = 0; d < b;) { Ki.decode_code_point(b, c, d); var e = a.charCodeAt(d); d += 55296 <= e && 56319 >= e ? 2 : 1 } }, toString: function (a) { return a }, toArray: function (a) { for (var b = 0, c = a.length, d = []; b < c;) d.push(a.charCodeAt(b++)); return d }, _new: function (a) { return a }, get_length: function (a) { return a.length }, forward_offset_by_code_points: function (a, b, c) { for (var d = a.length, e = 0; e < c && b < d;) { var g = a.charCodeAt(b); b += 55296 <= g && 56319 >= g ? 2 : 1; ++e } return b }, backward_offset_by_code_points: function (a, b, c) { for (var d = 0; d < c && 0 < b;) { var e = a.charCodeAt(b - 1); b -= 56320 <= e && 57343 >= e ? 2 : 1; ++d } return b } }, Ki = function () { }; k["lime._internal.unifill._Utf16.Utf16Impl"] = Ki; Ki.__name__ = "lime._internal.unifill._Utf16.Utf16Impl"; Ki.code_point_width = function (a) { return 55296 <= a && 56319 >= a ? 2 : 1 }; Ki.find_prev_code_point = function (a, b) { a = a(b - 1); return 56320 <= a && 57343 >= a ? 2 : 1 }; Ki.encode_code_point = function (a, b) { 65535 >= b ? a(b) : (a((b >> 10) + 55232), a(b & 1023 | 56320)) }; Ki.decode_code_point = function (a, b, c) { if (0 > c || a <= c) throw I.thrown(new Dh(c)); var d = b(c); if (55296 <= d && 56319 >= d) { if (0 > c + 1 || a <= c + 1) throw I.thrown(new Dh(c)); a = b(c + 1); if (56320 <= a && 57343 >= a) return d - 55232 << 10 | a & 1023; throw I.thrown(new Dh(c)); } if (56320 <= d && 57343 >= d) throw I.thrown(new Dh(c)); return d }; var Pj = function () { }; k["lime.app.IModule"] = Pj; Pj.__name__ = "lime.app.IModule"; Pj.__isInterface__ = !0; Pj.prototype = {__registerLimeModule: null, __unregisterLimeModule: null, __class__: Pj}; var Qj = function () { this.onExit = new Xh }; k["lime.app.Module"] = Qj; Qj.__name__ = "lime.app.Module"; Qj.__interfaces__ = [Pj]; Qj.prototype = { onExit: null, __registerLimeModule: function (a) { }, __unregisterLimeModule: function (a) { }, __class__: Qj }; var zd = function () { this.onCreateWindow = new zo; this.onUpdate = new Xh; this.onExit = new Xh; null == zd.current && (zd.current = this); this.meta = new xa; this.modules = []; this.__windowByID = new eb; this.__windows = []; this.__backend = new to(this); this.__registerLimeModule(this); this.__preloader = new Ao; this.__preloader.onProgress.add(q(this, this.onPreloadProgress)); this.__preloader.onComplete.add(q(this, this.onPreloadComplete)) }; k["lime.app.Application"] = zd; zd.__name__ = "lime.app.Application"; zd.__super__ = Qj; zd.prototype = u(Qj.prototype, { meta: null, modules: null, onUpdate: null, onCreateWindow: null, preloader: null, window: null, windows: null, __backend: null, __preloader: null, __window: null, __windowByID: null, __windows: null, addModule: function (a) { a.__registerLimeModule(this); this.modules.push(a) }, createWindow: function (a) { a = this.__createWindow(a); this.__addWindow(a); return a }, exec: function () { zd.current = this; return this.__backend.exec() }, onGamepadAxisMove: function (a, b, c) { }, onGamepadButtonDown: function (a, b) { }, onGamepadButtonUp: function (a, b) { }, onGamepadConnect: function (a) { }, onGamepadDisconnect: function (a) { }, onJoystickAxisMove: function (a, b, c) { }, onJoystickButtonDown: function (a, b) { }, onJoystickButtonUp: function (a, b) { }, onJoystickConnect: function (a) { }, onJoystickDisconnect: function (a) { }, onJoystickHatMove: function (a, b, c) { }, onJoystickTrackballMove: function (a, b, c, d) { }, onKeyDown: function (a, b) { }, onKeyUp: function (a, b) { }, onModuleExit: function (a) { }, onMouseDown: function (a, b, c) { }, onMouseMove: function (a, b) { }, onMouseMoveRelative: function (a, b) { }, onMouseUp: function (a, b, c) { }, onMouseWheel: function (a, b, c) { }, onPreloadComplete: function () { }, onPreloadProgress: function (a, b) { }, onRenderContextLost: function () { }, onRenderContextRestored: function (a) { }, onTextEdit: function (a, b, c) { }, onTextInput: function (a) { }, onTouchCancel: function (a) { }, onTouchEnd: function (a) { }, onTouchMove: function (a) { }, onTouchStart: function (a) { }, onWindowActivate: function () { }, onWindowClose: function () { }, onWindowCreate: function () { }, onWindowDeactivate: function () { }, onWindowDropFile: function (a) { }, onWindowEnter: function () { }, onWindowExpose: function () { }, onWindowFocusIn: function () { }, onWindowFocusOut: function () { }, onWindowFullscreen: function () { }, onWindowLeave: function () { }, onWindowMove: function (a, b) { }, onWindowMinimize: function () { }, onWindowResize: function (a, b) { }, onWindowRestore: function () { }, removeModule: function (a) { null != a && (a.__unregisterLimeModule(this), K.remove(this.modules, a)) }, render: function (a) { }, update: function (a) { }, __addWindow: function (a) { if (null != a) { this.__windows.push(a); this.__windowByID.h[a.id] = a; var b = q(this, this.__onWindowClose); a.onClose.add(function () { b(a) }, !1, -1E4); null == this.__window && (this.__window = a, a.onActivate.add(q(this, this.onWindowActivate)), a.onRenderContextLost.add(q(this, this.onRenderContextLost)), a.onRenderContextRestored.add(q(this, this.onRenderContextRestored)), a.onDeactivate.add(q(this, this.onWindowDeactivate)), a.onDropFile.add(q(this, this.onWindowDropFile)), a.onEnter.add(q(this, this.onWindowEnter)), a.onExpose.add(q(this, this.onWindowExpose)), a.onFocusIn.add(q(this, this.onWindowFocusIn)), a.onFocusOut.add(q(this, this.onWindowFocusOut)), a.onFullscreen.add(q(this, this.onWindowFullscreen)), a.onKeyDown.add(q(this, this.onKeyDown)), a.onKeyUp.add(q(this, this.onKeyUp)), a.onLeave.add(q(this, this.onWindowLeave)), a.onMinimize.add(q(this, this.onWindowMinimize)), a.onMouseDown.add(q(this, this.onMouseDown)), a.onMouseMove.add(q(this, this.onMouseMove)), a.onMouseMoveRelative.add(q(this, this.onMouseMoveRelative)), a.onMouseUp.add(q(this, this.onMouseUp)), a.onMouseWheel.add(q(this, this.onMouseWheel)), a.onMove.add(q(this, this.onWindowMove)), a.onRender.add(q(this, this.render)), a.onResize.add(q(this, this.onWindowResize)), a.onRestore.add(q(this, this.onWindowRestore)), a.onTextEdit.add(q(this, this.onTextEdit)), a.onTextInput.add(q(this, this.onTextInput)), this.onWindowCreate()); this.onCreateWindow.dispatch(a) } }, __createWindow: function (a) { a = new Li(this, a); return -1 == a.id ? null : a }, __registerLimeModule: function (a) { a.onUpdate.add(q(this, this.update)); a.onExit.add(q(this, this.onModuleExit), !1, 0); a.onExit.add(q(this, this.__onModuleExit), !1, 0); for (a = Pd.devices.iterator(); a.hasNext();) { var b = a.next(); this.__onGamepadConnect(b) } Pd.onConnect.add(q(this, this.__onGamepadConnect)); for (a = bd.devices.iterator(); a.hasNext();) b = a.next(), this.__onJoystickConnect(b); bd.onConnect.add(q(this, this.__onJoystickConnect)); sd.onCancel.add(q(this, this.onTouchCancel)); sd.onStart.add(q(this, this.onTouchStart)); sd.onMove.add(q(this, this.onTouchMove)); sd.onEnd.add(q(this, this.onTouchEnd)) }, __removeWindow: function (a) { null != a && this.__windowByID.h.hasOwnProperty(a.id) && (this.__window == a && (this.__window = null), K.remove(this.__windows, a), this.__windowByID.remove(a.id), a.close(), 0 == this.__windows.length && $a.exit(0)) }, __onGamepadConnect: function (a) { this.onGamepadConnect(a); var b = q(this, this.onGamepadAxisMove), c = function (c, d) { b(a, c, d) }; a.onAxisMove.add(c); var d = q(this, this.onGamepadButtonDown); c = function (b) { d(a, b) }; a.onButtonDown.add(c); var e = q(this, this.onGamepadButtonUp); c = function (b) { e(a, b) }; a.onButtonUp.add(c); var g = q(this, this.onGamepadDisconnect); a.onDisconnect.add(function () { g(a) }) }, __onJoystickConnect: function (a) { this.onJoystickConnect(a); var b = q(this, this.onJoystickAxisMove), c = function (c, d) { b(a, c, d) }; a.onAxisMove.add(c); var d = q(this, this.onJoystickButtonDown); c = function (b) { d(a, b) }; a.onButtonDown.add(c); var e = q(this, this.onJoystickButtonUp); c = function (b) { e(a, b) }; a.onButtonUp.add(c); var g = q(this, this.onJoystickDisconnect); a.onDisconnect.add(function () { g(a) }); var f = q(this, this.onJoystickHatMove); c = function (b, c) { f(a, b, c) }; a.onHatMove.add(c); var v = q(this, this.onJoystickTrackballMove); c = function (b, c, d) { v(a, b, c, d) }; a.onTrackballMove.add(c) }, __onModuleExit: function (a) { this.__backend.exit() }, __onWindowClose: function (a) { if (this.__window == a) this.onWindowClose(); this.__removeWindow(a) }, __unregisterLimeModule: function (a) { a.onUpdate.remove(q(this, this.update)); a.onExit.remove(q(this, this.__onModuleExit)); a.onExit.remove(q(this, this.onModuleExit)); Pd.onConnect.remove(q(this, this.__onGamepadConnect)); bd.onConnect.remove(q(this, this.__onJoystickConnect)); sd.onCancel.remove(q(this, this.onTouchCancel)); sd.onStart.remove(q(this, this.onTouchStart)); sd.onMove.remove(q(this, this.onTouchMove)); sd.onEnd.remove(q(this, this.onTouchEnd)); this.onModuleExit(0) }, get_preloader: function () { return this.__preloader }, get_window: function () { return this.__window }, get_windows: function () { return this.__windows }, __class__: zd, __properties__: {get_windows: "get_windows", get_window: "get_window", get_preloader: "get_preloader"} }); var or = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app.Event"] = or; or.__name__ = "lime.app.Event"; or.prototype = { canceled: null, __listeners: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, dispatch: null, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __class__: or }; var ob = function (a, b) { null == b && (b = !1); if (null != a) if (b) b = new fe, b.future = this, We.queue({ promise: b, work: a }); else try { this.value = a(), this.isComplete = !0 } catch (c) { ra.lastError = c, this.error = I.caught(c).unwrap(), this.isError = !0 } }; k["lime.app.Future"] = ob; ob.__name__ = "lime.app.Future"; ob.ofEvents = function (a, b, c) { var d = new fe; a.add(function (a) { d.complete(a) }, !0); null != b && b.add(function (a) { d.error(a) }, !0); null != c && c.add(function (a, b) { d.progress(a, b) }, !0); return d.future }; ob.withError = function (a) { var b = new ob; b.isError = !0; b.error = a; return b }; ob.withValue = function (a) { var b = new ob; b.isComplete = !0; b.value = a; return b }; ob.prototype = { error: null, isComplete: null, isError: null, value: null, __completeListeners: null, __errorListeners: null, __progressListeners: null, onComplete: function (a) { null != a && (this.isComplete ? a(this.value) : this.isError || (null == this.__completeListeners && (this.__completeListeners = []), this.__completeListeners.push(a))); return this }, onError: function (a) { null != a && (this.isError ? a(this.error) : this.isComplete || (null == this.__errorListeners && (this.__errorListeners = []), this.__errorListeners.push(a))); return this }, onProgress: function (a) { null != a && (null == this.__progressListeners && (this.__progressListeners = []), this.__progressListeners.push(a)); return this }, ready: function (a) { this.isComplete || this.isError || Qa.warn("Cannot block thread in JavaScript", { fileName: "lime/app/Future.hx", lineNumber: 208, className: "lime.app.Future", methodName: "ready" }); return this }, result: function (a) { null == a && (a = -1); this.ready(a); return this.isComplete ? this.value : null }, then: function (a) { if (this.isComplete) return a(this.value); if (this.isError) { var b = new ob; b.isError = !0; b.error = this.error; return b } var c = new fe; this.onError(q(c, c.error)); this.onProgress(q(c, c.progress)); this.onComplete(function (b) { b = a(b); b.onError(q(c, c.error)); b.onComplete(q(c, c.complete)) }); return c.future }, __class__: ob }; var We = function () { }; k["lime.app._Future.FutureWork"] = We; We.__name__ = "lime.app._Future.FutureWork"; We.queue = function (a) { null == We.threadPool && (We.threadPool = new Bo, We.threadPool.doWork.add(We.threadPool_doWork), We.threadPool.onComplete.add(We.threadPool_onComplete), We.threadPool.onError.add(We.threadPool_onError)); We.threadPool.queue(a) }; We.threadPool_doWork = function (a) { try { var b = a.work(); We.threadPool.sendComplete({promise: a.promise, result: b}) } catch (c) { ra.lastError = c, b = I.caught(c).unwrap(), We.threadPool.sendError({promise: a.promise, error: b}) } }; We.threadPool_onComplete = function (a) { a.promise.complete(a.result) }; We.threadPool_onError = function (a) { a.promise.error(a.error) }; var fe = function () { this.future = new ob }; k["lime.app.Promise"] = fe; fe.__name__ = "lime.app.Promise"; fe.prototype = { future: null, isComplete: null, isError: null, complete: function (a) { if (!this.future.isError && (this.future.isComplete = !0, this.future.value = a, null != this.future.__completeListeners)) { for (var b = 0, c = this.future.__completeListeners; b < c.length;) { var d = c[b]; ++b; d(a) } this.future.__completeListeners = null } return this }, completeWith: function (a) { a.onComplete(q(this, this.complete)); a.onError(q(this, this.error)); a.onProgress(q(this, this.progress)); return this }, error: function (a) { if (!this.future.isComplete && (this.future.isError = !0, this.future.error = a, null != this.future.__errorListeners)) { for (var b = 0, c = this.future.__errorListeners; b < c.length;) { var d = c[b]; ++b; d(a) } this.future.__errorListeners = null } return this }, progress: function (a, b) { if (!this.future.isError && !this.future.isComplete && null != this.future.__progressListeners) for (var c = 0, d = this.future.__progressListeners; c < d.length;) { var e = d[c]; ++c; e(a, b) } return this }, get_isComplete: function () { return this.future.isComplete }, get_isError: function () { return this.future.isError }, __class__: fe, __properties__: {get_isError: "get_isError", get_isComplete: "get_isComplete"} }; var Yh = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Dynamic_Void"] = Yh; Yh.__name__ = "lime.app._Event_Dynamic_Void"; Yh.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: Yh }; var Co = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Float_Float_Float_Void"] = Co; Co.__name__ = "lime.app._Event_Float_Float_Float_Void"; Co.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Co }; var Do = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Float_Float_Int_Void"] = Do; Do.__name__ = "lime.app._Event_Float_Float_Int_Void"; Do.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Do }; var Rj = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Float_Float_Void"] = Rj; Rj.__name__ = "lime.app._Event_Float_Float_Void"; Rj.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: Rj }; var Eo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Float_Float_lime_ui_MouseButton_Void"] = Eo; Eo.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseButton_Void"; Eo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Eo }; var Fo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void"] = Fo; Fo.__name__ = "lime.app._Event_Float_Float_lime_ui_MouseWheelMode_Void"; Fo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Fo }; var Go = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Int_Float_Float_Void"] = Go; Go.__name__ = "lime.app._Event_Int_Float_Float_Void"; Go.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Go }; var Ho = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Int_Float_Void"] = Ho; Ho.__name__ = "lime.app._Event_Int_Float_Void"; Ho.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: Ho }; var om = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Int_Int_Void"] = om; om.__name__ = "lime.app._Event_Int_Int_Void"; om.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: om }; var Xh = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Int_Void"] = Xh; Xh.__name__ = "lime.app._Event_Int_Void"; Xh.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: Xh }; var Io = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Int_lime_ui_JoystickHatPosition_Void"] = Io; Io.__name__ = "lime.app._Event_Int_lime_ui_JoystickHatPosition_Void"; Io.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: Io }; var Jo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_String_Int_Int_Void"] = Jo; Jo.__name__ = "lime.app._Event_String_Int_Int_Void"; Jo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b, c) { this.canceled = !1; for (var d = this.__listeners, e = this.__repeat, g = 0; g < d.length && (d[g](a, b, c), e[g] ? ++g : this.remove(d[g]), !this.canceled);) ; }, __class__: Jo }; var pm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_String_Void"] = pm; pm.__name__ = "lime.app._Event_String_Void"; pm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: pm }; var Rd = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_Void_Void"] = Rd; Rd.__name__ = "lime.app._Event_Void_Void"; Rd.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function () { this.canceled = !1; for (var a = this.__listeners, b = this.__repeat, c = 0; c < a.length && (a[c](), b[c] ? ++c : this.remove(a[c]), !this.canceled);) ; }, __class__: Rd }; var qm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_graphics_RenderContext_Void"] = qm; qm.__name__ = "lime.app._Event_lime_graphics_RenderContext_Void"; qm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: qm }; var Ko = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_GamepadAxis_Float_Void"] = Ko; Ko.__name__ = "lime.app._Event_lime_ui_GamepadAxis_Float_Void"; Ko.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: Ko }; var rm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_GamepadButton_Void"] = rm; rm.__name__ = "lime.app._Event_lime_ui_GamepadButton_Void"; rm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: rm }; var Lo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_Gamepad_Void"] = Lo; Lo.__name__ = "lime.app._Event_lime_ui_Gamepad_Void"; Lo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: Lo }; var Mo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_Joystick_Void"] = Mo; Mo.__name__ = "lime.app._Event_lime_ui_Joystick_Void"; Mo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: Mo }; var sm = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"] = sm; sm.__name__ = "lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"; sm.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a, b) { this.canceled = !1; for (var c = this.__listeners, d = this.__repeat, e = 0; e < c.length && (c[e](a, b), d[e] ? ++e : this.remove(c[e]), !this.canceled);) ; }, __class__: sm }; var Mi = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_Touch_Void"] = Mi; Mi.__name__ = "lime.app._Event_lime_ui_Touch_Void"; Mi.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: Mi }; var zo = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_lime_ui_Window_Void"] = zo; zo.__name__ = "lime.app._Event_lime_ui_Window_Void"; zo.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: zo }; var pr = function () { this.canceled = !1; this.__listeners = []; this.__priorities = []; this.__repeat = [] }; k["lime.app._Event_ofEvents_T_Void"] = pr; pr.__name__ = "lime.app._Event_ofEvents_T_Void"; pr.prototype = { canceled: null, __repeat: null, __priorities: null, add: function (a, b, c) { null == c && (c = 0); null == b && (b = !1); for (var d = 0, e = this.__priorities.length; d < e;) { var g = d++; if (c > this.__priorities[g]) { this.__listeners.splice(g, 0, a); this.__priorities.splice(g, 0, c); this.__repeat.splice(g, 0, !b); return } } this.__listeners.push(a); this.__priorities.push(c); this.__repeat.push(!b) }, cancel: function () { this.canceled = !0 }, has: function (a) { for (var b = 0, c = this.__listeners; b < c.length;) { var d = c[b]; ++b; if (V.compareMethods(d, a)) return !0 } return !1 }, remove: function (a) { for (var b = this.__listeners.length; 0 <= --b;) V.compareMethods(this.__listeners[b], a) && (this.__listeners.splice(b, 1), this.__priorities.splice(b, 1), this.__repeat.splice(b, 1)) }, removeAll: function () { var a = this.__listeners.length; this.__listeners.splice(0, a); this.__priorities.splice(0, a); this.__repeat.splice(0, a) }, __listeners: null, dispatch: function (a) { this.canceled = !1; for (var b = this.__listeners, c = this.__repeat, d = 0; d < b.length && (b[d](a), c[d] ? ++d : this.remove(b[d]), !this.canceled);) ; }, __class__: pr }; var Lb = function (a, b, c, d, e, g, f) { null == e && (e = -1); null == d && (d = -1); null == c && (c = 0); null == b && (b = 0); this.offsetX = b; this.offsetY = c; this.width = d; this.height = e; this.version = 0; null == f && (f = De.CANVAS); this.type = f; if (null == a) { if (0 < d && 0 < e) switch (this.type._hx_index) { case 0: this.buffer = new Uf(null, d, e); va.createCanvas(this, d, e); null != g && 0 != g && this.fillRect(new Vd(0, 0, d, e), g); break; case 1: a = d * e * 4, a = null != a ? new Uint8Array(a) : null, this.buffer = new Uf(a, d, e), null != g && 0 != g && this.fillRect(new Vd(0, 0, d, e), g) } } else this.__fromImageBuffer(a) }; k["lime.graphics.Image"] = Lb; Lb.__name__ = "lime.graphics.Image"; Lb.fromBase64 = function (a, b) { if (null == a) return null; var c = new Lb; c.__fromBase64(a, b); return c }; Lb.fromBitmapData = function (a) { return null == a ? null : a.image }; Lb.fromBytes = function (a) { if (null == a) return null; var b = new Lb; return b.__fromBytes(a) ? b : null }; Lb.fromCanvas = function (a) { if (null == a) return null; var b = new Uf(null, a.width, a.height); b.set_src(a); a = new Lb(b); a.type = De.CANVAS; return a }; Lb.fromFile = function (a) { if (null == a) return null; var b = new Lb; return b.__fromFile(a) ? b : null }; Lb.fromImageElement = function (a) { if (null == a) return null; var b = new Uf(null, a.width, a.height); b.set_src(a); a = new Lb(b); a.type = De.CANVAS; return a }; Lb.loadFromBase64 = function (a, b) { return null == a || null == b ? ob.withValue(null) : Ua.loadImage("data:" + b + ";base64," + a) }; Lb.loadFromBytes = function (a) { if (null == a) return ob.withValue(null); if (Lb.__isPNG(a)) var b = "image/png"; else if (Lb.__isJPG(a)) b = "image/jpeg"; else if (Lb.__isGIF(a)) b = "image/gif"; else if (Lb.__isWebP(a)) b = "image/webp"; else return ob.withValue(null); return Ua.loadImageFromBytes(a, b) }; Lb.loadFromFile = function (a) { return null == a ? ob.withValue(null) : Ua.loadImage(a) }; Lb.__isGIF = function (a) { if (null == a || 6 > a.length) return !1; a = a.getString(0, 6); return "GIF87a" != a ? "GIF89a" == a : !0 }; Lb.__isJPG = function (a) { return null == a || 4 > a.length ? !1 : 255 == a.b[0] && 216 == a.b[1] && 255 == a.b[a.length - 2] ? 217 == a.b[a.length - 1] : !1 }; Lb.__isPNG = function (a) { return null == a || 8 > a.length ? !1 : 137 == a.b[0] && 80 == a.b[1] && 78 == a.b[2] && 71 == a.b[3] && 13 == a.b[4] && 10 == a.b[5] && 26 == a.b[6] ? 10 == a.b[7] : !1 }; Lb.__isWebP = function (a) { return null == a || 16 > a.length ? !1 : "RIFF" == a.getString(0, 4) ? "WEBP" == a.getString(8, 4) : !1 }; Lb.prototype = { buffer: null, dirty: null, height: null, offsetX: null, offsetY: null, rect: null, type: null, version: null, width: null, x: null, y: null, clone: function () { if (null != this.buffer) { this.type == De.CANVAS ? va.convertToCanvas(this) : va.convertToData(this); var a = new Lb(this.buffer.clone(), this.offsetX, this.offsetY, this.width, this.height, null, this.type); a.version = this.version; return a } return new Lb(null, this.offsetX, this.offsetY, this.width, this.height, null, this.type) }, colorTransform: function (a, b) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: va.colorTransform(this, a, b); break; case 1: va.convertToData(this); Va.colorTransform(this, a, b); break; case 2: a.offset(this.offsetX, this.offsetY), this.buffer.__srcBitmapData.colorTransform(a.__toFlashRectangle(), Qd.__toFlashColorTransform(b)) } }, copyChannel: function (a, b, c, d, e) { b = this.__clipRect(b); if (null != this.buffer && null != b && !(e == qf.ALPHA && !this.get_transparent() || 0 >= b.width || 0 >= b.height)) switch (b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), this.type._hx_index) { case 0: va.copyChannel(this, a, b, c, d, e); break; case 1: va.convertToData(this); va.convertToData(a); Va.copyChannel(this, a, b, c, d, e); break; case 2: switch (d._hx_index) { case 0: var g = 1; break; case 1: g = 2; break; case 2: g = 4; break; case 3: g = 8 } switch (e._hx_index) { case 0: var f = 1; break; case 1: f = 2; break; case 2: f = 4; break; case 3: f = 8 } b.offset(a.offsetX, a.offsetY); c.offset(this.offsetX, this.offsetY); this.buffer.__srcBitmapData.copyChannel(a.buffer.get_src(), b.__toFlashRectangle(), c.__toFlashPoint(), g, f) } }, copyPixels: function (a, b, c, d, e, g) { null == g && (g = !1); if (null != this.buffer && null != a && !(0 >= b.width || 0 >= b.height || 0 >= this.width || 0 >= this.height)) switch (b.x + b.width > a.width && (b.width = a.width - b.x), b.y + b.height > a.height && (b.height = a.height - b.y), 0 > b.x && (b.width += b.x, b.x = 0), 0 > b.y && (b.height += b.y, b.y = 0), c.x + b.width > this.width && (b.width = this.width - c.x), c.y + b.height > this.height && (b.height = this.height - c.y), 0 > c.x && (b.width += c.x, b.x -= c.x, c.x = 0), 0 > c.y && (b.height += c.y, b.y -= c.y, c.y = 0), a == this && c.x < b.get_right() && c.y < b.get_bottom() && (a = this.clone()), d == a && (null == e || 0 == e.x && 0 == e.y) && (e = d = null), this.type._hx_index) { case 0: null != d ? (va.convertToData(this), va.convertToData(a), null != d && va.convertToData(d), Va.copyPixels(this, a, b, c, d, e, g)) : (va.convertToCanvas(this), va.convertToCanvas(a), va.copyPixels(this, a, b, c, d, e, g)); break; case 1: va.convertToData(this); va.convertToData(a); null != d && va.convertToData(d); Va.copyPixels(this, a, b, c, d, e, g); break; case 2: b.offset(a.offsetX, a.offsetY), c.offset(this.offsetX, this.offsetY), null != d && null != e && e.offset(d.offsetX, d.offsetY), this.buffer.__srcBitmapData.copyPixels(a.buffer.__srcBitmapData, b.__toFlashRectangle(), c.__toFlashPoint(), null != d ? d.buffer.get_src() : null, null != e ? e.__toFlashPoint() : null, g) } }, encode: function (a, b) { null == b && (b = 90); if (null == a) return Oj.encode(this); switch (a._hx_index) { case 0: return mr.encode(this); case 1: return lm.encode(this, b); case 2: return Oj.encode(this) } }, fillRect: function (a, b, c) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: va.fillRect(this, a, b, c); break; case 1: va.convertToData(this); if (0 == this.buffer.data.length) break; Va.fillRect(this, a, b, c); break; case 2: a.offset(this.offsetX, this.offsetY); if (null == c) b = (b & 255) << 24 | (b >>> 24 & 255) << 16 | (b >>> 16 & 255) << 8 | b >>> 8 & 255; else switch (c) { case 1: break; case 2: b = (b & 255) << 24 | (b >>> 8 & 255) << 16 | (b >>> 16 & 255) << 8 | b >>> 24 & 255; break; default: b = (b & 255) << 24 | (b >>> 24 & 255) << 16 | (b >>> 16 & 255) << 8 | b >>> 8 & 255 } this.buffer.__srcBitmapData.fillRect(a.__toFlashRectangle(), b) } }, floodFill: function (a, b, c, d) { if (null != this.buffer) switch (this.type._hx_index) { case 0: va.floodFill(this, a, b, c, d); break; case 1: va.convertToData(this); Va.floodFill(this, a, b, c, d); break; case 2: if (null == d) c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255; else switch (d) { case 1: break; case 2: c = (c & 255) << 24 | (c >>> 8 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 24 & 255; break; default: c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255 } this.buffer.__srcBitmapData.floodFill(a + this.offsetX, b + this.offsetY, c) } }, getColorBoundsRect: function (a, b, c, d) { null == c && (c = !0); if (null == this.buffer) return null; switch (this.type._hx_index) { case 0: return va.convertToData(this), Va.getColorBoundsRect(this, a, b, c, d); case 1: return Va.getColorBoundsRect(this, a, b, c, d); case 2: return a = this.buffer.__srcBitmapData.getColorBoundsRect(a, b, c), new Vd(a.x, a.y, a.width, a.height); default: return null } }, getPixel: function (a, b, c) { if (null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height) return 0; switch (this.type._hx_index) { case 0: return va.getPixel(this, a, b, c); case 1: return va.convertToData(this), Va.getPixel(this, a, b, c); case 2: a = this.buffer.__srcBitmapData.getPixel(a + this.offsetX, b + this.offsetY); if (null == c) return (a >>> 16 & 255) << 24 | (a >>> 8 & 255) << 16 | (a & 255) << 8 | a >>> 24 & 255; switch (c) { case 1: return a; case 2: return (a & 255) << 24 | (a >>> 8 & 255) << 16 | (a >>> 16 & 255) << 8 | a >>> 24 & 255; default: return (a >>> 16 & 255) << 24 | (a >>> 8 & 255) << 16 | (a & 255) << 8 | a >>> 24 & 255 } default: return 0 } }, getPixel32: function (a, b, c) { if (null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height) return 0; switch (this.type._hx_index) { case 0: return va.getPixel32(this, a, b, c); case 1: return va.convertToData(this), Va.getPixel32(this, a, b, c); case 2: a = this.buffer.__srcBitmapData.getPixel32(a + this.offsetX, b + this.offsetY); if (null == c) return (a >>> 16 & 255) << 24 | (a >>> 8 & 255) << 16 | (a & 255) << 8 | a >>> 24 & 255; switch (c) { case 1: return a; case 2: return (a & 255) << 24 | (a >>> 8 & 255) << 16 | (a >>> 16 & 255) << 8 | a >>> 24 & 255; default: return (a >>> 16 & 255) << 24 | (a >>> 8 & 255) << 16 | (a & 255) << 8 | a >>> 24 & 255 } default: return 0 } }, getPixels: function (a, b) { if (null == this.buffer) return null; switch (this.type._hx_index) { case 0: return va.getPixels(this, a, b); case 1: return va.convertToData(this), Va.getPixels(this, a, b); case 2: return null; default: return null } }, merge: function (a, b, c, d, e, g, f) { if (null != this.buffer && null != a) switch (this.type._hx_index) { case 0: va.convertToCanvas(this); va.merge(this, a, b, c, d, e, g, f); break; case 1: va.convertToData(this); va.convertToData(a); Va.merge(this, a, b, c, d, e, g, f); break; case 2: b.offset(this.offsetX, this.offsetY), this.buffer.__srcBitmapData.merge(a.buffer.__srcBitmapData, b.__toFlashRectangle(), c.__toFlashPoint(), d, e, g, f) } }, resize: function (a, b) { switch (this.type._hx_index) { case 0: va.resize(this, a, b); break; case 1: Va.resize(this, a, b) } this.buffer.width = a; this.buffer.height = b; this.offsetY = this.offsetX = 0; this.width = a; this.height = b }, scroll: function (a, b) { if (null != this.buffer) switch (this.type._hx_index) { case 0: va.scroll(this, a, b); break; case 1: this.copyPixels(this, this.get_rect(), new be(a, b)); break; case 2: this.buffer.__srcBitmapData.scroll(a + this.offsetX, b + this.offsetX) } }, setPixel: function (a, b, c, d) { if (!(null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height)) switch (this.type._hx_index) { case 0: va.setPixel(this, a, b, c, d); break; case 1: va.convertToData(this); Va.setPixel(this, a, b, c, d); break; case 2: if (null == d) c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255; else switch (d) { case 1: break; case 2: c = (c & 255) << 24 | (c >>> 8 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 24 & 255; break; default: c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255 } this.buffer.__srcBitmapData.setPixel(a + this.offsetX, b + this.offsetX, c) } }, setPixel32: function (a, b, c, d) { if (!(null == this.buffer || 0 > a || 0 > b || a >= this.width || b >= this.height)) switch (this.type._hx_index) { case 0: va.setPixel32(this, a, b, c, d); break; case 1: va.convertToData(this); Va.setPixel32(this, a, b, c, d); break; case 2: if (null == d) c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255; else switch (d) { case 1: break; case 2: c = (c & 255) << 24 | (c >>> 8 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 24 & 255; break; default: c = (c & 255) << 24 | (c >>> 24 & 255) << 16 | (c >>> 16 & 255) << 8 | c >>> 8 & 255 } this.buffer.__srcBitmapData.setPixel32(a + this.offsetX, b + this.offsetY, c) } }, setPixels: function (a, b, c, d) { a = this.__clipRect(a); if (null != this.buffer && null != a) switch (null == d && (d = Eg.BIG_ENDIAN), this.type._hx_index) { case 0: va.setPixels(this, a, b, c, d); break; case 1: va.convertToData(this), Va.setPixels(this, a, b, c, d) } }, threshold: function (a, b, c, d, e, g, f, v, p) { null == v && (v = !1); null == f && (f = -1); null == g && (g = 0); if (null == this.buffer || null == a || null == b) return 0; switch (this.type._hx_index) { case 0: case 1: return va.convertToData(this), va.convertToData(a), Va.threshold(this, a, b, c, d, e, g, f, v, p); case 2: if (null == p) { var r = g; g = (r & 255) << 24 | (r >>> 24 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 8 & 255 } else switch (p) { case 1: break; case 2: r = g; g = (r & 255) << 24 | (r >>> 8 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 24 & 255; break; default: r = g, g = (r & 255) << 24 | (r >>> 24 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 8 & 255 } if (null == p) r = f, f = (r & 255) << 24 | (r >>> 24 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 8 & 255; else switch (p) { case 1: break; case 2: r = f; f = (r & 255) << 24 | (r >>> 8 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 24 & 255; break; default: r = f, f = (r & 255) << 24 | (r >>> 24 & 255) << 16 | (r >>> 16 & 255) << 8 | r >>> 8 & 255 } b.offset(a.offsetX, a.offsetY); c.offset(this.offsetX, this.offsetY); return this.buffer.__srcBitmapData.threshold(a.buffer.get_src(), b.__toFlashRectangle(), c.__toFlashPoint(), d, e, g, f, v) } return 0 }, __clipRect: function (a) { return null == a || 0 > a.x && (a.width -= -a.x, a.x = 0, 0 >= a.x + a.width) || 0 > a.y && (a.height -= -a.y, a.y = 0, 0 >= a.y + a.height) || a.x + a.width >= this.width && (a.width -= a.x + a.width - this.width, 0 >= a.width) || a.y + a.height >= this.height && (a.height -= a.y + a.height - this.height, 0 >= a.height) ? null : a }, __fromBase64: function (a, b, c) { var d = this, e = new Image; e.addEventListener("load", function (a) { d.buffer = new Uf(null, e.width, e.height); d.buffer.__srcImage = e; d.offsetX = 0; d.offsetY = 0; d.width = d.buffer.width; d.height = d.buffer.height; null != c && c(d) }, !1); e.src = "data:" + b + ";base64," + a }, __fromBytes: function (a, b) { if (Lb.__isPNG(a)) var c = "image/png"; else if (Lb.__isJPG(a)) c = "image/jpeg"; else if (Lb.__isGIF(a)) c = "image/gif"; else return !1; this.__fromBase64(Tf.encode(a), c, b); return !0 }, __fromFile: function (a, b, c) { var d = this, e = new Image; Ua.__isSameOrigin(a) || (e.crossOrigin = "Anonymous"); e.onload = function (a) { d.buffer = new Uf(null, e.width, e.height); d.buffer.__srcImage = e; d.width = e.width; d.height = e.height; null != b && b(d) }; e.onerror = function (a) { null != c && c() }; e.src = a; return !0 }, __fromImageBuffer: function (a) { this.buffer = a; null != a && (-1 == this.width && (this.width = a.width), -1 == this.height && (this.height = a.height)) }, get_data: function () { null == this.buffer.data && 0 < this.buffer.width && 0 < this.buffer.height && va.convertToData(this); return this.buffer.data }, set_data: function (a) { return this.buffer.data = a }, get_format: function () { return this.buffer.format }, set_format: function (a) { this.buffer.format != a && 1 == this.type._hx_index && Va.setFormat(this, a); return this.buffer.format = a }, get_powerOfTwo: function () { return 0 != this.buffer.width && (this.buffer.width & ~this.buffer.width + 1) == this.buffer.width ? 0 != this.buffer.height ? (this.buffer.height & ~this.buffer.height + 1) == this.buffer.height : !1 : !1 }, set_powerOfTwo: function (a) { if (a != this.get_powerOfTwo()) { for (var b = 1, c = 1; b < this.buffer.width;) b <<= 1; for (; c < this.buffer.height;) c <<= 1; if (b == this.buffer.width && c == this.buffer.height) return a; switch (this.type._hx_index) { case 0: va.convertToData(this); Va.resizeBuffer(this, b, c); break; case 1: Va.resizeBuffer(this, b, c) } } return a }, get_premultiplied: function () { return this.buffer.premultiplied }, set_premultiplied: function (a) { if (a && !this.buffer.premultiplied) switch (this.type._hx_index) { case 0: case 1: va.convertToData(this), Va.multiplyAlpha(this) } else !a && this.buffer.premultiplied && 1 == this.type._hx_index && (va.convertToData(this), Va.unmultiplyAlpha(this)); return a }, get_rect: function () { return new Vd(0, 0, this.width, this.height) }, get_src: function () { null != this.buffer.__srcCanvas || null == this.buffer.data && this.type != De.DATA || va.convertToCanvas(this); return this.buffer.get_src() }, set_src: function (a) { return this.buffer.set_src(a) }, get_transparent: function () { return null == this.buffer ? !1 : this.buffer.transparent }, set_transparent: function (a) { return null == this.buffer ? !1 : this.buffer.transparent = a }, __class__: Lb, __properties__: { set_transparent: "set_transparent", get_transparent: "get_transparent", set_src: "set_src", get_src: "get_src", get_rect: "get_rect", set_premultiplied: "set_premultiplied", get_premultiplied: "get_premultiplied", set_powerOfTwo: "set_powerOfTwo", get_powerOfTwo: "get_powerOfTwo", set_format: "set_format", get_format: "get_format", set_data: "set_data", get_data: "get_data" } }; var Uf = function (a, b, c, d, e) { null == d && (d = 32); null == c && (c = 0); null == b && (b = 0); this.data = a; this.width = b; this.height = c; this.bitsPerPixel = d; this.format = null == e ? 0 : e; this.premultiplied = !1; this.transparent = !0 }; k["lime.graphics.ImageBuffer"] = Uf; Uf.__name__ = "lime.graphics.ImageBuffer"; Uf.prototype = { bitsPerPixel: null, data: null, format: null, height: null, premultiplied: null, transparent: null, width: null, __srcBitmapData: null, __srcCanvas: null, __srcContext: null, __srcCustom: null, __srcImage: null, __srcImageData: null, clone: function () { var a = new Uf(this.data, this.width, this.height, this.bitsPerPixel); if (null != this.data) { var b = this.data.byteLength, c = null, d = null, e = null, g = null, f = null; b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != d ? new Uint8Array(d.__array) : null != e ? new Uint8Array(e) : null != g ? null == f ? new Uint8Array(g, 0) : new Uint8Array(g, 0, f) : null; a.data = b; d = c = b = null; e = this.data; f = g = null; b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != d ? new Uint8Array(d.__array) : null != e ? new Uint8Array(e) : null != g ? null == f ? new Uint8Array(g, 0) : new Uint8Array(g, 0, f) : null; a.data.set(b) } else null != this.__srcImageData ? (a.__srcCanvas = window.document.createElement("canvas"), a.__srcContext = a.__srcCanvas.getContext("2d"), a.__srcCanvas.width = this.__srcImageData.width, a.__srcCanvas.height = this.__srcImageData.height, a.__srcImageData = a.__srcContext.createImageData(this.__srcImageData.width, this.__srcImageData.height), b = new Uint8ClampedArray(this.__srcImageData.data), a.__srcImageData.data.set(b)) : null != this.__srcCanvas ? (a.__srcCanvas = window.document.createElement("canvas"), a.__srcContext = a.__srcCanvas.getContext("2d"), a.__srcCanvas.width = this.__srcCanvas.width, a.__srcCanvas.height = this.__srcCanvas.height, a.__srcContext.drawImage(this.__srcCanvas, 0, 0)) : a.__srcImage = this.__srcImage; a.bitsPerPixel = this.bitsPerPixel; a.format = this.format; a.premultiplied = this.premultiplied; a.transparent = this.transparent; return a }, get_src: function () { return null != this.__srcImage ? this.__srcImage : this.__srcCanvas }, set_src: function (a) { a instanceof Image ? this.__srcImage = a : a instanceof HTMLCanvasElement && (this.__srcCanvas = a, this.__srcContext = this.__srcCanvas.getContext("2d")); return a }, get_stride: function () { return this.width * (this.bitsPerPixel / 8 | 0) }, __class__: Uf, __properties__: {get_stride: "get_stride", set_src: "set_src", get_src: "get_src"} }; var qf = A["lime.graphics.ImageChannel"] = { __ename__: "lime.graphics.ImageChannel", __constructs__: null, RED: { _hx_name: "RED", _hx_index: 0, __enum__: "lime.graphics.ImageChannel", toString: t }, GREEN: {_hx_name: "GREEN", _hx_index: 1, __enum__: "lime.graphics.ImageChannel", toString: t}, BLUE: {_hx_name: "BLUE", _hx_index: 2, __enum__: "lime.graphics.ImageChannel", toString: t}, ALPHA: {_hx_name: "ALPHA", _hx_index: 3, __enum__: "lime.graphics.ImageChannel", toString: t} }; qf.__constructs__ = [qf.RED, qf.GREEN, qf.BLUE, qf.ALPHA]; var tm = A["lime.graphics.ImageFileFormat"] = { __ename__: "lime.graphics.ImageFileFormat", __constructs__: null, BMP: { _hx_name: "BMP", _hx_index: 0, __enum__: "lime.graphics.ImageFileFormat", toString: t }, JPEG: {_hx_name: "JPEG", _hx_index: 1, __enum__: "lime.graphics.ImageFileFormat", toString: t}, PNG: {_hx_name: "PNG", _hx_index: 2, __enum__: "lime.graphics.ImageFileFormat", toString: t} }; tm.__constructs__ = [tm.BMP, tm.JPEG, tm.PNG]; var De = A["lime.graphics.ImageType"] = { __ename__: "lime.graphics.ImageType", __constructs__: null, CANVAS: {_hx_name: "CANVAS", _hx_index: 0, __enum__: "lime.graphics.ImageType", toString: t}, DATA: {_hx_name: "DATA", _hx_index: 1, __enum__: "lime.graphics.ImageType", toString: t}, FLASH: { _hx_name: "FLASH", _hx_index: 2, __enum__: "lime.graphics.ImageType", toString: t }, CUSTOM: {_hx_name: "CUSTOM", _hx_index: 3, __enum__: "lime.graphics.ImageType", toString: t} }; De.__constructs__ = [De.CANVAS, De.DATA, De.FLASH, De.CUSTOM]; var wo = function () { }; k["lime.graphics.RenderContext"] = wo; wo.__name__ = "lime.graphics.RenderContext"; wo.prototype = { attributes: null, cairo: null, canvas2D: null, dom: null, flash: null, gl: null, gles2: null, gles3: null, type: null, version: null, webgl: null, webgl2: null, window: null, __class__: wo }; var is = { bufferData: function (a, b, c, d, e, g) { null != e ? a.bufferData(b, c, d, e, g) : a.bufferData(b, c, d) }, bufferSubData: function (a, b, c, d, e, g) { null != e ? a.bufferSubData(b, c, d, e, g) : a.bufferSubData(b, c, d) }, compressedTexImage2D: function (a, b, c, d, e, g, f, v, p, m) { null != p ? a.compressedTexImage2D(b, c, d, e, g, f, v, p, m) : a.compressedTexImage2D(b, c, d, e, g, f, v) }, compressedTexSubImage2D: function (a, b, c, d, e, g, f, v, p, m, h) { null != m ? a.compressedTexSubImage2D(b, c, d, e, g, f, v, p, m, h) : a.compressedTexSubImage2D(b, c, d, e, g, f, v, p) }, getBufferSubData: function (a, b, c, d, e, g) { null != e ? a.getBufferSubData(b, c, d, e, g) : a.getBufferSubData(b, c, d) }, readPixels: function (a, b, c, d, e, g, f, v, p) { null != p ? a.readPixels(b, c, d, e, g, f, v, p) : a.readPixels(b, c, d, e, g, f, v) }, texImage2D: function (a, b, c, d, e, g, f, v, p, m, h) { null != h ? a.texImage2D(b, c, d, e, g, f, v, p, m, h) : null != v ? a.texImage2D(b, c, d, e, g, f, v, p, m) : a.texImage2D(b, c, d, e, g, f) }, texSubImage2D: function (a, b, c, d, e, g, f, v, p, m, h) { null != h ? a.texSubImage2D(b, c, d, e, g, f, v, p, m, h) : null != p ? a.texSubImage2D(b, c, d, e, g, f, v, p, m) : a.texSubImage2D(b, c, d, e, g, f, v) }, uniform1fv: function (a, b, c, d, e) { null != d ? a.uniform1fv(b, c, d, e) : a.uniform1fv(b, c) }, uniform1iv: function (a, b, c, d, e) { null != d ? a.uniform1iv(b, c, d, e) : a.uniform1iv(b, c) }, uniform2fv: function (a, b, c, d, e) { null != d ? a.uniform2fv(b, c, d, e) : a.uniform2fv(b, c) }, uniform2iv: function (a, b, c, d, e) { null != d ? a.uniform2iv(b, c, d, e) : a.uniform2iv(b, c) }, uniform3fv: function (a, b, c, d, e) { null != d ? a.uniform3fv(b, c, d, e) : a.uniform3fv(b, c) }, uniform3iv: function (a, b, c, d, e) { null != d ? a.uniform3iv(b, c, d, e) : a.uniform3iv(b, c) }, uniform4fv: function (a, b, c, d, e) { null != d ? a.uniform4fv(b, c, d, e) : a.uniform4fv(b, c) }, uniform4iv: function (a, b, c, d, e) { null != d ? a.uniform4iv(b, c, d, e) : a.uniform4iv(b, c) }, uniformMatrix2fv: function (a, b, c, d, e, g) { null != e ? a.uniformMatrix2fv(b, c, d, e, g) : a.uniformMatrix2fv(b, c, d) }, uniformMatrix3fv: function (a, b, c, d, e, g) { null != e ? a.uniformMatrix3fv(b, c, d, e, g) : a.uniformMatrix3fv(b, c, d) }, uniformMatrix4fv: function (a, b, c, d, e, g) { null != e ? a.uniformMatrix4fv(b, c, d, e, g) : a.uniformMatrix4fv(b, c, d) }, fromGL: function (a) { return null }, fromRenderContext: function (a) { return a.webgl2 }, toWebGLRenderContext: function (a) { return a } }, fc = { bufferData: function (a, b, c, d) { a.bufferData(b, c, d) }, bufferSubData: function (a, b, c, d) { a.bufferSubData(b, c, d) }, compressedTexImage2D: function (a, b, c, d, e, g, f, v) { a.compressedTexImage2D(b, c, d, e, g, f, v) }, compressedTexSubImage2D: function (a, b, c, d, e, g, f, v, p) { a.compressedTexSubImage2D(b, c, d, e, g, f, v, p) }, readPixels: function (a, b, c, d, e, g, f, v) { a.readPixels(b, c, d, e, g, f, v) }, texImage2D: function (a, b, c, d, e, g, f, v, p, m) { null != v ? a.texImage2D(b, c, d, e, g, f, v, p, m) : a.texImage2D(b, c, d, e, g, f) }, texSubImage2D: function (a, b, c, d, e, g, f, v, p, m) { null != p ? a.texSubImage2D(b, c, d, e, g, f, v, p, m) : a.texSubImage2D(b, c, d, e, g, f, v) }, uniformMatrix2fv: function (a, b, c, d) { a.uniformMatrix2fv(b, c, d) }, uniformMatrix3fv: function (a, b, c, d) { a.uniformMatrix3fv(b, c, d) }, uniformMatrix4fv: function (a, b, c, d) { a.uniformMatrix4fv(b, c, d) }, fromWebGL2RenderContext: function (a) { return a }, fromRenderContext: function (a) { return a.webgl }, fromGL: function (a) { return l.context } }, Sj = function (a) { }; k["lime.graphics.cairo.Cairo"] = Sj; Sj.__name__ = "lime.graphics.cairo.Cairo"; Sj.__properties__ = {get_versionString: "get_versionString", get_version: "get_version"}; Sj.get_version = function () { return 0 }; Sj.get_versionString = function () { return "" }; Sj.prototype = { target: null, userData: null, handle: null, arc: function (a, b, c, d, e) { }, arcNegative: function (a, b, c, d, e) { }, clip: function () { }, clipExtents: function (a, b, c, d) { }, clipPreserve: function () { }, closePath: function () { }, copyPage: function () { }, curveTo: function (a, b, c, d, e, g) { }, fill: function () { }, fillExtents: function (a, b, c, d) { }, fillPreserve: function () { }, getOperator: function () { return 0 }, identityMatrix: function () { }, inClip: function (a, b) { return !1 }, inFill: function (a, b) { return !1 }, inStroke: function (a, b) { return !1 }, lineTo: function (a, b) { }, mask: function (a) { }, maskSurface: function (a, b, c) { }, moveTo: function (a, b) { }, newPath: function () { }, paint: function () { }, paintWithAlpha: function (a) { }, popGroup: function () { return null }, popGroupToSource: function () { }, pushGroup: function () { }, pushGroupWithContent: function (a) { }, recreate: function (a) { }, rectangle: function (a, b, c, d) { }, relCurveTo: function (a, b, c, d, e, g) { }, relLineTo: function (a, b) { }, relMoveTo: function (a, b) { }, resetClip: function () { }, restore: function () { }, rotate: function (a) { }, save: function () { }, scale: function (a, b) { }, setFontSize: function (a) { }, setOperator: function (a) { return a }, setSourceRGB: function (a, b, c) { }, setSourceRGBA: function (a, b, c, d) { }, setSourceSurface: function (a, b, c) { }, showGlyphs: function (a) { }, showPage: function () { }, showText: function (a) { }, status: function () { return 0 }, stroke: function () { }, strokeExtents: function (a, b, c, d) { }, strokePreserve: function () { }, textPath: function (a) { }, transform: function (a) { }, translate: function (a, b) { }, get_antialias: function () { return 0 }, set_antialias: function (a) { return a }, get_currentPoint: function () { return null }, get_dash: function () { return [] }, set_dash: function (a) { return a }, get_dashCount: function () { return 0 }, get_fillRule: function () { return 0 }, set_fillRule: function (a) { return a }, get_fontFace: function () { return 0 }, set_fontFace: function (a) { return a }, get_fontOptions: function () { return null }, set_fontOptions: function (a) { return a }, get_groupTarget: function () { return 0 }, get_hasCurrentPoint: function () { return !1 }, get_lineCap: function () { return 0 }, set_lineCap: function (a) { return a }, get_lineJoin: function () { return 0 }, set_lineJoin: function (a) { return a }, get_lineWidth: function () { return 0 }, set_lineWidth: function (a) { return a }, get_matrix: function () { return null }, set_matrix: function (a) { return a }, get_miterLimit: function () { return 0 }, set_miterLimit: function (a) { return a }, get_source: function () { return 0 }, set_source: function (a) { return a }, get_target: function () { return 0 }, get_tolerance: function () { return 0 }, set_tolerance: function (a) { return a }, __class__: Sj, __properties__: { set_tolerance: "set_tolerance", get_tolerance: "get_tolerance", get_target: "get_target", set_source: "set_source", get_source: "get_source", set_miterLimit: "set_miterLimit", get_miterLimit: "get_miterLimit", set_matrix: "set_matrix", get_matrix: "get_matrix", set_lineWidth: "set_lineWidth", get_lineWidth: "get_lineWidth", set_lineJoin: "set_lineJoin", get_lineJoin: "get_lineJoin", set_lineCap: "set_lineCap", get_lineCap: "get_lineCap", get_hasCurrentPoint: "get_hasCurrentPoint", get_groupTarget: "get_groupTarget", set_fontOptions: "set_fontOptions", get_fontOptions: "get_fontOptions", set_fontFace: "set_fontFace", get_fontFace: "get_fontFace", set_fillRule: "set_fillRule", get_fillRule: "get_fillRule", get_dashCount: "get_dashCount", set_dash: "set_dash", get_dash: "get_dash", get_currentPoint: "get_currentPoint", set_antialias: "set_antialias", get_antialias: "get_antialias" } }; var qr = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); this.index = a; this.x = b; this.y = c }; k["lime.graphics.cairo.CairoGlyph"] = qr; qr.__name__ = "lime.graphics.cairo.CairoGlyph"; qr.prototype = {index: null, x: null, y: null, __class__: qr}; var ps = { __properties__: { get_width: "get_width", get_stride: "get_stride", get_height: "get_height", get_format: "get_format", get_data: "get_data" }, _new: function (a, b, c) { return 0 }, create: function (a, b, c, d, e) { return 0 }, fromImage: function (a) { return null }, get_data: function (a) { return rf.fromFloat(0) }, get_format: function (a) { return 0 }, get_height: function (a) { return 0 }, get_stride: function (a) { return 0 }, get_width: function (a) { return 0 } }, No = { __properties__: { set_matrix: "set_matrix", get_matrix: "get_matrix", set_filter: "set_filter", get_filter: "get_filter", set_extend: "set_extend", get_extend: "get_extend", get_colorStopCount: "get_colorStopCount" }, _new: function (a) { return a }, addColorStopRGB: function (a, b, c, d, e) { }, addColorStopRGBA: function (a, b, c, d, e, g) { }, createForSurface: function (a) { return 0 }, createLinear: function (a, b, c, d) { return 0 }, createRadial: function (a, b, c, d, e, g) { return 0 }, createRGB: function (a, b, c) { return 0 }, createRGBA: function (a, b, c, d) { return 0 }, get_colorStopCount: function (a) { return 0 }, get_extend: function (a) { return 0 }, set_extend: function (a, b) { return b }, get_filter: function (a) { return 0 }, set_filter: function (a, b) { return b }, get_matrix: function (a) { return null }, set_matrix: function (a, b) { return b } }, qs = { flush: function (a) { } }, l = function () { }; k["lime.graphics.opengl.GL"] = l; l.__name__ = "lime.graphics.opengl.GL"; l.activeTexture = function (a) { l.context.activeTexture(a) }; l.attachShader = function (a, b) { l.context.attachShader(a, b) }; l.beginQuery = function (a, b) { l.context.beginQuery(a, b) }; l.beginTransformFeedback = function (a) { l.context.beginTransformFeedback(a) }; l.bindAttribLocation = function (a, b, c) { l.context.bindAttribLocation(a, b, c) }; l.bindBuffer = function (a, b) { l.context.bindBuffer(a, b) }; l.bindBufferBase = function (a, b, c) { l.context.bindBufferBase(a, b, c) }; l.bindBufferRange = function (a, b, c, d, e) { l.context.bindBufferRange(a, b, c, d, rf.fromFloat(e)) }; l.bindFramebuffer = function (a, b) { l.context.bindFramebuffer(a, b) }; l.bindRenderbuffer = function (a, b) { l.context.bindRenderbuffer(a, b) }; l.bindSampler = function (a, b) { l.context.bindSampler(a, b) }; l.bindTexture = function (a, b) { l.context.bindTexture(a, b) }; l.bindTransformFeedback = function (a, b) { l.context.bindTransformFeedback(a, b) }; l.bindVertexArray = function (a) { l.context.bindVertexArray(a) }; l.blitFramebuffer = function (a, b, c, d, e, g, f, v, p, m) { l.context.blitFramebuffer(a, b, c, d, e, g, f, v, p, m) }; l.blendColor = function (a, b, c, d) { l.context.blendColor(a, b, c, d) }; l.blendEquation = function (a) { l.context.blendEquation(a) }; l.blendEquationSeparate = function (a, b) { l.context.blendEquationSeparate(a, b) }; l.blendFunc = function (a, b) { l.context.blendFunc(a, b) }; l.blendFuncSeparate = function (a, b, c, d) { l.context.blendFuncSeparate(a, b, c, d) }; l.bufferDataWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.bufferData(a, b, c, d, e) : g.bufferData(a, b, c) }; l.bufferSubDataWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.bufferSubData(a, b, c, d, e) : g.bufferSubData(a, b, c) }; l.checkFramebufferStatus = function (a) { return l.context.checkFramebufferStatus(a) }; l.clear = function (a) { l.context.clear(a) }; l.clearBufferfi = function (a, b, c, d) { l.context.clearBufferfi(a, b, c, d) }; l.clearBufferfvWEBGL = function (a, b, c, d) { l.context.clearBufferfv(a, b, c, d) }; l.clearBufferivWEBGL = function (a, b, c, d) { l.context.clearBufferiv(a, b, c, d) }; l.clearBufferuivWEBGL = function (a, b, c, d) { l.context.clearBufferuiv(a, b, c, d) }; l.clearColor = function (a, b, c, d) { l.context.clearColor(a, b, c, d) }; l.clearDepth = function (a) { l.context.clearDepth(a) }; l.clearStencil = function (a) { l.context.clearStencil(a) }; l.clientWaitSync = function (a, b, c) { return l.context.clientWaitSync(a, b, c) }; l.colorMask = function (a, b, c, d) { l.context.colorMask(a, b, c, d) }; l.compileShader = function (a) { l.context.compileShader(a) }; l.compressedTexImage2DWEBGL = function (a, b, c, d, e, g, f, v, p) { var r = l.context; null != v ? r.compressedTexImage2D(a, b, c, d, e, g, f, v, p) : r.compressedTexImage2D(a, b, c, d, e, g, f) }; l.compressedTexImage3DWEBGL = function (a, b, c, d, e, g, f, v, p, m) { l.context.compressedTexImage3D(a, b, c, d, e, g, f, v, p, m) }; l.compressedTexSubImage2DWEBGL = function (a, b, c, d, e, g, f, v, p, m) { var r = l.context; null != p ? r.compressedTexSubImage2D(a, b, c, d, e, g, f, v, p, m) : r.compressedTexSubImage2D(a, b, c, d, e, g, f, v) }; l.compressedTexSubImage3DWEBGL = function (a, b, c, d, e, g, f, v, p, m, h, n) { l.context.compressedTexSubImage3D(a, b, c, d, e, g, f, v, p, m, h, n) }; l.copyTexImage2D = function (a, b, c, d, e, g, f, v) { l.context.copyTexImage2D(a, b, c, d, e, g, f, v) }; l.copyTexSubImage2D = function (a, b, c, d, e, g, f, v) { l.context.copyTexSubImage2D(a, b, c, d, e, g, f, v) }; l.copyTexSubImage3D = function (a, b, c, d, e, g, f, v, p) { l.context.copyTexSubImage3D(a, b, c, d, e, g, f, v, p) }; l.createBuffer = function () { return l.context.createBuffer() }; l.createFramebuffer = function () { return l.context.createFramebuffer() }; l.createProgram = function () { return l.context.createProgram() }; l.createQuery = function () { return l.context.createQuery() }; l.createRenderbuffer = function () { return l.context.createRenderbuffer() }; l.createSampler = function () { return l.context.createSampler() }; l.createShader = function (a) { return l.context.createShader(a) }; l.createTexture = function () { return l.context.createTexture() }; l.createTransformFeedback = function () { return l.context.createTransformFeedback() }; l.createVertexArray = function () { return l.context.createVertexArray() }; l.cullFace = function (a) { l.context.cullFace(a) }; l.deleteBuffer = function (a) { l.context.deleteBuffer(a) }; l.deleteFramebuffer = function (a) { l.context.deleteFramebuffer(a) }; l.deleteProgram = function (a) { l.context.deleteProgram(a) }; l.deleteQuery = function (a) { l.context.deleteQuery(a) }; l.deleteRenderbuffer = function (a) { l.context.deleteRenderbuffer(a) }; l.deleteSampler = function (a) { l.context.deleteSampler(a) }; l.deleteShader = function (a) { l.context.deleteShader(a) }; l.deleteSync = function (a) { l.context.deleteSync(a) }; l.deleteTexture = function (a) { l.context.deleteTexture(a) }; l.deleteTransformFeedback = function (a) { l.context.deleteTransformFeedback(a) }; l.deleteVertexArray = function (a) { l.context.deleteVertexArray(a) }; l.depthFunc = function (a) { l.context.depthFunc(a) }; l.depthMask = function (a) { l.context.depthMask(a) }; l.depthRange = function (a, b) { l.context.depthRange(a, b) }; l.detachShader = function (a, b) { l.context.detachShader(a, b) }; l.disable = function (a) { l.context.disable(a) }; l.disableVertexAttribArray = function (a) { l.context.disableVertexAttribArray(a) }; l.drawArrays = function (a, b, c) { l.context.drawArrays(a, b, c) }; l.drawArraysInstanced = function (a, b, c, d) { l.context.drawArraysInstanced(a, b, c, d) }; l.drawBuffers = function (a) { l.context.drawBuffers(a) }; l.drawElements = function (a, b, c, d) { l.context.drawElements(a, b, c, d) }; l.drawElementsInstanced = function (a, b, c, d, e) { l.context.drawElementsInstanced(a, b, c, d, e) }; l.drawRangeElements = function (a, b, c, d, e, g) { l.context.drawRangeElements(a, b, c, d, e, g) }; l.enable = function (a) { l.context.enable(a) }; l.enableVertexAttribArray = function (a) { l.context.enableVertexAttribArray(a) }; l.endQuery = function (a) { l.context.endQuery(a) }; l.endTransformFeedback = function () { l.context.endTransformFeedback() }; l.fenceSync = function (a, b) { return l.context.fenceSync(a, b) }; l.finish = function () { l.context.finish() }; l.flush = function () { l.context.flush() }; l.framebufferRenderbuffer = function (a, b, c, d) { l.context.framebufferRenderbuffer(a, b, c, d) }; l.framebufferTexture2D = function (a, b, c, d, e) { l.context.framebufferTexture2D(a, b, c, d, e) }; l.framebufferTextureLayer = function (a, b, c, d, e) { l.context.framebufferTextureLayer(a, b, c, d, e) }; l.frontFace = function (a) { l.context.frontFace(a) }; l.generateMipmap = function (a) { l.context.generateMipmap(a) }; l.getActiveAttrib = function (a, b) { return l.context.getActiveAttrib(a, b) }; l.getActiveUniform = function (a, b) { return l.context.getActiveUniform(a, b) }; l.getActiveUniformBlockName = function (a, b) { return l.context.getActiveUniformBlockName(a, b) }; l.getActiveUniformBlockParameter = function (a, b, c) { return l.context.getActiveUniformBlockParameter(a, b, c) }; l.getActiveUniforms = function (a, b, c) { return l.context.getActiveUniforms(a, b, c) }; l.getAttachedShaders = function (a) { return l.context.getAttachedShaders(a) }; l.getAttribLocation = function (a, b) { return l.context.getAttribLocation(a, b) }; l.getBufferParameter = function (a, b) { return l.context.getBufferParameter(a, b) }; l.getBufferSubDataWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.getBufferSubData(a, b, c, d, e) : g.getBufferSubData(a, b, c) }; l.getContextAttributes = function () { return l.context.getContextAttributes() }; l.getError = function () { return l.context.getError() }; l.getExtension = function (a) { return l.context.getExtension(a) }; l.getFragDataLocation = function (a, b) { return l.context.getFragDataLocation(a, b) }; l.getFramebufferAttachmentParameter = function (a, b, c) { return l.context.getFramebufferAttachmentParameter(a, b, c) }; l.getIndexedParameter = function (a, b) { return l.context.getIndexedParameter(a, b) }; l.getInternalformatParameter = function (a, b, c) { return l.context.getInternalformatParameter(a, b, c) }; l.getParameter = function (a) { return l.context.getParameter(a) }; l.getProgramInfoLog = function (a) { return l.context.getProgramInfoLog(a) }; l.getProgramParameter = function (a, b) { return l.context.getProgramParameter(a, b) }; l.getQuery = function (a, b) { return l.context.getQuery(a, b) }; l.getQueryParameter = function (a, b) { return l.context.getQueryParameter(a, b) }; l.getRenderbufferParameter = function (a, b) { return l.context.getRenderbufferParameter(a, b) }; l.getSamplerParameter = function (a, b) { return l.context.getSamplerParameter(a, b) }; l.getShaderInfoLog = function (a) { return l.context.getShaderInfoLog(a) }; l.getShaderParameter = function (a, b) { return l.context.getShaderParameter(a, b) }; l.getShaderPrecisionFormat = function (a, b) { return l.context.getShaderPrecisionFormat(a, b) }; l.getShaderSource = function (a) { return l.context.getShaderSource(a) }; l.getSupportedExtensions = function () { return l.context.getSupportedExtensions() }; l.getSyncParameter = function (a, b) { return l.context.getSyncParameter(a, b) }; l.getTexParameter = function (a, b) { return l.context.getTexParameter(a, b) }; l.getTransformFeedbackVarying = function (a, b) { return l.context.getTransformFeedbackVarying(a, b) }; l.getUniform = function (a, b) { return l.context.getUniform(a, b) }; l.getUniformBlockIndex = function (a, b) { return l.context.getUniformBlockIndex(a, b) }; l.getUniformIndices = function (a, b) { return l.context.getUniformIndices(a, b) }; l.getUniformLocation = function (a, b) { return l.context.getUniformLocation(a, b) }; l.getVertexAttrib = function (a, b) { return l.context.getVertexAttrib(a, b) }; l.getVertexAttribOffset = function (a, b) { return rf.fromFloat(l.context.getVertexAttribOffset(a, b)) }; l.hint = function (a, b) { l.context.hint(a, b) }; l.invalidateFramebuffer = function (a, b) { l.context.invalidateFramebuffer(a, b) }; l.invalidateSubFramebuffer = function (a, b, c, d, e, g) { l.context.invalidateSubFramebuffer(a, b, c, d, e, g) }; l.isBuffer = function (a) { return l.context.isBuffer(a) }; l.isContextLost = function () { return l.context.isContextLost() }; l.isEnabled = function (a) { return l.context.isEnabled(a) }; l.isFramebuffer = function (a) { return l.context.isFramebuffer(a) }; l.isProgram = function (a) { return l.context.isProgram(a) }; l.isQuery = function (a) { return l.context.isQuery(a) }; l.isRenderbuffer = function (a) { return l.context.isRenderbuffer(a) }; l.isSampler = function (a) { return l.context.isSampler(a) }; l.isShader = function (a) { return l.context.isShader(a) }; l.isSync = function (a) { return l.context.isSync(a) }; l.isTexture = function (a) { return l.context.isTexture(a) }; l.isTransformFeedback = function (a) { return l.context.isTransformFeedback(a) }; l.isVertexArray = function (a) { return l.context.isVertexArray(a) }; l.lineWidth = function (a) { l.context.lineWidth(a) }; l.linkProgram = function (a) { l.context.linkProgram(a) }; l.pauseTransformFeedback = function () { l.context.pauseTransformFeedback() }; l.pixelStorei = function (a, b) { l.context.pixelStorei(a, b) }; l.polygonOffset = function (a, b) { l.context.polygonOffset(a, b) }; l.readBuffer = function (a) { l.context.readBuffer(a) }; l.readPixelsWEBGL = function (a, b, c, d, e, g, f, v) { var r = l.context; null != v ? r.readPixels(a, b, c, d, e, g, f, v) : r.readPixels(a, b, c, d, e, g, f) }; l.renderbufferStorage = function (a, b, c, d) { l.context.renderbufferStorage(a, b, c, d) }; l.renderbufferStorageMultisample = function (a, b, c, d, e) { l.context.renderbufferStorageMultisample(a, b, c, d, e) }; l.resumeTransformFeedback = function () { l.context.resumeTransformFeedback() }; l.sampleCoverage = function (a, b) { l.context.sampleCoverage(a, b) }; l.samplerParameterf = function (a, b, c) { l.context.samplerParameterf(a, b, c) }; l.samplerParameteri = function (a, b, c) { l.context.samplerParameteri(a, b, c) }; l.scissor = function (a, b, c, d) { l.context.scissor(a, b, c, d) }; l.shaderSource = function (a, b) { l.context.shaderSource(a, b) }; l.stencilFunc = function (a, b, c) { l.context.stencilFunc(a, b, c) }; l.stencilFuncSeparate = function (a, b, c, d) { l.context.stencilFuncSeparate(a, b, c, d) }; l.stencilMask = function (a) { l.context.stencilMask(a) }; l.stencilMaskSeparate = function (a, b) { l.context.stencilMaskSeparate(a, b) }; l.stencilOp = function (a, b, c) { l.context.stencilOp(a, b, c) }; l.stencilOpSeparate = function (a, b, c, d) { l.context.stencilOpSeparate(a, b, c, d) }; l.texImage2DWEBGL = function (a, b, c, d, e, g, f, v, p, m) { var r = l.context; null != m ? r.texImage2D(a, b, c, d, e, g, f, v, p, m) : null != f ? r.texImage2D(a, b, c, d, e, g, f, v, p) : r.texImage2D(a, b, c, d, e, g) }; l.texImage3DWEBGL = function (a, b, c, d, e, g, f, v, p, m, h) { l.context.texImage3D(a, b, c, d, e, g, f, v, p, m, h) }; l.texStorage2D = function (a, b, c, d, e) { l.context.texStorage2D(a, b, c, d, e) }; l.texStorage3D = function (a, b, c, d, e, g) { l.context.texStorage3D(a, b, c, d, e, g) }; l.texParameterf = function (a, b, c) { l.context.texParameterf(a, b, c) }; l.texParameteri = function (a, b, c) { l.context.texParameteri(a, b, c) }; l.texSubImage2DWEBGL = function (a, b, c, d, e, g, f, v, p, m) { var r = l.context; null != m ? r.texSubImage2D(a, b, c, d, e, g, f, v, p, m) : null != v ? r.texSubImage2D(a, b, c, d, e, g, f, v, p) : r.texSubImage2D(a, b, c, d, e, g, f) }; l.texSubImage3DWEBGL = function (a, b, c, d, e, g, f, v, p, m, h, n) { l.context.texSubImage3D(a, b, c, d, e, g, f, v, p, m, h, n) }; l.transformFeedbackVaryings = function (a, b, c) { l.context.transformFeedbackVaryings(a, b, c) }; l.uniform1f = function (a, b) { l.context.uniform1f(a, b) }; l.uniform1fvWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform1fv(a, b, c, d) : e.uniform1fv(a, b) }; l.uniform1i = function (a, b) { l.context.uniform1i(a, b) }; l.uniform1ivWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform1iv(a, b, c, d) : e.uniform1iv(a, b) }; l.uniform1ui = function (a, b) { l.context.uniform1ui(a, b) }; l.uniform1uivWEBGL = function (a, b, c, d) { l.context.uniform1uiv(a, b, c, d) }; l.uniform2f = function (a, b, c) { l.context.uniform2f(a, b, c) }; l.uniform2fvWEBGL = function (a, b, c, d) { is.uniform2fv(l.context, a, b, c, d) }; l.uniform2i = function (a, b, c) { l.context.uniform2i(a, b, c) }; l.uniform2ivWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform2iv(a, b, c, d) : e.uniform2iv(a, b) }; l.uniform2ui = function (a, b, c) { l.context.uniform2ui(a, b, c) }; l.uniform2uivWEBGL = function (a, b, c, d) { l.context.uniform2uiv(a, b, c, d) }; l.uniform3f = function (a, b, c, d) { l.context.uniform3f(a, b, c, d) }; l.uniform3fvWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform3fv(a, b, c, d) : e.uniform3fv(a, b) }; l.uniform3i = function (a, b, c, d) { l.context.uniform3i(a, b, c, d) }; l.uniform3ivWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform3iv(a, b, c, d) : e.uniform3iv(a, b) }; l.uniform3ui = function (a, b, c, d) { l.context.uniform3ui(a, b, c, d) }; l.uniform3uivWEBGL = function (a, b, c, d) { l.context.uniform3uiv(a, b, c, d) }; l.uniform4f = function (a, b, c, d, e) { l.context.uniform4f(a, b, c, d, e) }; l.uniform4fvWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform4fv(a, b, c, d) : e.uniform4fv(a, b) }; l.uniform4i = function (a, b, c, d, e) { l.context.uniform4i(a, b, c, d, e) }; l.uniform4ivWEBGL = function (a, b, c, d) { var e = l.context; null != c ? e.uniform4iv(a, b, c, d) : e.uniform4iv(a, b) }; l.uniform4ui = function (a, b, c, d, e) { l.context.uniform4ui(a, b, c, d, e) }; l.uniform4uivWEBGL = function (a, b, c, d) { l.context.uniform4uiv(a, b, c, d) }; l.uniformBlockBinding = function (a, b, c) { l.context.uniformBlockBinding(a, b, c) }; l.uniformMatrix2fvWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.uniformMatrix2fv(a, b, c, d, e) : g.uniformMatrix2fv(a, b, c) }; l.uniformMatrix2x3fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix2x3fv(a, b, c, d, e) }; l.uniformMatrix2x4fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix2x4fv(a, b, c, d, e) }; l.uniformMatrix3fvWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.uniformMatrix3fv(a, b, c, d, e) : g.uniformMatrix3fv(a, b, c) }; l.uniformMatrix3x2fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix3x2fv(a, b, c, d, e) }; l.uniformMatrix3x4fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix3x4fv(a, b, c, d, e) }; l.uniformMatrix4fvWEBGL = function (a, b, c, d, e) { var g = l.context; null != d ? g.uniformMatrix4fv(a, b, c, d, e) : g.uniformMatrix4fv(a, b, c) }; l.uniformMatrix4x2fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix4x2fv(a, b, c, d, e) }; l.uniformMatrix4x3fvWEBGL = function (a, b, c, d, e) { l.context.uniformMatrix4x3fv(a, b, c, d, e) }; l.useProgram = function (a) { l.context.useProgram(a) }; l.validateProgram = function (a) { l.context.validateProgram(a) }; l.vertexAttrib1f = function (a, b) { l.context.vertexAttrib1f(a, b) }; l.vertexAttrib1fv = function (a, b) { l.context.vertexAttrib1fv(a, b) }; l.vertexAttrib1fvWEBGL = function (a, b) { l.context.vertexAttrib1fv(a, b) }; l.vertexAttrib2f = function (a, b, c) { l.context.vertexAttrib2f(a, b, c) }; l.vertexAttrib2fv = function (a, b) { l.context.vertexAttrib2fv(a, b) }; l.vertexAttrib2fvWEBGL = function (a, b) { l.context.vertexAttrib2fv(a, b) }; l.vertexAttrib3f = function (a, b, c, d) { l.context.vertexAttrib3f(a, b, c, d) }; l.vertexAttrib3fv = function (a, b) { l.context.vertexAttrib3fv(a, b) }; l.vertexAttrib3fvWEBGL = function (a, b) { l.context.vertexAttrib3fv(a, b) }; l.vertexAttrib4f = function (a, b, c, d, e) { l.context.vertexAttrib4f(a, b, c, d, e) }; l.vertexAttrib4fv = function (a, b) { l.context.vertexAttrib4fv(a, b) }; l.vertexAttrib4fvWEBGL = function (a, b) { l.context.vertexAttrib4fv(a, b) }; l.vertexAttribDivisor = function (a, b) { l.context.vertexAttribDivisor(a, b) }; l.vertexAttribI4i = function (a, b, c, d, e) { l.context.vertexAttribI4i(a, b, c, d, e) }; l.vertexAttribI4iv = function (a, b) { l.context.vertexAttribI4iv(a, b) }; l.vertexAttribI4ivWEBGL = function (a, b) { l.context.vertexAttribI4iv(a, b) }; l.vertexAttribI4ui = function (a, b, c, d, e) { l.context.vertexAttribI4ui(a, b, c, d, e) }; l.vertexAttribI4uiv = function (a, b) { l.context.vertexAttribI4uiv(a, b) }; l.vertexAttribI4uivWEBGL = function (a, b) { l.context.vertexAttribI4uiv(a, b) }; l.vertexAttribIPointer = function (a, b, c, d, e) { l.context.vertexAttribIPointer(a, b, c, d, e) }; l.vertexAttribPointer = function (a, b, c, d, e, g) { l.context.vertexAttribPointer(a, b, c, d, e, g) }; l.viewport = function (a, b, c, d) { l.context.viewport(a, b, c, d) }; l.waitSync = function (a, b, c) { l.context.waitSync(a, b, c) }; l.__getObjectID = function (a) { return null == a ? 0 : a.id }; var rr = function () { this.STACK_UNDERFLOW = 1284; this.STACK_OVERFLOW = 1283; this.CONTEXT_FLAG_DEBUG_BIT = 2; this.DEBUG_OUTPUT = 37600; this.DEBUG_SEVERITY_LOW = 37192; this.DEBUG_SEVERITY_MEDIUM = 37191; this.DEBUG_SEVERITY_HIGH = 37190; this.DEBUG_LOGGED_MESSAGES = 37189; this.MAX_DEBUG_LOGGED_MESSAGES = 37188; this.MAX_DEBUG_MESSAGE_LENGTH = 37187; this.MAX_LABEL_LENGTH = 33512; this.SAMPLER = 33510; this.QUERY = 33507; this.PROGRAM = 33506; this.SHADER = 33505; this.BUFFER = 33504; this.DEBUG_GROUP_STACK_DEPTH = 33389; this.MAX_DEBUG_GROUP_STACK_DEPTH = 33388; this.DEBUG_SEVERITY_NOTIFICATION = 33387; this.DEBUG_TYPE_POP_GROUP = 33386; this.DEBUG_TYPE_PUSH_GROUP = 33385; this.DEBUG_TYPE_MARKER = 33384; this.DEBUG_TYPE_OTHER = 33361; this.DEBUG_TYPE_PERFORMANCE = 33360; this.DEBUG_TYPE_PORTABILITY = 33359; this.DEBUG_TYPE_UNDEFINED_BEHAVIOR = 33358; this.DEBUG_TYPE_DEPRECATED_BEHAVIOR = 33357; this.DEBUG_TYPE_ERROR = 33356; this.DEBUG_SOURCE_OTHER = 33355; this.DEBUG_SOURCE_APPLICATION = 33354; this.DEBUG_SOURCE_THIRD_PARTY = 33353; this.DEBUG_SOURCE_SHADER_COMPILER = 33352; this.DEBUG_SOURCE_WINDOW_SYSTEM = 33351; this.DEBUG_SOURCE_API = 33350; this.DEBUG_CALLBACK_USER_PARAM = 33349; this.DEBUG_CALLBACK_FUNCTION = 33348; this.DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 33347; this.DEBUG_OUTPUT_SYNCHRONOUS = 33346 }; k["lime.graphics.opengl.ext.KHR_debug"] = rr; rr.__name__ = "lime.graphics.opengl.ext.KHR_debug"; rr.prototype = { DEBUG_OUTPUT_SYNCHRONOUS: null, DEBUG_NEXT_LOGGED_MESSAGE_LENGTH: null, DEBUG_CALLBACK_FUNCTION: null, DEBUG_CALLBACK_USER_PARAM: null, DEBUG_SOURCE_API: null, DEBUG_SOURCE_WINDOW_SYSTEM: null, DEBUG_SOURCE_SHADER_COMPILER: null, DEBUG_SOURCE_THIRD_PARTY: null, DEBUG_SOURCE_APPLICATION: null, DEBUG_SOURCE_OTHER: null, DEBUG_TYPE_ERROR: null, DEBUG_TYPE_DEPRECATED_BEHAVIOR: null, DEBUG_TYPE_UNDEFINED_BEHAVIOR: null, DEBUG_TYPE_PORTABILITY: null, DEBUG_TYPE_PERFORMANCE: null, DEBUG_TYPE_OTHER: null, DEBUG_TYPE_MARKER: null, DEBUG_TYPE_PUSH_GROUP: null, DEBUG_TYPE_POP_GROUP: null, DEBUG_SEVERITY_NOTIFICATION: null, MAX_DEBUG_GROUP_STACK_DEPTH: null, DEBUG_GROUP_STACK_DEPTH: null, BUFFER: null, SHADER: null, PROGRAM: null, QUERY: null, SAMPLER: null, MAX_LABEL_LENGTH: null, MAX_DEBUG_MESSAGE_LENGTH: null, MAX_DEBUG_LOGGED_MESSAGES: null, DEBUG_LOGGED_MESSAGES: null, DEBUG_SEVERITY_HIGH: null, DEBUG_SEVERITY_MEDIUM: null, DEBUG_SEVERITY_LOW: null, DEBUG_OUTPUT: null, CONTEXT_FLAG_DEBUG_BIT: null, STACK_OVERFLOW: null, STACK_UNDERFLOW: null, __class__: rr }; var Qd = { __properties__: { set_redOffset: "set_redOffset", get_redOffset: "get_redOffset", set_redMultiplier: "set_redMultiplier", get_redMultiplier: "get_redMultiplier", set_greenOffset: "set_greenOffset", get_greenOffset: "get_greenOffset", set_greenMultiplier: "set_greenMultiplier", get_greenMultiplier: "get_greenMultiplier", set_color: "set_color", get_color: "get_color", set_blueOffset: "set_blueOffset", get_blueOffset: "get_blueOffset", set_blueMultiplier: "set_blueMultiplier", get_blueMultiplier: "get_blueMultiplier", set_alphaOffset: "set_alphaOffset", get_alphaOffset: "get_alphaOffset", set_alphaMultiplier: "set_alphaMultiplier", get_alphaMultiplier: "get_alphaMultiplier" }, _new: function (a) { if (null == a || 20 != a.length) a = Qd.__identity, a = null != a ? new Float32Array(a) : null; return a }, clone: function (a) { a = $g.toArrayBufferView(a); a = null != a ? new Float32Array(a) : null; return Qd._new(a) }, concat: function (a, b) { a[0] += b[0]; a[6] += b[6]; a[12] += b[12]; a[18] += b[18] }, copyFrom: function (a, b) { a.set(b) }, identity: function (a) { a[0] = 1; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0; a[6] = 1; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 0; a[11] = 0; a[12] = 1; a[13] = 0; a[14] = 0; a[15] = 0; a[16] = 0; a[17] = 0; a[18] = 1; a[19] = 0 }, getAlphaTable: function (a) { if (null == Qd.__alphaTable) { var b = new Uint8Array(256); Qd.__alphaTable = b } Qd.__alphaTable[0] = 0; for (var c = 1; 256 > c;) { var d = c++; b = Math.floor(d * a[18] + 255 * a[19]); 255 < b && (b = 255); 0 > b && (b = 0); Qd.__alphaTable[d] = b } return Qd.__alphaTable }, getBlueTable: function (a) { if (null == Qd.__blueTable) { var b = new Uint8Array(256); Qd.__blueTable = b } for (var c = 0; 256 > c;) { var d = c++; b = Math.floor(d * a[12] + 255 * a[14]); 255 < b && (b = 255); 0 > b && (b = 0); Qd.__blueTable[d] = b } return Qd.__blueTable }, getGreenTable: function (a) { if (null == Qd.__greenTable) { var b = new Uint8Array(256); Qd.__greenTable = b } for (var c = 0; 256 > c;) { var d = c++; b = Math.floor(d * a[6] + 255 * a[9]); 255 < b && (b = 255); 0 > b && (b = 0); Qd.__greenTable[d] = b } return Qd.__greenTable }, getRedTable: function (a) { if (null == Qd.__redTable) { var b = new Uint8Array(256); Qd.__redTable = b } for (var c = 0; 256 > c;) { var d = c++; b = Math.floor(d * a[0] + 255 * a[4]); 255 < b && (b = 255); 0 > b && (b = 0); Qd.__redTable[d] = b } return Qd.__redTable }, __toFlashColorTransform: function (a) { return null }, get_alphaMultiplier: function (a) { return a[18] }, set_alphaMultiplier: function (a, b) { return a[18] = b }, get_alphaOffset: function (a) { return 255 * a[19] }, set_alphaOffset: function (a, b) { return a[19] = b / 255 }, get_blueMultiplier: function (a) { return a[12] }, set_blueMultiplier: function (a, b) { return a[12] = b }, get_blueOffset: function (a) { return 255 * a[14] }, set_blueOffset: function (a, b) { return a[14] = b / 255 }, get_color: function (a) { return (255 * a[4] | 0) << 16 | (255 * a[9] | 0) << 8 | 255 * a[14] | 0 }, set_color: function (a, b) { a[4] = (b >> 16 & 255) / 255; a[9] = (b >> 8 & 255) / 255; a[14] = (b & 255) / 255; a[0] = 0; a[6] = 0; a[12] = 0; return Qd.get_color(a) }, get_greenMultiplier: function (a) { return a[6] }, set_greenMultiplier: function (a, b) { return a[6] = b }, get_greenOffset: function (a) { return 255 * a[9] }, set_greenOffset: function (a, b) { return a[9] = b / 255 }, get_redMultiplier: function (a) { return a[0] }, set_redMultiplier: function (a, b) { return a[0] = b }, get_redOffset: function (a) { return 255 * a[4] }, set_redOffset: function (a, b) { return a[4] = b / 255 }, get: function (a, b) { return a[b] }, set: function (a, b, c) { return a[b] = c } }, wa = { __properties__: { set_position: "set_position", get_position: "get_position", get_determinant: "get_determinant" }, _new: function (a) { if (null == a || 16 != a.length) a = wa.__identity, a = null != a ? new Float32Array(a) : null; return a }, append: function (a, b) { var c = a[0], d = a[4], e = a[8], g = a[12], f = a[1], v = a[5], p = a[9], m = a[13], h = a[2], n = a[6], l = a[10], k = a[14], t = a[3], q = a[7], w = a[11], u = a[15], x = wa.get(b, 0), A = wa.get(b, 4), N = wa.get(b, 8), J = wa.get(b, 12), z = wa.get(b, 1), B = wa.get(b, 5), ma = wa.get(b, 9), C = wa.get(b, 13), K = wa.get(b, 2), F = wa.get(b, 6), I = wa.get(b, 10), G = wa.get(b, 14), D = wa.get(b, 3), y = wa.get(b, 7), E = wa.get(b, 11); b = wa.get(b, 15); a[0] = c * x + f * A + h * N + t * J; a[1] = c * z + f * B + h * ma + t * C; a[2] = c * K + f * F + h * I + t * G; a[3] = c * D + f * y + h * E + t * b; a[4] = d * x + v * A + n * N + q * J; a[5] = d * z + v * B + n * ma + q * C; a[6] = d * K + v * F + n * I + q * G; a[7] = d * D + v * y + n * E + q * b; a[8] = e * x + p * A + l * N + w * J; a[9] = e * z + p * B + l * ma + w * C; a[10] = e * K + p * F + l * I + w * G; a[11] = e * D + p * y + l * E + w * b; a[12] = g * x + m * A + k * N + u * J; a[13] = g * z + m * B + k * ma + u * C; a[14] = g * K + m * F + k * I + u * G; a[15] = g * D + m * y + k * E + u * b }, appendRotation: function (a, b, c, d) { b = wa.__getAxisRotation(a, c.x, c.y, c.z, b); null != d && wa.appendTranslation(b, d.x, d.y, d.z); wa.append(a, b) }, appendScale: function (a, b, c, d) { b = [b, 0, 0, 0, 0, c, 0, 0, 0, 0, d, 0, 0, 0, 0, 1]; b = null != b ? new Float32Array(b) : null; wa.append(a, wa._new(b)) }, appendTranslation: function (a, b, c, d) { a[12] += b; a[13] += c; a[14] += d }, clone: function (a) { a = $g.toArrayBufferView(a); a = null != a ? new Float32Array(a) : null; return wa._new(a) }, copyColumnFrom: function (a, b, c) { switch (b) { case 0: a[0] = c.x; a[1] = c.y; a[2] = c.z; a[3] = c.w; break; case 1: a[4] = c.x; a[5] = c.y; a[6] = c.z; a[7] = c.w; break; case 2: a[8] = c.x; a[9] = c.y; a[10] = c.z; a[11] = c.w; break; case 3: a[12] = c.x; a[13] = c.y; a[14] = c.z; a[15] = c.w; break; default: Qa.error("Column " + b + " out of bounds [0, ..., 3]", { fileName: "lime/math/Matrix4.hx", lineNumber: 187, className: "lime.math._Matrix4.Matrix4_Impl_", methodName: "copyColumnFrom" }) } }, copyColumnTo: function (a, b, c) { switch (b) { case 0: c.x = a[0]; c.y = a[1]; c.z = a[2]; c.w = a[3]; break; case 1: c.x = a[4]; c.y = a[5]; c.z = a[6]; c.w = a[7]; break; case 2: c.x = a[8]; c.y = a[9]; c.z = a[10]; c.w = a[11]; break; case 3: c.x = a[12]; c.y = a[13]; c.z = a[14]; c.w = a[15]; break; default: Qa.error("Column " + b + " out of bounds [0, ..., 3]", { fileName: "lime/math/Matrix4.hx", lineNumber: 225, className: "lime.math._Matrix4.Matrix4_Impl_", methodName: "copyColumnTo" }) } }, copyFrom: function (a, b) { a.set(b) }, copyRowFrom: function (a, b, c) { switch (b) { case 0: a[0] = c.x; a[4] = c.y; a[8] = c.z; a[12] = c.w; break; case 1: a[1] = c.x; a[5] = c.y; a[9] = c.z; a[13] = c.w; break; case 2: a[2] = c.x; a[6] = c.y; a[10] = c.z; a[14] = c.w; break; case 3: a[3] = c.x; a[7] = c.y; a[11] = c.z; a[15] = c.w; break; default: Qa.error("Row " + b + " out of bounds [0, ..., 3]", { fileName: "lime/math/Matrix4.hx", lineNumber: 272, className: "lime.math._Matrix4.Matrix4_Impl_", methodName: "copyRowFrom" }) } }, copyRowTo: function (a, b, c) { switch (b) { case 0: c.x = a[0]; c.y = a[4]; c.z = a[8]; c.w = a[12]; break; case 1: c.x = a[1]; c.y = a[5]; c.z = a[9]; c.w = a[13]; break; case 2: c.x = a[2]; c.y = a[6]; c.z = a[10]; c.w = a[14]; break; case 3: c.x = a[3]; c.y = a[7]; c.z = a[11]; c.w = a[15]; break; default: Qa.error("Row " + b + " out of bounds [0, ..., 3]", { fileName: "lime/math/Matrix4.hx", lineNumber: 310, className: "lime.math._Matrix4.Matrix4_Impl_", methodName: "copyRowTo" }) } }, create2D: function (a, b, c, d, e, g, f) { null == f && (f = 0); null == g && (g = 0); a[0] = b; a[1] = c; a[2] = 0; a[3] = 0; a[4] = d; a[5] = e; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 1; a[11] = 0; a[12] = g; a[13] = f; a[14] = 0; a[15] = 1 }, createOrtho: function (a, b, c, d, e, g, f) { var r = 1 / (c - b), p = 1 / (e - d), m = 1 / (f - g); a[0] = 2 * r; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 2 * p; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = -2 * m; a[11] = 0; a[12] = -(b + c) * r; a[13] = -(d + e) * p; a[14] = -(g + f) * m; a[15] = 1 }, deltaTransformVector: function (a, b, c) { null == c && (c = new Gc); var d = b.x, e = b.y; b = b.z; c.x = d * a[0] + e * a[4] + b * a[8] + a[3]; c.y = d * a[1] + e * a[5] + b * a[9] + a[7]; c.z = d * a[2] + e * a[6] + b * a[10] + a[11]; return c }, fromMatrix3: function (a) { var b = wa._new(); wa.create2D(b, a.a, a.b, a.c, a.d, a.tx, a.ty); return b }, identity: function (a) { a[0] = 1; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 1; a[6] = 0; a[7] = 0; a[8] = 0; a[9] = 0; a[10] = 1; a[11] = 0; a[12] = 0; a[13] = 0; a[14] = 0; a[15] = 1 }, interpolate: function (a, b, c, d) { null == d && (d = wa._new()); for (var e = 0; 16 > e;) { var g = e++; wa.set(d, g, wa.get(a, g) + (wa.get(b, g) - wa.get(a, g)) * c) } return d }, interpolateTo: function (a, b, c) { for (var d = 0; 16 > d;) { var e = d++; a[e] += (wa.get(b, e) - a[e]) * c } }, invert: function (a) { var b = wa.get_determinant(a), c = 1E-11 < Math.abs(b); if (c) { b = 1 / b; var d = a[0], e = a[4], g = a[8], f = a[12], v = a[1], p = a[5], m = a[9], h = a[13], n = a[2], l = a[6], k = a[10], t = a[14], q = a[3], w = a[7], u = a[11], x = a[15]; a[0] = b * (p * (k * x - t * u) - m * (l * x - t * w) + h * (l * u - k * w)); a[1] = -b * (v * (k * x - t * u) - m * (n * x - t * q) + h * (n * u - k * q)); a[2] = b * (v * (l * x - t * w) - p * (n * x - t * q) + h * (n * w - l * q)); a[3] = -b * (v * (l * u - k * w) - p * (n * u - k * q) + m * (n * w - l * q)); a[4] = -b * (e * (k * x - t * u) - g * (l * x - t * w) + f * (l * u - k * w)); a[5] = b * (d * (k * x - t * u) - g * (n * x - t * q) + f * (n * u - k * q)); a[6] = -b * (d * (l * x - t * w) - e * (n * x - t * q) + f * (n * w - l * q)); a[7] = b * (d * (l * u - k * w) - e * (n * u - k * q) + g * (n * w - l * q)); a[8] = b * (e * (m * x - h * u) - g * (p * x - h * w) + f * (p * u - m * w)); a[9] = -b * (d * (m * x - h * u) - g * (v * x - h * q) + f * (v * u - m * q)); a[10] = b * (d * (p * x - h * w) - e * (v * x - h * q) + f * (v * w - p * q)); a[11] = -b * (d * (p * u - m * w) - e * (v * u - m * q) + g * (v * w - p * q)); a[12] = -b * (e * (m * t - h * k) - g * (p * t - h * l) + f * (p * k - m * l)); a[13] = b * (d * (m * t - h * k) - g * (v * t - h * n) + f * (v * k - m * n)); a[14] = -b * (d * (p * t - h * l) - e * (v * t - h * n) + f * (v * l - p * n)); a[15] = b * (d * (p * k - m * l) - e * (v * k - m * n) + g * (v * l - p * n)) } return c }, pointAt: function (a, b, c, d) { null == c && (c = new Gc(0, 0, 1)); null == d && (d = new Gc(0, 1, 0)); var e = null; null == e && (e = new Gc); e.x = b.x - c.x; e.y = b.y - c.y; e.z = b.z - c.z; c = e; d = new Gc(d.x, d.y, d.z, d.w); e = Math.sqrt(c.x * c.x + c.y * c.y + c.z * c.z); 0 != e && (c.x /= e, c.y /= e, c.z /= e); e = Math.sqrt(d.x * d.x + d.y * d.y + d.z * d.z); 0 != e && (d.x /= e, d.y /= e, d.z /= e); var g = new Gc(c.x, c.y, c.z, c.w); e = d.x * c.x + d.y * c.y + d.z * c.z; g.x *= e; g.y *= e; g.z *= e; e = null; null == e && (e = new Gc); e.x = d.x - g.x; e.y = d.y - g.y; e.z = d.z - g.z; d = e; 0 < Math.sqrt(d.x * d.x + d.y * d.y + d.z * d.z) ? (e = Math.sqrt(d.x * d.x + d.y * d.y + d.z * d.z), 0 != e && (d.x /= e, d.y /= e, d.z /= e)) : d = 0 != c.x ? new Gc(-c.y, c.x, 0) : new Gc(1, 0, 0); e = null; null == e && (e = new Gc); g = d.z * c.x - d.x * c.z; var f = d.x * c.y - d.y * c.x; e.x = d.y * c.z - d.z * c.y; e.y = g; e.z = f; e.w = 1; g = e; e = Math.sqrt(g.x * g.x + g.y * g.y + g.z * g.z); 0 != e && (g.x /= e, g.y /= e, g.z /= e); a[0] = g.x; a[4] = g.y; a[8] = g.z; a[12] = 0; a[1] = d.x; a[5] = d.y; a[9] = d.z; a[13] = 0; a[2] = c.x; a[6] = c.y; a[10] = c.z; a[14] = 0; a[3] = b.x; a[7] = b.y; a[11] = b.z; a[15] = 1 }, prepend: function (a, b) { var c = wa.get(b, 0), d = wa.get(b, 4), e = wa.get(b, 8), g = wa.get(b, 12), f = wa.get(b, 1), v = wa.get(b, 5), p = wa.get(b, 9), m = wa.get(b, 13), h = wa.get(b, 2), n = wa.get(b, 6), l = wa.get(b, 10), k = wa.get(b, 14), t = wa.get(b, 3), q = wa.get(b, 7), w = wa.get(b, 11); b = wa.get(b, 15); var u = a[0], x = a[4], A = a[8], N = a[12], J = a[1], z = a[5], B = a[9], ma = a[13], C = a[2], K = a[6], F = a[10], I = a[14], G = a[3], D = a[7], y = a[11], E = a[15]; a[0] = c * u + f * x + h * A + t * N; a[1] = c * J + f * z + h * B + t * ma; a[2] = c * C + f * K + h * F + t * I; a[3] = c * G + f * D + h * y + t * E; a[4] = d * u + v * x + n * A + q * N; a[5] = d * J + v * z + n * B + q * ma; a[6] = d * C + v * K + n * F + q * I; a[7] = d * G + v * D + n * y + q * E; a[8] = e * u + p * x + l * A + w * N; a[9] = e * J + p * z + l * B + w * ma; a[10] = e * C + p * K + l * F + w * I; a[11] = e * G + p * D + l * y + w * E; a[12] = g * u + m * x + k * A + b * N; a[13] = g * J + m * z + k * B + b * ma; a[14] = g * C + m * K + k * F + b * I; a[15] = g * G + m * D + k * y + b * E }, prependRotation: function (a, b, c, d) { b = wa.__getAxisRotation(a, c.x, c.y, c.z, b); null != d && wa.appendTranslation(b, d.x, d.y, d.z); wa.prepend(a, b) }, prependScale: function (a, b, c, d) { b = [b, 0, 0, 0, 0, c, 0, 0, 0, 0, d, 0, 0, 0, 0, 1]; b = null != b ? new Float32Array(b) : null; wa.prepend(a, wa._new(b)) }, prependTranslation: function (a, b, c, d) { var e = wa._new(); wa.set_position(e, new Gc(b, c, d)); wa.prepend(a, e) }, transformVector: function (a, b, c) { null == c && (c = new Gc); var d = b.x, e = b.y; b = b.z; c.x = d * a[0] + e * a[4] + b * a[8] + a[12]; c.y = d * a[1] + e * a[5] + b * a[9] + a[13]; c.z = d * a[2] + e * a[6] + b * a[10] + a[14]; c.w = d * a[3] + e * a[7] + b * a[11] + a[15]; return c }, transformVectors: function (a, b, c) { for (var d = 0, e, g, f; d + 3 <= b.length;) e = b[d], g = b[d + 1], f = b[d + 2], c[d] = e * a[0] + g * a[4] + f * a[8] + a[12], c[d + 1] = e * a[1] + g * a[5] + f * a[9] + a[13], c[d + 2] = e * a[2] + g * a[6] + f * a[10] + a[14], d += 3 }, transpose: function (a) { var b = a[1]; a[1] = a[4]; a[4] = b; b = a[2]; a[2] = a[8]; a[8] = b; b = a[3]; a[3] = a[12]; a[12] = b; b = a[6]; a[6] = a[9]; a[9] = b; b = a[7]; a[7] = a[13]; a[13] = b; b = a[11]; a[11] = a[14]; a[14] = b }, __getAxisRotation: function (a, b, c, d, e) { a = wa._new(); b = new Gc(b, c, d); e = Math.PI / 180 * -e; d = Math.cos(e); e = Math.sin(e); c = 1 - d; wa.set(a, 0, d + b.x * b.x * c); wa.set(a, 5, d + b.y * b.y * c); wa.set(a, 10, d + b.z * b.z * c); d = b.x * b.y * c; var g = b.z * e; wa.set(a, 4, d + g); wa.set(a, 1, d - g); d = b.x * b.z * c; g = b.y * e; wa.set(a, 8, d - g); wa.set(a, 2, d + g); d = b.y * b.z * c; g = b.x * e; wa.set(a, 9, d + g); wa.set(a, 6, d - g); return a }, __swap: function (a, b, c) { var d = a[b]; a[b] = a[c]; a[c] = d }, get_determinant: function (a) { return (a[0] * a[5] - a[4] * a[1]) * (a[10] * a[15] - a[14] * a[11]) - (a[0] * a[9] - a[8] * a[1]) * (a[6] * a[15] - a[14] * a[7]) + (a[0] * a[13] - a[12] * a[1]) * (a[6] * a[11] - a[10] * a[7]) + (a[4] * a[9] - a[8] * a[5]) * (a[2] * a[15] - a[14] * a[3]) - (a[4] * a[13] - a[12] * a[5]) * (a[2] * a[11] - a[10] * a[3]) + (a[8] * a[13] - a[12] * a[9]) * (a[2] * a[7] - a[6] * a[3]) }, get_position: function (a) { return new Gc(a[12], a[13], a[14]) }, set_position: function (a, b) { a[12] = b.x; a[13] = b.y; a[14] = b.z; return b }, get: function (a, b) { return a[b] }, set: function (a, b, c) { return a[b] = c } }, D = { __properties__: { set_r: "set_r", get_r: "get_r", set_g: "set_g", get_g: "get_g", set_b: "set_b", get_b: "get_b", set_a: "set_a", get_a: "get_a" }, _new: function (a) { null == a && (a = 0); return a }, create: function (a, b, c, d) { return (a & 255) << 24 | (b & 255) << 16 | (c & 255) << 8 | d & 255 }, multiplyAlpha: function (a) { 0 != (a & 255) && 255 != (a & 255) && (D.a16 = D.__alpha16[a & 255]) }, readUInt8: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); switch (d) { case 0: a = (b[c] & 255) << 24 | (b[c + 1] & 255) << 16 | (b[c + 2] & 255) << 8 | b[c + 3] & 255; break; case 1: a = (b[c + 1] & 255) << 24 | (b[c + 2] & 255) << 16 | (b[c + 3] & 255) << 8 | b[c] & 255; break; case 2: a = (b[c + 2] & 255) << 24 | (b[c + 1] & 255) << 16 | (b[c] & 255) << 8 | b[c + 3] & 255 } e && 0 != (a & 255) && 255 != (a & 255) && (D.unmult = 255 / (a & 255)) }, set: function (a, b, c, d, e) { }, unmultiplyAlpha: function (a) { 0 != (a & 255) && 255 != (a & 255) && (D.unmult = 255 / (a & 255)) }, writeUInt8: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); e && (0 == (a & 255) ? 0 != a && (a = 0) : 255 != (a & 255) && (D.a16 = D.__alpha16[a & 255], a = ((a >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((a >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((a >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | a & 255)); switch (d) { case 0: b[c] = a >>> 24 & 255; b[c + 1] = a >>> 16 & 255; b[c + 2] = a >>> 8 & 255; b[c + 3] = a & 255; break; case 1: b[c] = a & 255; b[c + 1] = a >>> 24 & 255; b[c + 2] = a >>> 16 & 255; b[c + 3] = a >>> 8 & 255; break; case 2: b[c] = a >>> 8 & 255, b[c + 1] = a >>> 16 & 255, b[c + 2] = a >>> 24 & 255, b[c + 3] = a & 255 } }, __fromARGB: function (a) { return (a >>> 16 & 255) << 24 | (a >>> 8 & 255) << 16 | (a & 255) << 8 | a >>> 24 & 255 }, __fromBGRA: function (a) { return (a >>> 8 & 255) << 24 | (a >>> 16 & 255) << 16 | (a >>> 24 & 255) << 8 | a & 255 }, get_a: function (a) { return a & 255 }, set_a: function (a, b) { return b }, get_b: function (a) { return a >>> 8 & 255 }, set_b: function (a, b) { return b }, get_g: function (a) { return a >>> 16 & 255 }, set_g: function (a, b) { return b }, get_r: function (a) { return a >>> 24 & 255 }, set_r: function (a, b) { return b } }, Vd = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b; this.width = c; this.height = d }; k["lime.math.Rectangle"] = Vd; Vd.__name__ = "lime.math.Rectangle"; Vd.prototype = { height: null, width: null, x: null, y: null, clone: function () { return new Vd(this.x, this.y, this.width, this.height) }, contains: function (a, b) { return a >= this.x && b >= this.y && a < this.get_right() ? b < this.get_bottom() : !1 }, containsPoint: function (a) { return this.containsVector(a) }, containsRect: function (a) { return 0 >= a.width || 0 >= a.height ? a.x > this.x && a.y > this.y && a.get_right() < this.get_right() ? a.get_bottom() < this.get_bottom() : !1 : a.x >= this.x && a.y >= this.y && a.get_right() <= this.get_right() ? a.get_bottom() <= this.get_bottom() : !1 }, containsVector: function (a) { return this.contains(a.x, a.y) }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.width = a.width; this.height = a.height }, equals: function (a) { return null != a && this.x == a.x && this.y == a.y && this.width == a.width ? this.height == a.height : !1 }, inflate: function (a, b) { this.x -= a; this.width += 2 * a; this.y -= b; this.height += 2 * b }, inflateVector: function (a) { this.inflate(a.x, a.y) }, intersection: function (a, b) { null == b && (b = new Vd); var c = this.x < a.x ? a.x : this.x, d = this.get_right() > a.get_right() ? a.get_right() : this.get_right(); if (d <= c) return b.setEmpty(), b; var e = this.y < a.y ? a.y : this.y; a = this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom(); if (a <= e) return b.setEmpty(), b; b.x = c; b.y = e; b.width = d - c; b.height = a - e; return b }, intersects: function (a) { var b = this.x < a.x ? a.x : this.x; if ((this.get_right() > a.get_right() ? a.get_right() : this.get_right()) <= b) return !1; b = this.y < a.y ? a.y : this.y; return (this.get_bottom() > a.get_bottom() ? a.get_bottom() : this.get_bottom()) > b }, isEmpty: function () { return 0 >= this.width ? !0 : 0 >= this.height }, offset: function (a, b) { this.x += a; this.y += b }, offsetVector: function (a) { this.x += a.x; this.y += a.y }, setEmpty: function () { this.x = this.y = this.width = this.height = 0 }, setTo: function (a, b, c, d) { this.x = a; this.y = b; this.width = c; this.height = d }, union: function (a, b) { null == b && (b = new Vd); if (0 == this.width || 0 == this.height) b.copyFrom(a); else if (0 == a.width || 0 == a.height) b.copyFrom(this); else { var c = this.x > a.x ? a.x : this.x, d = this.get_right() < a.get_right() ? a.get_right() : this.get_right(), e = this.y > a.y ? a.y : this.y; a = this.get_bottom() < a.get_bottom() ? a.get_bottom() : this.get_bottom(); b.setTo(c, e, d - c, a - e) } return b }, __toFlashRectangle: function () { return null }, get_bottom: function () { return this.y + this.height }, set_bottom: function (a) { this.height = a - this.y; return a }, get_bottomRight: function () { return new be(this.x + this.width, this.y + this.height) }, set_bottomRight: function (a) { this.width = a.x - this.x; this.height = a.y - this.y; return a.clone() }, get_left: function () { return this.x }, set_left: function (a) { this.width -= a - this.x; return this.x = a }, get_right: function () { return this.x + this.width }, set_right: function (a) { this.width = a - this.x; return a }, get_size: function () { return new be(this.width, this.height) }, set_size: function (a) { this.width = a.x; this.height = a.y; return a.clone() }, get_top: function () { return this.y }, set_top: function (a) { this.height -= a - this.y; return this.y = a }, get_topLeft: function () { return new be(this.x, this.y) }, set_topLeft: function (a) { this.x = a.x; this.y = a.y; return a.clone() }, __class__: Vd, __properties__: { set_topLeft: "set_topLeft", get_topLeft: "get_topLeft", set_top: "set_top", get_top: "get_top", set_size: "set_size", get_size: "get_size", set_right: "set_right", get_right: "get_right", set_left: "set_left", get_left: "get_left", set_bottomRight: "set_bottomRight", get_bottomRight: "get_bottomRight", set_bottom: "set_bottom", get_bottom: "get_bottom" } }; var be = function (a, b) { null == b && (b = 0); null == a && (a = 0); this.x = a; this.y = b }; k["lime.math.Vector2"] = be; be.__name__ = "lime.math.Vector2"; be.distance = function (a, b) { var c = a.x - b.x; a = a.y - b.y; return Math.sqrt(c * c + a * a) }; be.interpolate = function (a, b, c, d) { null == d && (d = new be); d.x = b.x + c * (a.x - b.x); d.y = b.y + c * (a.y - b.y); return d }; be.polar = function (a, b, c) { null == c && (c = new be); var d = a * Math.sin(b); c.x = a * Math.cos(b); c.y = d; return c }; be.prototype = { x: null, y: null, add: function (a, b) { null == b && (b = new be); b.x = a.x + this.x; b.y = a.y + this.y; return b }, clone: function () { return new be(this.x, this.y) }, equals: function (a) { return null != a && a.x == this.x ? a.y == this.y : !1 }, normalize: function (a) { if (0 != this.x || 0 != this.y) a /= Math.sqrt(this.x * this.x + this.y * this.y), this.x *= a, this.y *= a }, offset: function (a, b) { this.x += a; this.y += b }, setTo: function (a, b) { this.x = a; this.y = b }, subtract: function (a, b) { null == b && (b = new be); b.x = this.x - a.x; b.y = this.y - a.y; return b }, __toFlashPoint: function () { return null }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y) }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y }, __class__: be, __properties__: { get_lengthSquared: "get_lengthSquared", get_length: "get_length" } }; var Gc = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.w = d; this.x = a; this.y = b; this.z = c }; k["lime.math.Vector4"] = Gc; Gc.__name__ = "lime.math.Vector4"; Gc.__properties__ = {get_Z_AXIS: "get_Z_AXIS", get_Y_AXIS: "get_Y_AXIS", get_X_AXIS: "get_X_AXIS"}; Gc.angleBetween = function (a, b) { a = new Gc(a.x, a.y, a.z, a.w); var c = Math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z); 0 != c && (a.x /= c, a.y /= c, a.z /= c); b = new Gc(b.x, b.y, b.z, b.w); c = Math.sqrt(b.x * b.x + b.y * b.y + b.z * b.z); 0 != c && (b.x /= c, b.y /= c, b.z /= c); return Math.acos(a.x * b.x + a.y * b.y + a.z * b.z) }; Gc.distance = function (a, b) { var c = b.x - a.x, d = b.y - a.y; a = b.z - a.z; return Math.sqrt(c * c + d * d + a * a) }; Gc.distanceSquared = function (a, b) { var c = b.x - a.x, d = b.y - a.y; a = b.z - a.z; return c * c + d * d + a * a }; Gc.get_X_AXIS = function () { return new Gc(1, 0, 0) }; Gc.get_Y_AXIS = function () { return new Gc(0, 1, 0) }; Gc.get_Z_AXIS = function () { return new Gc(0, 0, 1) }; Gc.prototype = { w: null, x: null, y: null, z: null, add: function (a, b) { null == b && (b = new Gc); b.x = this.x + a.x; b.y = this.y + a.y; b.z = this.z + a.z; return b }, clone: function () { return new Gc(this.x, this.y, this.z, this.w) }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.z = a.z }, crossProduct: function (a, b) { null == b && (b = new Gc); var c = this.z * a.x - this.x * a.z, d = this.x * a.y - this.y * a.x; b.x = this.y * a.z - this.z * a.y; b.y = c; b.z = d; b.w = 1; return b }, decrementBy: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z }, dotProduct: function (a) { return this.x * a.x + this.y * a.y + this.z * a.z }, equals: function (a, b) { null == b && (b = !1); return this.x == a.x && this.y == a.y && this.z == a.z ? b ? this.w == a.w : !0 : !1 }, incrementBy: function (a) { this.x += a.x; this.y += a.y; this.z += a.z }, nearEquals: function (a, b, c) { null == c && (c = !1); return Math.abs(this.x - a.x) < b && Math.abs(this.y - a.y) < b && Math.abs(this.z - a.z) < b ? c ? Math.abs(this.w - a.w) < b : !0 : !1 }, negate: function () { this.x *= -1; this.y *= -1; this.z *= -1 }, normalize: function () { var a = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); 0 != a && (this.x /= a, this.y /= a, this.z /= a); return a }, project: function () { this.x /= this.w; this.y /= this.w; this.z /= this.w }, scaleBy: function (a) { this.x *= a; this.y *= a; this.z *= a }, setTo: function (a, b, c) { this.x = a; this.y = b; this.z = c }, subtract: function (a, b) { null == b && (b = new Gc); b.x = this.x - a.x; b.y = this.y - a.y; b.z = this.z - a.z; return b }, toString: function () { return "Vector4(" + this.x + ", " + this.y + ", " + this.z + ")" }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y + this.z * this.z }, __class__: Gc, __properties__: {get_lengthSquared: "get_lengthSquared", get_length: "get_length"} }; var Zc = function () { }; k["lime.media.AudioBuffer"] = Zc; Zc.__name__ = "lime.media.AudioBuffer"; Zc.fromBase64 = function (a) { if (null == a) return null; -1 == a.indexOf(",") && (a = "data:" + Zc.__getCodec(Tf.decode(a)) + ";base64," + a); var b = new Zc; b.set_src(new Howl({src: [a], html5: !0, preload: !1})); return b }; Zc.fromBytes = function (a) { if (null == a) return null; var b = new Zc; b.set_src(new Howl({ src: ["data:" + Zc.__getCodec(a) + ";base64," + Tf.encode(a)], html5: !0, preload: !1 })); return b }; Zc.fromFile = function (a) { if (null == a) return null; var b = new Zc; b.__srcHowl = new Howl({src: [a], preload: !1}); return b }; Zc.fromFiles = function (a) { var b = new Zc; b.__srcHowl = new Howl({src: a, preload: !1}); return b }; Zc.fromVorbisFile = function (a) { return null }; Zc.loadFromFile = function (a) { var b = new fe, c = Zc.fromFile(a); null != c ? null != c && (c.__srcHowl.on("load", function () { b.complete(c) }), c.__srcHowl.on("loaderror", function (a, c) { b.error(c) }), c.__srcHowl.load()) : b.error(null); return b.future }; Zc.loadFromFiles = function (a) { var b = new fe, c = Zc.fromFiles(a); null != c ? (c.__srcHowl.on("load", function () { b.complete(c) }), c.__srcHowl.on("loaderror", function () { b.error(null) }), c.__srcHowl.load()) : b.error(null); return b.future }; Zc.__getCodec = function (a) { switch (a.getString(0, 4)) { case "OggS": return "audio/ogg"; case "RIFF": if ("WAVE" == a.getString(8, 4)) return "audio/wav"; var b = a.b[1], c = a.b[2]; switch (a.b[0]) { case 73: if (68 == b && 51 == c) return "audio/mp3"; break; case 255: switch (b) { case 243: case 250: case 251: return "audio/mp3" } } break; case "fLaC": return "audio/flac"; default: switch (b = a.b[1], c = a.b[2], a.b[0]) { case 73: if (68 == b && 51 == c) return "audio/mp3"; break; case 255: switch (b) { case 243: case 250: case 251: return "audio/mp3" } } } Qa.error("Unsupported sound format", { fileName: "lime/media/AudioBuffer.hx", lineNumber: 362, className: "lime.media.AudioBuffer", methodName: "__getCodec" }); return null }; Zc.prototype = { bitsPerSample: null, channels: null, data: null, sampleRate: null, __srcAudio: null, __srcBuffer: null, __srcCustom: null, __srcHowl: null, __srcSound: null, __srcVorbisFile: null, dispose: function () { this.__srcHowl.unload() }, get_src: function () { return this.__srcHowl }, set_src: function (a) { return this.__srcHowl = a }, __class__: Zc, __properties__: {set_src: "set_src", get_src: "get_src"} }; var Po = function (a) { if ("custom" != a) { if (null == a || "web" == a) try { window.AudioContext = window.AudioContext || window.webkitAudioContext, this.web = new window.AudioContext, this.type = "web" } catch (b) { ra.lastError = b } null == this.web && "web" != a && (this.html5 = new Oo, this.type = "html5") } else this.type = "custom" }; k["lime.media.AudioContext"] = Po; Po.__name__ = "lime.media.AudioContext"; Po.prototype = { custom: null, flash: null, html5: null, openal: null, type: null, web: null, __class__: Po }; var Dc = function () { }; k["lime.media.AudioManager"] = Dc; Dc.__name__ = "lime.media.AudioManager"; Dc.init = function (a) { if (null == Dc.context) { if (null == a && (Dc.context = new Po, a = Dc.context, "openal" == a.type)) { var b = a.openal, c = b.openDevice(); c = b.createContext(c); b.makeContextCurrent(c); b.processContext(c) } Dc.context = a } }; Dc.resume = function () { if (null != Dc.context && "openal" == Dc.context.type) { var a = Dc.context.openal, b = a.getCurrentContext(); if (null != b) { var c = a.getContextsDevice(b); a.resumeDevice(c); a.processContext(b) } } }; Dc.addAudioSource = function (a) { -1 == Dc.audioSources.indexOf(a) && Dc.audioSources.push(a) }; Dc.removeAudioSource = function (a) { 0 <= Dc.audioSources.indexOf(a) && Dc.sourcesToRemove.push(a) }; Dc.update = function () { for (var a = 0, b = Dc.audioSources; a < b.length;) { var c = b[a]; ++a; c.update() } for (; 0 < Dc.sourcesToRemove.length;) c = Dc.sourcesToRemove.pop(), -1 != Dc.audioSources.indexOf(c) && K.remove(Dc.audioSources, c) }; Dc.shutdown = function () { if (null != Dc.context && "openal" == Dc.context.type) { var a = Dc.context.openal, b = a.getCurrentContext(); if (null != b) { var c = a.getContextsDevice(b); a.makeContextCurrent(null); a.destroyContext(b); null != c && a.closeDevice(c) } } Dc.context = null }; Dc.suspend = function () { if (null != Dc.context && "openal" == Dc.context.type) { var a = Dc.context.openal, b = a.getCurrentContext(); null != b && (a.suspendContext(b), b = a.getContextsDevice(b), null != b && a.pauseDevice(b)) } }; var Tj = function (a, b, c, d) { null == d && (d = 0); null == b && (b = 0); this.id = Tj.ID++; this.onComplete = new Rd; this.buffer = a; this.offset = b; this.__backend = new vo(this); null != c && 0 != c && this.set_length(c); this.set_loops(d); null != a && this.init() }; k["lime.media.AudioSource"] = Tj; Tj.__name__ = "lime.media.AudioSource"; Tj.prototype = { onComplete: null, id: null, buffer: null, offset: null, _pan: null, _position: null, __backend: null, dispose: function () { this.__backend.dispose(); Dc.removeAudioSource(this) }, init: function () { this.__backend.init(); Dc.addAudioSource(this) }, play: function () { this.__backend.play() }, pause: function () { this.__backend.pause() }, stop: function () { this.__backend.stop() }, update: function () { this.__backend.update() }, get_currentTime: function () { return this.__backend.getCurrentTime() }, set_currentTime: function (a) { return this.__backend.setCurrentTime(a) }, get_gain: function () { return this.__backend.getGain() }, set_gain: function (a) { return this.__backend.setGain(a) }, get_length: function () { return this.__backend.getLength() }, set_length: function (a) { return this.__backend.setLength(a) }, get_loops: function () { return this.__backend.getLoops() }, set_loops: function (a) { return this.__backend.setLoops(a) }, get_pan: function () { return this._pan }, set_pan: function (a) { if (null != this._position) return this._pan; null == a && (this._pan = this.__backend.setPan(0)); return this._pan = this.__backend.setPan(a) }, get_position: function () { return this._position }, set_position: function (a) { if (null != this._pan) return this._position; null == a && (this._position = this.__backend.setPosition(new Gc(0, 0, 0, 0))); return this._position = this.__backend.setPosition(a) }, __class__: Tj, __properties__: { set_position: "set_position", get_position: "get_position", set_pan: "set_pan", get_pan: "get_pan", set_loops: "set_loops", get_loops: "get_loops", set_length: "set_length", get_length: "get_length", set_gain: "set_gain", get_gain: "get_gain", set_currentTime: "set_currentTime", get_currentTime: "get_currentTime" } }; var sr = function () { }; k["lime.media.FlashAudioContext"] = sr; sr.__name__ = "lime.media.FlashAudioContext"; sr.prototype = { createBuffer: function (a, b) { return null }, getBytesLoaded: function (a) { return 0 }, getBytesTotal: function (a) { return 0 }, getID3: function (a) { return null }, getIsBuffering: function (a) { return !1 }, getIsURLInaccessible: function (a) { return !1 }, getLength: function (a) { return 0 }, getURL: function (a) { return null }, close: function (a) { }, extract: function (a, b, c, d) { return 0 }, load: function (a, b, c) { }, loadCompressedDataFromByteArray: function (a, b, c) { }, loadPCMFromByteArray: function (a, b, c, d, e, g) { }, play: function (a, b, c, d) { return null }, __class__: sr }; var Oo = function () { this.NETWORK_NO_SOURCE = 3; this.NETWORK_LOADING = 2; this.NETWORK_IDLE = 1; this.HAVE_NOTHING = this.NETWORK_EMPTY = 0; this.HAVE_METADATA = 1; this.HAVE_FUTURE_DATA = 3; this.HAVE_ENOUGH_DATA = 4; this.HAVE_CURRENT_DATA = 2 }; k["lime.media.HTML5AudioContext"] = Oo; Oo.__name__ = "lime.media.HTML5AudioContext"; Oo.prototype = { HAVE_CURRENT_DATA: null, HAVE_ENOUGH_DATA: null, HAVE_FUTURE_DATA: null, HAVE_METADATA: null, HAVE_NOTHING: null, NETWORK_EMPTY: null, NETWORK_IDLE: null, NETWORK_LOADING: null, NETWORK_NO_SOURCE: null, canPlayType: function (a, b) { return null != a.__srcAudio ? a.__srcAudio.canPlayType(b) : null }, createBuffer: function (a) { var b = new Zc; b.__srcAudio = new Audio; b.__srcAudio.src = a; return b }, getAutoplay: function (a) { return null != a.__srcAudio ? a.__srcAudio.autoplay : !1 }, getBuffered: function (a) { return null != a.__srcAudio ? a.__srcAudio.buffered : null }, getCurrentSrc: function (a) { return null != a.__srcAudio ? a.__srcAudio.currentSrc : null }, getCurrentTime: function (a) { return null != a.__srcAudio ? a.__srcAudio.currentTime : 0 }, getDefaultPlaybackRate: function (a) { return null != a.__srcAudio ? a.__srcAudio.defaultPlaybackRate : 1 }, getDuration: function (a) { return null != a.__srcAudio ? a.__srcAudio.duration : 0 }, getEnded: function (a) { return null != a.__srcAudio ? a.__srcAudio.ended : !1 }, getError: function (a) { return null != a.__srcAudio ? a.__srcAudio.error : null }, getLoop: function (a) { return null != a.__srcAudio ? a.__srcAudio.loop : !1 }, getMuted: function (a) { return null != a.__srcAudio ? a.__srcAudio.muted : !1 }, getNetworkState: function (a) { return null != a.__srcAudio ? a.__srcAudio.networkState : 0 }, getPaused: function (a) { return null != a.__srcAudio ? a.__srcAudio.paused : !1 }, getPlaybackRate: function (a) { return null != a.__srcAudio ? a.__srcAudio.playbackRate : 1 }, getPlayed: function (a) { return null != a.__srcAudio ? a.__srcAudio.played : null }, getPreload: function (a) { return null != a.__srcAudio ? a.__srcAudio.preload : null }, getReadyState: function (a) { return null != a.__srcAudio ? a.__srcAudio.readyState : 0 }, getSeekable: function (a) { return null != a.__srcAudio ? a.__srcAudio.seekable : null }, getSeeking: function (a) { return null != a.__srcAudio ? a.__srcAudio.seeking : !1 }, getSrc: function (a) { return null != a.__srcAudio ? a.__srcAudio.src : null }, getStartTime: function (a) { return null != a.__srcAudio ? a.__srcAudio.playbackRate : 0 }, getVolume: function (a) { return null != a.__srcAudio ? a.__srcAudio.volume : 1 }, load: function (a) { null != a.__srcAudio && a.__srcAudio.load() }, pause: function (a) { null != a.__srcAudio && a.__srcAudio.pause() }, play: function (a) { null != a.__srcAudio && a.__srcAudio.play() }, setAutoplay: function (a, b) { null != a.__srcAudio && (a.__srcAudio.autoplay = b) }, setCurrentTime: function (a, b) { null != a.__srcAudio && (a.__srcAudio.currentTime = b) }, setDefaultPlaybackRate: function (a, b) { null != a.__srcAudio && (a.__srcAudio.defaultPlaybackRate = b) }, setLoop: function (a, b) { null != a.__srcAudio && (a.__srcAudio.loop = b) }, setMuted: function (a, b) { null != a.__srcAudio && (a.__srcAudio.muted = b) }, setPlaybackRate: function (a, b) { null != a.__srcAudio && (a.__srcAudio.playbackRate = b) }, setPreload: function (a, b) { null != a.__srcAudio && (a.__srcAudio.preload = b) }, setSrc: function (a, b) { null != a.__srcAudio && (a.__srcAudio.src = b) }, setVolume: function (a, b) { null != a.__srcAudio && (a.__srcAudio.volume = b) }, __class__: Oo }; var tr = function () { this.ALL_DEVICES_SPECIFIER = 4115; this.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; this.ENUMERATE_ALL_EXT = 1; this.DEVICE_SPECIFIER = 4101; this.DEFAULT_DEVICE_SPECIFIER = 4100; this.ALL_ATTRIBUTES = 4099; this.ATTRIBUTES_SIZE = 4098; this.INVALID_CONTEXT = 40962; this.INVALID_DEVICE = 40961; this.STEREO_SOURCES = 4113; this.MONO_SOURCES = 4112; this.SYNC = 4105; this.REFRESH = 4104; this.EXPONENT_DISTANCE_CLAMPED = 53254; this.EXPONENT_DISTANCE = 53253; this.LINEAR_DISTANCE_CLAMPED = 53252; this.LINEAR_DISTANCE = 53251; this.INVERSE_DISTANCE_CLAMPED = 53250; this.INVERSE_DISTANCE = 53249; this.DISTANCE_MODEL = 53248; this.DOPPLER_VELOCITY = 49153; this.SPEED_OF_SOUND = 49155; this.DOPPLER_FACTOR = 49152; this.EXTENSIONS = 45060; this.RENDERER = 45059; this.VERSION = 45058; this.VENDOR = 45057; this.OUT_OF_MEMORY = 40965; this.INVALID_OPERATION = 40964; this.INVALID_VALUE = 40963; this.INVALID_ENUM = 40962; this.INVALID_NAME = 40961; this.NO_ERROR = 0; this.SIZE = 8196; this.CHANNELS = 8195; this.BITS = 8194; this.FREQUENCY = 8193; this.FORMAT_STEREO16 = 4355; this.FORMAT_STEREO8 = 4354; this.FORMAT_MONO16 = 4353; this.FORMAT_MONO8 = 4352; this.UNDETERMINED = 4144; this.STREAMING = 4137; this.STATIC = 4136; this.SOURCE_TYPE = 4135; this.BYTE_OFFSET = 4134; this.SAMPLE_OFFSET = 4133; this.SEC_OFFSET = 4132; this.MAX_DISTANCE = 4131; this.CONE_OUTER_GAIN = 4130; this.ROLLOFF_FACTOR = 4129; this.REFERENCE_DISTANCE = 4128; this.BUFFERS_PROCESSED = 4118; this.BUFFERS_QUEUED = 4117; this.STOPPED = 4116; this.PAUSED = 4115; this.PLAYING = 4114; this.INITIAL = 4113; this.SOURCE_STATE = 4112; this.ORIENTATION = 4111; this.MAX_GAIN = 4110; this.MIN_GAIN = 4109; this.GAIN = 4106; this.BUFFER = 4105; this.LOOPING = 4103; this.VELOCITY = 4102; this.DIRECTION = 4101; this.POSITION = 4100; this.PITCH = 4099; this.CONE_OUTER_ANGLE = 4098; this.CONE_INNER_ANGLE = 4097; this.SOURCE_RELATIVE = 514; this.TRUE = 1; this.NONE = this.FALSE = 0 }; k["lime.media.OpenALAudioContext"] = tr; tr.__name__ = "lime.media.OpenALAudioContext"; tr.prototype = { NONE: null, FALSE: null, TRUE: null, SOURCE_RELATIVE: null, CONE_INNER_ANGLE: null, CONE_OUTER_ANGLE: null, PITCH: null, POSITION: null, DIRECTION: null, VELOCITY: null, LOOPING: null, BUFFER: null, GAIN: null, MIN_GAIN: null, MAX_GAIN: null, ORIENTATION: null, SOURCE_STATE: null, INITIAL: null, PLAYING: null, PAUSED: null, STOPPED: null, BUFFERS_QUEUED: null, BUFFERS_PROCESSED: null, REFERENCE_DISTANCE: null, ROLLOFF_FACTOR: null, CONE_OUTER_GAIN: null, MAX_DISTANCE: null, SEC_OFFSET: null, SAMPLE_OFFSET: null, BYTE_OFFSET: null, SOURCE_TYPE: null, STATIC: null, STREAMING: null, UNDETERMINED: null, FORMAT_MONO8: null, FORMAT_MONO16: null, FORMAT_STEREO8: null, FORMAT_STEREO16: null, FREQUENCY: null, BITS: null, CHANNELS: null, SIZE: null, NO_ERROR: null, INVALID_NAME: null, INVALID_ENUM: null, INVALID_VALUE: null, INVALID_OPERATION: null, OUT_OF_MEMORY: null, VENDOR: null, VERSION: null, RENDERER: null, EXTENSIONS: null, DOPPLER_FACTOR: null, SPEED_OF_SOUND: null, DOPPLER_VELOCITY: null, DISTANCE_MODEL: null, INVERSE_DISTANCE: null, INVERSE_DISTANCE_CLAMPED: null, LINEAR_DISTANCE: null, LINEAR_DISTANCE_CLAMPED: null, EXPONENT_DISTANCE: null, EXPONENT_DISTANCE_CLAMPED: null, REFRESH: null, SYNC: null, MONO_SOURCES: null, STEREO_SOURCES: null, INVALID_DEVICE: null, INVALID_CONTEXT: null, ATTRIBUTES_SIZE: null, ALL_ATTRIBUTES: null, DEFAULT_DEVICE_SPECIFIER: null, DEVICE_SPECIFIER: null, ENUMERATE_ALL_EXT: null, DEFAULT_ALL_DEVICES_SPECIFIER: null, ALL_DEVICES_SPECIFIER: null, bufferData: function (a, b, c, d, e) { C.bufferData(a, b, c, d, e) }, buffer3f: function (a, b, c, d, e) { C.buffer3f(a, b, c, d, e) }, buffer3i: function (a, b, c, d, e) { C.buffer3i(a, b, c, d, e) }, bufferf: function (a, b, c) { C.bufferf(a, b, c) }, bufferfv: function (a, b, c) { C.bufferfv(a, b, c) }, bufferi: function (a, b, c) { C.bufferi(a, b, c) }, bufferiv: function (a, b, c) { C.bufferiv(a, b, c) }, closeDevice: function (a) { return Mb.closeDevice(a) }, createContext: function (a, b) { return Mb.createContext(a, b) }, createBuffer: function () { return C.createBuffer() }, createSource: function () { return C.createSource() }, deleteBuffer: function (a) { C.deleteBuffer(a) }, deleteBuffers: function (a) { C.deleteBuffers(a) }, deleteSource: function (a) { C.deleteSource(a) }, deleteSources: function (a) { C.deleteSources(a) }, destroyContext: function (a) { null != a && Mb.destroyContext(a) }, disable: function (a) { C.disable(a) }, distanceModel: function (a) { C.distanceModel(a) }, dopplerFactor: function (a) { C.dopplerFactor(a) }, dopplerVelocity: function (a) { C.dopplerVelocity(a) }, enable: function (a) { C.enable(a) }, genSource: function () { return this.createSource() }, genSources: function (a) { return C.genSources(a) }, genBuffer: function () { return this.createBuffer() }, genBuffers: function (a) { return C.genBuffers(a) }, getBoolean: function (a) { return C.getBoolean(a) }, getBooleanv: function (a, b) { null == b && (b = 1); return C.getBooleanv(a, b) }, getBuffer3f: function (a, b) { return C.getBuffer3f(a, b) }, getBuffer3i: function (a, b) { return C.getBuffer3i(a, b) }, getBufferf: function (a, b) { return C.getBufferf(a, b) }, getBufferfv: function (a, b, c) { null == c && (c = 1); return C.getBufferfv(a, b, c) }, getBufferi: function (a, b) { return C.getBufferi(a, b) }, getBufferiv: function (a, b, c) { null == c && (c = 1); return C.getBufferiv(a, b, c) }, getContextsDevice: function (a) { return null == a ? null : Mb.getContextsDevice(a) }, getCurrentContext: function () { return Mb.getCurrentContext() }, getDouble: function (a) { return C.getDouble(a) }, getDoublev: function (a, b) { null == b && (b = 1); return C.getDoublev(a, b) }, getEnumValue: function (a) { return C.getEnumValue(a) }, getError: function (a) { return null == a ? C.getError() : Mb.getError(a) }, getErrorString: function (a) { return null == a ? C.getErrorString() : Mb.getErrorString(a) }, getFloat: function (a) { return C.getFloat(a) }, getFloatv: function (a, b) { null == b && (b = 1); return C.getFloatv(a, b) }, getInteger: function (a) { return C.getInteger(a) }, getIntegerv: function (a, b, c) { null == b && (b = 1); return null == c ? C.getIntegerv(a, b) : Mb.getIntegerv(c, a, b) }, getListener3f: function (a) { return C.getListener3f(a) }, getListener3i: function (a) { return C.getListener3i(a) }, getListenerf: function (a) { return C.getListenerf(a) }, getListenerfv: function (a, b) { null == b && (b = 1); return C.getListenerfv(a, b) }, getListeneri: function (a) { return C.getListeneri(a) }, getListeneriv: function (a, b) { null == b && (b = 1); return C.getListeneriv(a, b) }, getProcAddress: function (a) { return C.getProcAddress(a) }, getSource3f: function (a, b) { return C.getSource3f(a, b) }, getSourcef: function (a, b) { return C.getSourcef(a, b) }, getSource3i: function (a, b) { return C.getSource3i(a, b) }, getSourcefv: function (a, b, c) { return C.getSourcefv(a, b) }, getSourcei: function (a, b) { return C.getSourcei(a, b) }, getSourceiv: function (a, b, c) { null == c && (c = 1); return C.getSourceiv(a, b, c) }, getString: function (a, b) { return null == b ? C.getString(a) : Mb.getString(b, a) }, isBuffer: function (a) { return C.isBuffer(a) }, isEnabled: function (a) { return C.isEnabled(a) }, isExtensionPresent: function (a) { return C.isExtensionPresent(a) }, isSource: function (a) { return C.isSource(a) }, listener3f: function (a, b, c, d) { C.listener3f(a, b, c, d) }, listener3i: function (a, b, c, d) { C.listener3i(a, b, c, d) }, listenerf: function (a, b) { C.listenerf(a, b) }, listenerfv: function (a, b) { C.listenerfv(a, b) }, listeneri: function (a, b) { C.listeneri(a, b) }, listeneriv: function (a, b) { C.listeneriv(a, b) }, makeContextCurrent: function (a) { return Mb.makeContextCurrent(a) }, openDevice: function (a) { return Mb.openDevice(a) }, pauseDevice: function (a) { Mb.pauseDevice(a) }, processContext: function (a) { Mb.processContext(a) }, resumeDevice: function (a) { Mb.resumeDevice(a) }, source3f: function (a, b, c, d, e) { C.source3f(a, b, c, d, e) }, source3i: function (a, b, c, d, e) { C.source3i(a, b, c, d, e) }, sourcef: function (a, b, c) { C.sourcef(a, b, c) }, sourcefv: function (a, b, c) { C.sourcefv(a, b, c) }, sourcei: function (a, b, c) { C.sourcei(a, b, c) }, sourceiv: function (a, b, c) { C.sourceiv(a, b, c) }, sourcePlay: function (a) { C.sourcePlay(a) }, sourcePlayv: function (a) { C.sourcePlayv(a) }, sourceStop: function (a) { C.sourceStop(a) }, sourceStopv: function (a) { C.sourceStopv(a) }, sourceRewind: function (a) { C.sourceRewind(a) }, sourceRewindv: function (a) { C.sourceRewindv(a) }, sourcePause: function (a) { C.sourcePause(a) }, sourcePausev: function (a) { C.sourcePausev(a) }, sourceQueueBuffer: function (a, b) { C.sourceQueueBuffer(a, b) }, sourceQueueBuffers: function (a, b, c) { C.sourceQueueBuffers(a, b, c) }, sourceUnqueueBuffer: function (a) { return C.sourceUnqueueBuffer(a) }, sourceUnqueueBuffers: function (a, b) { return C.sourceUnqueueBuffers(a, b) }, speedOfSound: function (a) { C.speedOfSound(a) }, suspendContext: function (a) { Mb.suspendContext(a) }, __class__: tr }; var C = function () { }; k["lime.media.openal.AL"] = C; C.__name__ = "lime.media.openal.AL"; C.removeDirectFilter = function (a) { }; C.removeSend = function (a, b) { }; C.auxf = function (a, b, c) { }; C.auxfv = function (a, b, c) { }; C.auxi = function (a, b, c) { }; C.auxiv = function (a, b, c) { }; C.bufferData = function (a, b, c, d, e) { }; C.buffer3f = function (a, b, c, d, e) { }; C.buffer3i = function (a, b, c, d, e) { }; C.bufferf = function (a, b, c) { }; C.bufferfv = function (a, b, c) { }; C.bufferi = function (a, b, c) { }; C.bufferiv = function (a, b, c) { }; C.createAux = function () { return null }; C.createBuffer = function () { return null }; C.createEffect = function () { return null }; C.createFilter = function () { return null }; C.createSource = function () { return null }; C.deleteBuffer = function (a) { }; C.deleteBuffers = function (a) { }; C.deleteSource = function (a) { }; C.deleteSources = function (a) { }; C.disable = function (a) { }; C.distanceModel = function (a) { }; C.dopplerFactor = function (a) { }; C.dopplerVelocity = function (a) { }; C.effectf = function (a, b, c) { }; C.effectfv = function (a, b, c) { }; C.effecti = function (a, b, c) { }; C.effectiv = function (a, b, c) { }; C.enable = function (a) { }; C.genSource = function () { return null }; C.genSources = function (a) { return null }; C.genBuffer = function () { return null }; C.genBuffers = function (a) { return null }; C.getBoolean = function (a) { return !1 }; C.getBooleanv = function (a, b) { return null }; C.getBuffer3f = function (a, b) { return null }; C.getBuffer3i = function (a, b) { return null }; C.getBufferf = function (a, b) { return 0 }; C.getBufferfv = function (a, b, c) { return null }; C.getBufferi = function (a, b) { return 0 }; C.getBufferiv = function (a, b, c) { return null }; C.getDouble = function (a) { return 0 }; C.getDoublev = function (a, b) { return null }; C.getEnumValue = function (a) { return 0 }; C.getError = function () { return 0 }; C.getErrorString = function () { switch (C.getError()) { case 40961: return "INVALID_NAME: Invalid parameter name"; case 40962: return "INVALID_ENUM: Invalid enum value"; case 40963: return "INVALID_VALUE: Invalid parameter value"; case 40964: return "INVALID_OPERATION: Illegal operation or call"; case 40965: return "OUT_OF_MEMORY: OpenAL has run out of memory"; default: return "" } }; C.getFilteri = function (a, b) { return 0 }; C.getFloat = function (a) { return 0 }; C.getFloatv = function (a, b) { return null }; C.getInteger = function (a) { return 0 }; C.getIntegerv = function (a, b) { return null }; C.getListener3f = function (a) { return null }; C.getListener3i = function (a) { return null }; C.getListenerf = function (a) { return 0 }; C.getListenerfv = function (a, b) { return null }; C.getListeneri = function (a) { return 0 }; C.getListeneriv = function (a, b) { return null }; C.getParameter = function (a) { return null }; C.getProcAddress = function (a) { return null }; C.getSource3f = function (a, b) { return null }; C.getSourcef = function (a, b) { return 0 }; C.getSource3i = function (a, b) { return null }; C.getSourcefv = function (a, b, c) { return null }; C.getSourcei = function (a, b) { return 0 }; C.getSourceiv = function (a, b, c) { return null }; C.getString = function (a) { return null }; C.isBuffer = function (a) { return !1 }; C.isEnabled = function (a) { return !1 }; C.isExtensionPresent = function (a) { return !1 }; C.isAux = function (a) { return !1 }; C.isEffect = function (a) { return !1 }; C.isFilter = function (a) { return !1 }; C.isSource = function (a) { return !1 }; C.listener3f = function (a, b, c, d) { }; C.listener3i = function (a, b, c, d) { }; C.listenerf = function (a, b) { }; C.listenerfv = function (a, b) { }; C.listeneri = function (a, b) { }; C.listeneriv = function (a, b) { }; C.source3f = function (a, b, c, d, e) { }; C.source3i = function (a, b, c, d, e) { }; C.sourcef = function (a, b, c) { }; C.sourcefv = function (a, b, c) { }; C.sourcei = function (a, b, c) { }; C.filteri = function (a, b, c) { }; C.filterf = function (a, b, c) { }; C.sourceiv = function (a, b, c) { }; C.sourcePlay = function (a) { }; C.sourcePlayv = function (a) { }; C.sourceStop = function (a) { }; C.sourceStopv = function (a) { }; C.sourceRewind = function (a) { }; C.sourceRewindv = function (a) { }; C.sourcePause = function (a) { }; C.sourcePausev = function (a) { }; C.sourceQueueBuffer = function (a, b) { }; C.sourceQueueBuffers = function (a, b, c) { }; C.sourceUnqueueBuffer = function (a) { return 0 }; C.sourceUnqueueBuffers = function (a, b) { return null }; C.speedOfSound = function (a) { }; var Mb = function () { }; k["lime.media.openal.ALC"] = Mb; Mb.__name__ = "lime.media.openal.ALC"; Mb.closeDevice = function (a) { return !1 }; Mb.createContext = function (a, b) { return null }; Mb.destroyContext = function (a) { }; Mb.getContextsDevice = function (a) { return null }; Mb.getCurrentContext = function () { return null }; Mb.getError = function (a) { return 0 }; Mb.getErrorString = function (a) { switch (Mb.getError(a)) { case 40961: return "INVALID_DEVICE: Invalid device (or no device?)"; case 40962: return "INVALID_CONTEXT: Invalid context (or no context?)"; case 40963: return "INVALID_ENUM: Invalid enum value"; case 40964: return "INVALID_VALUE: Invalid param value"; case 40965: return "OUT_OF_MEMORY: OpenAL has run out of memory"; default: return "" } }; Mb.getIntegerv = function (a, b, c) { return null }; Mb.getString = function (a, b) { return null }; Mb.makeContextCurrent = function (a) { return !1 }; Mb.openDevice = function (a) { return null }; Mb.pauseDevice = function (a) { }; Mb.processContext = function (a) { }; Mb.resumeDevice = function (a) { }; Mb.suspendContext = function (a) { }; var ur = function () { }; k["lime.media.vorbis.VorbisComment"] = ur; ur.__name__ = "lime.media.vorbis.VorbisComment"; ur.prototype = { userComments: null, vendor: null, __class__: ur }; var um = function (a) { this.handle = a }; k["lime.media.vorbis.VorbisFile"] = um; um.__name__ = "lime.media.vorbis.VorbisFile"; um.fromBytes = function (a) { return null }; um.fromFile = function (a) { return null }; um.prototype = { bitstream: null, handle: null, bitrate: function (a) { return 0 }, bitrateInstant: function () { return 0 }, clear: function () { }, comment: function (a) { return null }, crosslap: function (a) { return 0 }, info: function (a) { return null }, pcmSeek: function (a) { return 0 }, pcmSeekLap: function (a) { return 0 }, pcmSeekPage: function (a) { return 0 }, pcmSeekPageLap: function (a) { return 0 }, pcmTell: function () { return new db(0, 0) }, pcmTotal: function (a) { return new db(0, 0) }, rawSeek: function (a) { return 0 }, rawSeekLap: function (a) { return 0 }, rawTell: function () { return new db(0, 0) }, rawTotal: function (a) { return new db(0, 0) }, read: function (a, b, c, d, e, g) { return 0 }, readFloat: function (a, b) { return 0 }, seekable: function () { return !1 }, serialNumber: function (a) { return 0 }, streams: function () { return 0 }, timeSeek: function (a) { return 0 }, timeSeekLap: function (a) { return 0 }, timeSeekPage: function (a) { return 0 }, timeSeekPageLap: function (a) { return 0 }, timeTell: function () { return 0 }, timeTotal: function (a) { return 0 }, __class__: um }; var vr = function () { }; k["lime.media.vorbis.VorbisInfo"] = vr; vr.__name__ = "lime.media.vorbis.VorbisInfo"; vr.prototype = { bitrateLower: null, bitrateNominal: null, bitrateUpper: null, channels: null, rate: null, version: null, __class__: vr }; var vm = function () { }; k["lime.net._IHTTPRequest"] = vm; vm.__name__ = "lime.net._IHTTPRequest"; vm.__isInterface__ = !0; vm.prototype = { contentType: null, data: null, enableResponseHeaders: null, followRedirects: null, formData: null, headers: null, method: null, responseHeaders: null, responseStatus: null, timeout: null, uri: null, userAgent: null, withCredentials: null, cancel: null, __class__: vm }; var hf = function (a) { this.uri = a; this.contentType = "application/x-www-form-urlencoded"; this.followRedirects = !0; this.enableResponseHeaders = !1; this.formData = new xa; this.headers = []; this.method = "GET"; this.timeout = 3E4; this.withCredentials = !1; this.__backend = new Ua; this.__backend.init(this) }; k["lime.net._HTTPRequest.AbstractHTTPRequest"] = hf; hf.__name__ = "lime.net._HTTPRequest.AbstractHTTPRequest"; hf.__interfaces__ = [vm]; hf.prototype = { contentType: null, data: null, enableResponseHeaders: null, followRedirects: null, formData: null, headers: null, method: null, responseData: null, responseHeaders: null, responseStatus: null, timeout: null, uri: null, userAgent: null, withCredentials: null, __backend: null, cancel: function () { this.__backend.cancel() }, load: function (a) { return null }, __class__: hf }; var Qo = function (a) { hf.call(this, a) }; k["lime.net.HTTPRequest"] = Qo; Qo.__name__ = "lime.net.HTTPRequest"; Qo.__super__ = hf; Qo.prototype = u(hf.prototype, {__class__: Qo}); var ah = function (a) { hf.call(this, a) }; k["lime.net._HTTPRequest_Bytes"] = ah; ah.__name__ = "lime.net._HTTPRequest_Bytes"; ah.__super__ = hf; ah.prototype = u(hf.prototype, { fromBytes: function (a) { return a }, load: function (a) { var b = this; null != a && (this.uri = a); var c = new fe; a = this.__backend.loadData(this.uri); a.onProgress(q(c, c.progress)); a.onError(q(c, c.error)); a.onComplete(function (a) { b.responseData = b.fromBytes(a); c.complete(b.responseData) }); return c.future }, __class__: ah }); var Uj = function (a) { hf.call(this, a) }; k["lime.net._HTTPRequest_String"] = Uj; Uj.__name__ = "lime.net._HTTPRequest_String"; Uj.__super__ = hf; Uj.prototype = u(hf.prototype, { load: function (a) { var b = this; null != a && (this.uri = a); var c = new fe; a = this.__backend.loadText(this.uri); a.onProgress(q(c, c.progress)); a.onError(q(c, c.error)); a.onComplete(function (a) { b.responseData = a; c.complete(b.responseData) }); return c.future }, __class__: Uj }); var im = function (a, b) { null == b && (b = ""); this.name = a; this.value = b }; k["lime.net.HTTPRequestHeader"] = im; im.__name__ = "lime.net.HTTPRequestHeader"; im.prototype = {name: null, value: null, __class__: im}; var wm = function (a) { hf.call(this, a) }; k["lime.net._HTTPRequest_lime_text_Font"] = wm; wm.__name__ = "lime.net._HTTPRequest_lime_text_Font"; wm.__super__ = ah; wm.prototype = u(ah.prototype, { fromBytes: function (a) { return Sd.fromBytes(a) }, __class__: wm }); var xm = function (a) { hf.call(this, a) }; k["lime.net._HTTPRequest_lime_utils_Bytes"] = xm; xm.__name__ = "lime.net._HTTPRequest_lime_utils_Bytes"; xm.__super__ = ah; xm.prototype = u(ah.prototype, { fromBytes: function (a) { return oc.fromBytes(a) }, __class__: xm }); var ym = function (a) { hf.call(this, a) }; k["lime.net._HTTPRequest_openfl_utils_ByteArray"] = ym; ym.__name__ = "lime.net._HTTPRequest_openfl_utils_ByteArray"; ym.__super__ = ah; ym.prototype = u(ah.prototype, { fromBytes: function (a) { return Fb.fromBytes(a) }, __class__: ym }); var bh = function () { }; k["lime.system.CFFI"] = bh; bh.__name__ = "lime.system.CFFI"; bh.load = function (a, b, c, d) { null == d && (d = !1); null == c && (c = 0); return bh.enabled ? null : V.makeVarArgs(function (a) { return {} }) }; bh.__findHaxelib = function (a) { return "" }; bh.__loaderTrace = function (a) { }; bh.__sysName = function () { return null }; bh.__tryLoad = function (a, b, c, d) { return null }; var Td = { _new: function (a) { return a }, get: function (a) { return 0 }, equals: function (a, b) { return Td.get(a) == b }, equalsPointer: function (a, b) { return Td.get(a) == Td.get(b) }, greaterThan: function (a, b) { return Td.get(a) > b }, greaterThanPointer: function (a, b) { return Td.get(a) > Td.get(b) }, greaterThanOrEqual: function (a, b) { return Td.get(a) >= b }, greaterThanOrEqualPointer: function (a, b) { return Td.get(a) >= Td.get(b) }, lessThan: function (a, b) { return Td.get(a) < b }, lessThanPointer: function (a, b) { return Td.get(a) < Td.get(b) }, lessThanOrEqual: function (a, b) { return Td.get(a) <= b }, lessThanOrEqualPointer: function (a, b) { return Td.get(a) <= Td.get(b) }, notEquals: function (a, b) { return Td.get(a) != b }, notEqualsPointer: function (a, b) { return Td.get(a) != Td.get(b) } }, oe = function () { }; k["lime.system.Clipboard"] = oe; oe.__name__ = "lime.system.Clipboard"; oe.__properties__ = { set_text: "set_text", get_text: "get_text" }; oe.__update = function () { var a = oe._text; oe._text = null; oe._text != a && oe.onUpdate.dispatch() }; oe.get_text = function () { oe.__update(); return oe._text }; oe.set_text = function (a) { var b = oe._text; oe._text = a; var c = zd.current.__window; null != c && c.__backend.setClipboard(a); oe._text != b && oe.onUpdate.dispatch(); return a }; var Ro = function () { }; k["lime.system.Display"] = Ro; Ro.__name__ = "lime.system.Display"; Ro.prototype = { bounds: null, currentMode: null, id: null, dpi: null, name: null, supportedModes: null, __class__: Ro }; var So = function (a, b, c, d) { this.width = a; this.height = b; this.refreshRate = c; this.pixelFormat = d }; k["lime.system.DisplayMode"] = So; So.__name__ = "lime.system.DisplayMode"; So.prototype = {height: null, pixelFormat: null, refreshRate: null, width: null, __class__: So}; var Eg = A["lime.system.Endian"] = { __ename__: "lime.system.Endian", __constructs__: null, LITTLE_ENDIAN: {_hx_name: "LITTLE_ENDIAN", _hx_index: 0, __enum__: "lime.system.Endian", toString: t}, BIG_ENDIAN: {_hx_name: "BIG_ENDIAN", _hx_index: 1, __enum__: "lime.system.Endian", toString: t} }; Eg.__constructs__ = [Eg.LITTLE_ENDIAN, Eg.BIG_ENDIAN]; var Ee = function () { }; k["lime.system.JNI"] = Ee; Ee.__name__ = "lime.system.JNI"; Ee.callMember = function (a, b, c) { switch (c.length) { case 0: return a(b); case 1: return a(b, c[0]); case 2: return a(b, c[0], c[1]); case 3: return a(b, c[0], c[1], c[2]); case 4: return a(b, c[0], c[1], c[2], c[3]); case 5: return a(b, c[0], c[1], c[2], c[3], c[4]); case 6: return a(b, c[0], c[1], c[2], c[3], c[4], c[5]); case 7: return a(b, c[0], c[1], c[2], c[3], c[4], c[5], c[6]); default: return null } }; Ee.callStatic = function (a, b) { switch (b.length) { case 0: return a(); case 1: return a(b[0]); case 2: return a(b[0], b[1]); case 3: return a(b[0], b[1], b[2]); case 4: return a(b[0], b[1], b[2], b[3]); case 5: return a(b[0], b[1], b[2], b[3], b[4]); case 6: return a(b[0], b[1], b[2], b[3], b[4], b[5]); case 7: return a(b[0], b[1], b[2], b[3], b[4], b[5], b[6]); default: return null } }; Ee.createMemberField = function (a, b, c) { Ee.init(); return null }; Ee.createMemberMethod = function (a, b, c, d, e) { Ee.init(); return null }; Ee.createStaticField = function (a, b, c) { Ee.init(); return null }; Ee.createStaticMethod = function (a, b, c, d, e) { Ee.init(); return null }; Ee.getEnv = function () { Ee.init(); return null }; Ee.init = function () { Ee.initialized || (Ee.initialized = !0) }; Ee.onCallback = function (a, b, c) { b = V.field(a, b); return null != b ? (null == c && (c = []), b.apply(a, c)) : null }; Ee.postUICallback = function (a) { a() }; var wr = function (a) { this.field = a }; k["lime.system.JNIMemberField"] = wr; wr.__name__ = "lime.system.JNIMemberField"; wr.prototype = { field: null, get: function (a) { return null }, set: function (a, b) { return b }, __class__: wr }; var xr = function (a) { this.field = a }; k["lime.system.JNIStaticField"] = xr; xr.__name__ = "lime.system.JNIStaticField"; xr.prototype = { field: null, get: function () { return null }, set: function (a) { return a }, __class__: xr }; var yr = function (a) { this.method = a }; k["lime.system.JNIMethod"] = yr; yr.__name__ = "lime.system.JNIMethod"; yr.prototype = { method: null, callMember: function (a) { return null }, callStatic: function (a) { return null }, getMemberMethod: function (a) { return a ? q(this, this.callMember) : V.makeVarArgs(q(this, this.callMember)) }, getStaticMethod: function (a) { return a ? q(this, this.callStatic) : V.makeVarArgs(q(this, this.callStatic)) }, __class__: yr }; var Xe = { __properties__: { get_region: "get_region", get_language: "get_language", get_systemLocale: "get_systemLocale", set_currentLocale: "set_currentLocale", get_currentLocale: "get_currentLocale" }, _new: function (a) { return a }, equals: function (a, b) { var c = Xe.get_language(a); a = Xe.get_region(a); var d = Xe.get_language(b); b = Xe.get_region(b); var e = c == d, g = a == b; e || null == c || null == d || (e = c.toLowerCase() == d.toLowerCase()); g || null == a || null == b || (g = a.toLowerCase() == b.toLowerCase()); return e ? g : !1 }, __init: function () { if (null == Xe.__systemLocale) { var a = navigator.language; Xe.__systemLocale = null != a ? a : "en-US"; Xe.set_currentLocale(Xe.__systemLocale) } }, get_language: function (a) { if (null != a) { var b = a.indexOf("_"); if (-1 < b) { var c = a.indexOf("-"); -1 < c && c < b && (b = c); return a.substring(0, b) } b = a.indexOf("-"); if (-1 < b) return a.substring(0, b) } return a }, get_region: function (a) { if (null != a) { var b = a.indexOf("_"), c = a.indexOf("."), d = a.indexOf("-"); if (-1 < b) return -1 < c ? a.substring(b + 1, c) : a.substring(b + 1); if (-1 < d) return -1 < c ? a.substring(d + 1, c) : a.substring(d + 1) } return null }, get_currentLocale: function () { Xe.__init(); return Xe.currentLocale }, set_currentLocale: function (a) { Xe.__init(); return Xe.currentLocale = a }, get_systemLocale: function () { Xe.__init(); return Xe.__systemLocale } }, Sf = function (a, b) { this.onUpdate = new Co; this.type = a; this.id = b }; k["lime.system.Sensor"] = Sf; Sf.__name__ = "lime.system.Sensor"; Sf.getSensors = function (a) { if (null == a) return Sf.sensors.slice(); for (var b = [], c = 0, d = Sf.sensors; c < d.length;) { var e = d[c]; ++c; e.type == a && b.push(e) } return b }; Sf.registerSensor = function (a, b) { a = new Sf(a, b); Sf.sensors.push(a); return Sf.sensorByID.h[b] = a }; Sf.prototype = {id: null, onUpdate: null, type: null, __class__: Sf}; var Ur = A["lime.system.SensorType"] = { __ename__: "lime.system.SensorType", __constructs__: null, ACCELEROMETER: { _hx_name: "ACCELEROMETER", _hx_index: 0, __enum__: "lime.system.SensorType", toString: t } }; Ur.__constructs__ = [Ur.ACCELEROMETER]; var $a = function () { }; k["lime.system.System"] = $a; $a.__name__ = "lime.system.System"; $a.__properties__ = { get_userDirectory: "get_userDirectory", get_platformVersion: "get_platformVersion", get_platformName: "get_platformName", get_platformLabel: "get_platformLabel", get_numDisplays: "get_numDisplays", get_fontsDirectory: "get_fontsDirectory", get_endianness: "get_endianness", get_documentsDirectory: "get_documentsDirectory", get_deviceVendor: "get_deviceVendor", get_deviceModel: "get_deviceModel", get_desktopDirectory: "get_desktopDirectory", get_applicationStorageDirectory: "get_applicationStorageDirectory", get_applicationDirectory: "get_applicationDirectory", set_allowScreenTimeout: "set_allowScreenTimeout", get_allowScreenTimeout: "get_allowScreenTimeout" }; $a.embed = y.lime.embed = function (a, b, c, d, e) { if (null != $a.__applicationEntryPoint && Object.prototype.hasOwnProperty.call($a.__applicationEntryPoint.h, a)) { var g = "string" == typeof b ? window.document.getElementById(b) : null == b ? window.document.createElement("div") : b; null == g ? window.console.log("[lime.embed] ERROR: Cannot find target element: " + z.string(b)) : (null == c && (c = 0), null == d && (d = 0), null == e && (e = {}), Object.prototype.hasOwnProperty.call(e, "background") && "string" == typeof e.background && (b = T.replace(z.string(e.background), "#", ""), -1 < b.indexOf("0x") ? e.background = z.parseInt(b) : e.background = z.parseInt("0x" + b)), e.element = g, e.width = c, e.height = d, $a.__applicationEntryPoint.h[a](e)) } }; $a.exit = function (a) { }; $a.getDisplay = function (a) { return 0 == a ? (a = new Ro, a.id = 0, a.name = "Generic Display", a.dpi = 96 * window.devicePixelRatio, a.currentMode = new So(window.screen.width, window.screen.height, 60, 1), a.supportedModes = [a.currentMode], a.bounds = new Vd(0, 0, a.currentMode.width, a.currentMode.height), a) : null }; $a.getTimer = function () { return window.performance.now() | 0 }; $a.load = function (a, b, c, d) { null == d && (d = !1); null == c && (c = 0); return bh.load(a, b, c, d) }; $a.openFile = function (a) { null != a && window.open(a, "_blank") }; $a.openURL = function (a, b) { null == b && (b = "_blank"); null != a && window.open(a, b) }; $a.__copyMissingFields = function (a, b) { if (null != b && null != a) for (var c = 0, d = V.fields(b); c < d.length;) { var e = d[c]; ++c; Object.prototype.hasOwnProperty.call(a, e) || (a[e] = V.field(b, e)) } }; $a.__getDirectory = function (a) { return null }; $a.__parseBool = function (a) { return "true" == a }; $a.__registerEntryPoint = function (a, b) { null == $a.__applicationEntryPoint && ($a.__applicationEntryPoint = new xa); $a.__applicationEntryPoint.h[a] = b }; $a.__runProcess = function (a, b) { return null }; $a.get_allowScreenTimeout = function () { return !0 }; $a.set_allowScreenTimeout = function (a) { return !0 }; $a.get_applicationDirectory = function () { null == $a.__applicationDirectory && ($a.__applicationDirectory = $a.__getDirectory(0)); return $a.__applicationDirectory }; $a.get_applicationStorageDirectory = function () { null == $a.__applicationStorageDirectory && ($a.__applicationStorageDirectory = $a.__getDirectory(1)); return $a.__applicationStorageDirectory }; $a.get_deviceModel = function () { return $a.__deviceModel }; $a.get_deviceVendor = function () { return $a.__deviceVendor }; $a.get_desktopDirectory = function () { null == $a.__desktopDirectory && ($a.__desktopDirectory = $a.__getDirectory(2)); return $a.__desktopDirectory }; $a.get_documentsDirectory = function () { null == $a.__documentsDirectory && ($a.__documentsDirectory = $a.__getDirectory(3)); return $a.__documentsDirectory }; $a.get_endianness = function () { if (null == $a.__endianness) { var a = new ArrayBuffer(2), b = null, c = null, d = null, e = null, g = null, f = b = null != b ? new Uint8Array(b) : null != c ? new Uint8Array(c) : null != d ? new Uint8Array(d.__array) : null != e ? new Uint8Array(e) : null != a ? null == g ? new Uint8Array(a, 0) : new Uint8Array(a, 0, g) : null; g = e = d = c = b = null; b = null != b ? new Uint16Array(b) : null != c ? new Uint16Array(c) : null != d ? new Uint16Array(d.__array) : null != e ? new Uint16Array(e) : null != a ? null == g ? new Uint16Array(a, 0) : new Uint16Array(a, 0, g) : null; f[0] = 170; f[1] = 187; $a.__endianness = 43707 == b[0] ? Eg.BIG_ENDIAN : Eg.LITTLE_ENDIAN } return $a.__endianness }; $a.get_fontsDirectory = function () { null == $a.__fontsDirectory && ($a.__fontsDirectory = $a.__getDirectory(4)); return $a.__fontsDirectory }; $a.get_numDisplays = function () { return 1 }; $a.get_platformLabel = function () { if (null == $a.__platformLabel) { var a = $a.get_platformName(), b = $a.get_platformVersion(); null != a && null != b ? $a.__platformLabel = a + " " + b : null != a && ($a.__platformLabel = a) } return $a.__platformLabel }; $a.get_platformName = function () { null == $a.__platformName && ($a.__platformName = "HTML5"); return $a.__platformName }; $a.get_platformVersion = function () { return $a.__platformVersion }; $a.get_userDirectory = function () { null == $a.__userDirectory && ($a.__userDirectory = $a.__getDirectory(5)); return $a.__userDirectory }; var Bo = function (a, b) { null == b && (b = 1); null == a && (a = 0); this.onRun = new Yh; this.onProgress = new Yh; this.onError = new Yh; this.onComplete = new Yh; this.doWork = new Yh; this.minThreads = a; this.maxThreads = b; this.currentThreads = 0 }; k["lime.system.ThreadPool"] = Bo; Bo.__name__ = "lime.system.ThreadPool"; Bo.prototype = { currentThreads: null, doWork: null, maxThreads: null, minThreads: null, onComplete: null, onError: null, onProgress: null, onRun: null, queue: function (a) { this.runWork(a) }, sendComplete: function (a) { this.onComplete.dispatch(a) }, sendError: function (a) { this.onError.dispatch(a) }, sendProgress: function (a) { this.onProgress.dispatch(a) }, runWork: function (a) { this.onRun.dispatch(a); this.doWork.dispatch(a) }, __class__: Bo }; var zm = A["lime.system._ThreadPool.ThreadPoolMessageType"] = { __ename__: "lime.system._ThreadPool.ThreadPoolMessageType", __constructs__: null, COMPLETE: { _hx_name: "COMPLETE", _hx_index: 0, __enum__: "lime.system._ThreadPool.ThreadPoolMessageType", toString: t }, ERROR: { _hx_name: "ERROR", _hx_index: 1, __enum__: "lime.system._ThreadPool.ThreadPoolMessageType", toString: t }, EXIT: { _hx_name: "EXIT", _hx_index: 2, __enum__: "lime.system._ThreadPool.ThreadPoolMessageType", toString: t }, PROGRESS: { _hx_name: "PROGRESS", _hx_index: 3, __enum__: "lime.system._ThreadPool.ThreadPoolMessageType", toString: t }, WORK: { _hx_name: "WORK", _hx_index: 4, __enum__: "lime.system._ThreadPool.ThreadPoolMessageType", toString: t } }; zm.__constructs__ = [zm.COMPLETE, zm.ERROR, zm.EXIT, zm.PROGRESS, zm.WORK]; var zr = function (a, b) { this.type = a; this.state = b }; k["lime.system._ThreadPool.ThreadPoolMessage"] = zr; zr.__name__ = "lime.system._ThreadPool.ThreadPoolMessage"; zr.prototype = {state: null, type: null, __class__: zr}; var Sd = function (a) { null != a && (this.name = a); this.__init || (void 0 == this.ascender && (this.ascender = 0), void 0 == this.descender && (this.descender = 0), void 0 == this.height && (this.height = 0), void 0 == this.numGlyphs && (this.numGlyphs = 0), void 0 == this.underlinePosition && (this.underlinePosition = 0), void 0 == this.underlineThickness && (this.underlineThickness = 0), void 0 == this.unitsPerEM && (this.unitsPerEM = 0), null != this.__fontID ? ta.isLocal(this.__fontID) && this.__fromBytes(ta.getBytes(this.__fontID)) : null != this.__fontPath && this.__fromFile(this.__fontPath)) }; k["lime.text.Font"] = Sd; Sd.__name__ = "lime.text.Font"; Sd.fromBytes = function (a) { if (null == a) return null; var b = new Sd; b.__fromBytes(a); return b }; Sd.fromFile = function (a) { if (null == a) return null; var b = new Sd; b.__fromFile(a); return b }; Sd.loadFromBytes = function (a) { return ob.withValue(Sd.fromBytes(a)) }; Sd.loadFromFile = function (a) { return (new wm).load(a).then(function (a) { return null != a ? ob.withValue(a) : ob.withError("") }) }; Sd.loadFromName = function (a) { return (new Sd).__loadFromName(a) }; Sd.__measureFontNode = function (a) { var b = window.document.createElement("span"); b.setAttribute("aria-hidden", "true"); var c = window.document.createTextNode("BESbswy"); b.appendChild(c); c = b.style; c.display = "block"; c.position = "absolute"; c.top = "-9999px"; c.left = "-9999px"; c.fontSize = "300px"; c.width = "auto"; c.height = "auto"; c.lineHeight = "normal"; c.margin = "0"; c.padding = "0"; c.fontVariant = "normal"; c.whiteSpace = "nowrap"; c.fontFamily = a; window.document.body.appendChild(b); return b }; Sd.prototype = { ascender: null, descender: null, height: null, name: null, numGlyphs: null, src: null, underlinePosition: null, underlineThickness: null, unitsPerEM: null, __fontID: null, __fontPath: null, __init: null, decompose: function () { return null }, getGlyph: function (a) { return -1 }, getGlyphs: function (a) { return null }, getGlyphMetrics: function (a) { return null }, renderGlyph: function (a, b) { return null }, renderGlyphs: function (a, b) { return null }, __copyFrom: function (a) { null != a && (this.ascender = a.ascender, this.descender = a.descender, this.height = a.height, this.name = a.name, this.numGlyphs = a.numGlyphs, this.src = a.src, this.underlinePosition = a.underlinePosition, this.underlineThickness = a.underlineThickness, this.unitsPerEM = a.unitsPerEM, this.__fontID = a.__fontID, this.__fontPath = a.__fontPath, this.__init = !0) }, __fromBytes: function (a) { this.__fontPath = null }, __fromFile: function (a) { this.__fontPath = a }, __initializeSource: function () { this.__init = !0 }, __loadFromName: function (a) { var b = this, c = new fe; this.name = a; var d = R.navigator.userAgent.toLowerCase(), e = 0 <= d.indexOf(" safari/") && 0 > d.indexOf(" chrome/"); d = (new fb("(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)", "i")).match(d); if (!e && !d && window.document.fonts && (x = window.document.fonts, q(x, x.load))) window.document.fonts.load("1em '" + a + "'").then(function (a) { c.complete(b) }, function (d) { Qa.warn('Could not load web font "' + a + '"', { fileName: "lime/text/Font.hx", lineNumber: 513, className: "lime.text.Font", methodName: "__loadFromName" }); c.complete(b) }); else { var g = Sd.__measureFontNode("'" + a + "', sans-serif"), f = Sd.__measureFontNode("'" + a + "', serif"), v = g.offsetWidth, p = f.offsetWidth, m = -1, h = 0, n, l; m = window.setInterval(function () { h += 1; n = g.offsetWidth != v || f.offsetWidth != p; l = 3E3 <= 50 * h; if (n || l) window.clearInterval(m), g.parentNode.removeChild(g), f.parentNode.removeChild(f), f = g = null, l && Qa.warn('Could not load web font "' + a + '"', { fileName: "lime/text/Font.hx", lineNumber: 548, className: "lime.text.Font", methodName: "__loadFromName" }), c.complete(b) }, 50) } return c.future }, __setSize: function (a) { }, __class__: Sd }; var Ar = function () { }; k["lime.text.GlyphMetrics"] = Ar; Ar.__name__ = "lime.text.GlyphMetrics"; Ar.prototype = { advance: null, height: null, horizontalBearing: null, verticalBearing: null, __class__: Ar }; var Vr = function () { }; k["lime.text.harfbuzz.HB"] = Vr; Vr.__name__ = "lime.text.harfbuzz.HB"; Vr.shape = function (a, b, c) { }; var rs = { __properties__: { set_segmentProperties: "set_segmentProperties", get_segmentProperties: "get_segmentProperties", set_script: "set_script", get_script: "get_script", set_replacementCodepoint: "set_replacementCodepoint", get_replacementCodepoint: "get_replacementCodepoint", set_length: "set_length", get_length: "get_length", set_language: "set_language", get_language: "get_language", set_flags: "set_flags", get_flags: "get_flags", set_direction: "set_direction", get_direction: "get_direction", set_contentType: "set_contentType", get_contentType: "get_contentType", set_clusterLevel: "set_clusterLevel", get_clusterLevel: "get_clusterLevel", get_allocationSuccessful: "get_allocationSuccessful" }, _new: function () { return null }, add: function (a, b, c) { }, addCodepoints: function (a, b, c, d, e) { }, addUTF8: function (a, b, c, d) { }, addUTF16: function (a, b, c, d, e) { }, addUTF32: function (a, b, c, d, e) { }, clearContents: function (a) { }, getGlyphInfo: function (a) { return null }, getGlyphPositions: function (a) { return null }, guessSegmentProperties: function (a) { }, normalizeGlyphs: function (a) { }, preallocate: function (a, b) { return !1 }, reset: function (a) { }, reverse: function (a) { }, reverseClusters: function (a) { }, get_allocationSuccessful: function (a) { return !1 }, get_clusterLevel: function (a) { return 0 }, set_clusterLevel: function (a, b) { return b }, get_contentType: function (a) { return 0 }, set_contentType: function (a, b) { return b }, get_direction: function (a) { return 0 }, set_direction: function (a, b) { return b }, get_empty: function () { return null }, get_flags: function (a) { return 0 }, set_flags: function (a, b) { return b }, get_language: function (a) { return null }, set_language: function (a, b) { return b }, get_length: function (a) { return 0 }, set_length: function (a, b) { return b }, get_replacementCodepoint: function (a) { return 0 }, set_replacementCodepoint: function (a, b) { return b }, get_script: function (a) { return 0 }, set_script: function (a, b) { return b }, get_segmentProperties: function (a) { return null }, set_segmentProperties: function (a, b) { return b } }, Br = function () { }; k["lime.text.harfbuzz.HBFeature"] = Br; Br.__name__ = "lime.text.harfbuzz.HBFeature"; Br.prototype = {__class__: Br}; var Cr = function () { }; k["lime.text.harfbuzz.HBGlyphInfo"] = Cr; Cr.__name__ = "lime.text.harfbuzz.HBGlyphInfo"; Cr.prototype = {codepoint: null, mask: null, cluster: null, __class__: Cr}; var Dr = function () { }; k["lime.text.harfbuzz.HBGlyphPosition"] = Dr; Dr.__name__ = "lime.text.harfbuzz.HBGlyphPosition"; Dr.prototype = {xAdvance: null, xOffset: null, yAdvance: null, yOffset: null, __class__: Dr}; var js = { _new: function (a) { return null }, toString: function (a) { return null }, fromString: function (a) { return js._new(a) } }, Er = function () { }; k["lime.text.harfbuzz.HBSegmentProperties"] = Er; Er.__name__ = "lime.text.harfbuzz.HBSegmentProperties"; Er.prototype = {__class__: Er}; var Pd = function (a) { this.onDisconnect = new Rd; this.onButtonUp = new rm; this.onButtonDown = new rm; this.onAxisMove = new Ko; this.id = a; this.connected = !0 }; k["lime.ui.Gamepad"] = Pd; Pd.__name__ = "lime.ui.Gamepad"; Pd.addMappings = function (a) { }; Pd.__connect = function (a) { if (!Pd.devices.h.hasOwnProperty(a)) { var b = new Pd(a); Pd.devices.h[a] = b; Pd.onConnect.dispatch(b) } }; Pd.__disconnect = function (a) { var b = Pd.devices.h[a]; null != b && (b.connected = !1); Pd.devices.remove(a); null != b && b.onDisconnect.dispatch() }; Pd.prototype = { connected: null, id: null, onAxisMove: null, onButtonDown: null, onButtonUp: null, onDisconnect: null, get_guid: function () { return bd.__getDeviceData()[this.id].id }, get_name: function () { return bd.__getDeviceData()[this.id].id }, __class__: Pd, __properties__: {get_name: "get_name", get_guid: "get_guid"} }; var bd = function (a) { this.onTrackballMove = new Go; this.onHatMove = new Io; this.onDisconnect = new Rd; this.onButtonUp = new Xh; this.onButtonDown = new Xh; this.onAxisMove = new Ho; this.id = a; this.connected = !0 }; k["lime.ui.Joystick"] = bd; bd.__name__ = "lime.ui.Joystick"; bd.__connect = function (a) { if (!bd.devices.h.hasOwnProperty(a)) { var b = new bd(a); bd.devices.h[a] = b; bd.onConnect.dispatch(b) } }; bd.__disconnect = function (a) { var b = bd.devices.h[a]; null != b && (b.connected = !1); bd.devices.remove(a); null != b && b.onDisconnect.dispatch() }; bd.__getDeviceData = function () { return navigator.getGamepads ? navigator.getGamepads() : navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : null }; bd.prototype = { connected: null, id: null, onAxisMove: null, onButtonDown: null, onButtonUp: null, onDisconnect: null, onHatMove: null, onTrackballMove: null, get_guid: function () { return bd.__getDeviceData()[this.id].id }, get_name: function () { return bd.__getDeviceData()[this.id].id }, get_numAxes: function () { return bd.__getDeviceData()[this.id].axes.length }, get_numButtons: function () { return bd.__getDeviceData()[this.id].buttons.length }, get_numHats: function () { return 0 }, get_numTrackballs: function () { return 0 }, __class__: bd, __properties__: { get_numTrackballs: "get_numTrackballs", get_numHats: "get_numHats", get_numButtons: "get_numButtons", get_numAxes: "get_numAxes", get_name: "get_name", get_guid: "get_guid" } }; var Gb = { __properties__: { set_shiftKey: "set_shiftKey", get_shiftKey: "get_shiftKey", set_numLock: "set_numLock", get_numLock: "get_numLock", set_metaKey: "set_metaKey", get_metaKey: "get_metaKey", set_ctrlKey: "set_ctrlKey", get_ctrlKey: "get_ctrlKey", set_capsLock: "set_capsLock", get_capsLock: "get_capsLock", set_altKey: "set_altKey", get_altKey: "get_altKey" }, get_altKey: function (a) { return 0 >= (a & 256) ? 0 < (a & 512) : !0 }, set_altKey: function (a, b) { return b }, get_capsLock: function (a) { return 0 >= (a & 8192) ? 0 < (a & 8192) : !0 }, set_capsLock: function (a, b) { return b }, get_ctrlKey: function (a) { return 0 >= (a & 64) ? 0 < (a & 128) : !0 }, set_ctrlKey: function (a, b) { return b }, get_metaKey: function (a) { return 0 >= (a & 1024) ? 0 < (a & 2048) : !0 }, set_metaKey: function (a, b) { return b }, get_numLock: function (a) { return 0 >= (a & 4096) ? 0 < (a & 4096) : !0 }, set_numLock: function (a, b) { return b }, get_shiftKey: function (a) { return 0 >= (a & 1) ? 0 < (a & 2) : !0 }, set_shiftKey: function (a, b) { return b } }, rc = A["lime.ui.MouseCursor"] = { __ename__: "lime.ui.MouseCursor", __constructs__: null, ARROW: {_hx_name: "ARROW", _hx_index: 0, __enum__: "lime.ui.MouseCursor", toString: t}, CROSSHAIR: {_hx_name: "CROSSHAIR", _hx_index: 1, __enum__: "lime.ui.MouseCursor", toString: t}, DEFAULT: {_hx_name: "DEFAULT", _hx_index: 2, __enum__: "lime.ui.MouseCursor", toString: t}, MOVE: { _hx_name: "MOVE", _hx_index: 3, __enum__: "lime.ui.MouseCursor", toString: t }, POINTER: {_hx_name: "POINTER", _hx_index: 4, __enum__: "lime.ui.MouseCursor", toString: t}, RESIZE_NESW: {_hx_name: "RESIZE_NESW", _hx_index: 5, __enum__: "lime.ui.MouseCursor", toString: t}, RESIZE_NS: {_hx_name: "RESIZE_NS", _hx_index: 6, __enum__: "lime.ui.MouseCursor", toString: t}, RESIZE_NWSE: {_hx_name: "RESIZE_NWSE", _hx_index: 7, __enum__: "lime.ui.MouseCursor", toString: t}, RESIZE_WE: {_hx_name: "RESIZE_WE", _hx_index: 8, __enum__: "lime.ui.MouseCursor", toString: t}, TEXT: { _hx_name: "TEXT", _hx_index: 9, __enum__: "lime.ui.MouseCursor", toString: t }, WAIT: {_hx_name: "WAIT", _hx_index: 10, __enum__: "lime.ui.MouseCursor", toString: t}, WAIT_ARROW: {_hx_name: "WAIT_ARROW", _hx_index: 11, __enum__: "lime.ui.MouseCursor", toString: t}, CUSTOM: {_hx_name: "CUSTOM", _hx_index: 12, __enum__: "lime.ui.MouseCursor", toString: t} }; rc.__constructs__ = [rc.ARROW, rc.CROSSHAIR, rc.DEFAULT, rc.MOVE, rc.POINTER, rc.RESIZE_NESW, rc.RESIZE_NS, rc.RESIZE_NWSE, rc.RESIZE_WE, rc.TEXT, rc.WAIT, rc.WAIT_ARROW, rc.CUSTOM]; var Ch = A["lime.ui.MouseWheelMode"] = { __ename__: "lime.ui.MouseWheelMode", __constructs__: null, PIXELS: {_hx_name: "PIXELS", _hx_index: 0, __enum__: "lime.ui.MouseWheelMode", toString: t}, LINES: {_hx_name: "LINES", _hx_index: 1, __enum__: "lime.ui.MouseWheelMode", toString: t}, PAGES: {_hx_name: "PAGES", _hx_index: 2, __enum__: "lime.ui.MouseWheelMode", toString: t}, UNKNOWN: {_hx_name: "UNKNOWN", _hx_index: 3, __enum__: "lime.ui.MouseWheelMode", toString: t} }; Ch.__constructs__ = [Ch.PIXELS, Ch.LINES, Ch.PAGES, Ch.UNKNOWN]; var sd = function (a, b, c, d, e, g, f) { this.x = a; this.y = b; this.id = c; this.dx = d; this.dy = e; this.pressure = g; this.device = f }; k["lime.ui.Touch"] = sd; sd.__name__ = "lime.ui.Touch"; sd.prototype = { device: null, dx: null, dy: null, id: null, pressure: null, x: null, y: null, __class__: sd }; var Li = function (a, b) { this.onTextInput = new pm; this.onTextEdit = new Jo; this.onRestore = new Rd; this.onResize = new om; this.onRenderContextRestored = new qm; this.onRenderContextLost = new Rd; this.onRender = new qm; this.onMove = new Rj; this.onMouseWheel = new Fo; this.onMouseUp = new Do; this.onMouseMoveRelative = new Rj; this.onMouseMove = new Rj; this.onMouseDown = new Eo; this.onMinimize = new Rd; this.onMaximize = new Rd; this.onLeave = new Rd; this.onKeyUp = new sm; this.onKeyDown = new sm; this.onFullscreen = new Rd; this.onFocusOut = new Rd; this.onFocusIn = new Rd; this.onExpose = new Rd; this.onEnter = new Rd; this.onDropFile = new pm; this.onDeactivate = new Rd; this.onClose = new Rd; this.onActivate = new Rd; this.application = a; this.__attributes = null != b ? b : {}; Object.prototype.hasOwnProperty.call(this.__attributes, "parameters") && (this.parameters = this.__attributes.parameters); this.__height = this.__width = 0; this.__fullscreen = !1; this.__scale = 1; this.__y = this.__x = 0; this.__title = ""; this.id = -1; this.__backend = new rb(this) }; k["lime.ui.Window"] = Li; Li.__name__ = "lime.ui.Window"; Li.prototype = { application: null, context: null, display: null, element: null, hidden: null, id: null, onActivate: null, onClose: null, onDeactivate: null, onDropFile: null, onEnter: null, onExpose: null, onFocusIn: null, onFocusOut: null, onFullscreen: null, onKeyDown: null, onKeyUp: null, onLeave: null, onMaximize: null, onMinimize: null, onMouseDown: null, onMouseMove: null, onMouseMoveRelative: null, onMouseUp: null, onMouseWheel: null, onMove: null, onRender: null, onRenderContextLost: null, onRenderContextRestored: null, onResize: null, onRestore: null, onTextEdit: null, onTextInput: null, parameters: null, scale: null, stage: null, __attributes: null, __backend: null, __borderless: null, __fullscreen: null, __height: null, __hidden: null, __maximized: null, __minimized: null, __resizable: null, __scale: null, __title: null, __width: null, __x: null, __y: null, alert: function (a, b) { this.__backend.alert(a, b) }, close: function () { this.__backend.close() }, focus: function () { this.__backend.focus() }, move: function (a, b) { this.__backend.move(a, b); this.__x = a; this.__y = b }, readPixels: function (a) { return this.__backend.readPixels(a) }, resize: function (a, b) { this.__backend.resize(a, b); this.__width = a; this.__height = b }, setIcon: function (a) { null != a && this.__backend.setIcon(a) }, toString: function () { return "[object Window]" }, warpMouse: function (a, b) { this.__backend.warpMouse(a, b) }, get_cursor: function () { return this.__backend.getCursor() }, set_cursor: function (a) { return this.__backend.setCursor(a) }, get_display: function () { return this.__backend.getDisplay() }, get_displayMode: function () { return this.__backend.getDisplayMode() }, set_displayMode: function (a) { return this.__backend.setDisplayMode(a) }, get_borderless: function () { return this.__borderless }, set_borderless: function (a) { return this.__borderless = this.__backend.setBorderless(a) }, get_frameRate: function () { return this.__backend.getFrameRate() }, set_frameRate: function (a) { return this.__backend.setFrameRate(a) }, get_fullscreen: function () { return this.__fullscreen }, set_fullscreen: function (a) { return this.__fullscreen = this.__backend.setFullscreen(a) }, get_height: function () { return this.__height }, set_height: function (a) { this.resize(this.__width, a); return this.__height }, get_hidden: function () { return this.__hidden }, get_maximized: function () { return this.__maximized }, set_maximized: function (a) { this.__minimized = !1; return this.__maximized = this.__backend.setMaximized(a) }, get_minimized: function () { return this.__minimized }, set_minimized: function (a) { this.__maximized = !1; return this.__minimized = this.__backend.setMinimized(a) }, get_mouseLock: function () { return this.__backend.getMouseLock() }, set_mouseLock: function (a) { this.__backend.setMouseLock(a); return a }, get_resizable: function () { return this.__resizable }, set_resizable: function (a) { return this.__resizable = this.__backend.setResizable(a) }, get_scale: function () { return this.__scale }, get_textInputEnabled: function () { return this.__backend.getTextInputEnabled() }, set_textInputEnabled: function (a) { return this.__backend.setTextInputEnabled(a) }, get_title: function () { return this.__title }, set_title: function (a) { return this.__title = this.__backend.setTitle(a) }, get_width: function () { return this.__width }, set_width: function (a) { this.resize(a, this.__height); return this.__width }, get_x: function () { return this.__x }, set_x: function (a) { this.move(a, this.__y); return this.__x }, get_y: function () { return this.__y }, set_y: function (a) { this.move(this.__x, a); return this.__y }, __class__: Li, __properties__: { set_y: "set_y", get_y: "get_y", set_x: "set_x", get_x: "get_x", set_width: "set_width", get_width: "get_width", set_title: "set_title", get_title: "get_title", set_textInputEnabled: "set_textInputEnabled", get_textInputEnabled: "get_textInputEnabled", get_scale: "get_scale", set_resizable: "set_resizable", get_resizable: "get_resizable", set_mouseLock: "set_mouseLock", get_mouseLock: "get_mouseLock", set_minimized: "set_minimized", get_minimized: "get_minimized", set_maximized: "set_maximized", get_maximized: "get_maximized", get_hidden: "get_hidden", set_height: "set_height", get_height: "get_height", set_fullscreen: "set_fullscreen", get_fullscreen: "get_fullscreen", set_frameRate: "set_frameRate", get_frameRate: "get_frameRate", set_displayMode: "set_displayMode", get_displayMode: "get_displayMode", get_display: "get_display", set_cursor: "set_cursor", get_cursor: "get_cursor", set_borderless: "set_borderless", get_borderless: "get_borderless" } }; var ks = A["lime.utils.TAError"] = { __ename__: "lime.utils.TAError", __constructs__: null, RangeError: {_hx_name: "RangeError", _hx_index: 0, __enum__: "lime.utils.TAError", toString: t} }; ks.__constructs__ = [ks.RangeError]; var Wf = function () { this.data = new xa; this.paths = [] }; k["lime.utils.AssetBundle"] = Wf; Wf.__name__ = "lime.utils.AssetBundle"; Wf.fromBytes = function (a) { a = new hm(a); return Wf.__extractBundle(a) }; Wf.fromFile = function (a) { return null }; Wf.loadFromBytes = function (a) { return ob.withValue(Wf.fromBytes(a)) }; Wf.loadFromFile = function (a) { return oc.loadFromFile(a).then(Wf.loadFromBytes) }; Wf.__extractBundle = function (a) { var b = Hi.readZip(a); a = new Wf; for (b = b.h; null != b;) { var c = b.item; b = b.next; if (c.compressed) { var d = a.data, e = c.fileName, g = oc.decompress(c.data, ge.DEFLATE); d.h[e] = g } else a.data.h[c.fileName] = c.data; a.paths.push(c.fileName) } return a }; Wf.prototype = {data: null, paths: null, __class__: Wf}; var To = function () { this.enabled = !0; this.audio = new xa; this.font = new xa; this.image = new xa; this.version = 197426 }; k["lime.utils.AssetCache"] = To; To.__name__ = "lime.utils.AssetCache"; To.prototype = { audio: null, enabled: null, image: null, font: null, version: null, exists: function (a, b) { return ("IMAGE" == b || null == b) && Object.prototype.hasOwnProperty.call(this.image.h, a) || ("FONT" == b || null == b) && Object.prototype.hasOwnProperty.call(this.font.h, a) || ("SOUND" == b || "MUSIC" == b || null == b) && Object.prototype.hasOwnProperty.call(this.audio.h, a) ? !0 : !1 }, set: function (a, b, c) { switch (b) { case "FONT": this.font.h[a] = c; break; case "IMAGE": if (!(c instanceof Lb)) throw I.thrown("Cannot cache non-Image asset: " + z.string(c) + " as Image"); this.image.h[a] = c; break; case "MUSIC": case "SOUND": if (!(c instanceof Zc)) throw I.thrown("Cannot cache non-AudioBuffer asset: " + z.string(c) + " as AudioBuffer"); this.audio.h[a] = c; break; default: throw I.thrown(b + " assets are not cachable"); } }, clear: function (a) { if (null == a) this.audio = new xa, this.font = new xa, this.image = new xa; else { var b = this.audio.h; b = Object.keys(b); for (var c = b.length, d = 0; d < c;) { var e = b[d++]; if (T.startsWith(e, a)) { var g = this.audio; Object.prototype.hasOwnProperty.call(g.h, e) && delete g.h[e] } } b = this.font.h; b = Object.keys(b); c = b.length; for (d = 0; d < c;) e = b[d++], T.startsWith(e, a) && (g = this.font, Object.prototype.hasOwnProperty.call(g.h, e) && delete g.h[e]); b = this.image.h; b = Object.keys(b); c = b.length; for (d = 0; d < c;) e = b[d++], T.startsWith(e, a) && (g = this.image, Object.prototype.hasOwnProperty.call(g.h, e) && delete g.h[e]) } }, __class__: To }; var Ab = function () { this.types = new xa; this.sizes = new xa; this.preload = new xa; this.paths = new xa; this.pathGroups = new xa; this.classTypes = new xa; this.cachedText = new xa; this.cachedImages = new xa; this.cachedFonts = new xa; this.cachedBytes = new xa; this.cachedAudioBuffers = new xa; this.onChange = new Rd; this.bytesTotal = this.bytesLoaded = 0 }; k["lime.utils.AssetLibrary"] = Ab; Ab.__name__ = "lime.utils.AssetLibrary"; Ab.fromBytes = function (a, b) { return Ab.fromManifest(Nc.fromBytes(a, b)) }; Ab.fromFile = function (a, b) { return Ab.fromManifest(Nc.fromFile(a, b)) }; Ab.fromBundle = function (a) { if (Object.prototype.hasOwnProperty.call(a.data.h, "library.json")) { var b = Nc.fromBytes(a.data.h["library.json"]); if (null != b) { if (null == b.libraryType) var c = new Ab; else if (c = k[b.libraryType], null != c) c = Ha.createInstance(c, b.libraryArgs); else return Qa.warn("Could not find library type: " + b.libraryType, { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 122, className: "lime.utils.AssetLibrary", methodName: "fromBundle" }), null; c.__fromBundle(a, b); return c } } else return c = new Ab, c.__fromBundle(a), c; return null }; Ab.fromManifest = function (a) { if (null == a) return null; if (null == a.libraryType) var b = new Ab; else if (b = k[a.libraryType], null != b) b = Ha.createInstance(b, a.libraryArgs); else return Qa.warn("Could not find library type: " + a.libraryType, { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 160, className: "lime.utils.AssetLibrary", methodName: "fromManifest" }), null; b.__fromManifest(a); return b }; Ab.loadFromBytes = function (a, b) { return Nc.loadFromBytes(a, b).then(function (a) { return Ab.loadFromManifest(a) }) }; Ab.loadFromFile = function (a, b) { return Nc.loadFromFile(a, b).then(function (a) { return Ab.loadFromManifest(a) }) }; Ab.loadFromManifest = function (a) { a = Ab.fromManifest(a); return null != a ? a.load() : ob.withError("Could not load asset manifest") }; Ab.prototype = { onChange: null, assetsLoaded: null, assetsTotal: null, bytesLoaded: null, bytesLoadedCache: null, bytesTotal: null, cachedAudioBuffers: null, cachedBytes: null, cachedFonts: null, cachedImages: null, cachedText: null, classTypes: null, loaded: null, pathGroups: null, paths: null, preload: null, promise: null, sizes: null, types: null, exists: function (a, b) { b = null != b ? w.__cast(b, String) : null; a = this.types.h[a]; return null == a || a != b && ("SOUND" != b && "MUSIC" != b || "MUSIC" != a && "SOUND" != a) && "BINARY" != b && null != b && ("BINARY" != a || "TEXT" != b) ? !1 : !0 }, getAsset: function (a, b) { switch (b) { case "BINARY": return this.getBytes(a); case "FONT": return this.getFont(a); case "IMAGE": return this.getImage(a); case "MUSIC": case "SOUND": return this.getAudioBuffer(a); case "TEMPLATE": throw I.thrown("Not sure how to get template: " + a); case "TEXT": return this.getText(a); default: throw I.thrown("Unknown asset type: " + b); } }, getAudioBuffer: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a) ? this.cachedAudioBuffers.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? Zc.fromBytes(w.__cast(Ha.createInstance(this.classTypes.h[a], []), lb)) : Zc.fromFile(this.paths.h[a]) }, getBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return this.cachedBytes.h[a]; if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) { var b = oc.ofString(this.cachedText.h[a]); return this.cachedBytes.h[a] = b } return Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? w.__cast(Ha.createInstance(this.classTypes.h[a], []), lb) : oc.fromFile(this.paths.h[a]) }, getFont: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a) ? this.cachedFonts.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? w.__cast(Ha.createInstance(this.classTypes.h[a], []), Sd) : Sd.fromFile(this.paths.h[a]) }, getImage: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a) ? this.cachedImages.h[a] : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? w.__cast(Ha.createInstance(this.classTypes.h[a], []), Lb) : Lb.fromFile(this.paths.h[a]) }, getPath: function (a) { return Object.prototype.hasOwnProperty.call(this.paths.h, a) ? this.paths.h[a] : Object.prototype.hasOwnProperty.call(this.pathGroups.h, a) ? this.pathGroups.h[a][0] : null }, getText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return this.cachedText.h[a]; a = this.getBytes(a); return null == a ? null : a.getString(0, a.length) }, isLocal: function (a, b) { if (Object.prototype.hasOwnProperty.call(this.classTypes.h, a)) return !0; b = null != b ? w.__cast(b, String) : null; if (null == b) return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? !0 : Object.prototype.hasOwnProperty.call(this.cachedText.h, a); switch (b) { case "FONT": return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a); case "IMAGE": return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a); case "MUSIC": case "SOUND": return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a); default: return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? !0 : Object.prototype.hasOwnProperty.call(this.cachedText.h, a) } }, list: function (a) { for (var b = null != a ? w.__cast(a, String) : null, c = [], d = Object.keys(this.types.h), e = d.length, g = 0; g < e;) { var f = d[g++]; (null == b || this.exists(f, a)) && c.push(f) } return c }, loadAsset: function (a, b) { switch (b) { case "BINARY": return this.loadBytes(a); case "FONT": return this.loadFont(a); case "IMAGE": return this.loadImage(a); case "MUSIC": case "SOUND": return this.loadAudioBuffer(a); case "TEMPLATE": throw I.thrown("Not sure how to load template: " + a); case "TEXT": return this.loadText(a); default: throw I.thrown("Unknown asset type: " + b); } }, load: function () { if (this.loaded) return ob.withValue(this); if (null == this.promise) { this.promise = new fe; this.bytesLoadedCache = new xa; this.assetsLoaded = 0; this.assetsTotal = 1; for (var a = Object.keys(this.preload.h), b = a.length, c = 0; c < b;) { var d = a[c++]; if (this.preload.h[d]) { Qa.verbose("Preloading asset: " + d + " [" + this.types.h[d] + "]", { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 405, className: "lime.utils.AssetLibrary", methodName: "load" }); var e = this.types.h[d]; if (null != e) switch (e) { case "BINARY": this.assetsTotal++; e = this.loadBytes(d); e.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([d], [q(this, this.load_onProgress)])); e.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.load_onError)])); e.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadBytes_onComplete)])); break; case "FONT": this.assetsTotal++; e = this.loadFont(d); e.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([d], [q(this, this.load_onProgress)])); e.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.load_onError)])); e.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadFont_onComplete)])); break; case "IMAGE": this.assetsTotal++; e = this.loadImage(d); e.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([d], [q(this, this.load_onProgress)])); e.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.load_onError)])); e.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadImage_onComplete)])); break; case "MUSIC": case "SOUND": this.assetsTotal++; e = this.loadAudioBuffer(d); e.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([d], [q(this, this.load_onProgress)])); e.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadAudioBuffer_onError)])); e.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadAudioBuffer_onComplete)])); break; case "TEXT": this.assetsTotal++, e = this.loadText(d), e.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([d], [q(this, this.load_onProgress)])), e.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.load_onError)])), e.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([d], [q(this, this.loadText_onComplete)])) } } } this.__assetLoaded(null) } return this.promise.future }, loadAudioBuffer: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedAudioBuffers.h, a) ? ob.withValue(this.cachedAudioBuffers.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? ob.withValue(Ha.createInstance(this.classTypes.h[a], [])) : Object.prototype.hasOwnProperty.call(this.pathGroups.h, a) ? Zc.loadFromFiles(this.pathGroups.h[a]) : Zc.loadFromFile(this.paths.h[a]) }, loadBytes: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? ob.withValue(this.cachedBytes.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? ob.withValue(Ha.createInstance(this.classTypes.h[a], [])) : oc.loadFromFile(this.paths.h[a]) }, loadFont: function (a) { return Object.prototype.hasOwnProperty.call(this.cachedFonts.h, a) ? ob.withValue(this.cachedFonts.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? (a = Ha.createInstance(this.classTypes.h[a], []), a.__loadFromName(a.name)) : Sd.loadFromName(this.paths.h[a]) }, loadImage: function (a) { var b = this; return Object.prototype.hasOwnProperty.call(this.cachedImages.h, a) ? ob.withValue(this.cachedImages.h[a]) : Object.prototype.hasOwnProperty.call(this.classTypes.h, a) ? ob.withValue(Ha.createInstance(this.classTypes.h[a], [])) : Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) ? Lb.loadFromBytes(this.cachedBytes.h[a]).then(function (c) { var d = b.cachedBytes; Object.prototype.hasOwnProperty.call(d.h, a) && delete d.h[a]; b.cachedImages.h[a] = c; return ob.withValue(c) }) : Lb.loadFromFile(this.paths.h[a]) }, loadText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return ob.withValue(this.cachedText.h[a]); if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a) || Object.prototype.hasOwnProperty.call(this.classTypes.h, a)) { var b = this.getBytes(a); if (null == b) return ob.withValue(null); b = b.getString(0, b.length); this.cachedText.h[a] = b; return ob.withValue(b) } return (new Uj).load(this.paths.h[a]) }, unload: function () { }, __assetLoaded: function (a) { this.assetsLoaded++; null != a && Qa.verbose("Loaded asset: " + a + " [" + this.types.h[a] + "] (" + (this.assetsLoaded - 1) + "/" + (this.assetsTotal - 1) + ")", { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 619, className: "lime.utils.AssetLibrary", methodName: "__assetLoaded" }); if (null != a) { var b = Object.prototype.hasOwnProperty.call(this.sizes.h, a) ? this.sizes.h[a] : 0; if (Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h, a)) { var c = this.bytesLoadedCache.h[a]; c < b && (this.bytesLoaded += b - c) } else this.bytesLoaded += b; this.bytesLoadedCache.h[a] = b } this.assetsLoaded < this.assetsTotal ? this.promise.progress(this.bytesLoaded, this.bytesTotal) : (this.loaded = !0, this.promise.progress(this.bytesTotal, this.bytesTotal), this.promise.complete(this)) }, __cacheBreak: function (a) { return ta.__cacheBreak(a) }, __fromBundle: function (a, b) { if (null != b) { var c = 0; for (b = b.assets; c < b.length;) { var d = b[c]; ++c; var e = Object.prototype.hasOwnProperty.call(d, "id") ? d.id : d.path; var g = a.data.h[d.path]; if (Object.prototype.hasOwnProperty.call(d, "type")) { var f = d.type; "TEXT" == f ? this.cachedText.h[e] = null != g ? z.string(g) : null : this.cachedBytes.h[e] = g; this.types.h[e] = d.type } else this.cachedBytes.h[e] = g, this.types.h[e] = "BINARY" } } else for (c = 0, b = a.paths; c < b.length;) e = b[c], ++c, this.cachedBytes.h[e] = a.data.h[e], this.types.h[e] = "BINARY" }, __fromManifest: function (a) { var b = 2 <= a.version, c = a.rootPath; null == c && (c = ""); "" != c && (c += "/"); for (var d = 0, e = a.assets; d < e.length;) { var g = e[d]; ++d; var f = b && Object.prototype.hasOwnProperty.call(g, "size") ? g.size : 100; var v = Object.prototype.hasOwnProperty.call(g, "id") ? g.id : g.path; if (Object.prototype.hasOwnProperty.call(g, "path")) { var h = this.paths; var m = this.__cacheBreak(this.__resolvePath(c + z.string(V.field(g, "path")))); h.h[v] = m } if (Object.prototype.hasOwnProperty.call(g, "pathGroup")) { h = V.field(g, "pathGroup"); m = 0; for (var l = h.length; m < l;) { var n = m++; h[n] = this.__cacheBreak(this.__resolvePath(c + h[n])) } this.pathGroups.h[v] = h } this.sizes.h[v] = f; this.types.h[v] = g.type; Object.prototype.hasOwnProperty.call(g, "preload") && (this.preload.h[v] = V.field(g, "preload")); Object.prototype.hasOwnProperty.call(g, "className") && (f = V.field(g, "className"), f = k[f], this.classTypes.h[v] = f) } d = this.bytesTotal = 0; for (e = a.assets; d < e.length;) g = e[d], ++d, v = Object.prototype.hasOwnProperty.call(g, "id") ? g.id : g.path, Object.prototype.hasOwnProperty.call(this.preload.h, v) && this.preload.h[v] && Object.prototype.hasOwnProperty.call(this.sizes.h, v) && (this.bytesTotal += this.sizes.h[v]) }, __resolvePath: function (a) { a = T.replace(a, "\\", "/"); var b = a.indexOf(":"); T.startsWith(a, "http") && 0 < b ? (b += 3, a = K.substr(a, 0, b) + T.replace(K.substr(a, b, null), "//", "/")) : a = T.replace(a, "//", "/"); if (-1 < a.indexOf("./")) { a = a.split("/"); b = []; for (var c = 0, d = a.length; c < d;) { var e = c++; ".." == a[e] ? 0 == e || ".." == b[e - 1] ? b.push("..") : b.pop() : "." == a[e] ? 0 == e && b.push(".") : b.push(a[e]) } a = b.join("/") } return a }, loadAudioBuffer_onComplete: function (a, b) { this.cachedAudioBuffers.h[a] = b; if (Object.prototype.hasOwnProperty.call(this.pathGroups.h, a)) for (var c = this.pathGroups.h[a], d = Object.keys(this.pathGroups.h), e = d.length, g = 0; g < e;) { var f = d[g++]; if (f != a) for (var v = 0; v < c.length;) { var h = c[v]; ++v; if (-1 < this.pathGroups.h[f].indexOf(h)) { this.cachedAudioBuffers.h[f] = b; break } } } this.__assetLoaded(a) }, loadAudioBuffer_onError: function (a, b) { null != b && "" != b ? Qa.warn('Could not load "' + a + '": ' + z.string(b), { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 865, className: "lime.utils.AssetLibrary", methodName: "loadAudioBuffer_onError" }) : Qa.warn('Could not load "' + a + '"', { fileName: "lime/utils/AssetLibrary.hx", lineNumber: 869, className: "lime.utils.AssetLibrary", methodName: "loadAudioBuffer_onError" }); this.loadAudioBuffer_onComplete(a, new Zc) }, loadBytes_onComplete: function (a, b) { this.cachedBytes.h[a] = b; this.__assetLoaded(a) }, loadFont_onComplete: function (a, b) { this.cachedFonts.h[a] = b; this.__assetLoaded(a) }, loadImage_onComplete: function (a, b) { this.cachedImages.h[a] = b; this.__assetLoaded(a) }, loadText_onComplete: function (a, b) { this.cachedText.h[a] = b; this.__assetLoaded(a) }, load_onError: function (a, b) { null != b && "" != b ? this.promise.error('Error loading asset "' + a + '": ' + z.string(b)) : this.promise.error('Error loading asset "' + a + '"') }, load_onProgress: function (a, b, c) { if (0 < b) { var d = this.sizes.h[a]; 0 < c ? (b /= c, 1 < b && (b = 1), b = Math.floor(b * d)) : b > d && (b = d); Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h, a) ? (d = this.bytesLoadedCache.h[a], b != d && (this.bytesLoaded += b - d)) : this.bytesLoaded += b; this.bytesLoadedCache.h[a] = b; this.promise.progress(this.bytesLoaded, this.bytesTotal) } }, __class__: Ab }; var Nc = function () { this.assets = []; this.libraryArgs = []; this.version = 2 }; k["lime.utils.AssetManifest"] = Nc; Nc.__name__ = "lime.utils.AssetManifest"; Nc.fromBytes = function (a, b) { return null != a ? Nc.parse(a.getString(0, a.length), b) : null }; Nc.fromFile = function (a, b) { a = Nc.__resolvePath(a); b = Nc.__resolveRootPath(b, a); return null == a ? null : Nc.fromBytes(oc.fromFile(a), b) }; Nc.loadFromBytes = function (a, b) { return ob.withValue(Nc.fromBytes(a, b)) }; Nc.loadFromFile = function (a, b) { a = Nc.__resolvePath(a); b = Nc.__resolveRootPath(b, a); return null == a ? null : oc.loadFromFile(a).then(function (a) { return ob.withValue(Nc.fromBytes(a, b)) }) }; Nc.parse = function (a, b) { if (null == a || "" == a) return null; a = JSON.parse(a); var c = new Nc; Object.prototype.hasOwnProperty.call(a, "name") && (c.name = a.name); Object.prototype.hasOwnProperty.call(a, "libraryType") && (c.libraryType = a.libraryType); Object.prototype.hasOwnProperty.call(a, "libraryArgs") && (c.libraryArgs = a.libraryArgs); if (Object.prototype.hasOwnProperty.call(a, "assets")) { var d = a.assets; Object.prototype.hasOwnProperty.call(a, "version") && 2 >= a.version ? c.assets = Oe.run(d) : c.assets = d } Object.prototype.hasOwnProperty.call(a, "rootPath") && (c.rootPath = a.rootPath); null != b && "" != b && (c.rootPath = null == c.rootPath || "" == c.rootPath ? b : b + "/" + c.rootPath); return c }; Nc.__resolvePath = function (a) { if (null == a) return null; var b = a.indexOf("?"); var c = -1 < b ? K.substr(a, 0, b) : a; for (c = T.replace(c, "\\", "/"); T.endsWith(c, "/");) c = K.substr(c, 0, c.length - 1); return T.endsWith(c, ".bundle") ? -1 < b ? c + "/library.json" + K.substr(a, b, null) : c + "/library.json" : a }; Nc.__resolveRootPath = function (a, b) { if (null != a) return a; a = b.indexOf("?"); a = -1 < a ? K.substr(b, 0, a) : b; for (a = T.replace(a, "\\", "/"); T.endsWith(a, "/");) { if ("/" == a) return a; a = K.substr(a, 0, a.length - 1) } return T.endsWith(a, ".bundle") ? a : Bh.directory(a) }; Nc.prototype = { assets: null, libraryArgs: null, libraryType: null, name: null, rootPath: null, version: null, serialize: function () { var a = {}; a.version = this.version; a.libraryType = this.libraryType; a.libraryArgs = this.libraryArgs; a.name = this.name; a.assets = Ge.run(this.assets); a.rootPath = this.rootPath; return JSON.stringify(a) }, __class__: Nc }; var ta = function () { }; k["lime.utils.Assets"] = ta; ta.__name__ = "lime.utils.Assets"; ta.exists = function (a, b) { null == b && (b = "BINARY"); var c = a.indexOf(":"), d = a.substring(0, c); a = a.substring(c + 1); d = ta.getLibrary(d); return null != d ? d.exists(a, b) : !1 }; ta.getAsset = function (a, b, c) { if (c && ta.cache.enabled) switch (b) { case "BINARY": case "TEXT": c = !1; break; case "FONT": var d = ta.cache.font.h[a]; if (null != d) return d; break; case "IMAGE": d = ta.cache.image.h[a]; if (ta.isValidImage(d)) return d; break; case "MUSIC": case "SOUND": d = ta.cache.audio.h[a]; if (ta.isValidAudio(d)) return d; break; case "TEMPLATE": throw I.thrown("Not sure how to get template: " + a); default: return null } var e = a.indexOf(":"); d = a.substring(0, e); e = a.substring(e + 1); var g = ta.getLibrary(d); if (null != g) if (g.exists(e, b)) { if (g.isLocal(e, b)) return d = g.getAsset(e, b), c && ta.cache.enabled && ta.cache.set(a, b, d), d; Qa.error(b + ' asset "' + a + '" exists, but only asynchronously', { fileName: "lime/utils/Assets.hx", lineNumber: 133, className: "lime.utils.Assets", methodName: "getAsset" }) } else Qa.error("There is no " + b + ' asset with an ID of "' + a + '"', { fileName: "lime/utils/Assets.hx", lineNumber: 138, className: "lime.utils.Assets", methodName: "getAsset" }); else Qa.error(ta.__libraryNotFound(d), { fileName: "lime/utils/Assets.hx", lineNumber: 143, className: "lime.utils.Assets", methodName: "getAsset" }); return null }; ta.getAudioBuffer = function (a, b) { null == b && (b = !0); return ta.getAsset(a, "SOUND", b) }; ta.getBytes = function (a) { return ta.getAsset(a, "BINARY", !1) }; ta.getFont = function (a, b) { null == b && (b = !0); return ta.getAsset(a, "FONT", b) }; ta.getImage = function (a, b) { null == b && (b = !0); return ta.getAsset(a, "IMAGE", b) }; ta.getLibrary = function (a) { if (null == a || "" == a) a = "default"; return ta.libraries.h[a] }; ta.getPath = function (a) { var b = a.indexOf(":"), c = a.substring(0, b); b = a.substring(b + 1); var d = ta.getLibrary(c); if (null != d) { if (d.exists(b, null)) return d.getPath(b); Qa.error('There is no asset with an ID of "' + a + '"', { fileName: "lime/utils/Assets.hx", lineNumber: 224, className: "lime.utils.Assets", methodName: "getPath" }) } else Qa.error(ta.__libraryNotFound(c), { fileName: "lime/utils/Assets.hx", lineNumber: 229, className: "lime.utils.Assets", methodName: "getPath" }); return null }; ta.getText = function (a) { return ta.getAsset(a, "TEXT", !1) }; ta.hasLibrary = function (a) { if (null == a || "" == a) a = "default"; return Object.prototype.hasOwnProperty.call(ta.libraries.h, a) }; ta.isLocal = function (a, b, c) { null == c && (c = !0); if (c && ta.cache.enabled && ta.cache.exists(a, b)) return !0; var d = a.indexOf(":"); c = a.substring(0, d); a = a.substring(d + 1); c = ta.getLibrary(c); return null != c ? c.isLocal(a, b) : !1 }; ta.isValidAudio = function (a) { return null != a }; ta.isValidImage = function (a) { return null != a ? null != a.buffer : !1 }; ta.list = function (a) { for (var b = [], c = ta.libraries.h, d = Object.keys(c), e = d.length, g = 0; g < e;) { var f = c[d[g++]].list(a); null != f && (b = b.concat(f)) } return b }; ta.loadAsset = function (a, b, c) { if (c && ta.cache.enabled) switch (b) { case "BINARY": case "TEXT": c = !1; break; case "FONT": var d = ta.cache.font.h[a]; if (null != d) return ob.withValue(d); break; case "IMAGE": d = ta.cache.image.h[a]; if (ta.isValidImage(d)) return ob.withValue(d); break; case "MUSIC": case "SOUND": d = ta.cache.audio.h[a]; if (ta.isValidAudio(d)) return ob.withValue(d); break; case "TEMPLATE": throw I.thrown("Not sure how to get template: " + a); default: return null } var e = a.indexOf(":"); d = a.substring(0, e); e = a.substring(e + 1); var g = ta.getLibrary(d); if (null != g) { if (g.exists(e, b)) { d = g.loadAsset(e, b); if (c && ta.cache.enabled) d.onComplete(function (c) { ta.cache.set(a, b, c) }); return d } return ob.withError("There is no " + b + ' asset with an ID of "' + a + '"') } return ob.withError(ta.__libraryNotFound(d)) }; ta.loadAudioBuffer = function (a, b) { null == b && (b = !0); return ta.loadAsset(a, "SOUND", b) }; ta.loadBytes = function (a) { return ta.loadAsset(a, "BINARY", !1) }; ta.loadFont = function (a, b) { null == b && (b = !0); return ta.loadAsset(a, "FONT", b) }; ta.loadImage = function (a, b) { null == b && (b = !0); return ta.loadAsset(a, "IMAGE", b) }; ta.loadLibrary = function (a) { var b = new fe, c = ta.getLibrary(a); if (null != c) return c.load(); c = a; var d = null; if (Object.prototype.hasOwnProperty.call(ta.bundlePaths.h, a)) Wf.loadFromFile(ta.bundlePaths.h[a]).onComplete(function (c) { null == c ? b.error('Cannot load bundle for library "' + a + '"') : (c = Ab.fromBundle(c), null == c ? b.error('Cannot open library "' + a + '"') : (ta.libraries.h[a] = c, c.onChange.add((x = ta.onChange, q(x, x.dispatch))), b.completeWith(c.load()))) }).onError(function (c) { b.error('There is no asset library with an ID of "' + a + '"') }); else Object.prototype.hasOwnProperty.call(ta.libraryPaths.h, a) ? (c = ta.libraryPaths.h[a], d = Bh.directory(c)) : (T.endsWith(c, ".bundle") ? (d = c, c += "/library.json") : d = Bh.directory(c), c = ta.__cacheBreak(c)), Nc.loadFromFile(c, d).onComplete(function (c) { null == c ? b.error('Cannot parse asset manifest for library "' + a + '"') : (c = Ab.fromManifest(c), null == c ? b.error('Cannot open library "' + a + '"') : (ta.libraries.h[a] = c, c.onChange.add((x = ta.onChange, q(x, x.dispatch))), b.completeWith(c.load()))) }).onError(function (c) { b.error('There is no asset library with an ID of "' + a + '"') }); return b.future }; ta.loadText = function (a) { return ta.loadAsset(a, "TEXT", !1) }; ta.registerLibrary = function (a, b) { if (Object.prototype.hasOwnProperty.call(ta.libraries.h, a)) { if (ta.libraries.h[a] == b) return; ta.unloadLibrary(a) } null != b && b.onChange.add(ta.library_onChange); ta.libraries.h[a] = b }; ta.unloadLibrary = function (a) { if (null == a || "" == a) a = "default"; var b = ta.libraries.h[a]; null != b && (ta.cache.clear(a + ":"), b.onChange.remove(ta.library_onChange), b.unload()); b = ta.libraries; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a] }; ta.__cacheBreak = function (a) { 0 < ta.cache.version && (a = -1 < a.indexOf("?") ? a + ("&" + ta.cache.version) : a + ("?" + ta.cache.version)); return a }; ta.__libraryNotFound = function (a) { if (null == a || "" == a) a = "default"; return null == zd.current || null == zd.current.__preloader || zd.current.__preloader.complete ? 'There is no asset library named "' + a + '"' : 'There is no asset library named "' + a + '", or it is not yet preloaded' }; ta.library_onChange = function () { ta.cache.clear(); ta.onChange.dispatch() }; var Fr = function (a) { var b = a.indexOf(":"); this.libraryName = a.substring(0, b); this.symbolName = a.substring(b + 1); this.library = ta.getLibrary(this.libraryName) }; k["lime.utils._Assets.LibrarySymbol"] = Fr; Fr.__name__ = "lime.utils._Assets.LibrarySymbol"; Fr.prototype = { library: null, libraryName: null, symbolName: null, isLocal: function (a) { return this.library.isLocal(this.symbolName, a) }, exists: function (a) { return this.library.exists(this.symbolName, a) }, __class__: Fr }; var ss = { _new: function (a, b) { null == b && (b = 0); return new Xf(a, b) }, set: function (a, b, c, d, e) { null != d && (b = lb.ofData(d)); null != b || null == c ? (a.bytes = b, a.offset = null != e ? e : 0) : (a.bytes = lb.ofData(c.buffer), a.offset = null != e ? c.byteOffset + e : c.byteOffset) }, __arrayGet: function (a, b) { return null != a.bytes ? a.bytes.b[b + a.offset] : 0 }, __arraySet: function (a, b, c) { null == a.bytes && (a.bytes.b[b + a.offset] = c & 255); return c }, fromArrayBufferView: function (a) { return null == a ? null : new Xf(lb.ofData(a.buffer), a.byteOffset) }, fromArrayBuffer: function (a) { return null == a ? null : new Xf(lb.ofData(a), 0) }, fromBytes: function (a) { return new Xf(a, 0) }, fromBytesData: function (a) { return null == a ? new Xf(null, 0) : new Xf(lb.ofData(a), 0) }, fromFile: function (a) { return new Xf(oc.fromFile(a), 0) }, fromLimeBytes: function (a) { return new Xf(a, 0) }, toUInt8Array: function (a) { var b = a.bytes.b.bufferValue; a = a.offset / 8 | 0; null == a && (a = 0); return null != b ? new Uint8Array(b, a) : null }, toUInt8ClampedArray: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 8 | 0; null == a && (a = 0); return null != b ? new Uint8ClampedArray(b, a) : null }, toInt8Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 8 | 0; null == a && (a = 0); return null != b ? new Int8Array(b, a) : null }, toUInt16Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 16 | 0; null == a && (a = 0); return null != b ? new Uint16Array(b, a) : null }, toInt16Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 16 | 0; null == a && (a = 0); return null != b ? new Int16Array(b, a) : null }, toUInt32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 32 | 0; null == a && (a = 0); return null != b ? new Uint32Array(b, a) : null }, toInt32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 32 | 0; null == a && (a = 0); return null != b ? new Int32Array(b, a) : null }, toFloat32Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 32 | 0; null == a && (a = 0); return null != b ? new Float32Array(b, a) : null }, toFloat64Array: function (a) { if (null == a || null == a.bytes) return null; var b = a.bytes.b.bufferValue; a = a.offset / 64 | 0; null == a && (a = 0); return null != b ? new Float64Array(b, a) : null } }, Xf = function (a, b) { this.bytes = a; this.offset = b }; k["lime.utils.BytePointerData"] = Xf; Xf.__name__ = "lime.utils.BytePointerData"; Xf.prototype = {bytes: null, offset: null, __class__: Xf}; var oc = { _new: function (a, b) { return new lb(b) }, alloc: function (a) { return new lb(new ArrayBuffer(a)) }, compress: function (a, b) { switch (b._hx_index) { case 0: return jm.compress(a); case 1: return km.compress(a); case 2: return mm.compress(a); case 3: return nm.compress(a) } }, decompress: function (a, b) { switch (b._hx_index) { case 0: return jm.decompress(a); case 1: return km.decompress(a); case 2: return mm.decompress(a); case 3: return nm.decompress(a) } }, fastGet: function (a, b) { return a.bytes[b] }, fromBytes: function (a) { return null == a ? null : oc._new(a.length, a.b.bufferValue) }, fromFile: function (a) { return null }, loadFromBytes: function (a) { return ob.withValue(oc.fromBytes(a)) }, loadFromFile: function (a) { return (new xm).load(a) }, ofData: function (a) { a = lb.ofData(a); return oc._new(a.length, a.b.bufferValue) }, ofString: function (a) { a = lb.ofString(a); return oc._new(a.length, a.b.bufferValue) } }, ge = A["lime.utils.CompressionAlgorithm"] = { __ename__: "lime.utils.CompressionAlgorithm", __constructs__: null, DEFLATE: {_hx_name: "DEFLATE", _hx_index: 0, __enum__: "lime.utils.CompressionAlgorithm", toString: t}, GZIP: {_hx_name: "GZIP", _hx_index: 1, __enum__: "lime.utils.CompressionAlgorithm", toString: t}, LZMA: {_hx_name: "LZMA", _hx_index: 2, __enum__: "lime.utils.CompressionAlgorithm", toString: t}, ZLIB: {_hx_name: "ZLIB", _hx_index: 3, __enum__: "lime.utils.CompressionAlgorithm", toString: t} }; ge.__constructs__ = [ge.DEFLATE, ge.GZIP, ge.LZMA, ge.ZLIB]; var rf = { _new: function (a) { return a }, fromFloat: function (a) { return a }, fromBytesPointer: function (a) { return rf.fromFloat(0) }, fromArrayBufferView: function (a) { return rf.fromFloat(0) }, fromArrayBuffer: function (a) { return rf.fromFloat(0) }, fromBytes: function (a) { return rf.fromFloat(0) }, fromBytesData: function (a) { return rf.fromFloat(0) }, fromLimeBytes: function (a) { return rf.fromBytes(a) }, fromCFFIPointer: function (a) { return rf.fromFloat(0) }, fromFile: function (a) { return rf.fromFloat(0) }, __withOffset: function (a, b) { return rf.fromFloat(0) }, equals: function (a, b) { return a == b }, equalsPointer: function (a, b) { return a == b }, greaterThan: function (a, b) { return a > b }, greaterThanPointer: function (a, b) { return Td.get(a) > Td.get(b) }, greaterThanOrEqual: function (a, b) { return a >= b }, greaterThanOrEqualPointer: function (a, b) { return Td.get(a) >= Td.get(b) }, lessThan: function (a, b) { return a < b }, lessThanPointer: function (a, b) { return Td.get(a) < Td.get(b) }, lessThanOrEqual: function (a, b) { return a <= b }, lessThanOrEqualPointer: function (a, b) { return Td.get(a) <= Td.get(b) }, notEquals: function (a, b) { return a != b }, notEqualsPointer: function (a, b) { return a != b }, plus: function (a, b) { return rf.__withOffset(a, b) }, plusPointer: function (a, b) { return rf.__withOffset(a, b | 0) }, minus: function (a, b) { return rf.__withOffset(a, -b) }, minusPointer: function (a, b) { return rf.__withOffset(a, -(b | 0)) } }, $g = { toArrayBufferView: function (a) { return a }, fromBytes: function (a, b, c) { null == b && (b = 0); return null == b ? new Float32Array(a.b.bufferValue) : null == c ? new Float32Array(a.b.bufferValue, b) : new Float32Array(a.b.bufferValue, b, c) }, toBytes: function (a) { return new lb(new Uint8Array(a.buffer)) }, toString: function (a) { return null != a ? "Float32Array [byteLength:" + a.byteLength + ", length:" + a.length + "]" : null } }, Qa = function () { }; k["lime.utils.Log"] = Qa; Qa.__name__ = "lime.utils.Log"; Qa.debug = function (a, b) { 4 <= Qa.level && console.debug("[" + b.className + "] " + z.string(a)) }; Qa.error = function (a, b) { if (1 <= Qa.level) { a = "[" + b.className + "] ERROR: " + z.string(a); if (Qa.throwErrors) throw I.thrown(a); console.error(a) } }; Qa.info = function (a, b) { 3 <= Qa.level && console.info("[" + b.className + "] " + z.string(a)) }; Qa.print = function (a) { console.log(a) }; Qa.println = function (a) { console.log(a) }; Qa.verbose = function (a, b) { 5 <= Qa.level && (a = "[" + b.className + "] " + z.string(a), console.log(a)) }; Qa.warn = function (a, b) { 2 <= Qa.level && console.warn("[" + b.className + "] WARNING: " + z.string(a)) }; var qg = function (a, b) { this.positions = new xa; this.lengths = new xa; Ab.call(this); this.id = a; this.type = b }; k["lime.utils.PackedAssetLibrary"] = qg; qg.__name__ = "lime.utils.PackedAssetLibrary"; qg.fromBytes = function (a, b) { return qg.fromManifest(Nc.fromBytes(a, b)) }; qg.fromFile = function (a, b) { return qg.fromManifest(Nc.fromFile(a, b)) }; qg.fromManifest = function (a) { return Ab.fromManifest(a) }; qg.loadFromBytes = function (a, b) { return Ab.loadFromBytes(a, b).then(function (a) { return ob.withValue(a) }) }; qg.loadFromFile = function (a, b) { return Ab.loadFromFile(a, b).then(function (a) { return ob.withValue(a) }) }; qg.loadFromManifest = function (a) { return Ab.loadFromManifest(a).then(function (a) { return ob.withValue(a) }) }; qg.__super__ = Ab; qg.prototype = u(Ab.prototype, { id: null, lengths: null, packedData: null, positions: null, type: null, rootPath: null, getAudioBuffer: function (a) { return Ab.prototype.getAudioBuffer.call(this, a) }, getBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return this.cachedBytes.h[a]; if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) { var b = oc.ofString(this.cachedText.h[a]); this.cachedBytes.h[a] = b } else if (b = oc.alloc(this.lengths.h[a]), b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]), "gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return b }, getFont: function (a) { return Ab.prototype.getFont.call(this, a) }, getImage: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedImages.h, a)) return this.cachedImages.h[a]; var b = oc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ("gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return Lb.fromBytes(b) }, getText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return this.cachedText.h[a]; if ("gzip" == this.type || "zip" == this.type || "deflate" == this.type) { var b = oc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ("gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return b.getString(0, b.length) } return this.packedData.getString(this.positions.h[a], this.lengths.h[a]) }, isLocal: function (a, b) { return !0 }, load: function () { var a = this; if (this.loaded) return ob.withValue(this); if (null == this.promise) { this.promise = new fe; this.bytesLoadedCache = new xa; this.assetsLoaded = 0; this.assetsTotal = 2; for (var b = Object.keys(this.preload.h), c = b.length, d = 0; d < c;) { var e = b[d++]; if (this.preload.h[e]) { var g = this.types.h[e]; if (null != g) switch (g) { case "BINARY": case "FONT": case "IMAGE": case "TEXT": this.assetsTotal++; break; case "MUSIC": case "SOUND": Qa.verbose("Preloading asset: " + e + " [" + this.types.h[e] + "]", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 191, className: "lime.utils.PackedAssetLibrary", methodName: "load" }); this.assetsTotal++; var f = this.loadAudioBuffer(e); f.onProgress(function (a, b) { return function (c, d) { b[0](a[0], c, d) } }([e], [q(this, this.load_onProgress)])); f.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(this, this.loadAudioBuffer_onError)])); f.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(this, this.loadAudioBuffer_onComplete)])) } } } b = function (b) { a.cachedBytes.h[a.id] = b; a.packedData = b; a.__assetLoaded(a.id); b = Object.keys(a.preload.h); for (var c = b.length, d = 0; d < c;) { var e = b[d++]; if (a.preload.h[e]) { var g = a.types.h[e]; if (null != g) switch (g) { case "BINARY": Qa.verbose("Preloading asset: " + e + " [" + a.types.h[e] + "]", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 217, className: "lime.utils.PackedAssetLibrary", methodName: "load" }); g = a.loadBytes(e); g.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.load_onError)])); g.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.loadBytes_onComplete)])); break; case "FONT": Qa.verbose("Preloading asset: " + e + " [" + a.types.h[e] + "]", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 224, className: "lime.utils.PackedAssetLibrary", methodName: "load" }); g = a.loadFont(e); g.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.load_onError)])); g.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.loadFont_onComplete)])); break; case "IMAGE": Qa.verbose("Preloading asset: " + e + " [" + a.types.h[e] + "]", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 231, className: "lime.utils.PackedAssetLibrary", methodName: "load" }); g = a.loadImage(e); g.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.load_onError)])); g.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.loadImage_onComplete)])); break; case "TEXT": Qa.verbose("Preloading asset: " + e + " [" + a.types.h[e] + "]", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 238, className: "lime.utils.PackedAssetLibrary", methodName: "load" }), g = a.loadText(e), g.onError(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.load_onError)])), g.onComplete(function (a, b) { return function (c) { b[0](a[0], c) } }([e], [q(a, a.loadText_onComplete)])) } } } }; this.__assetLoaded(null); Object.prototype.hasOwnProperty.call(this.cachedBytes.h, this.id) ? b(this.cachedBytes.h[this.id]) : (c = this.rootPath, null == c && (c = ""), "" == c || T.endsWith(c, "/") || (c += "/"), c += Object.prototype.hasOwnProperty.call(this.paths.h, this.id) ? this.paths.h[this.id] : this.id, c = this.__cacheBreak(c), g = q(this, this.load_onProgress), e = this.id, oc.loadFromFile(c).onProgress(function (a, b) { g(e, a, b) }).onError((x = this.promise, q(x, x.error))).onComplete(b)) } return this.promise.future }, loadAudioBuffer: function (a) { return Ab.prototype.loadAudioBuffer.call(this, a) }, loadBytes: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) return ob.withValue(this.cachedBytes.h[a]); var b = oc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ("gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return ob.withValue(b) }, loadFont: function (a) { return Ab.prototype.loadFont.call(this, a) }, loadImage: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedImages.h, a)) return ob.withValue(this.cachedImages.h[a]); var b = oc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ("gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return Lb.loadFromBytes(b) }, loadText: function (a) { if (Object.prototype.hasOwnProperty.call(this.cachedText.h, a)) return ob.withValue(this.cachedText.h[a]); if (Object.prototype.hasOwnProperty.call(this.cachedBytes.h, a)) { var b = this.getBytes(a); if (null == b) return ob.withValue(null); b = b.getString(0, b.length); this.cachedText.h[a] = b; return ob.withValue(b) } if ("gzip" == this.type || "deflate" == this.type) { b = oc.alloc(this.lengths.h[a]); b.blit(0, this.packedData, this.positions.h[a], this.lengths.h[a]); if ("gzip" == this.type) b = oc.decompress(b, ge.GZIP); else if ("zip" == this.type || "deflate" == this.type) b = oc.decompress(b, ge.DEFLATE); return ob.withValue(b.getString(0, b.length)) } return ob.withValue(this.packedData.getString(this.positions.h[a], this.lengths.h[a])) }, unload: function () { }, __fromManifest: function (a) { this.rootPath = a.rootPath; Ab.prototype.__fromManifest.call(this, a); var b = 0, c = this.bytesTotal = 0; for (a = a.assets; c < a.length;) { var d = a[c]; ++c; var e = d.id; Object.prototype.hasOwnProperty.call(d, "position") && (this.positions.h[e] = V.field(d, "position")); Object.prototype.hasOwnProperty.call(d, "length") && (d = V.field(d, "length"), this.lengths.h[e] = d, this.sizes.h[e] = Math.floor(d / 10), b += d); Object.prototype.hasOwnProperty.call(this.preload.h, e) && this.preload.h[e] && Object.prototype.hasOwnProperty.call(this.sizes.h, e) && (this.bytesTotal += this.sizes.h[e]) } this.sizes.h[this.id] = b; this.bytesTotal += b }, __assetLoaded: function (a) { this.assetsLoaded++; null != a && Qa.verbose("Loaded asset: " + a + " [" + this.types.h[a] + "] (" + (this.assetsLoaded - 1) + "/" + (this.assetsTotal - 1) + ")", { fileName: "lime/utils/PackedAssetLibrary.hx", lineNumber: 460, className: "lime.utils.PackedAssetLibrary", methodName: "__assetLoaded" }); if (null != a) { var b = Object.prototype.hasOwnProperty.call(this.sizes.h, a) ? this.sizes.h[a] : 0; if (Object.prototype.hasOwnProperty.call(this.bytesLoadedCache.h, a)) { var c = this.bytesLoadedCache.h[a]; c < b && (this.bytesLoaded += b - c) } else this.bytesLoaded += b; this.bytesLoadedCache.h[a] = b } this.assetsLoaded < this.assetsTotal ? this.promise.progress(this.bytesLoaded, this.bytesTotal) : (this.loaded = !0, this.promise.progress(this.bytesTotal, this.bytesTotal), this.promise.complete(this)) }, __class__: qg }); var Ao = function () { this.bytesTotalCache = new xa; this.bytesLoadedCache2 = new xa; this.bytesLoadedCache = new Oc; this.onProgress = new om; this.onComplete = new Rd; this.bytesTotal = this.bytesLoaded = 0; this.libraries = []; this.libraryNames = []; this.onProgress.add(q(this, this.update)) }; k["lime.utils.Preloader"] = Ao; Ao.__name__ = "lime.utils.Preloader"; Ao.prototype = { complete: null, onComplete: null, onProgress: null, bytesLoaded: null, bytesLoadedCache: null, bytesLoadedCache2: null, bytesTotal: null, bytesTotalCache: null, initLibraryNames: null, libraries: null, libraryNames: null, loadedLibraries: null, loadedStage: null, preloadComplete: null, preloadStarted: null, simulateProgress: null, addLibrary: function (a) { this.libraries.push(a) }, addLibraryName: function (a) { -1 == this.libraryNames.indexOf(a) && this.libraryNames.push(a) }, load: function () { for (var a = this, b = 0, c = this.libraries; b < c.length;) { var d = c[b]; ++b; this.bytesTotal += d.bytesTotal } this.loadedLibraries = -1; this.preloadStarted = !1; b = 0; for (c = this.libraries; b < c.length;) d = [c[b]], ++b, Qa.verbose("Preloading asset library", { fileName: "lime/utils/Preloader.hx", lineNumber: 132, className: "lime.utils.Preloader", methodName: "load" }), d[0].load().onProgress(function (b) { return function (c, d) { a.bytesLoaded = null == a.bytesLoadedCache.h.__keys__[b[0].__id__] ? a.bytesLoaded + c : a.bytesLoaded + (c - a.bytesLoadedCache.h[b[0].__id__]); a.bytesLoadedCache.set(b[0], c); a.simulateProgress || a.onProgress.dispatch(a.bytesLoaded, a.bytesTotal) } }(d)).onComplete(function (b) { return function (c) { a.bytesLoaded = null == a.bytesLoadedCache.h.__keys__[b[0].__id__] ? a.bytesLoaded + b[0].bytesTotal : a.bytesLoaded + (b[0].bytesTotal - a.bytesLoadedCache.h[b[0].__id__]); a.loadedAssetLibrary() } }(d)).onError(function () { return function (a) { Qa.error(a, { fileName: "lime/utils/Preloader.hx", lineNumber: 168, className: "lime.utils.Preloader", methodName: "load" }) } }()); b = 0; for (c = this.libraryNames; b < c.length;) ++b, this.bytesTotal += 200; this.loadedLibraries++; this.preloadStarted = !0; this.updateProgress() }, loadedAssetLibrary: function (a) { this.loadedLibraries++; var b = this.loadedLibraries; this.preloadStarted || ++b; var c = this.libraries.length + this.libraryNames.length; null != a ? Qa.verbose("Loaded asset library: " + a + " [" + b + "/" + c + "]", { fileName: "lime/utils/Preloader.hx", lineNumber: 195, className: "lime.utils.Preloader", methodName: "loadedAssetLibrary" }) : Qa.verbose("Loaded asset library [" + b + "/" + c + "]", { fileName: "lime/utils/Preloader.hx", lineNumber: 199, className: "lime.utils.Preloader", methodName: "loadedAssetLibrary" }); this.updateProgress() }, start: function () { this.complete || this.simulateProgress || !this.preloadComplete || (this.complete = !0, this.onComplete.dispatch()) }, update: function (a, b) { }, updateProgress: function () { var a = this; this.simulateProgress || this.onProgress.dispatch(this.bytesLoaded, this.bytesTotal); if (this.loadedLibraries == this.libraries.length && !this.initLibraryNames) { this.initLibraryNames = !0; for (var b = 0, c = this.libraryNames; b < c.length;) { var d = [c[b]]; ++b; Qa.verbose("Preloading asset library: " + d[0], { fileName: "lime/utils/Preloader.hx", lineNumber: 236, className: "lime.utils.Preloader", methodName: "updateProgress" }); ta.loadLibrary(d[0]).onProgress(function (b) { return function (c, d) { 0 < d && (Object.prototype.hasOwnProperty.call(a.bytesTotalCache.h, b[0]) || (a.bytesTotalCache.h[b[0]] = d, a.bytesTotal += d - 200), c > d && (c = d), Object.prototype.hasOwnProperty.call(a.bytesLoadedCache2.h, b[0]) ? a.bytesLoaded += c - a.bytesLoadedCache2.h[b[0]] : a.bytesLoaded += c, a.bytesLoadedCache2.h[b[0]] = c, a.simulateProgress || a.onProgress.dispatch(a.bytesLoaded, a.bytesTotal)) } }(d)).onComplete(function (b) { return function (c) { c = 200; Object.prototype.hasOwnProperty.call(a.bytesTotalCache.h, b[0]) && (c = a.bytesTotalCache.h[b[0]]); Object.prototype.hasOwnProperty.call(a.bytesLoadedCache2.h, b[0]) ? a.bytesLoaded += c - a.bytesLoadedCache2.h[b[0]] : a.bytesLoaded += c; a.loadedAssetLibrary(b[0]) } }(d)).onError(function () { return function (a) { Qa.error(a, { fileName: "lime/utils/Preloader.hx", lineNumber: 290, className: "lime.utils.Preloader", methodName: "updateProgress" }) } }()) } } this.simulateProgress || this.loadedLibraries != this.libraries.length + this.libraryNames.length || (this.preloadComplete || (this.preloadComplete = !0, Qa.verbose("Preload complete", { fileName: "lime/utils/Preloader.hx", lineNumber: 301, className: "lime.utils.Preloader", methodName: "updateProgress" })), this.start()) }, __class__: Ao }; var yi = function (a, b, c) { this.name = a; this.type = b; this.address = c }; k["mbs.core.MbsField"] = yi; yi.__name__ = "mbs.core.MbsField"; yi.prototype = { name: null, type: null, address: null, getName: function () { return this.name }, getType: function () { return this.type }, getAddress: function () { return this.address }, __class__: yi }; var Am = function (a, b, c) { yi.call(this, a, null, c); this.typeName = b }; k["mbs.core.reflect.SubstituteField"] = Am; Am.__name__ = "mbs.core.reflect.SubstituteField"; Am.__super__ = yi; Am.prototype = u(yi.prototype, { typeName: null, toString: function () { return "MbsField [name=" + this.getName() + ", typeName=" + this.typeName + ", address=" + this.address + "]" }, __class__: Am }); var Ni = function (a, b, c, d) { Cb.call(this, a); this.parentName = b; this.fields = c.slice(0); this.size = d }; k["mbs.core.reflect.SubstituteType"] = Ni; Ni.__name__ = "mbs.core.reflect.SubstituteType"; Ni.__super__ = Cb; Ni.prototype = u(Cb.prototype, { parentName: null, mapTypes: function (a) { this.parent = a.h[this.parentName]; if (null != this.fields) for (var b = 0, c = this.fields.length; b < c;) { var d = b++; d = this.fields[d]; d.type = a.h[d.typeName] } }, __class__: Ni }); var ie = function () { }; k["mbs.io.MbsDynamicHelper"] = ie; ie.__name__ = "mbs.io.MbsDynamicHelper"; ie.writeDynamic = function (a, b, c) { null == c && a.writeTypecode(b, G.NULL); "boolean" == typeof c ? (a.writeTypecode(b, G.BOOLEAN), a.writeBool(b + G.INTEGER.getSize(), c)) : "number" == typeof c ? (a.writeTypecode(b, G.FLOAT), a.writeFloat(b + G.INTEGER.getSize(), c)) : "number" == typeof c && (c | 0) === c ? (a.writeTypecode(b, G.INTEGER), a.writeInt(b + G.INTEGER.getSize(), c)) : "string" == typeof c ? (a.writeTypecode(b, G.STRING), a.writeString(b + G.INTEGER.getSize(), c)) : (a.writeTypecode(b, c.getMbsType()), a.writeInt(b + G.INTEGER.getSize(), c.getAddress())) }; ie.readDynamic = function (a, b) { var c = a.readTypecode(b); if (c == G.NULL) return null; if (c == G.BOOLEAN) return a.readBool(b + G.INTEGER.getSize()); if (c == G.FLOAT) return a.readFloat(b + G.INTEGER.getSize()); if (c == G.INTEGER) return a.readInt(b + G.INTEGER.getSize()); if (c == G.STRING) return a.readString(b + G.INTEGER.getSize()); if (c == G.LIST) return b = a.readInt(b + G.INTEGER.getSize()), 0 != b ? (c = a.readTypecode(b + G.INTEGER.getSize()), a = c == G.BOOLEAN ? new Vj(a) : c == G.FLOAT ? new Wj(a) : c == G.INTEGER ? new Pf(a) : c == G.STRING ? new Xj(a) : c == G.DYNAMIC ? new wh(a) : new Xa(a, c, c.createInstance(a)), a.setAddress(b), a) : null; c = c.createInstance(a); c.setAddress(a.readInt(b + G.INTEGER.getSize())); return c }; ie.createObjectPool = function (a) { return new Oc }; ie.readDynamicUsingPool = function (a, b, c) { var d = a.readTypecode(b); if (d == G.NULL) return null; if (d == G.BOOLEAN) return a.readBool(b + G.INTEGER.getSize()); if (d == G.FLOAT) return a.readFloat(b + G.INTEGER.getSize()); if (d == G.INTEGER) return a.readInt(b + G.INTEGER.getSize()); if (d == G.STRING) return a.readString(b + G.INTEGER.getSize()); if (d == G.LIST) return b = a.readInt(b + G.INTEGER.getSize()), 0 != b ? (d = a.readTypecode(b + G.INTEGER.getSize()), a = d == G.BOOLEAN ? new Vj(a) : d == G.FLOAT ? new Wj(a) : d == G.INTEGER ? new Pf(a) : d == G.STRING ? new Xj(a) : d == G.DYNAMIC ? new wh(a) : new Xa(a, d, d.createInstance(a)), a.setAddress(b), a) : null; var e = c.h[d.__id__]; null == e && (e = d.createInstance(a), c.set(d, e)); e.setAddress(a.readInt(b + G.INTEGER.getSize())); return e }; var Bm = function () { }; k["mbs.io.MbsIO"] = Bm; Bm.__name__ = "mbs.io.MbsIO"; Bm.__isInterface__ = !0; Bm.prototype = { readBool: null, readFloat: null, readInt: null, readString: null, writeInt: null, writeBool: null, writeFloat: null, writeString: null, isReader: null, isWriter: null, allocate: null, writeTypecode: null, readTypecode: null, __class__: Bm }; var Wr = function () { }; k["mbs.io.MbsInternalVersion"] = Wr; Wr.__name__ = "mbs.io.MbsInternalVersion"; var pe = function (a, b) { this.data = a; null != b && (this.type = b, this.elementSize = b.getSize()) }; k["mbs.io.MbsListBase"] = pe; pe.__name__ = "mbs.io.MbsListBase"; pe.__super__ = pb; pe.prototype = u(pb.prototype, { type: null, elementAddress: null, elementSize: null, _length: null, setAddress: function (a) { pb.prototype.setAddress.call(this, a); this.data.isReader() && (0 != a ? (this._length = this.data.readInt(a), this.type = this.data.readTypecode(a + G.INTEGER.getSize()), this.elementSize = this.type.getSize(), this.elementAddress = a + 2 * G.INTEGER.getSize()) : (this.type = null, this.elementAddress = this.elementSize = this._length = 0)) }, allocateNew: function (a) { if (this.data.isWriter()) return this._length = a, this.address = this.data.allocate(2 * G.INTEGER.getSize() + this.elementSize * a), this.data.writeInt(this.address, a), this.data.writeTypecode(this.address + G.INTEGER.getSize(), this.type), this.elementAddress = this.address + 2 * G.INTEGER.getSize(), this.address; throw I.thrown("Can't allocate new objects when reading"); }, length: function () { return this._length }, __class__: pe }); var Xa = function (a, b, c) { pe.call(this, a, b); this.obj = c }; k["mbs.io.MbsList"] = Xa; Xa.__name__ = "mbs.io.MbsList"; Xa.__super__ = pe; Xa.prototype = u(pe.prototype, { obj: null, getNextObject: function () { this.obj.setAddress(this.elementAddress); this.elementAddress += this.elementSize; return this.obj }, __class__: Xa }); var Vj = function (a) { pe.call(this, a, G.BOOLEAN) }; k["mbs.io.MbsBoolList"] = Vj; Vj.__name__ = "mbs.io.MbsBoolList"; Vj.__super__ = pe; Vj.prototype = u(pe.prototype, { readBool: function () { var a = this.data.readBool(this.elementAddress); this.elementAddress += this.elementSize; return a }, writeBool: function (a) { this.data.writeBool(this.elementAddress, a); this.elementAddress += this.elementSize }, __class__: Vj }); var Wj = function (a) { pe.call(this, a, G.FLOAT) }; k["mbs.io.MbsFloatList"] = Wj; Wj.__name__ = "mbs.io.MbsFloatList"; Wj.__super__ = pe; Wj.prototype = u(pe.prototype, { readFloat: function () { var a = this.data.readFloat(this.elementAddress); this.elementAddress += this.elementSize; return a }, writeFloat: function (a) { this.data.writeFloat(this.elementAddress, a); this.elementAddress += this.elementSize }, __class__: Wj }); var Pf = function (a) { pe.call(this, a, G.INTEGER) }; k["mbs.io.MbsIntList"] = Pf; Pf.__name__ = "mbs.io.MbsIntList"; Pf.__super__ = pe; Pf.prototype = u(pe.prototype, { readInt: function () { var a = this.data.readInt(this.elementAddress); this.elementAddress += this.elementSize; return a }, writeInt: function (a) { this.data.writeInt(this.elementAddress, a); this.elementAddress += this.elementSize }, __class__: Pf }); var Xj = function (a) { pe.call(this, a, G.STRING) }; k["mbs.io.MbsStringList"] = Xj; Xj.__name__ = "mbs.io.MbsStringList"; Xj.__super__ = pe; Xj.prototype = u(pe.prototype, { readString: function () { var a = this.data.readString(this.elementAddress); this.elementAddress += this.elementSize; return a }, writeString: function (a) { this.data.writeString(this.elementAddress, a); this.elementAddress += this.elementSize }, __class__: Xj }); var wh = function (a) { pe.call(this, a, G.DYNAMIC) }; k["mbs.io.MbsDynamicList"] = wh; wh.__name__ = "mbs.io.MbsDynamicList"; wh.__super__ = pe; wh.prototype = u(pe.prototype, { readObject: function () { var a = ie.readDynamic(this.data, this.elementAddress); this.elementAddress += this.elementSize; return a }, readObjectUsingPool: function (a) { a = ie.readDynamicUsingPool(this.data, this.elementAddress, a); this.elementAddress += this.elementSize; return a }, writeObject: function (a) { ie.writeDynamic(this.data, this.elementAddress, a); this.elementAddress += this.elementSize }, __class__: wh }); var Ug = function (a, b, c) { this.typedefSet = a; this.readStoredTypeInformation = b; this.initStringList = c; this.header = new Bc(this); this.header.setAddress(0) }; k["mbs.io.MbsReader"] = Ug; Ug.__name__ = "mbs.io.MbsReader"; Ug.__interfaces__ = [Bm]; Ug.prototype = { data: null, stringTable: null, typeTable: null, rootAddress: null, subTypeMap: null, initStringList: null, stringTableAddress: null, readStoredTypeInformation: null, typedefSet: null, header: null, canRead: function (a) { var b = null; if (null == a || a.length < this.header.getMbsType().getSize()) b = "Missing header"; this.data = a; 2 != this.header.getVersion() && (b = "Mismatched version -- " + this.header.getVersion()); this.header.getTypeTableHash() != this.typedefSet.getHash() && (b = "Mismatched typetable"); this.readStoredTypeInformation && 0 == this.header.getTypeTablePointer() && (b = "Missing required type information"); this.data = null; return b }, readData: function (a) { this.data = a; if (2 != this.header.getVersion()) throw I.thrown("Can't read mbs. Wrong version."); if (this.header.getTypeTableHash() != this.typedefSet.getHash()) throw I.thrown("Can't read mbs. Wrong typedef info."); var b = G.INTEGER.getSize(); this.stringTableAddress = this.header.getStringTablePointer(); var c = Array(this.readInt(this.stringTableAddress)); this.stringTable = c; if (this.initStringList) { var d = this.stringTableAddress + b; for (var e = 0, g = this.stringTable.length; e < g;) { var f = e++, v = this.readInt(d), h = this.readInt(v); this.stringTable[f] = a.getString(v + 4, h); d += b } } if (this.readStoredTypeInformation) { a = new Sc(this); d = this.header.getTypeTablePointer(); this.typeTable = c = Array(this.readInt(d)); d += b; this.subTypeMap = new xa; v = Object.create(null); f = G.BOOLEAN; v[f.getName()] = f; f = G.INTEGER; v[f.getName()] = f; f = G.FLOAT; v[f.getName()] = f; f = G.STRING; v[f.getName()] = f; f = G.DYNAMIC; v[f.getName()] = f; f = G.LIST; v[f.getName()] = f; e = 0; for (g = this.typeTable.length; e < g;) { f = e++; a.setAddress(this.readInt(d)); d += b; h = a.getName(); var m = a.getParent(), l = a.getSize(); c = null; var n = a.getFieldsPointer(); if (0 != n) { var k = this.readInt(n); n += b; c = Array(k); for (var t = new ed(this), q = 0; q < k;) { var u = q++; t.setAddress(n); n += ed.MBS_FIELD_INFO.getSize(); var x = t.getName(), A = t.getType(), N = t.getFieldAddress(); c[u] = new Am(x, A, N) } } Object.prototype.hasOwnProperty.call(v, h) ? this.typeTable[f] = v[h] : this.typeTable[f] = new Ni(h, m, c, l); this.subTypeMap.h[h] = this.typeTable[f] } e = 0; for (g = this.typeTable.length; e < g;) f = e++, this.typeTable[f] instanceof Ni && w.__cast(this.typeTable[f], Ni).mapTypes(this.subTypeMap) } else for (this.typeTable = c = Array(this.typedefSet.getTypes().length), e = 0, g = this.typedefSet.getTypes(); e < g.length;) f = g[e], ++e, this.typeTable[this.typedefSet.getTypecode(f)] = f }, reconfigureComposition: function (a) { var b = this.subTypeMap, c = a.getName(); if (Object.prototype.hasOwnProperty.call(b.h, c)) { b = this.subTypeMap; c = a.getName(); var d = b.h[c]; b = Object.create(null); c = 0; for (d = d.getFields(); c < d.length;) { var e = d[c]; ++c; b[e.getName()] = e } c = 0; for (d = a.getFields(); c < d.length;) e = d[c], ++c, e.address = b[e.getName()].address } }, getRoot: function () { return this.header.getRoot() }, readInt: function (a) { return this.data.b[a] << 24 | this.data.b[a + 1] << 16 | this.data.b[a + 2] << 8 | this.data.b[a + 3] }, readBool: function (a) { return 0 != this.data.b[a] }, readFloat: function (a) { return ee.i32ToFloat(this.readInt(a)) }, readString: function (a) { if (this.initStringList) return this.stringTable[this.readInt(a)]; a = this.readInt(a); if (null == this.stringTable[a]) { var b = this.readInt(this.stringTableAddress + G.INTEGER.getSize() * (a + 1)), c = this.readInt(b); this.stringTable[a] = this.data.getString(b + 4, c) } return this.stringTable[a] }, readTypecode: function (a) { return this.typeTable[this.readInt(a)] }, getTypeTable: function () { return this.typeTable }, writeInt: function (a, b) { throw I.thrown("Can't write on an MBS reader"); }, writeBool: function (a, b) { throw I.thrown("Can't write on an MBS reader"); }, writeFloat: function (a, b) { throw I.thrown("Can't write on an MBS reader"); }, writeString: function (a, b) { throw I.thrown("Can't write on an MBS reader"); }, isReader: function () { return !0 }, isWriter: function () { return !1 }, allocate: function (a) { throw I.thrown("Can't allocate on an MBS reader"); }, writeTypecode: function (a, b) { throw I.thrown("Can't write on an MBS reader"); }, __class__: Ug }; var Oa = function () { }; k["openfl.Lib"] = Oa; Oa.__name__ = "openfl.Lib"; Oa.__properties__ = {get_current: "get_current", get_application: "get_application"}; Oa.as = function (a, b) { return w.__instanceof(a, b) ? a : null }; Oa.attach = function (a) { return new rg }; Oa.clearInterval = function (a) { Oa.__timers.h.hasOwnProperty(a) && (Oa.__timers.h[a].stop(), Oa.__timers.remove(a)) }; Oa.clearTimeout = function (a) { Oa.__timers.h.hasOwnProperty(a) && (Oa.__timers.h[a].stop(), Oa.__timers.remove(a)) }; Oa.getDefinitionByName = function (a) { return null == a ? null : k[a] }; Oa.getQualifiedClassName = function (a) { if (null == a) return null; var b = w.__instanceof(a, jr) ? a : w.getClass(a); return null == b ? "boolean" == typeof a || a == La ? "Bool" : "number" == typeof a && (a | 0) === a || a == Ia ? "Int" : "number" == typeof a || a == Ka ? "Float" : null : b.__name__ }; Oa.getQualifiedSuperclassName = function (a) { if (null == a) return null; a = w.__instanceof(a, jr) ? a : w.getClass(a); if (null == a) return null; a = a.__super__; return null == a ? null : a.__name__ }; Oa.getTimer = function () { return $a.getTimer() }; Oa.getURL = function (a, b) { Oa.navigateToURL(a, b) }; Oa.navigateToURL = function (a, b) { null == b && (b = "_blank"); var c = a.url; if (Ha.typeof(a.data) == xb.TObject) { for (var d = "", e = V.fields(a.data), g = 0; g < e.length;) { var f = e[g]; ++g; 0 < d.length && (d += "&"); var v = encodeURIComponent(f) + "="; f = z.string(V.field(a.data, f)); d += v + encodeURIComponent(f) } c = -1 < c.indexOf("?") ? c + ("&" + d) : c + ("?" + d) } $a.openURL(c, b) }; Oa.notImplemented = function (a) { var b = a.className + "." + a.methodName; Object.prototype.hasOwnProperty.call(Oa.__sentWarnings.h, b) || (Oa.__sentWarnings.h[b] = !0, Qa.warn(a.methodName + " is not implemented", a)) }; Oa.preventDefaultTouchMove = function () { window.document.addEventListener("touchmove", function (a) { a.preventDefault() }, !1) }; Oa.sendToURL = function (a) { (new uh).load(a) }; Oa.setInterval = function (a, b, c) { var d = ++Oa.__lastTimerID; b = new Ve(b); Oa.__timers.h[d] = b; b.run = function () { a.apply(a, null == c ? [] : c) }; return d }; Oa.setTimeout = function (a, b, c) { var d = ++Oa.__lastTimerID, e = Oa.__timers; b = Ve.delay(function () { a.apply(a, null == c ? [] : c) }, b); e.h[d] = b; return d }; Oa.trace = function (a) { lh.trace(a, {fileName: "openfl/Lib.hx", lineNumber: 565, className: "openfl.Lib", methodName: "trace"}) }; Oa.get_application = function () { return Ic.application }; Oa.get_current = function () { null == Ic.current && (Ic.current = new rg); return Ic.current }; var ch = function () { }; k["openfl._Vector.IVector"] = ch; ch.__name__ = "openfl._Vector.IVector"; ch.__isInterface__ = !0; ch.prototype = { get_length: null, set_length: null, fixed: null, concat: null, copy: null, filter: null, get: null, indexOf: null, insertAt: null, iterator: null, join: null, lastIndexOf: null, pop: null, push: null, removeAt: null, reverse: null, set: null, shift: null, slice: null, sort: null, splice: null, toString: null, unshift: null, __class__: ch, __properties__: {set_length: "set_length", get_length: "get_length"} }; var Gf = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b }; k["openfl._Vector.BoolVector"] = Gf; Gf.__name__ = "openfl._Vector.BoolVector"; Gf.__interfaces__ = [ch]; Gf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Gf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Gf(0, !1, this.__array.concat(a.__array)) : new Gf(0, !1, this.__array.slice()) }, copy: function () { return new Gf(0, this.fixed, this.__array.slice()) }, filter: function (a) { for (var b = this.fixed, c = [], d = 0, e = this.__array; d < e.length;) { var g = e[d]; ++d; a(g) && c.push(g) } return new Gf(0, b, c) }, get: function (a) { return a >= this.__array.length ? !1 : this.__array[a] }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c;) { var d = b++; if (this.__array[d] == a) return d } return -1 }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b) }, iterator: function () { return new Qe(this.__array) }, join: function (a) { null == a && (a = ","); return this.__array.join(a) }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b;) { if (this.__array[b] == a) return b; --b } return -1 }, pop: function () { return this.fixed ? null : this.__array.pop() }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a) }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : !1 }, reverse: function () { this.__array.reverse(); return this }, set: function (a, b) { return !this.fixed || a < this.__array.length ? this.__array[a] = b : b }, shift: function () { return this.fixed ? null : this.__array.shift() }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Gf(0, !1, this.__array.slice(a, b)) }, sort: function (a) { this.__array.sort(a) }, splice: function (a, b) { return new Gf(0, !1, this.__array.splice(a, b)) }, toJSON: function () { return this.__array }, toString: function () { return null != this.__array ? this.__array.toString() : null }, unshift: function (a) { this.fixed || this.__array.unshift(a) }, get_length: function () { return this.__array.length }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a;) { var c = b++; this.__array[c] = !1 } else for (; this.__array.length > a;) this.__array.pop() } return this.__array.length }, __class__: Gf, __properties__: {set_length: "set_length", get_length: "get_length"} }; var If = function (a, b, c, d) { null == d && (d = !1); null == b && (b = !1); null == a && (a = 0); if (d) { if (this.__array = [], null != c) { d = 0; for (var e = c.length; d < e;) { var g = d++; this.__array[g] = c[g] } } } else null == c && (c = []), this.__array = c; 0 < a && this.set_length(a); this.fixed = b }; k["openfl._Vector.FloatVector"] = If; If.__name__ = "openfl._Vector.FloatVector"; If.__interfaces__ = [ch]; If.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new If(0, !1, this.__array.slice()) : 0 < a.__array.length ? new If(0, !1, this.__array.concat(a.__array)) : new If(0, !1, this.__array.slice()) }, copy: function () { return new If(0, this.fixed, this.__array.slice()) }, filter: function (a) { for (var b = this.fixed, c = [], d = 0, e = this.__array; d < e.length;) { var g = e[d]; ++d; a(g) && c.push(g) } return new If(0, b, c) }, get: function (a) { return this.__array[a] }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c;) { var d = b++; if (this.__array[d] == a) return d } return -1 }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b) }, iterator: function () { return new Qe(this.__array) }, join: function (a) { null == a && (a = ","); return this.__array.join(a) }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b;) { if (this.__array[b] == a) return b; --b } return -1 }, pop: function () { return this.fixed ? null : this.__array.pop() }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a) }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : 0 }, reverse: function () { this.__array.reverse(); return this }, set: function (a, b) { return !this.fixed || a < this.__array.length ? this.__array[a] = b : b }, shift: function () { return this.fixed ? null : this.__array.shift() }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new If(0, !1, this.__array.slice(a, b)) }, sort: function (a) { this.__array.sort(a) }, splice: function (a, b) { return new If(0, !1, this.__array.splice(a, b)) }, toJSON: function () { return this.__array }, toString: function () { return null != this.__array ? this.__array.toString() : null }, unshift: function (a) { this.fixed || this.__array.unshift(a) }, get_length: function () { return this.__array.length }, set_length: function (a) { if (a != this.__array.length && !this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a;) { var c = b++; this.__array[c] = 0 } else for (; this.__array.length > a;) this.__array.pop() } return this.__array.length }, __class__: If, __properties__: {set_length: "set_length", get_length: "get_length"} }; var Jf = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b }; k["openfl._Vector.FunctionVector"] = Jf; Jf.__name__ = "openfl._Vector.FunctionVector"; Jf.__interfaces__ = [ch]; Jf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Jf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Jf(0, !1, this.__array.concat(a.__array)) : new Jf(0, !1, this.__array.slice()) }, copy: function () { return new Jf(0, this.fixed, this.__array.slice()) }, filter: function (a) { for (var b = this.fixed, c = [], d = 0, e = this.__array; d < e.length;) { var g = e[d]; ++d; a(g) && c.push(g) } return new Jf(0, b, c) }, get: function (a) { return a >= this.__array.length ? null : this.__array[a] }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c;) { var d = b++; if (V.compareMethods(this.__array[d], a)) return d } return -1 }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b) }, iterator: function () { return new Qe(this.__array) }, join: function (a) { null == a && (a = ","); return this.__array.join(a) }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b;) { if (V.compareMethods(this.__array[b], a)) return b; --b } return -1 }, pop: function () { return this.fixed ? null : this.__array.pop() }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a) }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : null }, reverse: function () { this.__array.reverse(); return this }, set: function (a, b) { return !this.fixed || a < this.__array.length ? this.__array[a] = b : b }, shift: function () { return this.fixed ? null : this.__array.shift() }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Jf(0, !1, this.__array.slice(a, b)) }, sort: function (a) { this.__array.sort(a) }, splice: function (a, b) { return new Jf(0, !1, this.__array.splice(a, b)) }, toJSON: function () { return this.__array }, toString: function () { return null != this.__array ? this.__array.toString() : null }, unshift: function (a) { this.fixed || this.__array.unshift(a) }, get_length: function () { return this.__array.length }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a;) { var c = b++; this.__array[c] = null } else for (; this.__array.length > a;) this.__array.pop() } return this.__array.length }, __class__: Jf, __properties__: {set_length: "set_length", get_length: "get_length"} }; var Hf = function (a, b, c) { null == b && (b = !1); null == a && (a = 0); null == c && (c = []); this.__array = c; 0 < a && this.set_length(a); this.fixed = b }; k["openfl._Vector.IntVector"] = Hf; Hf.__name__ = "openfl._Vector.IntVector"; Hf.__interfaces__ = [ch]; Hf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new Hf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new Hf(0, !1, this.__array.concat(a.__array)) : new Hf(0, !1, this.__array.slice()) }, copy: function () { return new Hf(0, this.fixed, this.__array.slice()) }, filter: function (a) { for (var b = this.fixed, c = [], d = 0, e = this.__array; d < e.length;) { var g = e[d]; ++d; a(g) && c.push(g) } return new Hf(0, b, c) }, get: function (a) { return this.__array[a] }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c;) { var d = b++; if (this.__array[d] == a) return d } return -1 }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b) }, iterator: function () { return new Qe(this.__array) }, join: function (a) { null == a && (a = ","); return this.__array.join(a) }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b;) { if (this.__array[b] == a) return b; --b } return -1 }, pop: function () { return this.fixed ? null : this.__array.pop() }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a) }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : 0 }, reverse: function () { this.__array.reverse(); return this }, set: function (a, b) { return !this.fixed || a < this.__array.length ? this.__array[a] = b : b }, shift: function () { return this.fixed ? null : this.__array.shift() }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new Hf(0, !1, this.__array.slice(a, b)) }, sort: function (a) { this.__array.sort(a) }, splice: function (a, b) { return new Hf(0, !1, this.__array.splice(a, b)) }, toJSON: function () { return this.__array }, toString: function () { return null != this.__array ? this.__array.toString() : null }, unshift: function (a) { this.fixed || this.__array.unshift(a) }, get_length: function () { return this.__array.length }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a;) { var c = b++; this.__array[c] = 0 } else for (; this.__array.length > a;) this.__array.pop() } return this.__array.length }, __class__: Hf, __properties__: {set_length: "set_length", get_length: "get_length"} }; var uf = function (a, b, c, d) { null == d && (d = !1); null == b && (b = !1); null == a && (a = 0); if (d) { if (this.__array = [], null != c) { d = 0; for (var e = c.length; d < e;) { var g = d++; this.__array[g] = c[g] } } } else null == c && (c = []), this.__array = c; 0 < a && this.set_length(a); this.fixed = b }; k["openfl._Vector.ObjectVector"] = uf; uf.__name__ = "openfl._Vector.ObjectVector"; uf.__interfaces__ = [ch]; uf.prototype = { fixed: null, __array: null, concat: function (a) { return null == a ? new uf(0, !1, this.__array.slice()) : 0 < a.__array.length ? new uf(0, !1, this.__array.concat(a.__array)) : new uf(0, !1, this.__array.slice()) }, copy: function () { return new uf(0, this.fixed, this.__array.slice()) }, filter: function (a) { for (var b = this.fixed, c = [], d = 0, e = this.__array; d < e.length;) { var g = e[d]; ++d; a(g) && c.push(g) } return new uf(0, b, c) }, get: function (a) { return this.__array[a] }, indexOf: function (a, b) { null == b && (b = 0); for (var c = this.__array.length; b < c;) { var d = b++; if (this.__array[d] == a) return d } return -1 }, insertAt: function (a, b) { (!this.fixed || a < this.__array.length) && this.__array.splice(a, 0, b) }, iterator: function () { return new Qe(this.__array) }, join: function (a) { null == a && (a = ","); return this.__array.join(a) }, lastIndexOf: function (a, b) { for (b = null == b || b >= this.__array.length ? this.__array.length - 1 : b; 0 <= b;) { if (this.__array[b] == a) return b; --b } return -1 }, pop: function () { return this.fixed ? null : this.__array.pop() }, push: function (a) { return this.fixed ? this.__array.length : this.__array.push(a) }, removeAt: function (a) { return !this.fixed || a < this.__array.length ? this.__array.splice(a, 1)[0] : null }, reverse: function () { this.__array.reverse(); return this }, set: function (a, b) { return !this.fixed || a < this.__array.length ? this.__array[a] = b : b }, shift: function () { return this.fixed ? null : this.__array.shift() }, slice: function (a, b) { null == a && (a = 0); null == b && (b = 16777215); return new uf(0, !1, this.__array.slice(a, b)) }, sort: function (a) { this.__array.sort(a) }, splice: function (a, b) { return new uf(0, !1, this.__array.splice(a, b)) }, toJSON: function () { return this.__array }, toString: function () { return null != this.__array ? this.__array.toString() : null }, unshift: function (a) { this.fixed || this.__array.unshift(a) }, get_length: function () { return this.__array.length }, set_length: function (a) { if (!this.fixed) { var b = this.__array.length; 0 > a && (a = 0); if (a > b) for (; b < a;) b++, this.__array.push(null); else for (; this.__array.length > a;) this.__array.pop() } return this.__array.length }, __class__: uf, __properties__: {set_length: "set_length", get_length: "get_length"} }; var kj = function () { zd.call(this); null == Ic.application && (Ic.application = this); null == Ic.current && (Ic.current = new rg); Ic.current.__loaderInfo = hg.create(null); Ic.current.__loaderInfo.content = Ic.current }; k["openfl.display.Application"] = kj; kj.__name__ = "openfl.display.Application"; kj.__super__ = zd; kj.prototype = u(zd.prototype, { createWindow: function (a) { var b = new Yj(this, a); this.__windows.push(b); this.__windowByID.h[b.id] = b; var c = q(this, this.__onWindowClose); b.onClose.add(function () { c(b) }, !1, -1E4); null == this.__window && (this.__window = b, b.onActivate.add(q(this, this.onWindowActivate)), b.onRenderContextLost.add(q(this, this.onRenderContextLost)), b.onRenderContextRestored.add(q(this, this.onRenderContextRestored)), b.onDeactivate.add(q(this, this.onWindowDeactivate)), b.onDropFile.add(q(this, this.onWindowDropFile)), b.onEnter.add(q(this, this.onWindowEnter)), b.onExpose.add(q(this, this.onWindowExpose)), b.onFocusIn.add(q(this, this.onWindowFocusIn)), b.onFocusOut.add(q(this, this.onWindowFocusOut)), b.onFullscreen.add(q(this, this.onWindowFullscreen)), b.onKeyDown.add(q(this, this.onKeyDown)), b.onKeyUp.add(q(this, this.onKeyUp)), b.onLeave.add(q(this, this.onWindowLeave)), b.onMinimize.add(q(this, this.onWindowMinimize)), b.onMouseDown.add(q(this, this.onMouseDown)), b.onMouseMove.add(q(this, this.onMouseMove)), b.onMouseMoveRelative.add(q(this, this.onMouseMoveRelative)), b.onMouseUp.add(q(this, this.onMouseUp)), b.onMouseWheel.add(q(this, this.onMouseWheel)), b.onMove.add(q(this, this.onWindowMove)), b.onRender.add(q(this, this.render)), b.onResize.add(q(this, this.onWindowResize)), b.onRestore.add(q(this, this.onWindowRestore)), b.onTextEdit.add(q(this, this.onTextEdit)), b.onTextInput.add(q(this, this.onTextInput)), this.onWindowCreate()); this.onCreateWindow.dispatch(b); return b }, __class__: kj }); var ka = function (a, b, c, d) { null == d && (d = -1); null == c && (c = !0); this.__drawableType = 0; this.transparent = c; null == a && (a = 0); null == b && (b = 0); 0 > a && (a = 0); 0 > b && (b = 0); this.width = a; this.height = b; this.rect = new ba(0, 0, a, b); this.__textureWidth = a; this.__textureHeight = b; 0 < a && 0 < b && (c ? 0 == (d & -16777216) && (d = 0) : d = -16777216 | d & 16777215, this.image = new Lb(null, 0, 0, a, b, d << 8 | d >>> 24 & 255), this.image.set_transparent(c), this.readable = this.__isValid = !0); this.__renderTransform = new Ja; this.__worldAlpha = 1; this.__worldTransform = new Ja; this.__worldColorTransform = new Pc; this.__renderable = !0 }; k["openfl.display.BitmapData"] = ka; ka.__name__ = "openfl.display.BitmapData"; ka.__interfaces__ = [ue]; ka.fromBase64 = function (a, b) { return null }; ka.fromBytes = function (a, b) { return null }; ka.fromCanvas = function (a, b) { null == b && (b = !0); if (null == a) return null; var c = new ka(0, 0, b, 0); c.__fromImage(Lb.fromCanvas(a)); c.image.set_transparent(b); return c }; ka.fromFile = function (a) { return null }; ka.fromImage = function (a, b) { null == b && (b = !0); if (null == a || null == a.buffer) return null; var c = new ka(0, 0, b, 0); c.__fromImage(a); c.image.set_transparent(b); return null != c.image ? c : null }; ka.fromTexture = function (a) { if (null == a) return null; var b = new ka(a.__width, a.__height, !0, 0); b.readable = !1; b.__texture = a; b.__textureContext = a.__textureContext; b.image = null; return b }; ka.loadFromBase64 = function (a, b) { return Lb.loadFromBase64(a, b).then(function (a) { return ob.withValue(ka.fromImage(a)) }) }; ka.loadFromBytes = function (a, b) { return Lb.loadFromBytes(Fb.toBytes(a)).then(function (a) { a = ka.fromImage(a); null != b && a.__applyAlpha(b); return ob.withValue(a) }) }; ka.loadFromFile = function (a) { return Lb.loadFromFile(a).then(function (a) { return ob.withValue(ka.fromImage(a)) }) }; ka.prototype = { height: null, image: null, readable: null, rect: null, transparent: null, width: null, __blendMode: null, __drawableType: null, __framebuffer: null, __framebufferContext: null, __indexBuffer: null, __indexBufferContext: null, __indexBufferData: null, __indexBufferGrid: null, __isMask: null, __isValid: null, __mask: null, __renderable: null, __renderTransform: null, __scrollRect: null, __stencilBuffer: null, __surface: null, __texture: null, __textureContext: null, __textureHeight: null, __textureVersion: null, __textureWidth: null, __transform: null, __uvRect: null, __vertexBuffer: null, __vertexBufferContext: null, __vertexBufferData: null, __vertexBufferGrid: null, __vertexBufferHeight: null, __vertexBufferScaleX: null, __vertexBufferScaleY: null, __vertexBufferWidth: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, applyFilter: function (a, b, c, d) { if (this.readable && null != a && a.readable) { a = d.__needSecondBitmapData; var e = d.__preserveObject, g = null; var f = a ? new ka(this.width, this.height, !0, 0) : this; e && (g = new ka(this.width, this.height, !0, 0)); d.__preserveObject && g.copyPixels(this, this.rect, c); b = d.__applyFilter(f, this, b, c); d.__preserveObject && b.draw(g, null, null); a && b == f && (f.image.version = this.image.version, this.image = f.image); this.image.dirty = !0; this.image.version++ } }, clone: function () { if (this.__isValid) if (this.readable || null != this.image) var a = ka.fromImage(this.image.clone(), this.transparent); else a = new ka(0, 0, this.transparent, 0), a.width = this.width, a.height = this.height, a.__textureWidth = this.__textureWidth, a.__textureHeight = this.__textureHeight, a.rect.copyFrom(this.rect), a.__framebuffer = this.__framebuffer, a.__framebufferContext = this.__framebufferContext, a.__texture = this.__texture, a.__textureContext = this.__textureContext, a.__isValid = !0; else a = new ka(this.width, this.height, this.transparent, 0); a.__worldTransform.copyFrom(this.__worldTransform); a.__renderTransform.copyFrom(this.__renderTransform); return a }, colorTransform: function (a, b) { this.readable && this.image.colorTransform(a.__toLimeRectangle(), b.__toLimeColorMatrix()) }, compare: function (a) { if (a == this) return 0; if (null == a) return -1; if (0 == this.readable || 0 == a.readable) return -2; if (this.width != a.width) return -3; if (this.height != a.height) return -4; if (null != this.image && null != a.image && this.image.get_format() == a.image.get_format()) { for (var b = this.image.get_data(), c = a.image.get_data(), d = !0, e = 0, g = b.length; e < g;) { var f = e++; if (b[f] != c[f]) { d = !1; break } } if (d) return 0 } b = null; e = 0; for (g = this.height; e < g;) { f = e++; for (var v = 0, h = this.width; v < h;) { var m = v++; c = !1; var l = this.getPixel32(m, f); var n = a.getPixel32(m, f); d = 0; if (l != n) { var k = (l >>> 16 & 255) - (n >>> 16 & 255); var t = (l >>> 8 & 255) - (n >>> 8 & 255); var q = (l & 255) - (n & 255); 0 > k && (k *= -1); 0 > t && (t *= -1); 0 > q && (q *= -1); 0 == k && 0 == t && 0 == q ? (l = (l >>> 24 & 255) - (n >>> 24 & 255), 0 != l && (d = (d >>> 24 & 255) << 24 | 16711680 | (d >>> 8 & 255) << 8 | d & 255, d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | 65280 | d & 255, d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | 255, d = (l & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | d & 255, c = !0)) : (d = (d >>> 24 & 255) << 24 | (k & 255) << 16 | (d >>> 8 & 255) << 8 | d & 255, d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (t & 255) << 8 | d & 255, d = (d >>> 24 & 255) << 24 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | q & 255, d = -16777216 | (d >>> 16 & 255) << 16 | (d >>> 8 & 255) << 8 | d & 255, c = !0) } c && (null == b && (b = new ka(this.width, this.height, this.transparent || a.transparent, 0)), b.setPixel32(m, f, d)) } } return null == b ? 0 : b }, copyChannel: function (a, b, c, d, e) { if (this.readable) { switch (d) { case 1: d = qf.RED; break; case 2: d = qf.GREEN; break; case 4: d = qf.BLUE; break; case 8: d = qf.ALPHA; break; default: return } switch (e) { case 1: e = qf.RED; break; case 2: e = qf.GREEN; break; case 4: e = qf.BLUE; break; case 8: e = qf.ALPHA; break; default: return } this.image.copyChannel(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), d, e) } }, copyPixels: function (a, b, c, d, e, g) { null == g && (g = !1); this.readable && null != a && (null != e && (ka.__tempVector.x = e.x, ka.__tempVector.y = e.y), this.image.copyPixels(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), null != d ? d.image : null, null != e ? ka.__tempVector : null, g)) }, dispose: function () { this.image = null; this.height = this.width = 0; this.rect = null; this.readable = this.__isValid = !1; this.__textureContext = this.__texture = this.__framebufferContext = this.__framebuffer = this.__vertexBuffer = this.__surface = null }, disposeImage: function () { this.readable = !1 }, draw: function (a, b, c, d, e, g) { null == g && (g = !1); if (null != a) { a.__update(!1, !0); var f = Ja.__pool.get(); f.copyFrom(a.__renderTransform); f.invert(); null != b && f.concat(b); b = null; null != e && (b = Ja.__pool.get(), b.copyFrom(f), b.invert()); var v = new Pc; v.__copyFrom(a.__worldColorTransform); v.__invert(); if (this.readable || null == Oa.get_current().stage.context3D) { if (null != c) { var h = ba.__pool.get(), m = Ja.__pool.get(); a.__getBounds(h, m); var l = Math.ceil(h.width), n = Math.ceil(h.height); m.tx = -h.x; m.ty = -h.y; l = new ka(l, n, !0, 0); l.draw(a, m); l.colorTransform(l.rect, c); l.__renderTransform.identity(); l.__renderTransform.tx = h.x; l.__renderTransform.ty = h.y; l.__renderTransform.concat(a.__renderTransform); l.__worldAlpha = a.__worldAlpha; l.__worldColorTransform.__copyFrom(a.__worldColorTransform); a = l; ba.__pool.release(h); Ja.__pool.release(m) } va.convertToCanvas(this.image); c = new Fg(this.image.buffer.__srcContext); c.__allowSmoothing = g; c.__overrideBlendMode = d; c.__worldTransform = f; c.__worldAlpha = 1 / a.__worldAlpha; c.__worldColorTransform = v; null != e && c.__pushMaskRect(e, b); this.__drawCanvas(a, c) } else null == this.__textureContext && (this.__textureContext = zd.current.__window.context), null != c && v.__combine(c), c = new Ib(Oa.get_current().stage.context3D, this), c.__allowSmoothing = g, c.__overrideBlendMode = d, c.__worldTransform = f, c.__worldAlpha = 1 / a.__worldAlpha, c.__worldColorTransform = v, c.__resize(this.width, this.height), null != e && c.__pushMaskRect(e, b), this.__drawGL(a, c); null != e && (c.__popMaskRect(), Ja.__pool.release(b)); Ja.__pool.release(f) } }, drawWithQuality: function (a, b, c, d, e, g, f) { null == g && (g = !1); this.draw(a, b, c, d, e, 2 != f && g) }, encode: function (a, b, c) { if (!this.readable || null == a) return null; null == c && (c = new uc(0)); var d = this.image; if (!a.equals(this.rect)) { var e = Ja.__pool.get(); e.tx = Math.round(-a.x); e.ty = Math.round(-a.y); a = new ka(Math.ceil(a.width), Math.ceil(a.height), !0, 0); a.draw(this, e); d = a.image; Ja.__pool.release(e) } return b instanceof Uo ? (c.writeBytes(Fb.fromBytes(d.encode(tm.PNG)), 0, 0), c) : b instanceof Cm ? (c.writeBytes(Fb.fromBytes(d.encode(tm.JPEG, w.__cast(b, Cm).quality)), 0, 0), c) : null }, fillRect: function (a, b) { this.__fillRect(a, b, !0) }, floodFill: function (a, b, c) { this.readable && this.image.floodFill(a, b, c, 1) }, generateFilterRect: function (a, b) { return a.clone() }, getIndexBuffer: function (a, b) { if (null == this.__indexBuffer || this.__indexBufferContext != a.__context || null != b && null == this.__indexBufferGrid || null != this.__indexBufferGrid && !this.__indexBufferGrid.equals(b)) { this.__indexBufferContext = a.__context; this.__indexBuffer = null; if (null != b) { null == this.__indexBufferGrid && (this.__indexBufferGrid = new ba); this.__indexBufferGrid.copyFrom(b); var c = b.width; b = b.height; 0 != c && 0 != b ? (this.__indexBufferData = c = new Uint16Array(54), this.__indexBufferData[0] = 0, this.__indexBufferData[1] = 1, this.__indexBufferData[2] = 2, this.__indexBufferData[3] = 2, this.__indexBufferData[4] = 1, this.__indexBufferData[5] = 3, this.__indexBufferData[6] = 4, this.__indexBufferData[7] = 0, this.__indexBufferData[8] = 5, this.__indexBufferData[9] = 5, this.__indexBufferData[10] = 0, this.__indexBufferData[11] = 2, this.__indexBufferData[12] = 6, this.__indexBufferData[13] = 4, this.__indexBufferData[14] = 7, this.__indexBufferData[15] = 7, this.__indexBufferData[16] = 4, this.__indexBufferData[17] = 5, this.__indexBufferData[18] = 8, this.__indexBufferData[19] = 9, this.__indexBufferData[20] = 0, this.__indexBufferData[21] = 0, this.__indexBufferData[22] = 9, this.__indexBufferData[23] = 1, this.__indexBufferData[24] = 10, this.__indexBufferData[25] = 8, this.__indexBufferData[26] = 4, this.__indexBufferData[27] = 4, this.__indexBufferData[28] = 8, this.__indexBufferData[29] = 0, this.__indexBufferData[30] = 11, this.__indexBufferData[31] = 10, this.__indexBufferData[32] = 6, this.__indexBufferData[33] = 6, this.__indexBufferData[34] = 10, this.__indexBufferData[35] = 4, this.__indexBufferData[36] = 12, this.__indexBufferData[37] = 13, this.__indexBufferData[38] = 8, this.__indexBufferData[39] = 8, this.__indexBufferData[40] = 13, this.__indexBufferData[41] = 9, this.__indexBufferData[42] = 14, this.__indexBufferData[43] = 12, this.__indexBufferData[44] = 10, this.__indexBufferData[45] = 10, this.__indexBufferData[46] = 12, this.__indexBufferData[47] = 8, this.__indexBufferData[48] = 15, this.__indexBufferData[49] = 14, this.__indexBufferData[50] = 11, this.__indexBufferData[51] = 11, this.__indexBufferData[52] = 14, this.__indexBufferData[53] = 10, this.__indexBuffer = a.createIndexBuffer(54)) : 0 == c && 0 != b ? (this.__indexBufferData = c = new Uint16Array(18), this.__indexBufferData[0] = 0, this.__indexBufferData[1] = 1, this.__indexBufferData[2] = 2, this.__indexBufferData[3] = 2, this.__indexBufferData[4] = 1, this.__indexBufferData[5] = 3, this.__indexBufferData[6] = 4, this.__indexBufferData[7] = 5, this.__indexBufferData[8] = 0, this.__indexBufferData[9] = 0, this.__indexBufferData[10] = 5, this.__indexBufferData[11] = 1, this.__indexBufferData[12] = 6, this.__indexBufferData[13] = 7, this.__indexBufferData[14] = 4, this.__indexBufferData[15] = 4, this.__indexBufferData[16] = 7, this.__indexBufferData[17] = 5, this.__indexBuffer = a.createIndexBuffer(18)) : 0 != c && 0 == b && (this.__indexBufferData = c = new Uint16Array(18), this.__indexBufferData[0] = 0, this.__indexBufferData[1] = 1, this.__indexBufferData[2] = 2, this.__indexBufferData[3] = 2, this.__indexBufferData[4] = 1, this.__indexBufferData[5] = 3, this.__indexBufferData[6] = 4, this.__indexBufferData[7] = 0, this.__indexBufferData[8] = 5, this.__indexBufferData[9] = 5, this.__indexBufferData[10] = 0, this.__indexBufferData[11] = 2, this.__indexBufferData[12] = 6, this.__indexBufferData[13] = 4, this.__indexBufferData[14] = 7, this.__indexBufferData[15] = 7, this.__indexBufferData[16] = 4, this.__indexBufferData[17] = 5, this.__indexBuffer = a.createIndexBuffer(18)) } else this.__indexBufferGrid = null; null == this.__indexBuffer && (this.__indexBufferData = c = new Uint16Array(6), this.__indexBufferData[0] = 0, this.__indexBufferData[1] = 1, this.__indexBufferData[2] = 2, this.__indexBufferData[3] = 2, this.__indexBufferData[4] = 1, this.__indexBufferData[5] = 3, this.__indexBuffer = a.createIndexBuffer(6)); this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData) } return this.__indexBuffer }, getVertexBuffer: function (a, b, c) { if (null == this.__vertexBuffer || this.__vertexBufferContext != a.__context || null != b && null == this.__vertexBufferGrid || null != this.__vertexBufferGrid && !this.__vertexBufferGrid.equals(b) || null != c && (this.__vertexBufferWidth != c.get_width() || this.__vertexBufferHeight != c.get_height() || this.__vertexBufferScaleX != c.get_scaleX() || this.__vertexBufferScaleY != c.get_scaleY())) { this.__uvRect = new ba(0, 0, this.width, this.height); this.__vertexBufferContext = a.__context; this.__vertexBuffer = null; null != c && (this.__vertexBufferWidth = c.get_width(), this.__vertexBufferHeight = c.get_height(), this.__vertexBufferScaleX = c.get_scaleX(), this.__vertexBufferScaleY = c.get_scaleY()); if (null != b && null != c) { null == this.__vertexBufferGrid && (this.__vertexBufferGrid = new ba); this.__vertexBufferGrid.copyFrom(b); this.__vertexBufferWidth = c.get_width(); this.__vertexBufferHeight = c.get_height(); this.__vertexBufferScaleX = c.get_scaleX(); this.__vertexBufferScaleY = c.get_scaleY(); var d = b.width, e = b.height; if (0 != d && 0 != e) { var g = new Float32Array(224); this.__vertexBufferData = g; var f = b.x, v = b.y, h = this.width - d - f, m = this.height - e - v; b = f / this.width; g = v / this.height; d /= this.width; e /= this.height; f /= c.get_scaleX(); v /= c.get_scaleY(); h /= c.get_scaleX(); var l = m / c.get_scaleY(); m = c.get_width() / c.get_scaleX() - f - h; h = c.get_height() / c.get_scaleY() - v - l; this.__vertexBufferData[0] = f; this.__vertexBufferData[1] = v; this.__vertexBufferData[3] = 1 * b; this.__vertexBufferData[4] = 1 * g; this.__vertexBufferData[15] = v; this.__vertexBufferData[18] = 1 * g; this.__vertexBufferData[28] = f; this.__vertexBufferData[31] = 1 * b; this.__vertexBufferData[56] = f + m; this.__vertexBufferData[57] = v; this.__vertexBufferData[59] = 1 * (b + d); this.__vertexBufferData[60] = 1 * g; this.__vertexBufferData[70] = f + m; this.__vertexBufferData[73] = 1 * (b + d); this.__vertexBufferData[84] = this.width; this.__vertexBufferData[85] = v; this.__vertexBufferData[87] = 1; this.__vertexBufferData[88] = 1 * g; this.__vertexBufferData[98] = this.width; this.__vertexBufferData[101] = 1; this.__vertexBufferData[112] = f; this.__vertexBufferData[113] = v + h; this.__vertexBufferData[115] = 1 * b; this.__vertexBufferData[116] = 1 * (g + e); this.__vertexBufferData[127] = v + h; this.__vertexBufferData[130] = 1 * (g + e); this.__vertexBufferData[140] = f + m; this.__vertexBufferData[141] = v + h; this.__vertexBufferData[143] = 1 * (b + d); this.__vertexBufferData[144] = 1 * (g + e); this.__vertexBufferData[154] = this.width; this.__vertexBufferData[155] = v + h; this.__vertexBufferData[157] = 1; this.__vertexBufferData[158] = 1 * (g + e); this.__vertexBufferData[168] = f; this.__vertexBufferData[169] = this.height; this.__vertexBufferData[171] = 1 * b; this.__vertexBufferData[172] = 1; this.__vertexBufferData[183] = this.height; this.__vertexBufferData[186] = 1; this.__vertexBufferData[196] = f + m; this.__vertexBufferData[197] = this.height; this.__vertexBufferData[199] = 1 * (b + d); this.__vertexBufferData[200] = 1; this.__vertexBufferData[210] = this.width; this.__vertexBufferData[211] = this.height; this.__vertexBufferData[213] = 1; this.__vertexBufferData[214] = 1; this.__vertexBuffer = a.createVertexBuffer(16, 14) } else 0 == d && 0 != e ? (this.__vertexBufferData = g = new Float32Array(112), v = b.y, m = this.height - e - v, g = v / this.height, e /= this.height, v /= c.get_scaleY(), l = m / c.get_scaleY(), h = c.get_height() / c.get_scaleY() - v - l, c = c.get_width() / c.get_scaleX(), this.__vertexBufferData[0] = c, this.__vertexBufferData[1] = v, this.__vertexBufferData[3] = 1, this.__vertexBufferData[4] = 1 * g, this.__vertexBufferData[15] = v, this.__vertexBufferData[18] = 1 * g, this.__vertexBufferData[28] = c, this.__vertexBufferData[31] = 1, this.__vertexBufferData[56] = c, this.__vertexBufferData[57] = v + h, this.__vertexBufferData[59] = 1, this.__vertexBufferData[60] = 1 * (g + e), this.__vertexBufferData[71] = v + h, this.__vertexBufferData[74] = 1 * (g + e), this.__vertexBufferData[84] = c, this.__vertexBufferData[85] = this.height, this.__vertexBufferData[87] = 1, this.__vertexBufferData[88] = 1, this.__vertexBufferData[99] = this.height, this.__vertexBufferData[102] = 1, this.__vertexBuffer = a.createVertexBuffer(8, 14)) : 0 == e && 0 != d && (this.__vertexBufferData = g = new Float32Array(112), f = b.x, h = this.width - d - f, b = f / this.width, d /= this.width, f /= c.get_scaleX(), h /= c.get_scaleX(), m = c.get_width() / c.get_scaleX() - f - h, c = c.get_height() / c.get_scaleY(), this.__vertexBufferData[0] = f, this.__vertexBufferData[1] = c, this.__vertexBufferData[3] = 1 * b, this.__vertexBufferData[4] = 1, this.__vertexBufferData[15] = c, this.__vertexBufferData[18] = 1, this.__vertexBufferData[28] = f, this.__vertexBufferData[31] = 1 * b, this.__vertexBufferData[56] = f + m, this.__vertexBufferData[57] = c, this.__vertexBufferData[59] = 1 * (b + d), this.__vertexBufferData[60] = 1, this.__vertexBufferData[70] = f + m, this.__vertexBufferData[73] = 1 * (b + d), this.__vertexBufferData[84] = this.width, this.__vertexBufferData[85] = c, this.__vertexBufferData[87] = 1, this.__vertexBufferData[88] = 1, this.__vertexBufferData[98] = this.width, this.__vertexBufferData[101] = 1, this.__vertexBuffer = a.createVertexBuffer(8, 14)) } else this.__vertexBufferGrid = null; null == this.__vertexBuffer && (this.__vertexBufferData = g = new Float32Array(56), this.__vertexBufferData[0] = this.width, this.__vertexBufferData[1] = this.height, this.__vertexBufferData[3] = 1, this.__vertexBufferData[4] = 1, this.__vertexBufferData[15] = this.height, this.__vertexBufferData[18] = 1, this.__vertexBufferData[28] = this.width, this.__vertexBufferData[31] = 1, this.__vertexBuffer = a.createVertexBuffer(3, 14)); this.__vertexBuffer.uploadFromTypedArray($g.toArrayBufferView(this.__vertexBufferData)) } return this.__vertexBuffer }, getColorBoundsRect: function (a, b, c) { null == c && (c = !0); if (!this.readable) return new ba(0, 0, this.width, this.height); a = this.image.getColorBoundsRect(a, b, c, 1); return new ba(a.x, a.y, a.width, a.height) }, getPixel: function (a, b) { return this.readable ? this.image.getPixel(a, b, 1) : 0 }, getPixel32: function (a, b) { return this.readable ? this.image.getPixel32(a, b, 1) : 0 }, getPixels: function (a) { if (!this.readable) return null; null == a && (a = this.rect); a = Fb.fromBytes(this.image.getPixels(a.__toLimeRectangle(), 1)); a.__endian = 0; return a }, getSurface: function () { if (!this.readable) return null; null == this.__surface && (this.__surface = ps.fromImage(this.image)); return this.__surface }, getTexture: function (a) { if (!this.__isValid) return null; if (null == this.__texture || this.__textureContext != a.__context) this.__textureContext = a.__context, this.__texture = a.createRectangleTexture(this.width, this.height, 1, !1), this.__textureVersion = -1; va.sync(this.image, !1); null != this.image && this.image.version > this.__textureVersion && (null != this.__surface && qs.flush(this.__surface), a = this.image, hc.__supportsBGRA || 0 == a.get_format() || (a = a.clone(), a.set_format(0)), this.__texture.__uploadFromImage(a), this.__textureVersion = this.image.version, this.__textureWidth = a.buffer.width, this.__textureHeight = a.buffer.height); this.readable || null == this.image || (this.image = this.__surface = null); return this.__texture }, getVector: function (a) { a = this.getPixels(a); for (var b = Ba.toFloat(Fb.get_length(a)) / Ba.toFloat(4) | 0, c = Eb.toIntVector(null, b, !0), d = 0; d < b;) { var e = d++; c.set(e, a.readUnsignedInt()) } return c }, histogram: function (a) { a = null != a ? a : new ba(0, 0, this.width, this.height); a = this.getPixels(a); for (var b = [], c = [], d = 0; 256 > d;) d++, c.push(0); b.push(c); c = []; for (d = 0; 256 > d;) d++, c.push(0); b.push(c); c = []; for (d = 0; 256 > d;) d++, c.push(0); b.push(c); c = []; for (d = 0; 256 > d;) d++, c.push(0); b.push(c); d = b; b = 0; for (c = Fb.get_length(a); b < c;) { var e = b++; ++d[e % 4][a.readUnsignedByte()] } return d }, hitTest: function (a, b, c, d, e) { null == e && (e = 1); if (!this.readable) return !1; c instanceof dd && (c = w.__cast(c, dd).__bitmapData); if (c instanceof na) { e = c; c = e.x - a.x | 0; var g = e.y - a.y | 0; if (this.rect.contains(c, g)) { var f = this.getPixel32(c, g); if ((f >> 24 & 255) > b) return !0 } } else if (c instanceof ka) { f = c; null == d ? g = c = 0 : (c = Math.round(d.x - a.x), g = Math.round(d.y - a.y)); d = ba.__pool.get(); d.setTo(c, g, f.width, f.height); if (this.rect.intersects(d)) { 0 > c ? (d.x = 0, d.width = Math.min(f.width + c, this.width)) : d.width = Math.min(f.width, this.width - c); 0 > g ? (d.y = 0, d.height = Math.min(f.height + g, this.height)) : d.height = Math.min(f.height, this.height - g); a = this.getPixels(d); d.x = 0 > c ? -c : 0; d.y = 0 > g ? -g : 0; g = f.getPixels(d); f = d.width * d.height | 0; c = 0; for (var v = f; c < v;) { c++; f = a.readUnsignedInt(); var h = g.readUnsignedInt(); if (Ba.gt(f >>> 24 & 255, b) && Ba.gt(h >>> 24 & 255, e)) return ba.__pool.release(d), !0 } } ba.__pool.release(d) } else if (c instanceof ba) { e = ba.__pool.get(); e.copyFrom(c); e.offset(-a.x, -a.y); e.__contract(0, 0, this.width, this.height); if (0 < e.width && 0 < e.height) for (a = this.getPixels(e), f = Ba.toFloat(Fb.get_length(a)) / Ba.toFloat(4) | 0, c = 0, v = f; c < v;) if (c++, f = a.readUnsignedInt(), Ba.gt(f >>> 24 & 255, b)) return ba.__pool.release(e), !0; ba.__pool.release(e) } return !1 }, lock: function () { }, merge: function (a, b, c, d, e, g, f) { this.readable && null != a && a.readable && null != b && null != c && this.image.merge(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), d, e, g, f) }, noise: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 7); null == c && (c = 255); null == b && (b = 0); if (this.readable) { var g = function () { a = 1103515245 * a + 12345; return (Math.abs(a / 65536) | 0) % 32768 }; g(); c -= b; var f = 1 == (d & 1), v = 1 == (d & 2) >> 1, h = 1 == (d & 4) >> 2; d = 1 == (d & 8) >> 3; for (var m = 0, l = this.height; m < l;) for (var n = m++, k = 0, t = this.width; k < t;) { var q = k++, w = 0, u = 0, x = 0, A = 255; e ? (w = x = u = b + g() % c, A = 255) : (f && (w = b + g() % c), v && (x = b + g() % c), h && (u = b + g() % c), d && (A = b + g() % c)); A = (A << 8) + w; A = (A << 8) + x; A = (A << 8) + u; this.setPixel32(q, n, A) } } }, paletteMap: function (a, b, c, d, e, g, f) { var r = b.width | 0, h = b.height | 0; a = a.getPixels(b); b = 0; for (var m = h * r; b < m;) { var l = b++; var n = a.readUnsignedInt(); var k = null == f ? n & -16777216 : f[n >> 24 & 255]; var t = null == d ? n & 16711680 : d[n >> 16 & 255]; var q = null == e ? n & 65280 : e[n >> 8 & 255]; n = null == g ? n & 255 : g[n & 255]; t = k + t + q + n; a.position = 4 * l; a.writeUnsignedInt(t) } a.position = 0; d = ba.__pool.get(); d.setTo(c.x, c.y, r, h); this.setPixels(d, a); ba.__pool.release(d) }, perlinNoise: function (a, b, c, d, e, g, f, h, p) { null == h && (h = !1); null == f && (f = 7); this.readable && (new Zh(d, c, f, h, .5, e, .15)).fill(this, a, b, 0) }, scroll: function (a, b) { this.readable && this.image.scroll(a, b) }, setPixel: function (a, b, c) { this.readable && this.image.setPixel(a, b, c, 1) }, setPixel32: function (a, b, c) { this.readable && this.image.setPixel32(a, b, c, 1) }, setPixels: function (a, b) { if (this.readable && null != a) { var c = a.width * a.height * 4; if (Ba.toFloat(b.length - b.position) < c) throw I.thrown(new id("End of file was encountered.", 2030)); this.image.setPixels(a.__toLimeRectangle(), Fb.toBytePointer(b), 1, Xr.toLimeEndian(b.__endian)) } }, setVector: function (a, b) { var c = new uc(0); Fb.set_length(c, 4 * b.get_length()); for (b = b.iterator(); b.hasNext();) { var d = b.next(); c.writeUnsignedInt(d) } c.position = 0; this.setPixels(a, c) }, threshold: function (a, b, c, d, e, g, f, h) { null == h && (h = !1); null == f && (f = -1); null == g && (g = 0); return null == a || null == b || null == c || b.x > a.width || b.y > a.height || c.x > this.width || c.y > this.height ? 0 : this.image.threshold(a.image, b.__toLimeRectangle(), c.__toLimeVector2(), d, e, g, f, h, 1) }, unlock: function (a) { }, __applyAlpha: function (a) { va.convertToCanvas(this.image); va.createImageData(this.image); for (var b = this.image.buffer.data, c = 0, d = Fb.get_length(a); c < d;) { var e = c++; b[4 * e + 3] = a.readUnsignedByte() } this.image.version++ }, __drawCairo: function (a, b) { }, __drawCanvas: function (a, b) { var c = this.image.buffer; b.__allowSmoothing || b.applySmoothing(c.__srcContext, !1); b.__render(a); b.__allowSmoothing || b.applySmoothing(c.__srcContext, !0); c.__srcContext.setTransform(1, 0, 0, 1, 0, 0); c.__srcImageData = null; c.data = null; this.image.dirty = !0; this.image.version++ }, __drawGL: function (a, b) { var c = b.__context3D, d = c.__state.renderToTexture, e = c.__state.renderToTextureDepthStencil, g = c.__state.renderToTextureAntiAlias, f = c.__state.renderToTextureSurfaceSelector; c.setRenderToTexture(this.getTexture(c), !0); b.__render(a); null != d ? c.setRenderToTexture(d, e, g, f) : c.setRenderToBackBuffer() }, __fillRect: function (a, b, c) { if (null != a) if (this.transparent && 0 == (b & -16777216) && (b = 0), c && null != this.__texture && null != this.__texture.__glFramebuffer && "opengl" == Oa.get_current().stage.__renderer.__type) { c = Oa.get_current().stage.__renderer.__context3D; var d = !this.rect.equals(a), e = c.__state.renderToTexture, g = c.__state.renderToTextureDepthStencil, f = c.__state.renderToTextureAntiAlias, h = c.__state.renderToTextureSurfaceSelector; c.setRenderToTexture(this.__texture); d && c.setScissorRectangle(a); c.clear((b >>> 16 & 255) / 255, (b >>> 8 & 255) / 255, (b & 255) / 255, this.transparent ? (b >>> 24 & 255) / 255 : 1, 0, 0, 1); d && c.setScissorRectangle(null); null != e ? c.setRenderToTexture(e, g, f, h) : c.setRenderToBackBuffer() } else this.readable && this.image.fillRect(a.__toLimeRectangle(), b, 1) }, __fromBase64: function (a, b) { a = Lb.fromBase64(a, b); this.__fromImage(a) }, __fromBytes: function (a, b) { a = Lb.fromBytes(Fb.toBytes(a)); this.__fromImage(a); null != b && this.__applyAlpha(b) }, __fromFile: function (a) { a = Lb.fromFile(a); this.__fromImage(a) }, __fromImage: function (a) { null != a && null != a.buffer && (this.image = a, this.width = a.width, this.height = a.height, this.rect = new ba(0, 0, a.width, a.height), this.__textureWidth = this.width, this.__textureHeight = this.height, this.__isValid = this.readable = !0) }, __getBounds: function (a, b) { var c = ba.__pool.get(); this.rect.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) }, __loadFromBase64: function (a, b) { var c = this; return Lb.loadFromBase64(a, b).then(function (a) { c.__fromImage(a); return ob.withValue(c) }) }, __loadFromBytes: function (a, b) { var c = this; return Lb.loadFromBytes(Fb.toBytes(a)).then(function (a) { c.__fromImage(a); null != b && c.__applyAlpha(b); return ob.withValue(c) }) }, __loadFromFile: function (a) { var b = this; return Lb.loadFromFile(a).then(function (a) { b.__fromImage(a); return ob.withValue(b) }) }, __resize: function (a, b) { this.width = a; this.height = b; this.rect.width = a; this.rect.height = b; this.__textureWidth = a; this.__textureHeight = b }, __setUVRect: function (a, b, c, d, e) { if (null != this.getVertexBuffer(a) && (d != this.__uvRect.width || e != this.__uvRect.height || b != this.__uvRect.x || c != this.__uvRect.y)) { null == this.__uvRect && (this.__uvRect = new ba); this.__uvRect.setTo(b, c, d, e); a = 0 < this.__textureWidth ? b / this.__textureWidth : 0; c = 0 < this.__textureHeight ? c / this.__textureHeight : 0; b = 0 < this.__textureWidth ? d / this.__textureWidth : 0; var g = 0 < this.__textureHeight ? e / this.__textureHeight : 0; this.__vertexBufferData[0] = d; this.__vertexBufferData[1] = e; this.__vertexBufferData[3] = a + b; this.__vertexBufferData[4] = c + g; this.__vertexBufferData[15] = e; this.__vertexBufferData[17] = a; this.__vertexBufferData[18] = c + g; this.__vertexBufferData[28] = d; this.__vertexBufferData[31] = a + b; this.__vertexBufferData[32] = c; this.__vertexBufferData[45] = a; this.__vertexBufferData[46] = c; this.__vertexBuffer.uploadFromTypedArray($g.toArrayBufferView(this.__vertexBufferData)) } }, __sync: function () { va.sync(this.image, !1) }, __update: function (a, b) { this.__updateTransforms() }, __updateTransforms: function (a) { null == a ? this.__worldTransform.identity() : this.__worldTransform.copyFrom(a); this.__renderTransform.copyFrom(this.__worldTransform) }, __class__: ka }; var Ye = function () { jb.call(this); this.__allowSmoothing = !0; this.__tempColorTransform = new Pc; this.__worldAlpha = 1 }; k["openfl.display.DisplayObjectRenderer"] = Ye; Ye.__name__ = "openfl.display.DisplayObjectRenderer"; Ye.__super__ = jb; Ye.prototype = u(jb.prototype, { __allowSmoothing: null, __blendMode: null, __cleared: null, __context: null, __overrideBlendMode: null, __roundPixels: null, __stage: null, __tempColorTransform: null, __transparent: null, __type: null, __worldAlpha: null, __worldColorTransform: null, __worldTransform: null, __clear: function () { }, __getAlpha: function (a) { return a * this.__worldAlpha }, __getColorTransform: function (a) { return null != this.__worldColorTransform ? (this.__tempColorTransform.__copyFrom(this.__worldColorTransform), this.__tempColorTransform.__combine(a), this.__tempColorTransform) : a }, __popMask: function () { }, __popMaskObject: function (a, b) { }, __popMaskRect: function () { }, __pushMask: function (a) { }, __pushMaskObject: function (a, b) { }, __pushMaskRect: function (a, b) { }, __render: function (a) { }, __renderEvent: function (a) { if (null != a.__customRenderEvent && a.__renderable) { a.__customRenderEvent.allowSmoothing = this.__allowSmoothing; a.__customRenderEvent.objectMatrix.copyFrom(a.__renderTransform); a.__customRenderEvent.objectColorTransform.__copyFrom(a.__worldColorTransform); a.__customRenderEvent.renderer = this; switch (this.__type) { case "cairo": a.__customRenderEvent.type = "renderCairo"; break; case "canvas": a.__customRenderEvent.type = "renderCanvas"; break; case "dom": a.__customRenderEvent.type = null != a.stage && a.__worldVisible ? "renderDOM" : "clearDOM"; break; case "opengl": this.__cleared || this.__clear(); this.setShader(a.__worldShader); this.__context3D.__flushGL(); a.__customRenderEvent.type = "renderOpenGL"; break; default: return } this.__setBlendMode(a.__worldBlendMode); this.__pushMaskObject(a); a.dispatchEvent(a.__customRenderEvent); this.__popMaskObject(a); "opengl" == this.__type && this.setViewport() } }, __resize: function (a, b) { }, __setBlendMode: function (a) { }, __shouldCacheHardware: function (a, b) { if (null == a) return null; switch (a.__drawableType) { case 4: case 5: if (1 == b) return !0; b = this.__shouldCacheHardware_DisplayObject(a, b); if (1 == b) return !0; if (null != a.__children) { var c = 0; for (a = a.__children; c < a.length;) { var d = a[c]; ++c; b = this.__shouldCacheHardware_DisplayObject(d, b); if (1 == b) return !0 } } return b; case 7: return 1 == b ? !0 : !1; case 9: return !0; default: return this.__shouldCacheHardware_DisplayObject(a, b) } }, __shouldCacheHardware_DisplayObject: function (a, b) { return 1 == b || null != a.__filters ? !0 : 0 == b || null != a.__graphics && !Uc.isCompatible(a.__graphics) ? !1 : null }, __updateCacheBitmap: function (a, b) { if (null == a) return !1; switch (a.__drawableType) { case 2: var c = a; if (null == c.__bitmapData || null == c.__filters && "opengl" == this.__type && null == c.__cacheBitmap) return !1; b = null != c.__bitmapData.image && c.__bitmapData.image.version != c.__imageVersion; break; case 7: var d = a; if (null == d.__filters && "opengl" == this.__type && null == d.__cacheBitmap && !d.__domRender) return !1; b && (d.__renderDirty = !0); b = b || d.__dirty; break; case 9: if (null == a.__filters && "opengl" == this.__type && null == a.__cacheBitmap) return !1 } if (a.__isCacheBitmapRender) return !1; d = Pc.__pool.get(); d.__copyFrom(a.__worldColorTransform); null != this.__worldColorTransform && d.__combine(this.__worldColorTransform); var e = !1; if (a.get_cacheAsBitmap() || "opengl" != this.__type && !d.__isDefault(!0)) { e = null; var g = (b = null == a.__cacheBitmap || a.__renderDirty && (b || null != a.__children && 0 < a.__children.length) || a.opaqueBackground != a.__cacheBitmapBackground) || null != a.__graphics && a.__graphics.__softwareDirty || !a.__cacheBitmapColorTransform.__equals(d, !0), f = b || null != a.__graphics && a.__graphics.__hardwareDirty, h = this.__type; if (g || f) "opengl" == h && 0 == this.__shouldCacheHardware(a, null) && (h = "canvas"), !g || "canvas" != h && "cairo" != h || (b = !0), f && "opengl" == h && (b = !0); g = b || !a.__cacheBitmap.__worldTransform.equals(a.__worldTransform); if ((c = null != a.__filters) && !b) { f = 0; for (var p = a.__filters; f < p.length;) { var m = p[f]; ++f; if (m.__renderDirty) { b = !0; break } } } null == a.__cacheBitmapMatrix && (a.__cacheBitmapMatrix = new Ja); f = null != a.__cacheAsBitmapMatrix ? a.__cacheAsBitmapMatrix : a.__renderTransform; b || f.a == a.__cacheBitmapMatrix.a && f.b == a.__cacheBitmapMatrix.b && f.c == a.__cacheBitmapMatrix.c && f.d == a.__cacheBitmapMatrix.d || (b = !0); !b && "opengl" != this.__type && null != a.__cacheBitmapData && null != a.__cacheBitmapData.image && a.__cacheBitmapData.image.version < a.__cacheBitmapData.__textureVersion && (b = !0); a.__cacheBitmapMatrix.copyFrom(f); a.__cacheBitmapMatrix.tx = 0; var l = a.__cacheBitmapMatrix.ty = 0, n = 0, k = 0, t = 0; m = p = 0; if (g || b) e = ba.__pool.get(), a.__getFilterBounds(e, a.__cacheBitmapMatrix), k = Math.ceil(e.width), t = Math.ceil(e.height), p = 0 < e.x ? Math.ceil(e.x) : Math.floor(e.x), m = 0 < e.y ? Math.ceil(e.y) : Math.floor(e.y), null != a.__cacheBitmapData ? k > a.__cacheBitmapData.width || t > a.__cacheBitmapData.height ? (l = Math.ceil(Math.max(1.25 * k, a.__cacheBitmapData.width)), n = Math.ceil(Math.max(1.25 * t, a.__cacheBitmapData.height)), b = !0) : (l = a.__cacheBitmapData.width, n = a.__cacheBitmapData.height) : (l = k, n = t); if (b) if (g = !0, a.__cacheBitmapBackground = a.opaqueBackground, .5 <= k && .5 <= t) { var q = null != a.opaqueBackground && (l != k || n != t), u = null != a.opaqueBackground ? -16777216 | a.opaqueBackground : 0, x = q ? 0 : u, A = "opengl" == this.__type; null == a.__cacheBitmapData || l > a.__cacheBitmapData.width || n > a.__cacheBitmapData.height ? (a.__cacheBitmapData = new ka(l, n, !0, x), null == a.__cacheBitmap && (a.__cacheBitmap = new dd), a.__cacheBitmap.__bitmapData = a.__cacheBitmapData, a.__cacheBitmapRenderer = null) : a.__cacheBitmapData.__fillRect(a.__cacheBitmapData.rect, x, A); q && (e.setTo(0, 0, k, t), a.__cacheBitmapData.__fillRect(e, u, A)) } else return Pc.__pool.release(d), a.__cacheBitmap = null, a.__cacheBitmapData = null, a.__cacheBitmapData2 = null, a.__cacheBitmapData3 = null, a.__cacheBitmapRenderer = null, 7 == a.__drawableType && (d = a, null != d.__cacheBitmap && (d.__cacheBitmap.__renderTransform.tx -= d.__offsetX, d.__cacheBitmap.__renderTransform.ty -= d.__offsetY)), !0; else a.__cacheBitmapData = a.__cacheBitmap.get_bitmapData(), a.__cacheBitmapData2 = null, a.__cacheBitmapData3 = null; if (g || b) a.__cacheBitmap.__worldTransform.copyFrom(a.__worldTransform), f == a.__renderTransform ? (a.__cacheBitmap.__renderTransform.identity(), a.__cacheBitmap.__renderTransform.tx = a.__renderTransform.tx + p, a.__cacheBitmap.__renderTransform.ty = a.__renderTransform.ty + m) : (a.__cacheBitmap.__renderTransform.copyFrom(a.__cacheBitmapMatrix), a.__cacheBitmap.__renderTransform.invert(), a.__cacheBitmap.__renderTransform.concat(a.__renderTransform), a.__cacheBitmap.__renderTransform.tx += p, a.__cacheBitmap.__renderTransform.ty += m); a.__cacheBitmap.smoothing = this.__allowSmoothing; a.__cacheBitmap.__renderable = a.__renderable; a.__cacheBitmap.__worldAlpha = a.__worldAlpha; a.__cacheBitmap.__worldBlendMode = a.__worldBlendMode; a.__cacheBitmap.__worldShader = a.__worldShader; a.__cacheBitmap.set_mask(a.__mask); if (b) { if (null == a.__cacheBitmapRenderer || h != a.__cacheBitmapRenderer.__type) "opengl" == h ? a.__cacheBitmapRenderer = new Ib(w.__cast(this, Ib).__context3D, a.__cacheBitmapData) : (null == a.__cacheBitmapData.image && (a.__cacheBitmapData = new ka(l, n, !0, null != a.opaqueBackground ? -16777216 | a.opaqueBackground : 0), a.__cacheBitmap.__bitmapData = a.__cacheBitmapData), va.convertToCanvas(a.__cacheBitmapData.image), a.__cacheBitmapRenderer = new Fg(a.__cacheBitmapData.image.buffer.__srcContext)), a.__cacheBitmapRenderer.__worldTransform = new Ja, a.__cacheBitmapRenderer.__worldColorTransform = new Pc; null == a.__cacheBitmapColorTransform && (a.__cacheBitmapColorTransform = new Pc); a.__cacheBitmapRenderer.__stage = a.stage; a.__cacheBitmapRenderer.__allowSmoothing = this.__allowSmoothing; a.__cacheBitmapRenderer.__setBlendMode(10); a.__cacheBitmapRenderer.__worldAlpha = 1 / a.__worldAlpha; a.__cacheBitmapRenderer.__worldTransform.copyFrom(a.__renderTransform); a.__cacheBitmapRenderer.__worldTransform.invert(); a.__cacheBitmapRenderer.__worldTransform.concat(a.__cacheBitmapMatrix); a.__cacheBitmapRenderer.__worldTransform.tx -= p; a.__cacheBitmapRenderer.__worldTransform.ty -= m; a.__cacheBitmapRenderer.__worldColorTransform.__copyFrom(d); a.__cacheBitmapRenderer.__worldColorTransform.__invert(); a.__isCacheBitmapRender = !0; if ("opengl" == a.__cacheBitmapRenderer.__type) { u = a.__cacheBitmapRenderer; x = u.__context3D; A = x.__state.renderToTexture; var N = x.__state.renderToTextureDepthStencil, J = x.__state.renderToTextureAntiAlias, z = x.__state.renderToTextureSurfaceSelector, B = this.__blendMode; this.__suspendClipAndMask(); u.__copyShader(this); a.__cacheBitmapData.__setUVRect(x, 0, 0, k, t); u.__setRenderTarget(a.__cacheBitmapData); null != a.__cacheBitmapData.image && (a.__cacheBitmapData.__textureVersion = a.__cacheBitmapData.image.version + 1); a.__cacheBitmapData.__drawGL(a, u); if (c) { var ma = !1; f = 0; for (p = a.__filters; f < p.length;) m = p[f], ++f, m.__preserveObject && (ma = !0); c = a.__cacheBitmapData; q = null; null == a.__cacheBitmapData2 || l > a.__cacheBitmapData2.width || n > a.__cacheBitmapData2.height ? a.__cacheBitmapData2 = new ka(l, n, !0, 0) : (a.__cacheBitmapData2.fillRect(a.__cacheBitmapData2.rect, 0), null != a.__cacheBitmapData2.image && (a.__cacheBitmapData2.__textureVersion = a.__cacheBitmapData2.image.version + 1)); a.__cacheBitmapData2.__setUVRect(x, 0, 0, k, t); h = a.__cacheBitmapData2; ma && (null == a.__cacheBitmapData3 || l > a.__cacheBitmapData3.width || n > a.__cacheBitmapData3.height ? a.__cacheBitmapData3 = new ka(l, n, !0, 0) : (a.__cacheBitmapData3.fillRect(a.__cacheBitmapData3.rect, 0), null != a.__cacheBitmapData3.image && (a.__cacheBitmapData3.__textureVersion = a.__cacheBitmapData3.image.version + 1)), a.__cacheBitmapData3.__setUVRect(x, 0, 0, k, t), q = a.__cacheBitmapData3); u.__setBlendMode(10); u.__worldAlpha = 1; u.__worldTransform.identity(); u.__worldColorTransform.__identity(); f = 0; for (p = a.__filters; f < p.length;) { m = p[f]; ++f; m.__preserveObject && (u.__setRenderTarget(q), u.__renderFilterPass(c, u.__defaultDisplayShader, m.__smooth)); n = 0; for (k = m.__numShaderPasses; n < k;) l = n++, l = m.__initShader(u, l, m.__preserveObject ? q : null), u.__setBlendMode(m.__shaderBlendMode), u.__setRenderTarget(h), u.__renderFilterPass(c, l, m.__smooth), l = c, c = h, h = l; m.__renderDirty = !1 } a.__cacheBitmap.__bitmapData = c } this.__blendMode = 10; this.__setBlendMode(B); this.__copyShader(u); null != A ? x.setRenderToTexture(A, N, J, z) : x.setRenderToBackBuffer(); this.__resumeClipAndMask(u); this.setViewport(); a.__cacheBitmapColorTransform.__copyFrom(d) } else { a.__cacheBitmapData.__drawCanvas(a, a.__cacheBitmapRenderer); if (c) { ma = k = !1; f = 0; for (p = a.__filters; f < p.length;) m = p[f], ++f, m.__needSecondBitmapData && (k = !0), m.__preserveObject && (ma = !0); c = a.__cacheBitmapData; q = null; k ? (null == a.__cacheBitmapData2 || null == a.__cacheBitmapData2.image || l > a.__cacheBitmapData2.width || n > a.__cacheBitmapData2.height ? a.__cacheBitmapData2 = new ka(l, n, !0, 0) : a.__cacheBitmapData2.fillRect(a.__cacheBitmapData2.rect, 0), h = a.__cacheBitmapData2) : h = c; ma && (null == a.__cacheBitmapData3 || null == a.__cacheBitmapData3.image || l > a.__cacheBitmapData3.width || n > a.__cacheBitmapData3.height ? a.__cacheBitmapData3 = new ka(l, n, !0, 0) : a.__cacheBitmapData3.fillRect(a.__cacheBitmapData3.rect, 0), q = a.__cacheBitmapData3); null == a.__tempPoint && (a.__tempPoint = new na); n = a.__tempPoint; f = 0; for (p = a.__filters; f < p.length;) m = p[f], ++f, m.__preserveObject && q.copyPixels(c, c.rect, n), l = m.__applyFilter(h, c, c.rect, n), m.__preserveObject && l.draw(q, null, null != a.__objectTransform ? a.__objectTransform.get_colorTransform() : null), m.__renderDirty = !1, k && l == h && (l = c, c = h, h = l); a.__cacheBitmapData != c && (l = a.__cacheBitmapData, a.__cacheBitmapData = c, a.__cacheBitmapData2 = l, a.__cacheBitmap.__bitmapData = a.__cacheBitmapData, a.__cacheBitmapRenderer = null); a.__cacheBitmap.__imageVersion = a.__cacheBitmapData.__textureVersion } a.__cacheBitmapColorTransform.__copyFrom(d); a.__cacheBitmapColorTransform.__isDefault(!0) || (a.__cacheBitmapColorTransform.alphaMultiplier = 1, a.__cacheBitmapData.colorTransform(a.__cacheBitmapData.rect, a.__cacheBitmapColorTransform)) } a.__isCacheBitmapRender = !1 } (g || b) && ba.__pool.release(e); e = g } else null != a.__cacheBitmap && ("dom" == this.__type && this.__renderDrawableClear(a.__cacheBitmap), a.__cacheBitmap = null, a.__cacheBitmapData = null, a.__cacheBitmapData2 = null, a.__cacheBitmapData3 = null, a.__cacheBitmapColorTransform = null, a.__cacheBitmapRenderer = null, e = !0); Pc.__pool.release(d); e && 7 == a.__drawableType && (d = a, null != d.__cacheBitmap && (d.__cacheBitmap.__renderTransform.tx -= d.__offsetX, d.__cacheBitmap.__renderTransform.ty -= d.__offsetY)); return e }, __class__: Ye }); var Dm = function (a) { Ye.call(this) }; k["openfl.display.CairoRenderer"] = Dm; Dm.__name__ = "openfl.display.CairoRenderer"; Dm.__super__ = Ye; Dm.prototype = u(Ye.prototype, { cairo: null, __matrix: null, __matrix3: null, applyMatrix: function (a, b) { null == b && (b = this.cairo); this.__matrix.copyFrom(a); this.cairo == b && null != this.__worldTransform && this.__matrix.concat(this.__worldTransform); this.__matrix3.a = this.__matrix.a; this.__matrix3.b = this.__matrix.b; this.__matrix3.c = this.__matrix.c; this.__matrix3.d = this.__matrix.d; this.__roundPixels ? (this.__matrix3.tx = Math.round(this.__matrix.tx), this.__matrix3.ty = Math.round(this.__matrix.ty)) : (this.__matrix3.tx = this.__matrix.tx, this.__matrix3.ty = this.__matrix.ty); b.set_matrix(this.__matrix3) }, __clear: function () { if (null != this.cairo && (this.cairo.identityMatrix(), null != this.__stage && this.__stage.__clearBeforeRender)) { var a = this.__blendMode; this.__setBlendMode(10); this.cairo.setSourceRGB(this.__stage.__colorSplit[0], this.__stage.__colorSplit[1], this.__stage.__colorSplit[2]); this.cairo.paint(); this.__setBlendMode(a) } }, __popMask: function () { this.cairo.restore() }, __popMaskObject: function (a, b) { null == b && (b = !0); a.__isCacheBitmapRender || null == a.__mask || this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect() }, __popMaskRect: function () { this.cairo.restore() }, __pushMask: function (a) { this.cairo.save(); this.applyMatrix(a.__renderTransform, this.cairo); this.cairo.newPath(); this.__renderDrawableMask(a); this.cairo.clip() }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); a.__isCacheBitmapRender || null == a.__mask || this.__pushMask(a.__mask) }, __pushMaskRect: function (a, b) { this.cairo.save(); this.applyMatrix(b, this.cairo); this.cairo.newPath(); this.cairo.rectangle(a.x, a.y, a.width, a.height); this.cairo.clip() }, __render: function (a) { null != this.cairo && this.__renderDrawable(a) }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 6: !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (this.__pushMaskObject(a), this.__renderDrawable(a.__currentState), this.__popMaskObject(a), this.__renderEvent(a)) } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 2: this.cairo.rectangle(0, 0, a.get_width(), a.get_height()); break; case 6: this.__renderDrawableMask(a.__currentState) } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && (this.__blendMode = a, this.__setBlendModeCairo(this.cairo, a)) }, __setBlendModeCairo: function (a, b) { switch (b) { case 0: a.setOperator(12); break; case 2: a.setOperator(17); break; case 3: a.setOperator(23); break; case 5: a.setOperator(21); break; case 7: a.setOperator(2); break; case 8: a.setOperator(18); break; case 9: a.setOperator(14); break; case 11: a.setOperator(16); break; case 12: a.setOperator(15); break; default: a.setOperator(2) } }, __class__: Dm }); var Fg = function (a) { this.pixelRatio = 1; Ye.call(this); this.context = a; this.__tempMatrix = new Ja; this.__type = "canvas" }; k["openfl.display.CanvasRenderer"] = Fg; Fg.__name__ = "openfl.display.CanvasRenderer"; Fg.__super__ = Ye; Fg.prototype = u(Ye.prototype, { context: null, pixelRatio: null, __isDOM: null, __tempMatrix: null, applySmoothing: function (a, b) { a.imageSmoothingEnabled = b }, setTransform: function (a, b) { null == b ? b = this.context : this.context == b && null != this.__worldTransform && (this.__tempMatrix.copyFrom(a), this.__tempMatrix.concat(this.__worldTransform), a = this.__tempMatrix); this.__roundPixels ? b.setTransform(a.a, a.b, a.c, a.d, a.tx | 0, a.ty | 0) : b.setTransform(a.a, a.b, a.c, a.d, a.tx, a.ty) }, __clear: function () { if (null != this.__stage) { var a = this.__blendMode; this.__blendMode = null; this.__setBlendMode(10); this.context.setTransform(1, 0, 0, 1, 0, 0); this.context.globalAlpha = 1; !this.__stage.__transparent && this.__stage.__clearBeforeRender ? (this.context.fillStyle = this.__stage.__colorString, this.context.fillRect(0, 0, this.__stage.stageWidth * this.__stage.window.__scale, this.__stage.stageHeight * this.__stage.window.__scale)) : this.__stage.__transparent && this.__stage.__clearBeforeRender && this.context.clearRect(0, 0, this.__stage.stageWidth * this.__stage.window.__scale, this.__stage.stageHeight * this.__stage.window.__scale); this.__setBlendMode(a) } }, __popMask: function () { this.context.restore() }, __popMaskObject: function (a, b) { null == b && (b = !0); a.__isCacheBitmapRender || null == a.__mask || this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect() }, __popMaskRect: function () { this.context.restore() }, __pushMask: function (a) { this.context.save(); this.setTransform(a.__renderTransform, this.context); this.context.beginPath(); this.__renderDrawableMask(a); this.context.closePath(); this.context.clip() }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); a.__isCacheBitmapRender || null == a.__mask || this.__pushMask(a.__mask) }, __pushMaskRect: function (a, b) { this.context.save(); this.setTransform(b, this.context); this.context.beginPath(); this.context.rect(a.x, a.y, a.width, a.height); this.context.clip() }, __render: function (a) { this.__renderDrawable(a) }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 0: Em.renderDrawable(a, this); break; case 2: Oi.renderDrawable(a, this); break; case 3: Eh.renderDrawable(a, this); break; case 4: case 5: Fm.renderDrawable(a, this); break; case 6: Gm.renderDrawable(a, this); break; case 7: U.renderDrawable(a, this); break; case 8: $h.renderDrawable(a, this); break; case 9: Yf.renderDrawable(a, this) } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 0: Em.renderDrawableMask(a, this); break; case 2: Oi.renderDrawableMask(a, this); break; case 3: Eh.renderDrawableMask(a, this); break; case 4: case 5: Fm.renderDrawableMask(a, this); break; case 6: Gm.renderDrawableMask(a, this); break; case 7: U.renderDrawableMask(a, this); break; case 8: $h.renderDrawableMask(a, this); break; case 9: Yf.renderDrawableMask(a, this) } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && (this.__blendMode = a, this.__setBlendModeContext(this.context, a)) }, __setBlendModeContext: function (a, b) { switch (b) { case 0: a.globalCompositeOperation = "lighter"; break; case 2: a.globalCompositeOperation = "darken"; break; case 3: a.globalCompositeOperation = "difference"; break; case 5: a.globalCompositeOperation = "hard-light"; break; case 8: a.globalCompositeOperation = "lighten"; break; case 9: a.globalCompositeOperation = "multiply"; break; case 11: a.globalCompositeOperation = "overlay"; break; case 12: a.globalCompositeOperation = "screen"; break; default: a.globalCompositeOperation = "source-over" } }, __class__: Fg }); var Gr = { fromInt: function (a) { return a }, fromString: function (a) { switch (a) { case "none": return 0; case "round": return 1; case "square": return 2; default: return null } }, toInt: function (a) { return a }, toString: function (a) { switch (a) { case 0: return "none"; case 1: return "round"; case 2: return "square"; default: return null } } }, Hm = function (a) { Ga.call(this); this.__drawableType = 10; this.__element = a }; k["openfl.display.DOMElement"] = Hm; Hm.__name__ = "openfl.display.DOMElement"; Hm.__super__ = Ga; Hm.prototype = u(Ga.prototype, {__active: null, __element: null, __class__: Hm}); var Pi = function (a) { this.pixelRatio = 1; Ye.call(this); this.element = a; Ga.__supportDOM = !0; a = window.getComputedStyle(document.documentElement, ""); a = (Array.prototype.slice.call(a).join("").match(/-(moz|webkit|ms)-/) || "" === a.OLink && ["", "o"])[1]; "WebKit|Moz|MS|O".match(new RegExp("(" + a + ")", "i")); a[0].toUpperCase(); a.substr(1); this.__vendorPrefix = a; this.__transformProperty = "webkit" == a ? "-webkit-transform" : "transform"; this.__transformOriginProperty = "webkit" == a ? "-webkit-transform-origin" : "transform-origin"; this.__clipRects = []; this.__z = this.__numClipRects = 0; this.__type = "dom"; this.__canvasRenderer = new Fg(null); this.__canvasRenderer.__isDOM = !0 }; k["openfl.display.DOMRenderer"] = Pi; Pi.__name__ = "openfl.display.DOMRenderer"; Pi.__super__ = Ye; Pi.prototype = u(Ye.prototype, { element: null, pixelRatio: null, __canvasRenderer: null, __clipRects: null, __currentClipRect: null, __numClipRects: null, __transformOriginProperty: null, __transformProperty: null, __vendorPrefix: null, __z: null, applyStyle: function (a, b) { null != a && null != b && (null != a.__style && b.parentElement == this.element || this.__initializeElement(a, b), a.__style = b.style, this.__updateClip(a), this.__applyStyle(a, !0, !0, !0)) }, clearStyle: function (a) { null != a && a.parentElement == this.element && this.element.removeChild(a) }, __applyStyle: function (a, b, c, d) { var e = a.__style; if (b && a.__renderTransformChanged) { b = a.__renderTransform; var g = this.__roundPixels; null == g && (g = !1); e.setProperty(this.__transformProperty, g ? "matrix3d(" + b.a + ", " + b.b + ", 0, 0, " + b.c + ", " + b.d + ", 0, 0, 0, 0, 1, 0, " + (b.tx | 0) + ", " + (b.ty | 0) + ", 0, 1)" : "matrix3d(" + b.a + ", " + b.b + ", 0, 0, " + b.c + ", " + b.d + ", 0, 0, 0, 0, 1, 0, " + b.tx + ", " + b.ty + ", 0, 1)", null) } a.__worldZ != ++this.__z && (a.__worldZ = this.__z, e.setProperty("z-index", null == a.__worldZ ? "null" : "" + a.__worldZ, null)); c && a.__worldAlphaChanged && (1 > a.__worldAlpha ? e.setProperty("opacity", null == a.__worldAlpha ? "null" : "" + a.__worldAlpha, null) : e.removeProperty("opacity")); d && a.__worldClipChanged && (null == a.__worldClip ? e.removeProperty("clip") : (a = a.__worldClip, e.setProperty("clip", "rect(" + a.y + "px, " + a.get_right() + "px, " + a.get_bottom() + "px, " + a.x + "px)", null))) }, __initializeElement: function (a, b) { var c = a.__style = b.style; c.setProperty("position", "absolute", null); c.setProperty("top", "0", null); c.setProperty("left", "0", null); c.setProperty(this.__transformOriginProperty, "0 0 0", null); this.element.appendChild(b); a.__worldAlphaChanged = !0; a.__renderTransformChanged = !0; a.__worldVisibleChanged = !0; a.__worldClipChanged = !0; a.__worldClip = null; a.__worldZ = -1 }, __popMask: function () { this.__popMaskRect() }, __popMaskObject: function (a, b) { null == b && (b = !0); null != a.__mask && this.__popMask(); b && null != a.__scrollRect && this.__popMaskRect() }, __popMaskRect: function () { 0 < this.__numClipRects && (this.__numClipRects--, this.__currentClipRect = 0 < this.__numClipRects ? this.__clipRects[this.__numClipRects - 1] : null) }, __pushMask: function (a) { this.__pushMaskRect(a.getBounds(a), a.__renderTransform) }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && this.__pushMaskRect(a.__scrollRect, a.__renderTransform); null != a.__mask && this.__pushMask(a.__mask) }, __pushMaskRect: function (a, b) { this.__numClipRects == this.__clipRects.length && (this.__clipRects[this.__numClipRects] = new ba); var c = this.__clipRects[this.__numClipRects]; a.__transform(c, b); 0 < this.__numClipRects && (a = this.__clipRects[this.__numClipRects - 1], c.__contract(a.x, a.y, a.width, a.height)); 0 > c.height && (c.height = 0); 0 > c.width && (c.width = 0); this.__currentClipRect = c; this.__numClipRects++ }, __render: function (a) { this.element.style.background = this.__stage.__transparent ? "none" : this.__stage.__colorString; this.__z = 1; this.__renderDrawable(a) }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 2: Vc.renderDrawable(a, this); break; case 3: Zf.renderDrawable(a, this); break; case 4: case 5: Im.renderDrawable(a, this); break; case 6: Jm.renderDrawable(a, this); break; case 7: gc.renderDrawable(a, this); break; case 8: dh.renderDrawable(a, this); break; case 9: Gg.renderDrawable(a, this); break; case 10: null != a.stage && a.__worldVisible && a.__renderable ? (a.__active || (this.__initializeElement(a, a.__element), a.__active = !0), this.__updateClip(a), this.__applyStyle(a, !0, !0, !0)) : a.__active && (this.element.removeChild(a.__element), a.__active = !1), Zf.renderDrawable(a, this) } }, __renderDrawableClear: function (a) { if (null != a) switch (a.__drawableType) { case 2: Vc.renderDrawableClear(a, this); break; case 3: Zf.renderDrawableClear(a, this); break; case 4: case 5: Im.renderDrawableClear(a, this); break; case 6: Jm.renderDrawableClear(a, this); break; case 7: gc.renderDrawableClear(a, this); break; case 8: dh.renderDrawableClear(a, this); break; case 9: Gg.renderDrawableClear(a, this) } }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); this.__blendMode != a && (this.__blendMode = a) }, __updateClip: function (a) { if (null == this.__currentClipRect) a.__worldClipChanged = null != a.__worldClip, a.__worldClip = null; else { null == a.__worldClip && (a.__worldClip = new ba); var b = ba.__pool.get(), c = Ja.__pool.get(); c.copyFrom(a.__renderTransform); c.invert(); this.__currentClipRect.__transform(b, c); b.equals(a.__worldClip) ? a.__worldClipChanged = !1 : (a.__worldClip.copyFrom(b), a.__worldClipChanged = !0); ba.__pool.release(b); Ja.__pool.release(c) } }, __class__: Pi }); var jf = function (a) { this.byteCode = a; this.precisionHint = 1; this.__glSourceDirty = !0; this.__numPasses = 1; this.__data = ls._new(a) }; k["openfl.display.Shader"] = jf; jf.__name__ = "openfl.display.Shader"; jf.prototype = { byteCode: null, glProgram: null, precisionHint: null, program: null, __alpha: null, __bitmap: null, __colorMultiplier: null, __colorOffset: null, __context: null, __data: null, __glFragmentSource: null, __glSourceDirty: null, __glVertexSource: null, __hasColorTransform: null, __inputBitmapData: null, __isGenerated: null, __matrix: null, __numPasses: null, __paramBool: null, __paramFloat: null, __paramInt: null, __position: null, __textureCoord: null, __texture: null, __textureSize: null, __clearUseArray: function () { for (var a = 0, b = this.__paramBool; a < b.length;) { var c = b[a]; ++a; c.__useArray = !1 } a = 0; for (b = this.__paramFloat; a < b.length;) c = b[a], ++a, c.__useArray = !1; a = 0; for (b = this.__paramInt; a < b.length;) c = b[a], ++a, c.__useArray = !1 }, __createGLShader: function (a, b) { var c = this.__context.gl, d = c.createShader(b); c.shaderSource(d, a); c.compileShader(d); 0 == c.getShaderParameter(d, c.COMPILE_STATUS) && (b = b == c.VERTEX_SHADER ? "Error compiling vertex shader" : "Error compiling fragment shader", b += "\n" + c.getShaderInfoLog(d), Qa.error(b + ("\n" + a), { fileName: "openfl/display/Shader.hx", lineNumber: 331, className: "openfl.display.Shader", methodName: "__createGLShader" })); return d }, __createGLProgram: function (a, b) { var c = this.__context.gl; a = this.__createGLShader(a, c.VERTEX_SHADER); var d = this.__createGLShader(b, c.FRAGMENT_SHADER); b = c.createProgram(); for (var e = 0, g = this.__paramFloat; e < g.length;) { var f = g[e]; ++e; if (-1 < f.name.indexOf("Position") && T.startsWith(f.name, "openfl_")) { c.bindAttribLocation(b, 0, f.name); break } } c.attachShader(b, a); c.attachShader(b, d); c.linkProgram(b); 0 == c.getProgramParameter(b, c.LINK_STATUS) && (c = "Unable to initialize the shader program\n" + c.getProgramInfoLog(b), Qa.error(c, { fileName: "openfl/display/Shader.hx", lineNumber: 364, className: "openfl.display.Shader", methodName: "__createGLProgram" })); return b }, __disable: function () { null != this.program && this.__disableGL() }, __disableGL: function () { for (var a = this.__context.gl, b = 0, c = 0, d = this.__inputBitmapData; c < d.length;) { var e = d[c]; ++c; e.__disableGL(this.__context, b); ++b } c = 0; for (d = this.__paramBool; c < d.length;) b = d[c], ++c, b.__disableGL(this.__context); c = 0; for (d = this.__paramFloat; c < d.length;) b = d[c], ++c, b.__disableGL(this.__context); c = 0; for (d = this.__paramInt; c < d.length;) b = d[c], ++c, b.__disableGL(this.__context); this.__context.__bindGLArrayBuffer(null); "opengl" == this.__context.__context.type && a.disable(a.TEXTURE_2D) }, __enable: function () { this.__init(); null != this.program && this.__enableGL() }, __enableGL: function () { for (var a = 0, b = this.__context.gl, c = 0, d = this.__inputBitmapData; c < d.length;) { var e = d[c]; ++c; b.uniform1i(e.index, a); ++a } "opengl" == this.__context.__context.type && 0 < a && b.enable(b.TEXTURE_2D) }, __init: function () { null == this.__data && (this.__data = ls._new(null)); null == this.__glFragmentSource || null == this.__glVertexSource || null != this.program && !this.__glSourceDirty || this.__initGL() }, __initGL: function () { if (this.__glSourceDirty || null == this.__paramBool) this.__glSourceDirty = !1, this.program = null, this.__inputBitmapData = [], this.__paramBool = [], this.__paramFloat = [], this.__paramInt = [], this.__processGLData(this.get_glVertexSource(), "attribute"), this.__processGLData(this.get_glVertexSource(), "uniform"), this.__processGLData(this.get_glFragmentSource(), "uniform"); if (null != this.__context && null == this.program) { var a = this.__context.gl, b = "#ifdef GL_ES\n\t\t\t\t" + (1 == this.precisionHint ? "#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\t\tprecision highp float;\n\t\t\t\t#else\n\t\t\t\tprecision mediump float;\n\t\t\t\t#endif" : "precision lowp float;") + "\n\t\t\t\t#endif\n\t\t\t\t", c = b + this.get_glVertexSource(); b += this.get_glFragmentSource(); var d = c + b; Object.prototype.hasOwnProperty.call(this.__context.__programs.h, d) ? this.program = this.__context.__programs.h[d] : (this.program = this.__context.createProgram(1), this.program.__glProgram = this.__createGLProgram(c, b), this.__context.__programs.h[d] = this.program); if (null != this.program) { this.glProgram = this.program.__glProgram; c = 0; for (b = this.__inputBitmapData; c < b.length;) d = b[c], ++c, d.index = d.__isUniform ? a.getUniformLocation(this.glProgram, d.name) : a.getAttribLocation(this.glProgram, d.name); c = 0; for (b = this.__paramBool; c < b.length;) d = b[c], ++c, d.index = d.__isUniform ? a.getUniformLocation(this.glProgram, d.name) : a.getAttribLocation(this.glProgram, d.name); c = 0; for (b = this.__paramFloat; c < b.length;) d = b[c], ++c, d.index = d.__isUniform ? a.getUniformLocation(this.glProgram, d.name) : a.getAttribLocation(this.glProgram, d.name); c = 0; for (b = this.__paramInt; c < b.length;) d = b[c], ++c, d.index = d.__isUniform ? a.getUniformLocation(this.glProgram, d.name) : a.getAttribLocation(this.glProgram, d.name) } } }, __processGLData: function (a, b) { var c = 0, d; for (d = "uniform" == b ? new fb("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)", "") : new fb("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)", ""); d.matchSub(a, c);) { var e = d.matched(1); var g = d.matched(2); if (!T.startsWith(g, "gl_")) { c = "uniform" == b; if (T.startsWith(e, "sampler")) { e = new Km; e.name = g; e.__isUniform = c; this.__inputBitmapData.push(e); switch (g) { case "bitmap": this.__bitmap = e; break; case "openfl_Texture": this.__texture = e } this.__data[g] = e; this.__isGenerated && (this[g] = e) } else if (!Object.prototype.hasOwnProperty.call(this.__data, g) || null == V.field(this.__data, g)) { switch (e) { case "bool": var f = 0; break; case "bvec2": f = 1; break; case "bvec3": f = 2; break; case "bvec4": f = 3; break; case "dvec2": case "vec2": f = 5; break; case "dvec3": case "vec3": f = 6; break; case "double": case "float": f = 4; break; case "ivec3": case "uvec3": f = 10; break; case "ivec4": case "uvec4": f = 11; break; case "mat2": case "mat2x2": f = 12; break; case "mat2x3": f = 13; break; case "mat2x4": f = 14; break; case "mat3x2": f = 15; break; case "mat3": case "mat3x3": f = 16; break; case "mat3x4": f = 17; break; case "mat4": case "mat4x4": f = 20; break; case "mat4x2": f = 18; break; case "mat4x3": f = 19; break; case "int": case "uint": f = 8; break; case "ivec2": case "uvec2": f = 9; break; case "dvec4": case "vec4": f = 7; break; default: f = null } switch (f) { case 1: case 5: case 9: e = 2; break; case 3: case 7: case 11: case 12: e = 4; break; case 2: case 6: case 10: e = 3; break; case 16: e = 9; break; case 20: e = 16; break; default: e = 1 } switch (f) { case 12: var h = 2; break; case 16: h = 3; break; case 20: h = 4; break; default: h = 1 } switch (f) { case 0: case 1: case 2: case 3: var p = new Qi; p.set_name(g); p.type = f; p.__arrayLength = h; p.__isBool = !0; p.__isUniform = c; p.__length = e; this.__paramBool.push(p); "openfl_HasColorTransform" == g && (this.__hasColorTransform = p); this.__data[g] = p; this.__isGenerated && (this[g] = p); break; case 8: case 9: case 10: case 11: p = new Qi; p.set_name(g); p.type = f; p.__arrayLength = h; p.__isInt = !0; p.__isUniform = c; p.__length = e; this.__paramInt.push(p); this.__data[g] = p; this.__isGenerated && (this[g] = p); break; default: p = new Qi; p.set_name(g); p.type = f; p.__arrayLength = h; 0 < h && (f = h * h, f = null != f ? new Float32Array(f) : null, p.__uniformMatrix = f); p.__isFloat = !0; p.__isUniform = c; p.__length = e; this.__paramFloat.push(p); if (T.startsWith(g, "openfl_")) switch (g) { case "openfl_Alpha": this.__alpha = p; break; case "openfl_ColorMultiplier": this.__colorMultiplier = p; break; case "openfl_ColorOffset": this.__colorOffset = p; break; case "openfl_Matrix": this.__matrix = p; break; case "openfl_Position": this.__position = p; break; case "openfl_TextureCoord": this.__textureCoord = p; break; case "openfl_TextureSize": this.__textureSize = p } this.__data[g] = p; this.__isGenerated && (this[g] = p) } } g = d.matchedPos(); c = g.pos + g.len } } }, __update: function () { null != this.program && this.__updateGL() }, __updateFromBuffer: function (a, b) { null != this.program && this.__updateGLFromBuffer(a, b) }, __updateGL: function () { for (var a = 0, b = 0, c = this.__inputBitmapData; b < c.length;) { var d = c[b]; ++b; d.__updateGL(this.__context, a); ++a } b = 0; for (c = this.__paramBool; b < c.length;) a = c[b], ++b, a.__updateGL(this.__context); b = 0; for (c = this.__paramFloat; b < c.length;) a = c[b], ++b, a.__updateGL(this.__context); b = 0; for (c = this.__paramInt; b < c.length;) a = c[b], ++b, a.__updateGL(this.__context) }, __updateGLFromBuffer: function (a, b) { for (var c = 0, d, e, g, f, h, p = 0, m = a.inputCount; p < m;) h = p++, d = a.inputRefs[h], e = a.inputs[h], g = a.inputFilter[h], f = a.inputMipFilter[h], h = a.inputWrap[h], null != e && (d.__updateGL(this.__context, c, e, g, f, h), ++c); p = this.__context.gl; 0 < a.paramDataLength ? (null == a.paramDataBuffer && (a.paramDataBuffer = p.createBuffer()), this.__context.__bindGLArrayBuffer(a.paramDataBuffer), fc.bufferData(p, p.ARRAY_BUFFER, a.paramData, p.DYNAMIC_DRAW)) : this.__context.__bindGLArrayBuffer(null); e = d = c = 0; g = a.paramBoolCount; f = a.paramFloatCount; var l = a.paramData, n = null, k = null, t = null; p = 0; for (m = a.paramCount; p < m;) { h = p++; var q = !1; if (h < g) { var w = a.paramRefs_Bool[c]; for (var u = 0, x = a.overrideBoolCount; u < x;) { var A = u++; if (w.name == a.overrideBoolNames[A]) { n = a.overrideBoolValues[A]; q = !0; break } } q ? w.__updateGL(this.__context, n) : w.__updateGLFromBuffer(this.__context, l, a.paramPositions[h], a.paramLengths[h], b); ++c } else if (h < g + f) { w = a.paramRefs_Float[d]; u = 0; for (x = a.overrideFloatCount; u < x;) if (A = u++, w.name == a.overrideFloatNames[A]) { k = a.overrideFloatValues[A]; q = !0; break } q ? w.__updateGL(this.__context, k) : w.__updateGLFromBuffer(this.__context, l, a.paramPositions[h], a.paramLengths[h], b); ++d } else { w = a.paramRefs_Int[e]; u = 0; for (x = a.overrideIntCount; u < x;) if (A = u++, w.name == a.overrideIntNames[A]) { t = a.overrideIntValues[A]; q = !0; break } q ? w.__updateGL(this.__context, t) : w.__updateGLFromBuffer(this.__context, l, a.paramPositions[h], a.paramLengths[h], b); ++e } } }, get_data: function () { (this.__glSourceDirty || null == this.__data) && this.__init(); return this.__data }, set_data: function (a) { return this.__data = a }, get_glFragmentSource: function () { return this.__glFragmentSource }, set_glFragmentSource: function (a) { a != this.__glFragmentSource && (this.__glSourceDirty = !0); return this.__glFragmentSource = a }, get_glVertexSource: function () { return this.__glVertexSource }, set_glVertexSource: function (a) { a != this.__glVertexSource && (this.__glSourceDirty = !0); return this.__glVertexSource = a }, __class__: jf, __properties__: { set_glVertexSource: "set_glVertexSource", get_glVertexSource: "get_glVertexSource", set_glFragmentSource: "set_glFragmentSource", get_glFragmentSource: "get_glFragmentSource", set_data: "set_data", get_data: "get_data" } }; var Lm = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}"); null == this.__glVertexSource && (this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"); jf.call(this, a); this.__isGenerated = !0; this.__initGL() }; k["openfl.display.DisplayObjectShader"] = Lm; Lm.__name__ = "openfl.display.DisplayObjectShader"; Lm.__super__ = jf; Lm.prototype = u(jf.prototype, { openfl_Alpha: null, openfl_ColorMultiplier: null, openfl_ColorOffset: null, openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_HasColorTransform: null, openfl_TextureSize: null, openfl_Texture: null, __class__: Lm }); var Vo = function (a, b) { jb.call(this); this.name = a; this.frame = b }; k["openfl.display.FrameLabel"] = Vo; Vo.__name__ = "openfl.display.FrameLabel"; Vo.__super__ = jb; Vo.prototype = u(jb.prototype, {frame: null, name: null, __class__: Vo}); var Hr = function (a, b) { this.script = a; this.frame = b }; k["openfl.display.FrameScript"] = Hr; Hr.__name__ = "openfl.display.FrameScript"; Hr.prototype = {frame: null, script: null, __class__: Hr}; var $e = function (a) { this.__dirty = !0; this.__owner = a; this.__commands = new Ie; this.__positionY = this.__positionX = this.__strokePadding = 0; this.__renderTransform = new Ja; this.__usedShaderBuffers = new E; this.__worldTransform = new Ja; this.__height = this.__width = 0; this.__shaderBufferPool = new yd(function () { return new Mm }); this.moveTo(0, 0) }; k["openfl.display.Graphics"] = $e; $e.__name__ = "openfl.display.Graphics"; $e.prototype = { __bounds: null, __commands: null, __dirty: null, __hardwareDirty: null, __height: null, __managed: null, __positionX: null, __positionY: null, __quadBuffer: null, __renderTransform: null, __shaderBufferPool: null, __softwareDirty: null, __strokePadding: null, __transformDirty: null, __triangleIndexBuffer: null, __triangleIndexBufferCount: null, __triangleIndexBufferData: null, __usedShaderBuffers: null, __vertexBuffer: null, __vertexBufferCount: null, __vertexBufferCountUVT: null, __vertexBufferData: null, __vertexBufferDataUVT: null, __vertexBufferUVT: null, __visible: null, __owner: null, __width: null, __worldTransform: null, __canvas: null, __context: null, __bitmap: null, beginBitmapFill: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !0); this.__commands.beginBitmapFill(a, null != b ? b.clone() : null, c, d); this.__visible = !0 }, beginFill: function (a, b) { null == b && (b = 1); null == a && (a = 0); this.__commands.beginFill(a & 16777215, b); 0 < b && (this.__visible = !0) }, beginGradientFill: function (a, b, c, d, e, g, f, h) { null == h && (h = 0); null == f && (f = 1); null == g && (g = 0); if (null != b && 0 != b.length) { if (null == c) { c = []; for (var r = 0, m = b.length; r < m;) r++, c.push(1) } if (null == d) for (d = [], r = 0, m = b.length; r < m;) { var v = r++; d.push(Math.ceil(v / b.length * 255)) } if (!(c.length < b.length || d.length < b.length)) for (this.__commands.beginGradientFill(a, b, c, d, e, g, f, h), r = 0; r < c.length;) if (a = c[r], ++r, 0 < a) { this.__visible = !0; break } } }, beginShaderFill: function (a, b) { null != a && (b = this.__shaderBufferPool.get(), this.__usedShaderBuffers.add(b), b.update(a), this.__commands.beginShaderFill(b)) }, clear: function () { for (var a = this.__usedShaderBuffers.h; null != a;) { var b = a.item; a = a.next; this.__shaderBufferPool.release(b) } this.__usedShaderBuffers.clear(); this.__commands.clear(); this.__strokePadding = 0; null != this.__bounds && (this.set___dirty(!0), this.__transformDirty = !0, this.__bounds = null); this.__visible = !1; this.__positionY = this.__positionX = 0; this.moveTo(0, 0) }, copyFrom: function (a) { this.__bounds = null != a.__bounds ? a.__bounds.clone() : null; this.__commands = a.__commands.copy(); this.set___dirty(!0); this.__strokePadding = a.__strokePadding; this.__positionX = a.__positionX; this.__positionY = a.__positionY; this.__transformDirty = !0; this.__visible = a.__visible }, cubicCurveTo: function (a, b, c, d, e, g) { this.__inflateBounds(this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding); var f = e, h = e; if (!(a < e && a > this.__positionX || a > e && a < this.__positionX) || !(c < e && c > this.__positionX || c > e && c < this.__positionX)) { var p = 2 * this.__positionX - 4 * a + 2 * c, m = a - this.__positionX, l = -this.__positionX + 3 * a + e - 3 * c, n = (-p + Math.sqrt(p * p - 4 * m * l)) / (2 * l); p = (-p - Math.sqrt(p * p - 4 * m * l)) / (2 * l); 0 < n && 1 > n && (f = this.__calculateBezierCubicPoint(n, this.__positionX, a, c, e)); 0 < p && 1 > p && (h = this.__calculateBezierCubicPoint(p, this.__positionX, a, c, e)) } var k = g, t = g; (b < g && b > this.__positionX || b > g && b < this.__positionX) && (d < g && d > this.__positionX || d > g && d < this.__positionX) || (p = 2 * this.__positionX - 4 * b + 2 * d, m = b - this.__positionX, l = -this.__positionX + 3 * b + g - 3 * d, n = (-p + Math.sqrt(p * p - 4 * m * l)) / (2 * l), p = (-p - Math.sqrt(p * p - 4 * m * l)) / (2 * l), 0 < n && 1 > n && (k = this.__calculateBezierCubicPoint(n, this.__positionX, b, d, g)), 0 < p && 1 > p && (t = this.__calculateBezierCubicPoint(p, this.__positionX, b, d, g))); this.__inflateBounds(f - this.__strokePadding, k - this.__strokePadding); this.__inflateBounds(f + this.__strokePadding, k + this.__strokePadding); this.__inflateBounds(h - this.__strokePadding, t - this.__strokePadding); this.__inflateBounds(h + this.__strokePadding, t + this.__strokePadding); this.__positionX = e; this.__positionY = g; this.__inflateBounds(this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding); this.__commands.cubicCurveTo(a, b, c, d, e, g); this.set___dirty(!0) }, curveTo: function (a, b, c, d) { this.__inflateBounds(this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding); this.__inflateBounds(this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding); var e = a < c && a > this.__positionX || a > c && a < this.__positionX ? c : this.__calculateBezierQuadPoint((this.__positionX - a) / (this.__positionX - 2 * a + c), this.__positionX, a, c); var g = b < d && b > this.__positionY || b > d && b < this.__positionY ? d : this.__calculateBezierQuadPoint((this.__positionY - b) / (this.__positionY - 2 * b + d), this.__positionY, b, d); this.__inflateBounds(e - this.__strokePadding, g - this.__strokePadding); this.__inflateBounds(e + this.__strokePadding, g + this.__strokePadding); this.__positionX = c; this.__positionY = d; this.__commands.curveTo(a, b, c, d); this.set___dirty(!0) }, drawCircle: function (a, b, c) { 0 >= c || (this.__inflateBounds(a - c - this.__strokePadding, b - c - this.__strokePadding), this.__inflateBounds(a + c + this.__strokePadding, b + c + this.__strokePadding), this.__commands.drawCircle(a, b, c), this.set___dirty(!0)) }, drawEllipse: function (a, b, c, d) { 0 >= c || 0 >= d || (this.__inflateBounds(a - this.__strokePadding, b - this.__strokePadding), this.__inflateBounds(a + c + this.__strokePadding, b + d + this.__strokePadding), this.__commands.drawEllipse(a, b, c, d), this.set___dirty(!0)) }, drawGraphicsData: function (a) { for (a = a.iterator(); a.hasNext();) { var b = a.next(); switch (b.__graphicsDataType) { case 0: if (null != b.fill) { var c = b.thickness; isNaN(c) && (c = null); switch (b.fill.__graphicsFillType) { case 0: var d = b.fill; this.lineStyle(c, d.color, d.alpha, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit); break; case 1: d = b.fill; this.lineStyle(c, 0, 1, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit); this.lineGradientStyle(d.type, d.colors, d.alphas, d.ratios, d.matrix, d.spreadMethod, d.interpolationMethod, d.focalPointRatio); break; case 2: d = b.fill, this.lineStyle(c, 0, 1, b.pixelHinting, b.scaleMode, b.caps, b.joints, b.miterLimit), this.lineBitmapStyle(d.bitmapData, d.matrix, d.repeat, d.smooth) } } else this.lineStyle(); break; case 1: d = b; this.beginFill(d.color, d.alpha); break; case 2: d = b; this.beginGradientFill(d.type, d.colors, d.alphas, d.ratios, d.matrix, d.spreadMethod, d.interpolationMethod, d.focalPointRatio); break; case 3: this.drawPath(b.commands, b.data, b.winding); break; case 4: d = b; this.beginBitmapFill(d.bitmapData, d.matrix, d.repeat, d.smooth); break; case 5: this.endFill(); break; case 6: this.drawQuads(b.rects, b.indices, b.transforms); break; case 7: this.drawTriangles(b.vertices, b.indices, b.uvtData, b.culling); break; case 8: this.beginShaderFill(b.shader, b.matrix) } } }, drawPath: function (a, b, c) { null == c && (c = 0); var d = 0; 1 == c && this.__commands.windingNonZero(); a = a.iterator(); a:for (; a.hasNext();) switch (a.next()) { case 1: this.moveTo(b.get(d), b.get(d + 1)); d += 2; break; case 2: this.lineTo(b.get(d), b.get(d + 1)); d += 2; break; case 3: this.curveTo(b.get(d), b.get(d + 1), b.get(d + 2), b.get(d + 3)); d += 4; break; case 4: this.moveTo(b.get(d + 2), b.get(d + 3)); break a; case 5: this.lineTo(b.get(d + 2), b.get(d + 3)); break a; case 6: this.cubicCurveTo(b.get(d), b.get(d + 1), b.get(d + 2), b.get(d + 3), b.get(d + 4), b.get(d + 5)), d += 6 } }, drawQuads: function (a, b, c) { if (null != a) { var d = null != b, e = !1, g = !1, f = d ? b.get_length() : Math.floor(a.get_length() / 4); if (0 != f) { null != c && (c.get_length() >= 6 * f ? g = e = !0 : c.get_length() >= 4 * f ? e = !0 : c.get_length() >= 2 * f && (g = !0)); for (var h = ba.__pool.get(), p = Ja.__pool.get(), m = Infinity, l = Infinity, n = -Infinity, k = -Infinity, t, q = 0; q < f;) { var w = q++; t = d ? 4 * b.get(w) : 4 * w; 0 > t || (h.setTo(0, 0, a.get(t + 2), a.get(t + 3)), 0 >= h.width || 0 >= h.height || (e && g ? (t = 6 * w, p.setTo(c.get(t), c.get(t + 1), c.get(t + 2), c.get(t + 3), c.get(t + 4), c.get(t + 5))) : e ? (t = 4 * w, p.setTo(c.get(t), c.get(t + 1), c.get(t + 2), c.get(t + 3), h.x, h.y)) : g ? (t = 2 * w, p.tx = c.get(t), p.ty = c.get(t + 1)) : (p.tx = h.x, p.ty = h.y), h.__transform(h, p), m > h.x && (m = h.x), l > h.y && (l = h.y), n < h.get_right() && (n = h.get_right()), k < h.get_bottom() && (k = h.get_bottom()))) } this.__inflateBounds(m, l); this.__inflateBounds(n, k); this.__commands.drawQuads(a, b, c); this.set___dirty(!0); this.__visible = !0; ba.__pool.release(h); Ja.__pool.release(p) } } }, drawRect: function (a, b, c, d) { if (0 != c || 0 != d) { var e = 0 > c ? -1 : 1, g = 0 > d ? -1 : 1; this.__inflateBounds(a - this.__strokePadding * e, b - this.__strokePadding * g); this.__inflateBounds(a + c + this.__strokePadding * e, b + d + this.__strokePadding * g); this.__commands.drawRect(a, b, c, d); this.set___dirty(!0) } }, drawRoundRect: function (a, b, c, d, e, g) { if (0 != c || 0 != d) { var f = 0 > c ? -1 : 1, h = 0 > d ? -1 : 1; this.__inflateBounds(a - this.__strokePadding * f, b - this.__strokePadding * h); this.__inflateBounds(a + c + this.__strokePadding * f, b + d + this.__strokePadding * h); this.__commands.drawRoundRect(a, b, c, d, e, g); this.set___dirty(!0) } }, drawRoundRectComplex: function (a, b, c, d, e, g, f, h) { if (!(0 >= c || 0 >= d)) { this.__inflateBounds(a - this.__strokePadding, b - this.__strokePadding); this.__inflateBounds(a + c + this.__strokePadding, b + d + this.__strokePadding); var r = a + c, m = b + d; c = c < d ? 2 * c : 2 * d; e < c || (e = c); g < c || (g = c); f < c || (f = c); h < c || (h = c); c = 1 - Math.sin(Math.PI / 180 * 45); d = 1 - Math.tan(Math.PI / 180 * 22.5); var v = h * c, n = h * d; this.moveTo(r, m - h); this.curveTo(r, m - n, r - v, m - v); this.curveTo(r - n, m, r - h, m); v = f * c; n = f * d; this.lineTo(a + f, m); this.curveTo(a + n, m, a + v, m - v); this.curveTo(a, m - n, a, m - f); v = e * c; n = e * d; this.lineTo(a, b + e); this.curveTo(a, b + n, a + v, b + v); this.curveTo(a + n, b, a + e, b); v = g * c; n = g * d; this.lineTo(r - g, b); this.curveTo(r - n, b, r - v, b + v); this.curveTo(r, b + n, r, b + g); this.lineTo(r, m - h); this.set___dirty(!0) } }, drawTriangles: function (a, b, c, d) { null == d && (d = 1); if (null != a && 0 != a.get_length()) { var e = a.get_length() / 2 | 0; if (null == b) { if (0 != e % 3) throw I.thrown(new oi("Not enough vertices to close a triangle.")); b = Eb.toIntVector(null); for (var g = 0, f = e; g < f;) { var h = g++; b.push(h) } } null == d && (d = 1); var p = Infinity, m = Infinity, l = -Infinity, n = -Infinity; g = 0; for (f = e; g < f;) h = g++, e = a.get(2 * h), h = a.get(2 * h + 1), p > e && (p = e), m > h && (m = h), l < e && (l = e), n < h && (n = h); this.__inflateBounds(p, m); this.__inflateBounds(l, n); this.__commands.drawTriangles(a, b, c, d); this.set___dirty(!0); this.__visible = !0 } }, endFill: function () { this.__commands.endFill() }, lineBitmapStyle: function (a, b, c, d) { null == d && (d = !1); null == c && (c = !0); this.__commands.lineBitmapStyle(a, null != b ? b.clone() : null, c, d) }, lineGradientStyle: function (a, b, c, d, e, g, f, h) { null == h && (h = 0); null == f && (f = 1); null == g && (g = 0); this.__commands.lineGradientStyle(a, b, c, d, e, g, f, h) }, lineStyle: function (a, b, c, d, e, g, f, h) { null == h && (h = 3); null == e && (e = 2); null == d && (d = !1); null == c && (c = 1); null == b && (b = 0); null != a && (1 == f ? a > this.__strokePadding && (this.__strokePadding = a) : a / 2 > this.__strokePadding && (this.__strokePadding = a / 2)); this.__commands.lineStyle(a, b, c, d, e, g, f, h); null != a && (this.__visible = !0) }, lineTo: function (a, b) { isFinite(a) && isFinite(b) && (this.__inflateBounds(this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding), this.__inflateBounds(this.__positionX + this.__strokePadding, this.__positionY + this.__strokePadding), this.__positionX = a, this.__positionY = b, this.__inflateBounds(this.__positionX - this.__strokePadding, this.__positionY - this.__strokePadding), this.__inflateBounds(this.__positionX + 2 * this.__strokePadding, this.__positionY + this.__strokePadding), this.__commands.lineTo(a, b), this.set___dirty(!0)) }, moveTo: function (a, b) { this.__positionX = a; this.__positionY = b; this.__commands.moveTo(a, b) }, overrideBlendMode: function (a) { null == a && (a = 10); this.__commands.overrideBlendMode(a) }, readGraphicsData: function (a) { null == a && (a = !0); var b = Eb.toObjectVector(null); this.__owner.__readGraphicsData(b, a); return b }, __calculateBezierCubicPoint: function (a, b, c, d, e) { var g = 1 - a; return b * g * g * g + 3 * c * a * g * g + 3 * d * g * a * a + e * a * a * a }, __calculateBezierQuadPoint: function (a, b, c, d) { var e = 1 - a; return e * e * b + 2 * e * a * c + a * a * d }, __cleanup: function () { null != this.__bounds && null != this.__canvas && (this.set___dirty(!0), this.__transformDirty = !0); this.__context = this.__canvas = this.__bitmap = null }, __getBounds: function (a, b) { if (null != this.__bounds) { var c = ba.__pool.get(); this.__bounds.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) } }, __hitTest: function (a, b, c, d) { if (null == this.__bounds) return !1; var e = d.a * d.d - d.b * d.c, g = 0 == e ? -d.tx : 1 / e * (d.c * (d.ty - b) + d.d * (a - d.tx)); e = d.a * d.d - d.b * d.c; a = 0 == e ? -d.ty : 1 / e * (d.a * (b - d.ty) + d.b * (d.tx - a)); return g > this.__bounds.x && a > this.__bounds.y && this.__bounds.contains(g, a) ? c ? B.hitTest(this, g, a) : !0 : !1 }, __inflateBounds: function (a, b) { null == this.__bounds ? (this.__bounds = new ba(a, b, 0, 0), this.__transformDirty = !0) : (a < this.__bounds.x && (this.__bounds.width += this.__bounds.x - a, this.__bounds.x = a, this.__transformDirty = !0), b < this.__bounds.y && (this.__bounds.height += this.__bounds.y - b, this.__bounds.y = b, this.__transformDirty = !0), a > this.__bounds.x + this.__bounds.width && (this.__bounds.width = a - this.__bounds.x), b > this.__bounds.y + this.__bounds.height && (this.__bounds.height = b - this.__bounds.y)) }, __readGraphicsData: function (a) { for (var b = new $f(this.__commands), c = null, d, e = this.__commands.types, g = 0, f = this.__commands.get_length(); g < f;) { d = g++; d = e[d]; switch (d._hx_index) { case 4: case 5: case 6: case 7: case 9: case 10: case 17: case 18: null == c && (c = new Ri); break; default: null != c && (a.push(c), c = null) } switch (d._hx_index) { case 0: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_BITMAP_FILL; d = b; a.push(new Nm(d.buffer.o[d.oPos], d.buffer.o[d.oPos + 1], d.buffer.b[d.bPos], d.buffer.b[d.bPos + 1])); break; case 1: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_FILL; d = b; a.push(new Zj(d.buffer.i[d.iPos], 1)); break; case 2: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_GRADIENT_FILL; d = b; a.push(new Om(d.buffer.o[d.oPos], d.buffer.ii[d.iiPos], d.buffer.ff[d.ffPos], d.buffer.ii[d.iiPos + 1], d.buffer.o[d.oPos + 1], d.buffer.o[d.oPos + 2], d.buffer.o[d.oPos + 3], d.buffer.f[d.fPos])); break; case 3: break; case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CUBIC_CURVE_TO; d = b; c.cubicCurveTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3], d.buffer.f[d.fPos + 4], d.buffer.f[d.fPos + 5]); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CURVE_TO; d = b; c.curveTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3]); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_CIRCLE; d = b; c.__drawCircle(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2]); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ELLIPSE; d = b; c.__drawEllipse(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3]); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_RECT; d = b; c.__drawRect(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3]); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ROUND_RECT; d = b; c.__drawRoundRect(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1], d.buffer.f[d.fPos + 2], d.buffer.f[d.fPos + 3], d.buffer.f[d.fPos + 4], null != d.buffer.o[d.oPos] ? d.buffer.o[d.oPos] : d.buffer.f[d.fPos + 4]); break; case 13: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.END_FILL; a.push(new Pm); break; case 14: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_BITMAP_STYLE; c = null; break; case 15: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_GRADIENT_STYLE; break; case 16: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_STYLE; var h = b; d = new Qm(h.buffer.o[h.oPos], h.buffer.b[h.bPos], h.buffer.o[h.oPos + 1], h.buffer.o[h.oPos + 2], h.buffer.o[h.oPos + 3], h.buffer.f[h.fPos + 1]); d.fill = new Zj(h.buffer.i[h.iPos], h.buffer.f[h.fPos]); a.push(d); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_TO; d = b; c.lineTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1]); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.MOVE_TO; d = b; c.moveTo(d.buffer.f[d.fPos], d.buffer.f[d.fPos + 1]); break; default: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = d } } null != c && a.push(c) }, __update: function (a) { if (!(null == this.__bounds || 0 >= this.__bounds.width || 0 >= this.__bounds.height)) { var b = this.__owner.__renderTransform; if (null != b) { var c = 0 == b.b ? Math.abs(b.a) : Math.sqrt(b.a * b.a + b.b * b.b); var d = 0 == b.c ? Math.abs(b.d) : Math.sqrt(b.c * b.c + b.d * b.d); null != a && (c = 0 == a.b ? c * a.a : c * Math.sqrt(a.a * a.a + a.b * a.b), d = 0 == a.c ? d * a.d : d * Math.sqrt(a.c * a.c + a.d * a.d)); a = this.__bounds.width * c; d *= this.__bounds.height; if (1 > a || 1 > d) (1 <= this.__width || 1 <= this.__height) && this.set___dirty(!0), this.__height = this.__width = 0; else { null != $e.maxTextureWidth && a > $e.maxTextureWidth && (a = $e.maxTextureWidth); null != $e.maxTextureWidth && d > $e.maxTextureHeight && (d = $e.maxTextureHeight); this.__renderTransform.a = a / this.__bounds.width; this.__renderTransform.d = d / this.__bounds.height; c = 1 / this.__renderTransform.a; var e = 1 / this.__renderTransform.d; this.__worldTransform.a = c * b.a; this.__worldTransform.b = c * b.b; this.__worldTransform.c = e * b.c; this.__worldTransform.d = e * b.d; e = this.__bounds.x; var g = this.__bounds.y; c = e * b.a + g * b.c + b.tx; b = e * b.b + g * b.d + b.ty; this.__worldTransform.tx = Math.round(c); this.__worldTransform.ty = Math.round(b); e = this.__worldTransform; g = e.a * e.d - e.b * e.c; this.__renderTransform.tx = 0 == g ? -e.tx : 1 / g * (e.c * (e.ty - b) + e.d * (c - e.tx)); e = this.__worldTransform; g = e.a * e.d - e.b * e.c; this.__renderTransform.ty = 0 == g ? -e.ty : 1 / g * (e.a * (b - e.ty) + e.b * (e.tx - c)); a = Math.ceil(a + 1); d = Math.ceil(d + 1); a == this.__width && d == this.__height || this.set___dirty(!0); this.__width = a; this.__height = d } } } }, set___dirty: function (a) { if (a && null != this.__owner) { var b = this.__owner; b.__renderDirty || (b.__renderDirty = !0, b.__setParentRenderDirty()) } a && (this.__hardwareDirty = this.__softwareDirty = !0); return this.__dirty = a }, __class__: $e, __properties__: {set___dirty: "set___dirty"} }; var Fh = function () { }; k["openfl.display.IGraphicsFill"] = Fh; Fh.__name__ = "openfl.display.IGraphicsFill"; Fh.__isInterface__ = !0; Fh.prototype = {__graphicsFillType: null, __class__: Fh}; var ag = function () { }; k["openfl.display.IGraphicsData"] = ag; ag.__name__ = "openfl.display.IGraphicsData"; ag.__isInterface__ = !0; ag.prototype = {__graphicsDataType: null, __class__: ag}; var Nm = function (a, b, c, d) { null == d && (d = !1); null == c && (c = !0); this.bitmapData = a; this.matrix = b; this.repeat = c; this.smooth = d; this.__graphicsDataType = 4; this.__graphicsFillType = 2 }; k["openfl.display.GraphicsBitmapFill"] = Nm; Nm.__name__ = "openfl.display.GraphicsBitmapFill"; Nm.__interfaces__ = [Fh, ag]; Nm.prototype = { bitmapData: null, matrix: null, repeat: null, smooth: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Nm }; var Pm = function () { this.__graphicsDataType = 5; this.__graphicsFillType = 3 }; k["openfl.display.GraphicsEndFill"] = Pm; Pm.__name__ = "openfl.display.GraphicsEndFill"; Pm.__interfaces__ = [Fh, ag]; Pm.prototype = {__graphicsDataType: null, __graphicsFillType: null, __class__: Pm}; var Om = function (a, b, c, d, e, g, f, h) { null == h && (h = 0); null == a && (a = 0); null == g && (g = 0); null == f && (f = 1); this.type = a; this.colors = b; this.alphas = c; this.ratios = d; this.matrix = e; this.spreadMethod = g; this.interpolationMethod = f; this.focalPointRatio = h; this.__graphicsDataType = 2; this.__graphicsFillType = 1 }; k["openfl.display.GraphicsGradientFill"] = Om; Om.__name__ = "openfl.display.GraphicsGradientFill"; Om.__interfaces__ = [Fh, ag]; Om.prototype = { alphas: null, colors: null, focalPointRatio: null, interpolationMethod: null, matrix: null, ratios: null, spreadMethod: null, type: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Om }; var Rm = function () { }; k["openfl.display.IGraphicsPath"] = Rm; Rm.__name__ = "openfl.display.IGraphicsPath"; Rm.__isInterface__ = !0; var Ri = function (a, b, c) { null == c && (c = 0); this.commands = a; this.data = b; this.winding = c; this.__graphicsDataType = 3 }; k["openfl.display.GraphicsPath"] = Ri; Ri.__name__ = "openfl.display.GraphicsPath"; Ri.__interfaces__ = [Rm, ag]; Ri.prototype = { commands: null, data: null, winding: null, __graphicsDataType: null, cubicCurveTo: function (a, b, c, d, e, g) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(6); this.data.push(a); this.data.push(b); this.data.push(c); this.data.push(d); this.data.push(e); this.data.push(g) }, curveTo: function (a, b, c, d) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(3); this.data.push(a); this.data.push(b); this.data.push(c); this.data.push(d) }, lineTo: function (a, b) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(2); this.data.push(a); this.data.push(b) }, moveTo: function (a, b) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(1); this.data.push(a); this.data.push(b) }, wideLineTo: function (a, b) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(2); this.data.push(a); this.data.push(b) }, wideMoveTo: function (a, b) { null == this.commands && (this.commands = Eb.toIntVector(null)); null == this.data && (this.data = Eb.toFloatVector(null)); this.commands.push(1); this.data.push(a); this.data.push(b) }, __drawCircle: function (a, b, c) { this.__drawRoundRect(a - c, b - c, 2 * c, 2 * c, 2 * c, 2 * c) }, __drawEllipse: function (a, b, c, d) { this.__drawRoundRect(a, b, c, d, c, d) }, __drawRect: function (a, b, c, d) { this.moveTo(a, b); this.lineTo(a + c, b); this.lineTo(a + c, b + d); this.lineTo(a, b + d); this.lineTo(a, b) }, __drawRoundRect: function (a, b, c, d, e, g) { e *= .5; g *= .5; e > c / 2 && (e = c / 2); g > d / 2 && (g = d / 2); c = a + c; d = b + d; var f = -e + .7071067811865476 * e, h = -e + .41421356237309503 * e, p = -g + .7071067811865476 * g, m = -g + .41421356237309503 * g; this.moveTo(c, d - g); this.curveTo(c, d + m, c + f, d + p); this.curveTo(c + h, d, c - e, d); this.lineTo(a + e, d); this.curveTo(a - h, d, a - f, d + p); this.curveTo(a, d + m, a, d - g); this.lineTo(a, b + g); this.curveTo(a, b - m, a - f, b - p); this.curveTo(a - h, b, a + e, b); this.lineTo(c - e, b); this.curveTo(c + h, b, c + f, b - p); this.curveTo(c, b - m, c, b + g); this.lineTo(c, d - g) }, __class__: Ri }; var Wo = function (a, b, c) { this.rects = a; this.indices = b; this.transforms = c; this.__graphicsDataType = 6 }; k["openfl.display.GraphicsQuadPath"] = Wo; Wo.__name__ = "openfl.display.GraphicsQuadPath"; Wo.__interfaces__ = [Rm, ag]; Wo.prototype = {indices: null, rects: null, transforms: null, __graphicsDataType: null, __class__: Wo}; var Sm = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = "varying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\t\tuniform sampler2D bitmap;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (bitmap, openfl_TextureCoordv);\n\n\t\tif (color.a == 0.0) {\n\n\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t} else if (openfl_HasColorTransform) {\n\n\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\n\t\t\tmat4 colorMultiplier = mat4 (0);\n\t\t\tcolorMultiplier[0][0] = openfl_ColorMultiplierv.x;\n\t\t\tcolorMultiplier[1][1] = openfl_ColorMultiplierv.y;\n\t\t\tcolorMultiplier[2][2] = openfl_ColorMultiplierv.z;\n\t\t\tcolorMultiplier[3][3] = 1.0; // openfl_ColorMultiplierv.w;\n\n\t\t\tcolor = clamp (openfl_ColorOffsetv + (color * colorMultiplier), 0.0, 1.0);\n\n\t\t\tif (color.a > 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tgl_FragColor = color * openfl_Alphav;\n\n\t\t}\n\n\t\t}"); null == this.__glVertexSource && (this.__glVertexSource = "attribute float openfl_Alpha;\n\t\tattribute vec4 openfl_ColorMultiplier;\n\t\tattribute vec4 openfl_ColorOffset;\n\t\tattribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying float openfl_Alphav;\n\t\tvarying vec4 openfl_ColorMultiplierv;\n\t\tvarying vec4 openfl_ColorOffsetv;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform bool openfl_HasColorTransform;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_Alphav = openfl_Alpha;\n\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tif (openfl_HasColorTransform) {\n\n\t\t\topenfl_ColorMultiplierv = openfl_ColorMultiplier;\n\t\t\topenfl_ColorOffsetv = openfl_ColorOffset / 255.0;\n\n\t\t}\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"); jf.call(this, a); this.__isGenerated = !0; this.__initGL() }; k["openfl.display.GraphicsShader"] = Sm; Sm.__name__ = "openfl.display.GraphicsShader"; Sm.__super__ = jf; Sm.prototype = u(jf.prototype, { openfl_Alpha: null, openfl_ColorMultiplier: null, openfl_ColorOffset: null, openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_HasColorTransform: null, openfl_TextureSize: null, bitmap: null, __class__: Sm }); var Xo = function (a, b) { this.shader = a; this.matrix = b; this.__graphicsDataType = 8; this.__graphicsFillType = 4 }; k["openfl.display.GraphicsShaderFill"] = Xo; Xo.__name__ = "openfl.display.GraphicsShaderFill"; Xo.__interfaces__ = [Fh, ag]; Xo.prototype = { matrix: null, shader: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Xo }; var Zj = function (a, b) { null == b && (b = 1); null == a && (a = 0); this.alpha = b; this.color = a; this.__graphicsDataType = 1; this.__graphicsFillType = 0 }; k["openfl.display.GraphicsSolidFill"] = Zj; Zj.__name__ = "openfl.display.GraphicsSolidFill"; Zj.__interfaces__ = [Fh, ag]; Zj.prototype = { alpha: null, color: null, __graphicsDataType: null, __graphicsFillType: null, __class__: Zj }; var Ir = function () { }; k["openfl.display.IGraphicsStroke"] = Ir; Ir.__name__ = "openfl.display.IGraphicsStroke"; Ir.__isInterface__ = !0; var Qm = function (a, b, c, d, e, g, f) { null == g && (g = 3); null == e && (e = 2); null == d && (d = 0); null == c && (c = 2); null == b && (b = !1); null == a && (a = NaN); this.caps = d; this.fill = f; this.joints = e; this.miterLimit = g; this.pixelHinting = b; this.scaleMode = c; this.thickness = a; this.__graphicsDataType = 0 }; k["openfl.display.GraphicsStroke"] = Qm; Qm.__name__ = "openfl.display.GraphicsStroke"; Qm.__interfaces__ = [Ir, ag]; Qm.prototype = { caps: null, fill: null, joints: null, miterLimit: null, pixelHinting: null, scaleMode: null, thickness: null, __graphicsDataType: null, __class__: Qm }; var Yo = function (a, b, c, d) { null == d && (d = 1); this.vertices = a; this.indices = b; this.uvtData = c; this.culling = d; this.__graphicsDataType = 7 }; k["openfl.display.GraphicsTrianglePath"] = Yo; Yo.__name__ = "openfl.display.GraphicsTrianglePath"; Yo.__interfaces__ = [Rm, ag]; Yo.prototype = { culling: null, indices: null, uvtData: null, vertices: null, __graphicsDataType: null, __class__: Yo }; var Ci = function () { }; k["openfl.display.ITileContainer"] = Ci; Ci.__name__ = "openfl.display.ITileContainer"; Ci.__isInterface__ = !0; Ci.prototype = { get_numTiles: null, addTile: null, addTileAt: null, addTiles: null, contains: null, getTileAt: null, getTileIndex: null, removeTile: null, removeTileAt: null, removeTiles: null, setTileIndex: null, sortTiles: null, swapTiles: null, swapTilesAt: null, __class__: Ci, __properties__: {get_numTiles: "get_numTiles"} }; var Cm = function (a) { null == a && (a = 80); this.quality = a }; k["openfl.display.JPEGEncoderOptions"] = Cm; Cm.__name__ = "openfl.display.JPEGEncoderOptions"; Cm.prototype = {quality: null, __class__: Cm}; var Jr = { fromInt: function (a) { return a }, fromString: function (a) { switch (a) { case "bevel": return 0; case "miter": return 1; case "round": return 2; default: return null } }, toInt: function (a) { return a }, toString: function (a) { switch (a) { case 0: return "bevel"; case 1: return "miter"; case 2: return "round"; default: return null } } }, Fj = function () { ab.call(this); this.contentLoaderInfo = hg.create(this); this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents; this.__unloaded = !0 }; k["openfl.display.Loader"] = Fj; Fj.__name__ = "openfl.display.Loader"; Fj.__super__ = ab; Fj.prototype = u(ab.prototype, { content: null, contentLoaderInfo: null, uncaughtErrorEvents: null, __library: null, __path: null, __unloaded: null, close: function () { Ic.notImplemented({ fileName: "openfl/display/Loader.hx", lineNumber: 229, className: "openfl.display.Loader", methodName: "close" }) }, load: function (a, b) { this.unload(); this.contentLoaderInfo.loaderURL = Oa.get_current().get_loaderInfo().url; this.contentLoaderInfo.url = a.url; this.__unloaded = !1; if (null == a.contentType || "" == a.contentType) { b = ""; this.__path = a.url; var c = this.__path.indexOf("?"); -1 < c && (this.__path = this.__path.substring(0, c)); for (; T.endsWith(this.__path, "/");) this.__path = this.__path.substring(0, this.__path.length - 1); T.endsWith(this.__path, ".bundle") && (this.__path += "/library.json", a.url = -1 < c ? this.__path + a.url.substring(c) : this.__path); c = this.__path.lastIndexOf("."); -1 < c && (b = this.__path.substring(c + 1)); switch (b) { case "gif": b = "image/gif"; break; case "jpeg": case "jpg": b = "image/jpeg"; break; case "js": b = "application/javascript"; break; case "json": b = "application/json"; break; case "png": b = "image/png"; break; case "swf": b = "application/x-shockwave-flash"; break; default: b = "application/x-www-form-urlencoded" } this.contentLoaderInfo.contentType = b } else this.contentLoaderInfo.contentType = a.contentType; if (-1 < this.contentLoaderInfo.contentType.indexOf("image/") && "GET" == a.method && (null == a.requestHeaders || 0 == a.requestHeaders.length) && null == a.userAgent) ka.loadFromFile(a.url).onComplete(q(this, this.BitmapData_onLoad)).onError(q(this, this.BitmapData_onError)).onProgress(q(this, this.BitmapData_onProgress)); else { b = new uh; b.dataFormat = 0; if (-1 < this.contentLoaderInfo.contentType.indexOf("/json") || -1 < this.contentLoaderInfo.contentType.indexOf("/javascript") || -1 < this.contentLoaderInfo.contentType.indexOf("/ecmascript")) b.dataFormat = 1; b.addEventListener("complete", q(this, this.loader_onComplete)); b.addEventListener("ioError", q(this, this.loader_onError)); b.addEventListener("progress", q(this, this.loader_onProgress)); b.load(a) } }, loadBytes: function (a, b) { ka.loadFromBytes(a).onComplete(q(this, this.BitmapData_onLoad)).onError(q(this, this.BitmapData_onError)) }, removeChild: function (a) { throw I.thrown(new id("Error #2069: The Loader class does not implement this method.", 2069)); }, removeChildAt: function (a) { throw I.thrown(new id("Error #2069: The Loader class does not implement this method.", 2069)); }, setChildIndex: function (a, b) { throw I.thrown(new id("Error #2069: The Loader class does not implement this method.", 2069)); }, unload: function () { this.__unloaded || (null != this.content && this.content.parent == this && ab.prototype.removeChild.call(this, this.content), null != this.__library && (Da.unloadLibrary(this.contentLoaderInfo.url), this.__library = null), this.content = null, this.contentLoaderInfo.url = null, this.contentLoaderInfo.contentType = null, this.contentLoaderInfo.content = null, this.contentLoaderInfo.bytesLoaded = 0, this.contentLoaderInfo.bytesTotal = 0, this.contentLoaderInfo.width = 0, this.contentLoaderInfo.height = 0, this.__unloaded = !0, this.contentLoaderInfo.dispatchEvent(new oa("unload"))) }, unloadAndStop: function (a) { null != this.content && this.content.__stopAllMovieClips(); a = 0; for (var b = this.get_numChildren(); a < b;) { var c = a++; this.getChildAt(c).__stopAllMovieClips() } this.unload() }, __dispatchError: function (a) { var b = new sg("ioError"); b.text = a; this.contentLoaderInfo.dispatchEvent(b) }, __setContent: function (a, b, c) { this.content = a; this.contentLoaderInfo.content = a; this.contentLoaderInfo.width = b; this.contentLoaderInfo.height = c; null != a && ab.prototype.addChildAt.call(this, a, 0) }, BitmapData_onError: function (a) { this.__dispatchError(z.string(a)) }, BitmapData_onLoad: function (a) { null == a ? this.__dispatchError("Unknown error") : (this.__setContent(new dd(a), a.width, a.height), this.contentLoaderInfo.dispatchEvent(new oa("complete"))) }, BitmapData_onProgress: function (a, b) { var c = new Hg("progress"); c.bytesLoaded = a; c.bytesTotal = b; this.contentLoaderInfo.dispatchEvent(c) }, loader_onComplete: function (a) { var b = this; a = a.target; if (null != this.contentLoaderInfo.contentType && -1 < this.contentLoaderInfo.contentType.indexOf("/json")) { var c = Nc.parse(a.data, Bh.directory(this.__path)); if (null == c) this.__dispatchError("Cannot parse asset manifest"); else { var d = Ab.fromManifest(c); if (null == d) this.__dispatchError("Cannot open library"); else if (d instanceof qe) d.load().onComplete(function (a) { b.__library = d; Da.registerLibrary(b.contentLoaderInfo.url, b.__library); null == c.name || Da.hasLibrary(c.name) || Da.registerLibrary(c.name, b.__library); a = b.__library.getMovieClip(""); b.__setContent(a, a.get_width() | 0, a.get_height() | 0); b.contentLoaderInfo.dispatchEvent(new oa("complete")) }).onError(function (a) { b.__dispatchError(a) }) } } else null != this.contentLoaderInfo.contentType && (-1 < this.contentLoaderInfo.contentType.indexOf("/javascript") || -1 < this.contentLoaderInfo.contentType.indexOf("/ecmascript")) ? (this.__setContent(new Ca, 0, 0), eval("(function () {" + z.string(a.data) + "})()"), this.contentLoaderInfo.dispatchEvent(new oa("complete"))) : (this.contentLoaderInfo.bytes = a.data, ka.loadFromBytes(a.data).onComplete(q(this, this.BitmapData_onLoad)).onError(q(this, this.BitmapData_onError))) }, loader_onError: function (a) { a.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(a) }, loader_onProgress: function (a) { a.target = this.contentLoaderInfo; this.contentLoaderInfo.dispatchEvent(a) }, __class__: Fj }); var hg = function () { jb.call(this); this.applicationDomain = Si.currentDomain; this.bytesTotal = this.bytesLoaded = 0; this.childAllowsParent = !0; this.parameters = {} }; k["openfl.display.LoaderInfo"] = hg; hg.__name__ = "openfl.display.LoaderInfo"; hg.create = function (a) { var b = new hg; b.uncaughtErrorEvents = new Tm; null != a ? b.loader = a : b.url = hg.__rootURL; return b }; hg.__super__ = jb; hg.prototype = u(jb.prototype, { applicationDomain: null, bytes: null, bytesLoaded: null, bytesTotal: null, childAllowsParent: null, content: null, contentType: null, frameRate: null, height: null, loader: null, loaderURL: null, parameters: null, parentAllowsChild: null, sameDomain: null, sharedEvents: null, uncaughtErrorEvents: null, url: null, width: null, __completed: null, __complete: function () { this.__completed || (this.bytesLoaded < this.bytesTotal && (this.bytesLoaded = this.bytesTotal), this.__update(this.bytesLoaded, this.bytesTotal), this.__completed = !0, this.dispatchEvent(new oa("complete"))) }, __update: function (a, b) { this.bytesLoaded = a; this.bytesTotal = b; this.dispatchEvent(new Hg("progress", !1, !1, a, b)) }, __class__: hg }); var rg = function () { Ca.call(this); this.__enabled = !0; if (null != rg.__constructor) { var a = rg.__constructor; rg.__constructor = null; a(this) } }; k["openfl.display.MovieClip"] = rg; rg.__name__ = "openfl.display.MovieClip"; rg.fromTimeline = function (a) { var b = new rg; b.attachTimeline(a); return b }; rg.__super__ = Ca; rg.prototype = u(Ca.prototype, { __enabled: null, __hasDown: null, __hasOver: null, __hasUp: null, __mouseIsDown: null, __scene: null, __timeline: null, addFrameScript: function (a, b) { null != this.__timeline && this.__timeline.__addFrameScript(a, b) }, attachTimeline: function (a) { this.__timeline = a; null != a && (a.__attachMovieClip(this), this.play()) }, gotoAndPlay: function (a, b) { null != this.__timeline && this.__timeline.__gotoAndPlay(a, b) }, gotoAndStop: function (a, b) { null != this.__timeline && this.__timeline.__gotoAndStop(a, b) }, nextFrame: function () { null != this.__timeline && this.__timeline.__nextFrame() }, nextScene: function () { null != this.__timeline && this.__timeline.__nextScene() }, play: function () { null != this.__timeline && this.__timeline.__play() }, prevFrame: function () { null != this.__timeline && this.__timeline.__prevFrame() }, prevScene: function () { null != this.__timeline && this.__timeline.__prevScene() }, stop: function () { null != this.__timeline && this.__timeline.__stop() }, __enterFrame: function (a) { null != this.__timeline && this.__timeline.__enterFrame(a); for (var b = 0, c = this.__children; b < c.length;) { var d = c[b]; ++b; d.__enterFrame(a) } }, __stopAllMovieClips: function () { Ca.prototype.__stopAllMovieClips.call(this); this.stop() }, __tabTest: function (a) { this.__enabled && Ca.prototype.__tabTest.call(this, a) }, __onMouseDown: function (a) { this.__enabled && this.__hasDown && this.gotoAndStop("_down"); this.__mouseIsDown = !0; null != this.stage && this.stage.addEventListener("mouseUp", q(this, this.__onMouseUp), !0) }, __onMouseUp: function (a) { this.__mouseIsDown = !1; null != this.stage && this.stage.removeEventListener("mouseUp", q(this, this.__onMouseUp)); this.__buttonMode && (a.target == this && this.__enabled && this.__hasOver ? this.gotoAndStop("_over") : this.__enabled && this.__hasUp && this.gotoAndStop("_up")) }, __onRollOut: function (a) { this.__enabled && (this.__mouseIsDown && this.__hasOver ? this.gotoAndStop("_over") : this.__hasUp && this.gotoAndStop("_up")) }, __onRollOver: function (a) { this.__enabled && this.__hasOver && this.gotoAndStop("_over") }, set_buttonMode: function (a) { if (this.__buttonMode != a) { if (a) { this.__hasUp = this.__hasOver = this.__hasDown = !1; for (var b = 0, c = this.get_currentLabels(); b < c.length;) { var d = c[b]; ++b; switch (d.name) { case "_down": this.__hasDown = !0; break; case "_over": this.__hasOver = !0; break; case "_up": this.__hasUp = !0 } } if (this.__hasDown || this.__hasOver || this.__hasUp) this.addEventListener("rollOver", q(this, this.__onRollOver)), this.addEventListener("rollOut", q(this, this.__onRollOut)), this.addEventListener("mouseDown", q(this, this.__onMouseDown)) } else this.removeEventListener("rollOver", q(this, this.__onRollOver)), this.removeEventListener("rollOut", q(this, this.__onRollOut)), this.removeEventListener("mouseDown", q(this, this.__onMouseDown)); this.__buttonMode = a } return a }, get_currentFrame: function () { return null != this.__timeline ? this.__timeline.__currentFrame : 1 }, get_currentFrameLabel: function () { return null != this.__timeline ? this.__timeline.__currentFrameLabel : null }, get_currentLabel: function () { return null != this.__timeline ? this.__timeline.__currentLabel : null }, get_currentLabels: function () { return null != this.__timeline ? this.__timeline.__currentLabels.slice() : [] }, get_currentScene: function () { if (null != this.__timeline) return this.__timeline.__currentScene; null == this.__scene && (this.__scene = new Zo("", [], 1)); return this.__scene }, get_enabled: function () { return this.__enabled }, set_enabled: function (a) { return this.__enabled = a }, get_framesLoaded: function () { return null != this.__timeline ? this.__timeline.__framesLoaded : 1 }, get_isPlaying: function () { return null != this.__timeline ? this.__timeline.__isPlaying : !1 }, get_scenes: function () { return null != this.__timeline ? this.__timeline.scenes.slice() : [this.get_currentScene()] }, get_totalFrames: function () { return null != this.__timeline ? this.__timeline.__totalFrames : 1 }, __class__: rg, __properties__: u(Ca.prototype.__properties__, { get_totalFrames: "get_totalFrames", get_scenes: "get_scenes", get_isPlaying: "get_isPlaying", get_framesLoaded: "get_framesLoaded", set_enabled: "set_enabled", get_enabled: "get_enabled", get_currentScene: "get_currentScene", get_currentLabels: "get_currentLabels", get_currentLabel: "get_currentLabel", get_currentFrameLabel: "get_currentFrameLabel", get_currentFrame: "get_currentFrame" }) }); var Ib = function (a, b) { Ye.call(this); this.__context3D = a; this.__context = a.__context; this.__gl = this.gl = a.__context.webgl; this.__defaultRenderTarget = b; this.__flipped = null == this.__defaultRenderTarget; null == $e.maxTextureWidth && ($e.maxTextureWidth = $e.maxTextureHeight = this.__gl.getParameter(this.__gl.MAX_TEXTURE_SIZE)); this.__matrix = wa._new(); this.__values = []; this.__softwareRenderer = new Fg(null); this.__type = "opengl"; this.__setBlendMode(10); this.__context3D.__setGLBlend(!0); this.__clipRects = []; this.__maskObjects = []; this.__numClipRects = 0; this.__projection = wa._new(); this.__projectionFlipped = wa._new(); this.__stencilReference = 0; this.__tempRect = new ba; this.__defaultDisplayShader = new Lm; this.__defaultGraphicsShader = new Sm; this.__defaultShader = this.__defaultDisplayShader; this.__initShader(this.__defaultShader); this.__scrollRectMasks = new yd(function () { return new Se }); this.__maskShader = new ai }; k["openfl.display.OpenGLRenderer"] = Ib; Ib.__name__ = "openfl.display.OpenGLRenderer"; Ib.__super__ = Ye; Ib.prototype = u(Ye.prototype, { gl: null, __context3D: null, __clipRects: null, __currentDisplayShader: null, __currentGraphicsShader: null, __currentRenderTarget: null, __currentShader: null, __currentShaderBuffer: null, __defaultDisplayShader: null, __defaultGraphicsShader: null, __defaultRenderTarget: null, __defaultShader: null, __displayHeight: null, __displayWidth: null, __flipped: null, __gl: null, __height: null, __maskShader: null, __matrix: null, __maskObjects: null, __numClipRects: null, __offsetX: null, __offsetY: null, __projection: null, __projectionFlipped: null, __scrollRectMasks: null, __softwareRenderer: null, __stencilReference: null, __tempRect: null, __updatedStencil: null, __upscaled: null, __values: null, __width: null, applyAlpha: function (a) { Ib.__alphaValue[0] = a * this.__worldAlpha; null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addFloatOverride("openfl_Alpha", Ib.__alphaValue) : null != this.__currentShader && null != this.__currentShader.__alpha && (this.__currentShader.__alpha.value = Ib.__alphaValue) }, applyBitmapData: function (a, b, c) { null == c && (c = !1); null != this.__currentShaderBuffer ? null != a && (Ib.__textureSizeValue[0] = a.__textureWidth, Ib.__textureSizeValue[1] = a.__textureHeight, this.__currentShaderBuffer.addFloatOverride("openfl_TextureSize", Ib.__textureSizeValue)) : null != this.__currentShader && (null != this.__currentShader.__bitmap && (this.__currentShader.__bitmap.input = a, this.__currentShader.__bitmap.filter = b && this.__allowSmoothing ? 4 : 5, this.__currentShader.__bitmap.mipFilter = 2, this.__currentShader.__bitmap.wrap = c ? 2 : 0), null != this.__currentShader.__texture && (this.__currentShader.__texture.input = a, this.__currentShader.__texture.filter = b && this.__allowSmoothing ? 4 : 5, this.__currentShader.__texture.mipFilter = 2, this.__currentShader.__texture.wrap = c ? 2 : 0), null != this.__currentShader.__textureSize && (null != a ? (Ib.__textureSizeValue[0] = a.__textureWidth, Ib.__textureSizeValue[1] = a.__textureHeight, this.__currentShader.__textureSize.value = Ib.__textureSizeValue) : this.__currentShader.__textureSize.value = null)) }, applyColorTransform: function (a) { var b = null != a && !a.__isDefault(!0); this.applyHasColorTransform(b); b ? (a.__setArrays(Ib.__colorMultipliersValue, Ib.__colorOffsetsValue), null != this.__currentShaderBuffer ? (this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier", Ib.__colorMultipliersValue), this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset", Ib.__colorOffsetsValue)) : null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.value = Ib.__colorMultipliersValue), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.value = Ib.__colorOffsetsValue))) : null != this.__currentShaderBuffer ? (this.__currentShaderBuffer.addFloatOverride("openfl_ColorMultiplier", Ib.__emptyColorValue), this.__currentShaderBuffer.addFloatOverride("openfl_ColorOffset", Ib.__emptyColorValue)) : null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.value = Ib.__emptyColorValue), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.value = Ib.__emptyColorValue)) }, applyHasColorTransform: function (a) { Ib.__hasColorTransformValue[0] = a; null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addBoolOverride("openfl_HasColorTransform", Ib.__hasColorTransformValue) : null != this.__currentShader && null != this.__currentShader.__hasColorTransform && (this.__currentShader.__hasColorTransform.value = Ib.__hasColorTransformValue) }, applyMatrix: function (a) { null != this.__currentShaderBuffer ? this.__currentShaderBuffer.addFloatOverride("openfl_Matrix", a) : null != this.__currentShader && null != this.__currentShader.__matrix && (this.__currentShader.__matrix.value = a) }, getMatrix: function (a) { null != this.gl ? (a = this.__getMatrix(a, 1), wa.set(this.__matrix, 0, a[0]), wa.set(this.__matrix, 1, a[1]), wa.set(this.__matrix, 2, a[2]), wa.set(this.__matrix, 3, a[3]), wa.set(this.__matrix, 4, a[4]), wa.set(this.__matrix, 5, a[5]), wa.set(this.__matrix, 6, a[6]), wa.set(this.__matrix, 7, a[7]), wa.set(this.__matrix, 8, a[8]), wa.set(this.__matrix, 9, a[9]), wa.set(this.__matrix, 10, a[10]), wa.set(this.__matrix, 11, a[11]), wa.set(this.__matrix, 12, a[12]), wa.set(this.__matrix, 13, a[13]), wa.set(this.__matrix, 14, a[14]), wa.set(this.__matrix, 15, a[15])) : (wa.identity(this.__matrix), wa.set(this.__matrix, 0, a.a), wa.set(this.__matrix, 1, a.b), wa.set(this.__matrix, 4, a.c), wa.set(this.__matrix, 5, a.d), wa.set(this.__matrix, 12, a.tx), wa.set(this.__matrix, 13, a.ty)); return this.__matrix }, setShader: function (a) { this.__currentShaderBuffer = null; this.__currentShader != a && (null == a ? (this.__currentShader = null, this.__context3D.setProgram(null)) : (this.__currentShader = a, this.__initShader(a), this.__context3D.setProgram(a.program), this.__context3D.__flushGLProgram(), this.__currentShader.__enable(), this.__context3D.__state.shader = a)) }, setViewport: function () { this.__gl.viewport(this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight) }, updateShader: function () { null != this.__currentShader && (null != this.__currentShader.__position && (this.__currentShader.__position.__useArray = !0), null != this.__currentShader.__textureCoord && (this.__currentShader.__textureCoord.__useArray = !0), this.__context3D.setProgram(this.__currentShader.program), this.__context3D.__flushGLProgram(), this.__context3D.__flushGLTextures(), this.__currentShader.__update()) }, useAlphaArray: function () { null != this.__currentShader && null != this.__currentShader.__alpha && (this.__currentShader.__alpha.__useArray = !0) }, useColorTransformArray: function () { null != this.__currentShader && (null != this.__currentShader.__colorMultiplier && (this.__currentShader.__colorMultiplier.__useArray = !0), null != this.__currentShader.__colorOffset && (this.__currentShader.__colorOffset.__useArray = !0)) }, __cleanup: function () { 0 < this.__stencilReference && (this.__stencilReference = 0, this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects && (this.__numClipRects = 0, this.__scissorRect()) }, __clear: function () { null == this.__stage || this.__stage.__transparent ? this.__context3D.clear(0, 0, 0, 0, 0, 0, 1) : this.__context3D.clear(this.__stage.__colorSplit[0], this.__stage.__colorSplit[1], this.__stage.__colorSplit[2], 1, 0, 0, 1); this.__cleared = !0 }, __clearShader: function () { null != this.__currentShader && (null == this.__currentShaderBuffer ? null != this.__currentShader.__bitmap && (this.__currentShader.__bitmap.input = null) : this.__currentShaderBuffer.clearOverride(), null != this.__currentShader.__texture && (this.__currentShader.__texture.input = null), null != this.__currentShader.__textureSize && (this.__currentShader.__textureSize.value = null), null != this.__currentShader.__hasColorTransform && (this.__currentShader.__hasColorTransform.value = null), null != this.__currentShader.__position && (this.__currentShader.__position.value = null), null != this.__currentShader.__matrix && (this.__currentShader.__matrix.value = null), this.__currentShader.__clearUseArray()) }, __copyShader: function (a) { this.__currentShader = a.__currentShader; this.__currentShaderBuffer = a.__currentShaderBuffer; this.__currentDisplayShader = a.__currentDisplayShader; this.__currentGraphicsShader = a.__currentGraphicsShader }, __getMatrix: function (a, b) { var c = Ja.__pool.get(); c.copyFrom(a); c.concat(this.__worldTransform); if (0 == b || 1 == b && 0 == c.b && 0 == c.c && 1.001 > c.a && .999 < c.a && 1.001 > c.d && .999 < c.d) c.tx = Math.round(c.tx), c.ty = Math.round(c.ty); wa.identity(this.__matrix); wa.set(this.__matrix, 0, c.a); wa.set(this.__matrix, 1, c.b); wa.set(this.__matrix, 4, c.c); wa.set(this.__matrix, 5, c.d); wa.set(this.__matrix, 12, c.tx); wa.set(this.__matrix, 13, c.ty); wa.append(this.__matrix, this.__flipped ? this.__projectionFlipped : this.__projection); this.__values[0] = wa.get(this.__matrix, 0); this.__values[1] = wa.get(this.__matrix, 1); this.__values[2] = wa.get(this.__matrix, 2); this.__values[3] = wa.get(this.__matrix, 3); this.__values[4] = wa.get(this.__matrix, 4); this.__values[5] = wa.get(this.__matrix, 5); this.__values[6] = wa.get(this.__matrix, 6); this.__values[7] = wa.get(this.__matrix, 7); this.__values[8] = wa.get(this.__matrix, 8); this.__values[9] = wa.get(this.__matrix, 9); this.__values[10] = wa.get(this.__matrix, 10); this.__values[11] = wa.get(this.__matrix, 11); this.__values[12] = wa.get(this.__matrix, 12); this.__values[13] = wa.get(this.__matrix, 13); this.__values[14] = wa.get(this.__matrix, 14); this.__values[15] = wa.get(this.__matrix, 15); Ja.__pool.release(c); return this.__values }, __initShader: function (a) { return null != a ? (null == a.__context && (a.__context = this.__context3D, a.__init()), a) : this.__defaultShader }, __initDisplayShader: function (a) { return null != a ? (null == a.__context && (a.__context = this.__context3D, a.__init()), a) : this.__defaultDisplayShader }, __initGraphicsShader: function (a) { return null != a ? (null == a.__context && (a.__context = this.__context3D, a.__init()), a) : this.__defaultGraphicsShader }, __initShaderBuffer: function (a) { return null != a ? this.__initGraphicsShader(a.shader) : this.__defaultGraphicsShader }, __popMask: function () { if (0 != this.__stencilReference) { var a = this.__maskObjects.pop(); 1 < this.__stencilReference ? (this.__context3D.setStencilActions(2, 1, 0, 0, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 255), this.__context3D.setColorMask(!1, !1, !1, !1), this.__renderDrawableMask(a), this.__stencilReference--, this.__context3D.setStencilActions(2, 1, 5, 5, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0), this.__context3D.setColorMask(!0, !0, !0, !0)) : (this.__stencilReference = 0, this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)) } }, __popMaskObject: function (a, b) { null == b && (b = !0); null != a.__mask && this.__popMask(); b && null != a.__scrollRect && (0 != a.__renderTransform.b || 0 != a.__renderTransform.c ? (this.__scrollRectMasks.release(this.__maskObjects[this.__maskObjects.length - 1]), this.__popMask()) : this.__popMaskRect()) }, __popMaskRect: function () { 0 < this.__numClipRects && (this.__numClipRects--, 0 < this.__numClipRects ? this.__scissorRect(this.__clipRects[this.__numClipRects - 1]) : this.__scissorRect()) }, __pushMask: function (a) { 0 == this.__stencilReference && (this.__context3D.clear(0, 0, 0, 0, 0, 0, 4), this.__updatedStencil = !0); this.__context3D.setStencilActions(2, 1, 2, 5, 5); this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 255); this.__context3D.setColorMask(!1, !1, !1, !1); this.__renderDrawableMask(a); this.__maskObjects.push(a); this.__stencilReference++; this.__context3D.setStencilActions(2, 1, 5, 5, 5); this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0); this.__context3D.setColorMask(!0, !0, !0, !0) }, __pushMaskObject: function (a, b) { null == b && (b = !0); b && null != a.__scrollRect && (0 != a.__renderTransform.b || 0 != a.__renderTransform.c ? (b = this.__scrollRectMasks.get(), b.get_graphics().clear(), b.get_graphics().beginFill(65280), b.get_graphics().drawRect(a.__scrollRect.x, a.__scrollRect.y, a.__scrollRect.width, a.__scrollRect.height), b.__renderTransform.copyFrom(a.__renderTransform), this.__pushMask(b)) : this.__pushMaskRect(a.__scrollRect, a.__renderTransform)); null != a.__mask && this.__pushMask(a.__mask) }, __pushMaskRect: function (a, b) { this.__numClipRects == this.__clipRects.length && (this.__clipRects[this.__numClipRects] = new ba); var c = Ja.__pool.get(); c.copyFrom(b); c.concat(this.__worldTransform); b = this.__clipRects[this.__numClipRects]; a.__transform(b, c); 0 < this.__numClipRects && (a = this.__clipRects[this.__numClipRects - 1], b.__contract(a.x, a.y, a.width, a.height)); 0 > b.height && (b.height = 0); 0 > b.width && (b.width = 0); Ja.__pool.release(c); this.__scissorRect(b); this.__numClipRects++ }, __render: function (a) { this.__context3D.setColorMask(!0, !0, !0, !0); this.__context3D.setCulling(3); this.__context3D.setDepthTest(!1, 0); this.__context3D.setStencilActions(); this.__context3D.setStencilReferenceValue(0, 0, 0); this.__context3D.setScissorRectangle(null); this.__blendMode = null; this.__setBlendMode(10); if (null == this.__defaultRenderTarget) { if (Ib.__scissorRectangle.setTo(this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight), this.__context3D.setScissorRectangle(Ib.__scissorRectangle), this.__upscaled = 1 != this.__worldTransform.a || 1 != this.__worldTransform.d, this.__renderDrawable(a), 0 < this.__offsetX || 0 < this.__offsetY) 0 < this.__offsetX && (Ib.__scissorRectangle.setTo(0, 0, this.__offsetX, this.__height), this.__context3D.setScissorRectangle(Ib.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT), Ib.__scissorRectangle.setTo(this.__offsetX + this.__displayWidth, 0, this.__width, this.__height), this.__context3D.setScissorRectangle(Ib.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT)), 0 < this.__offsetY && (Ib.__scissorRectangle.setTo(0, 0, this.__width, this.__offsetY), this.__context3D.setScissorRectangle(Ib.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT), Ib.__scissorRectangle.setTo(0, this.__offsetY + this.__displayHeight, this.__width, this.__height), this.__context3D.setScissorRectangle(Ib.__scissorRectangle), this.__context3D.__flushGL(), this.__gl.clearColor(0, 0, 0, 1), this.__gl.clear(this.__gl.COLOR_BUFFER_BIT)), this.__context3D.setScissorRectangle(null) } else { Ib.__scissorRectangle.setTo(this.__offsetX, this.__offsetY, this.__displayWidth, this.__displayHeight); this.__context3D.setScissorRectangle(Ib.__scissorRectangle); var b = a.__mask, c = a.__scrollRect; a.__mask = null; a.__scrollRect = null; this.__renderDrawable(a); a.__mask = b; a.__scrollRect = c } this.__context3D.present() }, __renderDrawable: function (a) { if (null != a) switch (a.__drawableType) { case 0: Um.renderDrawable(a, this); break; case 2: zf.renderDrawable(a, this); break; case 3: eh.renderDrawable(a, this); break; case 4: case 5: Vm.renderDrawable(a, this); break; case 6: Wm.renderDrawable(a, this); break; case 7: fh.renderDrawable(a, this); break; case 8: Af.renderDrawable(a, this); break; case 9: ha.renderDrawable(a, this) } }, __renderDrawableMask: function (a) { if (null != a) switch (a.__drawableType) { case 0: Um.renderDrawableMask(a, this); break; case 2: zf.renderDrawableMask(a, this); break; case 3: eh.renderDrawableMask(a, this); break; case 4: case 5: Vm.renderDrawableMask(a, this); break; case 6: Wm.renderDrawableMask(a, this); break; case 7: fh.renderDrawableMask(a, this); break; case 8: Af.renderDrawableMask(a, this); break; case 9: ha.renderDrawableMask(a, this) } }, __renderFilterPass: function (a, b, c, d) { null == d && (d = !0); if (null != a && null != b && null != this.__defaultRenderTarget) { var e = this.__context3D.__state.renderToTexture, g = this.__context3D.__state.renderToTextureDepthStencil, f = this.__context3D.__state.renderToTextureAntiAlias, h = this.__context3D.__state.renderToTextureSurfaceSelector; this.__context3D.setRenderToTexture(this.__defaultRenderTarget.getTexture(this.__context3D), !1); d && this.__context3D.clear(0, 0, 0, 0, 0, 0, 1); b = this.__initShader(b); this.setShader(b); this.applyAlpha(1); this.applyBitmapData(a, c); this.applyColorTransform(null); this.applyMatrix(this.__getMatrix(a.__renderTransform, 1)); this.updateShader(); c = a.getVertexBuffer(this.__context3D); null != b.__position && this.__context3D.setVertexBufferAt(b.__position.index, c, 0, 3); null != b.__textureCoord && this.__context3D.setVertexBufferAt(b.__textureCoord.index, c, 3, 2); a = a.getIndexBuffer(this.__context3D); this.__context3D.drawTriangles(a); null != e ? this.__context3D.setRenderToTexture(e, g, f, h) : this.__context3D.setRenderToBackBuffer(); this.__clearShader() } }, __resize: function (a, b) { this.__width = a; this.__height = b; a = null == this.__defaultRenderTarget ? this.__stage.stageWidth : this.__defaultRenderTarget.width; b = null == this.__defaultRenderTarget ? this.__stage.stageHeight : this.__defaultRenderTarget.height; if (null == this.__defaultRenderTarget) { var c = this.__worldTransform; c = Math.round(0 * c.a + 0 * c.c + c.tx) } else c = 0; this.__offsetX = c; null == this.__defaultRenderTarget ? (c = this.__worldTransform, c = Math.round(0 * c.b + 0 * c.d + c.ty)) : c = 0; this.__offsetY = c; null == this.__defaultRenderTarget ? (c = this.__worldTransform, c = Math.round(a * c.a + 0 * c.c + c.tx - this.__offsetX)) : c = a; this.__displayWidth = c; null == this.__defaultRenderTarget ? (c = this.__worldTransform, c = Math.round(0 * c.b + b * c.d + c.ty - this.__offsetY)) : c = b; this.__displayHeight = c; wa.createOrtho(this.__projection, 0, this.__displayWidth + 2 * this.__offsetX, 0, this.__displayHeight + 2 * this.__offsetY, -1E3, 1E3); wa.createOrtho(this.__projectionFlipped, 0, this.__displayWidth + 2 * this.__offsetX, this.__displayHeight + 2 * this.__offsetY, 0, -1E3, 1E3) }, __resumeClipAndMask: function (a) { 0 < this.__stencilReference ? (this.__context3D.setStencilActions(2, 1, 5, 5, 5), this.__context3D.setStencilReferenceValue(this.__stencilReference, 255, 0)) : (this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects ? this.__scissorRect(this.__clipRects[this.__numClipRects - 1]) : this.__scissorRect() }, __scissorRect: function (a) { if (null != a) { var b = Math.floor(a.x), c = Math.floor(a.y), d = 0 < a.width ? Math.ceil(a.get_right()) - b : 0; a = 0 < a.height ? Math.ceil(a.get_bottom()) - c : 0; 0 > d && (d = 0); 0 > a && (a = 0); Ib.__scissorRectangle.setTo(b, c, d, a); this.__context3D.setScissorRectangle(Ib.__scissorRectangle) } else this.__context3D.setScissorRectangle(null) }, __setBlendMode: function (a) { null != this.__overrideBlendMode && (a = this.__overrideBlendMode); if (this.__blendMode != a) switch (this.__blendMode = a, a) { case 0: this.__context3D.setBlendFactors(2, 2); break; case 9: this.__context3D.setBlendFactors(1, 5); break; case 12: this.__context3D.setBlendFactors(2, 6); break; case 14: this.__context3D.setBlendFactors(2, 2); this.__context3D.__setGLBlendEquation(this.__gl.FUNC_REVERSE_SUBTRACT); break; default: this.__context3D.setBlendFactors(2, 5) } }, __setRenderTarget: function (a) { this.__defaultRenderTarget = a; this.__flipped = null == a; null != a && this.__resize(a.width, a.height) }, __setShaderBuffer: function (a) { this.setShader(a.shader); this.__currentShaderBuffer = a }, __suspendClipAndMask: function () { 0 < this.__stencilReference && (this.__context3D.setStencilActions(), this.__context3D.setStencilReferenceValue(0, 0, 0)); 0 < this.__numClipRects && this.__scissorRect() }, __updateShaderBuffer: function (a) { null != this.__currentShader && null != this.__currentShaderBuffer && this.__currentShader.__updateFromBuffer(this.__currentShaderBuffer, a) }, __class__: Ib }); var Uo = function (a) { null == a && (a = !1); this.fastCompression = a }; k["openfl.display.PNGEncoderOptions"] = Uo; Uo.__name__ = "openfl.display.PNGEncoderOptions"; Uo.prototype = {fastCompression: null, __class__: Uo}; var $o = function (a) { this.onComplete = new Rd; this.display = a; null != a && (a.addEventListener("unload", q(this, this.display_onUnload)), Oa.get_current().addChild(a)) }; k["openfl.display.Preloader"] = $o; $o.__name__ = "openfl.display.Preloader"; $o.prototype = { onComplete: null, complete: null, display: null, ready: null, start: function () { this.ready = !0; Oa.get_current().get_loaderInfo().__complete(); if (null != this.display) { var a = new oa("complete", !0, !0); this.display.dispatchEvent(a); a.isDefaultPrevented() || this.display.dispatchEvent(new oa("unload")) } else this.complete || (this.complete = !0, this.onComplete.dispatch()) }, update: function (a, b) { Oa.get_current().get_loaderInfo().__update(a, b); null != this.display && this.display.dispatchEvent(new Hg("progress", !0, !0, a, b)) }, display_onUnload: function (a) { null != this.display && (this.display.removeEventListener("unload", q(this, this.display_onUnload)), this.display.parent == Oa.get_current() && Oa.get_current().removeChild(this.display), Oa.get_current().stage.set_focus(null), this.display = null); this.ready && !this.complete && (this.complete = !0, this.onComplete.dispatch()) }, __class__: $o }; var Xm = function () { Ca.call(this); var a = this.getBackgroundColor(), b = 0; 70 > .299 * (a >> 16 & 255) + .587 * (a >> 8 & 255) + .114 * (a & 255) && (b = 16777215); a = this.getHeight() / 2 - 3.5; var c = this.getWidth() - 60; this.outline = new Se; this.outline.get_graphics().beginFill(b, .07); this.outline.get_graphics().drawRect(0, 0, c, 7); this.outline.set_x(30); this.outline.set_y(a); this.outline.set_alpha(0); this.addChild(this.outline); this.progress = new Se; this.progress.get_graphics().beginFill(b, .35); this.progress.get_graphics().drawRect(0, 0, c - 4, 3); this.progress.set_x(32); this.progress.set_y(a + 2); this.progress.set_scaleX(0); this.progress.set_alpha(0); this.addChild(this.progress); this.startAnimation = Oa.getTimer() + 100; this.endAnimation = this.startAnimation + 1E3; this.addEventListener("addedToStage", q(this, this.this_onAddedToStage)) }; k["openfl.display.DefaultPreloader"] = Xm; Xm.__name__ = "openfl.display.DefaultPreloader"; Xm.__super__ = Ca; Xm.prototype = u(Ca.prototype, { endAnimation: null, outline: null, progress: null, startAnimation: null, getBackgroundColor: function () { var a = Oa.get_current().stage.window.context.attributes; return Object.prototype.hasOwnProperty.call(a, "background") && null != a.background ? a.background : 0 }, getHeight: function () { var a = Oa.get_current().stage.window.__height; return 0 < a ? a : Oa.get_current().stage.stageHeight }, getWidth: function () { var a = Oa.get_current().stage.window.__width; return 0 < a ? a : Oa.get_current().stage.stageWidth }, onInit: function () { this.addEventListener("enterFrame", q(this, this.this_onEnterFrame)) }, onLoaded: function () { this.removeEventListener("enterFrame", q(this, this.this_onEnterFrame)); this.dispatchEvent(new oa("unload")) }, onUpdate: function (a, b) { var c = 0; 0 < b && (c = a / b, 1 < c && (c = 1)); this.progress.set_scaleX(c) }, this_onAddedToStage: function (a) { this.removeEventListener("addedToStage", q(this, this.this_onAddedToStage)); this.onInit(); this.onUpdate(this.get_loaderInfo().bytesLoaded, this.get_loaderInfo().bytesTotal); this.addEventListener("progress", q(this, this.this_onProgress)); this.addEventListener("complete", q(this, this.this_onComplete)) }, this_onComplete: function (a) { a.preventDefault(); this.removeEventListener("progress", q(this, this.this_onProgress)); this.removeEventListener("complete", q(this, this.this_onComplete)); this.onLoaded() }, this_onEnterFrame: function (a) { a = (Oa.getTimer() - this.startAnimation) / (this.endAnimation - this.startAnimation); 0 > a && (a = 0); 1 < a && (a = 1); this.outline.set_alpha(this.progress.set_alpha(a)) }, this_onProgress: function (a) { this.onUpdate(a.bytesLoaded | 0, a.bytesTotal | 0) }, __class__: Xm }); var Zo = function (a, b, c) { this.name = a; this.labels = b; this.numFrames = c }; k["openfl.display.Scene"] = Zo; Zo.__name__ = "openfl.display.Scene"; Zo.prototype = {labels: null, name: null, numFrames: null, __class__: Zo}; var ls = { _new: function (a) { return {} } }, Km = function () { this.channels = 0; this.filter = 5; this.index = this.height = 0; this.mipFilter = 2; this.wrap = this.width = 0 }; k["openfl.display.ShaderInput"] = Km; Km.__name__ = "openfl.display.ShaderInput"; Km.prototype = { channels: null, filter: null, height: null, index: null, input: null, mipFilter: null, name: null, width: null, wrap: null, __isUniform: null, __disableGL: function (a, b) { a.setTextureAt(b, null) }, __updateGL: function (a, b, c, d, e, g) { c = null != c ? c : this.input; d = null != d ? d : this.filter; e = null != e ? e : this.mipFilter; g = null != g ? g : this.wrap; null != c ? (a.setTextureAt(b, c.getTexture(a)), a.setSamplerStateAt(b, g, d, e)) : a.setTextureAt(b, null) }, __class__: Km }; var Qi = function () { this.index = 0 }; k["openfl.display.ShaderParameter"] = Qi; Qi.__name__ = "openfl.display.ShaderParameter"; Qi.prototype = { index: null, name: null, type: null, value: null, __arrayLength: null, __internal: null, __isBool: null, __isFloat: null, __isInt: null, __isUniform: null, __length: null, __uniformMatrix: null, __useArray: null, __disableGL: function (a) { a = a.gl; if (!this.__isUniform) for (var b = 0, c = this.__arrayLength; b < c;) { var d = b++; a.disableVertexAttribArray(this.index + d) } }, __updateGL: function (a, b) { a = a.gl; b = null != b ? b : this.value; var c = this.__isBool ? b : null, d = this.__isFloat ? b : null, e = this.__isInt ? b : null; if (this.__isUniform) if (null != b && b.length >= this.__length) switch (this.type) { case 0: a.uniform1i(this.index, c[0] ? 1 : 0); break; case 1: a.uniform2i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0); break; case 2: a.uniform3i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0); break; case 3: a.uniform4i(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0, c[3] ? 1 : 0); break; case 4: a.uniform1f(this.index, d[0]); break; case 5: a.uniform2f(this.index, d[0], d[1]); break; case 6: a.uniform3f(this.index, d[0], d[1], d[2]); break; case 7: a.uniform4f(this.index, d[0], d[1], d[2], d[3]); break; case 8: a.uniform1i(this.index, e[0]); break; case 9: a.uniform2i(this.index, e[0], e[1]); break; case 10: a.uniform3i(this.index, e[0], e[1], e[2]); break; case 11: a.uniform4i(this.index, e[0], e[1], e[2], e[3]); break; case 12: this.__uniformMatrix[0] = d[0]; this.__uniformMatrix[1] = d[1]; this.__uniformMatrix[2] = d[2]; this.__uniformMatrix[3] = d[3]; fc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = d[0]; this.__uniformMatrix[1] = d[1]; this.__uniformMatrix[2] = d[2]; this.__uniformMatrix[3] = d[3]; this.__uniformMatrix[4] = d[4]; this.__uniformMatrix[5] = d[5]; this.__uniformMatrix[6] = d[6]; this.__uniformMatrix[7] = d[7]; this.__uniformMatrix[8] = d[8]; fc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = d[0], this.__uniformMatrix[1] = d[1], this.__uniformMatrix[2] = d[2], this.__uniformMatrix[3] = d[3], this.__uniformMatrix[4] = d[4], this.__uniformMatrix[5] = d[5], this.__uniformMatrix[6] = d[6], this.__uniformMatrix[7] = d[7], this.__uniformMatrix[8] = d[8], this.__uniformMatrix[9] = d[9], this.__uniformMatrix[10] = d[10], this.__uniformMatrix[11] = d[11], this.__uniformMatrix[12] = d[12], this.__uniformMatrix[13] = d[13], this.__uniformMatrix[14] = d[14], this.__uniformMatrix[15] = d[15], fc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix) } else switch (this.type) { case 1: case 9: a.uniform2i(this.index, 0, 0); break; case 3: case 11: a.uniform4i(this.index, 0, 0, 0, 0); break; case 4: a.uniform1f(this.index, 0); break; case 5: a.uniform2f(this.index, 0, 0); break; case 6: a.uniform3f(this.index, 0, 0, 0); break; case 7: a.uniform4f(this.index, 0, 0, 0, 0); break; case 0: case 8: a.uniform1i(this.index, 0); break; case 2: case 10: a.uniform3i(this.index, 0, 0, 0); break; case 12: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; fc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = 0; this.__uniformMatrix[1] = 0; this.__uniformMatrix[2] = 0; this.__uniformMatrix[3] = 0; this.__uniformMatrix[4] = 0; this.__uniformMatrix[5] = 0; this.__uniformMatrix[6] = 0; this.__uniformMatrix[7] = 0; this.__uniformMatrix[8] = 0; fc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = 0, this.__uniformMatrix[1] = 0, this.__uniformMatrix[2] = 0, this.__uniformMatrix[3] = 0, this.__uniformMatrix[4] = 0, this.__uniformMatrix[5] = 0, this.__uniformMatrix[6] = 0, this.__uniformMatrix[7] = 0, this.__uniformMatrix[8] = 0, this.__uniformMatrix[9] = 0, this.__uniformMatrix[10] = 0, this.__uniformMatrix[11] = 0, this.__uniformMatrix[12] = 0, this.__uniformMatrix[13] = 0, this.__uniformMatrix[14] = 0, this.__uniformMatrix[15] = 0, fc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix) } else if (this.__useArray || null != b && b.length != this.__length) for (g = 0, f = this.__arrayLength; g < f;) h = g++, a.enableVertexAttribArray(this.index + h); else { for (var g = 0, f = this.__arrayLength; g < f;) { var h = g++; a.disableVertexAttribArray(this.index + h) } if (null != b) switch (this.type) { case 0: a.vertexAttrib1f(this.index, c[0] ? 1 : 0); break; case 1: a.vertexAttrib2f(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0); break; case 2: a.vertexAttrib3f(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0); break; case 3: a.vertexAttrib4f(this.index, c[0] ? 1 : 0, c[1] ? 1 : 0, c[2] ? 1 : 0, c[3] ? 1 : 0); break; case 4: a.vertexAttrib1f(this.index, d[0]); break; case 5: a.vertexAttrib2f(this.index, d[0], d[1]); break; case 6: a.vertexAttrib3f(this.index, d[0], d[1], d[2]); break; case 7: a.vertexAttrib4f(this.index, d[0], d[1], d[2], d[3]); break; case 8: a.vertexAttrib1f(this.index, e[0]); break; case 9: a.vertexAttrib2f(this.index, e[0], e[1]); break; case 10: a.vertexAttrib3f(this.index, e[0], e[1], e[2]); break; case 11: a.vertexAttrib4f(this.index, e[0], e[1], e[2], e[3]); break; case 12: a.vertexAttrib2f(this.index + 0, d[0], d[1]); a.vertexAttrib2f(this.index + 1, d[2], d[3]); break; case 16: a.vertexAttrib3f(this.index + 0, d[0], d[1], d[2]); a.vertexAttrib3f(this.index + 1, d[3], d[4], d[5]); a.vertexAttrib3f(this.index + 2, d[6], d[7], d[8]); break; case 20: a.vertexAttrib4f(this.index + 0, d[0], d[1], d[2], d[3]), a.vertexAttrib4f(this.index + 1, d[4], d[5], d[6], d[7]), a.vertexAttrib4f(this.index + 2, d[8], d[9], d[10], d[11]), a.vertexAttrib4f(this.index + 3, d[12], d[13], d[14], d[15]) } else switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, 0, 0); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, 0, 0, 0, 0); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, 0); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, 0, 0, 0); break; case 12: a.vertexAttrib2f(this.index + 0, 0, 0); a.vertexAttrib2f(this.index + 1, 0, 0); break; case 16: a.vertexAttrib3f(this.index + 0, 0, 0, 0); a.vertexAttrib3f(this.index + 1, 0, 0, 0); a.vertexAttrib3f(this.index + 2, 0, 0, 0); break; case 20: a.vertexAttrib4f(this.index + 0, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 1, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 2, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 3, 0, 0, 0, 0) } } }, __updateGLFromBuffer: function (a, b, c, d, e) { a = a.gl; if (this.__isUniform) { if (d >= this.__length) switch (this.type) { case 1: case 9: a.uniform2i(this.index, b[c] | 0, b[c + 1] | 0); break; case 3: case 11: a.uniform4i(this.index, b[c] | 0, b[c + 1] | 0, b[c + 2] | 0, b[c + 3] | 0); break; case 4: a.uniform1f(this.index, b[c]); break; case 5: a.uniform2f(this.index, b[c], b[c + 1]); break; case 6: a.uniform3f(this.index, b[c], b[c + 1], b[c + 2]); break; case 7: a.uniform4f(this.index, b[c], b[c + 1], b[c + 2], b[c + 3]); break; case 0: case 8: a.uniform1i(this.index, b[c] | 0); break; case 2: case 10: a.uniform3i(this.index, b[c] | 0, b[c + 1] | 0, b[c + 2] | 0); break; case 12: this.__uniformMatrix[0] = b[c]; this.__uniformMatrix[1] = b[c + 1]; this.__uniformMatrix[2] = b[c + 2]; this.__uniformMatrix[3] = b[c + 3]; fc.uniformMatrix2fv(a, this.index, !1, this.__uniformMatrix); break; case 16: this.__uniformMatrix[0] = b[c]; this.__uniformMatrix[1] = b[c + 1]; this.__uniformMatrix[2] = b[c + 2]; this.__uniformMatrix[3] = b[c + 3]; this.__uniformMatrix[4] = b[c + 4]; this.__uniformMatrix[5] = b[c + 5]; this.__uniformMatrix[6] = b[c + 6]; this.__uniformMatrix[7] = b[c + 7]; this.__uniformMatrix[8] = b[c + 8]; fc.uniformMatrix3fv(a, this.index, !1, this.__uniformMatrix); break; case 20: this.__uniformMatrix[0] = b[c], this.__uniformMatrix[1] = b[c + 1], this.__uniformMatrix[2] = b[c + 2], this.__uniformMatrix[3] = b[c + 3], this.__uniformMatrix[4] = b[c + 4], this.__uniformMatrix[5] = b[c + 5], this.__uniformMatrix[6] = b[c + 6], this.__uniformMatrix[7] = b[c + 7], this.__uniformMatrix[8] = b[c + 8], this.__uniformMatrix[9] = b[c + 9], this.__uniformMatrix[10] = b[c + 10], this.__uniformMatrix[11] = b[c + 11], this.__uniformMatrix[12] = b[c + 12], this.__uniformMatrix[13] = b[c + 13], this.__uniformMatrix[14] = b[c + 14], this.__uniformMatrix[15] = b[c + 15], fc.uniformMatrix4fv(a, this.index, !1, this.__uniformMatrix) } } else if (this.__internal || 0 != d && d != this.__length) { b = a.FLOAT; this.__isBool ? b = a.INT : this.__isInt && (b = a.INT); g = 0; for (f = this.__arrayLength; g < f;) h = g++, a.enableVertexAttribArray(this.index + h); if (0 < d) for (g = 0, f = this.__arrayLength; g < f;) h = g++, a.vertexAttribPointer(this.index + h, this.__length, b, !1, 4 * this.__length, 4 * (c + e * this.__length + h * this.__arrayLength)) } else { for (var g = 0, f = this.__arrayLength; g < f;) { var h = g++; a.disableVertexAttribArray(this.index + h) } if (0 < d) switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, b[c], b[c + 1]); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, b[c], b[c + 1], b[c + 2], b[c + 3]); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, b[c]); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, b[c], b[c + 1], b[c + 2]); break; case 12: a.vertexAttrib2f(this.index + 0, b[c], b[c + 1]); a.vertexAttrib2f(this.index + 1, b[c + 2], b[c + 2 + 1]); break; case 16: a.vertexAttrib3f(this.index + 0, b[c], b[c + 1], b[c + 2]); a.vertexAttrib3f(this.index + 1, b[c + 3], b[c + 3 + 1], b[c + 3 + 2]); a.vertexAttrib3f(this.index + 2, b[c + 6], b[c + 6 + 1], b[c + 6 + 2]); break; case 20: a.vertexAttrib4f(this.index + 0, b[c], b[c + 1], b[c + 2], b[c + 3]), a.vertexAttrib4f(this.index + 1, b[c + 4], b[c + 4 + 1], b[c + 4 + 2], b[c + 4 + 3]), a.vertexAttrib4f(this.index + 2, b[c + 8], b[c + 8 + 1], b[c + 8 + 2], b[c + 8 + 3]), a.vertexAttrib4f(this.index + 3, b[c + 12], b[c + 12 + 1], b[c + 12 + 2], b[c + 12 + 3]) } else switch (this.type) { case 1: case 5: case 9: a.vertexAttrib2f(this.index, 0, 0); break; case 3: case 7: case 11: a.vertexAttrib4f(this.index, 0, 0, 0, 0); break; case 0: case 4: case 8: a.vertexAttrib1f(this.index, 0); break; case 2: case 6: case 10: a.vertexAttrib3f(this.index, 0, 0, 0); break; case 12: a.vertexAttrib2f(this.index + 0, 0, 0); a.vertexAttrib2f(this.index + 1, 0, 0); break; case 16: a.vertexAttrib3f(this.index + 0, 0, 0, 0); a.vertexAttrib3f(this.index + 1, 0, 0, 0); a.vertexAttrib3f(this.index + 2, 0, 0, 0); break; case 20: a.vertexAttrib4f(this.index + 0, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 1, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 2, 0, 0, 0, 0), a.vertexAttrib4f(this.index + 3, 0, 0, 0, 0) } } }, set_name: function (a) { this.__internal = T.startsWith(a, "openfl_"); return this.name = a }, __class__: Qi, __properties__: {set_name: "set_name"} }; var Se = function () { Ga.call(this); this.__drawableType = 3 }; k["openfl.display.Shape"] = Se; Se.__name__ = "openfl.display.Shape"; Se.__super__ = Ga; Se.prototype = u(Ga.prototype, { get_graphics: function () { null == this.__graphics && (this.__graphics = new $e(this)); return this.__graphics }, __class__: Se, __properties__: u(Ga.prototype.__properties__, {get_graphics: "get_graphics"}) }); var Ti = function (a, b, c, d) { Bb.call(this); this.__drawableType = 6; this.enabled = !0; this.trackAsMenu = !1; this.useHandCursor = !0; this.__upState = null != a ? a : new Ga; this.__overState = b; this.__downState = c; this.set_hitTestState(null != d ? d : new Ga); this.addEventListener("mouseDown", q(this, this.__this_onMouseDown)); this.addEventListener("mouseOut", q(this, this.__this_onMouseOut)); this.addEventListener("mouseOver", q(this, this.__this_onMouseOver)); this.addEventListener("mouseUp", q(this, this.__this_onMouseUp)); this.__tabEnabled = !0; this.set___currentState(this.__upState); null != Ti.__constructor && (a = Ti.__constructor, Ti.__constructor = null, a(this)) }; k["openfl.display.SimpleButton"] = Ti; Ti.__name__ = "openfl.display.SimpleButton"; Ti.__super__ = Bb; Ti.prototype = u(Bb.prototype, { enabled: null, trackAsMenu: null, useHandCursor: null, __currentState: null, __downState: null, __hitTestState: null, __ignoreEvent: null, __overState: null, __previousStates: null, __soundTransform: null, __upState: null, __getBounds: function (a, b) { Bb.prototype.__getBounds.call(this, a, b); var c = Ja.__pool.get(), d = this.__currentState.__transform; c.a = d.a * b.a + d.b * b.c; c.b = d.a * b.b + d.b * b.d; c.c = d.c * b.a + d.d * b.c; c.d = d.c * b.b + d.d * b.d; c.tx = d.tx * b.a + d.ty * b.c + b.tx; c.ty = d.tx * b.b + d.ty * b.d + b.ty; this.__currentState.__getBounds(a, c); Ja.__pool.release(c) }, __getRenderBounds: function (a, b) { if (null != this.__scrollRect) Bb.prototype.__getRenderBounds.call(this, a, b); else { Bb.prototype.__getBounds.call(this, a, b); var c = Ja.__pool.get(), d = this.__currentState.__transform; c.a = d.a * b.a + d.b * b.c; c.b = d.a * b.b + d.b * b.d; c.c = d.c * b.a + d.d * b.c; c.d = d.c * b.b + d.d * b.d; c.tx = d.tx * b.a + d.ty * b.c + b.tx; c.ty = d.tx * b.b + d.ty * b.d + b.ty; this.__currentState.__getRenderBounds(a, c); Ja.__pool.release(c) } }, __getCursor: function () { return this.useHandCursor && !this.__ignoreEvent && this.enabled ? "button" : null }, __hitTest: function (a, b, c, d, e, g) { var f = !1; null != this.get_hitTestState() ? this.get_hitTestState().__hitTest(a, b, c, d, e, g) && (null != d && (0 == d.length ? d[0] = g : d[d.length - 1] = g), f = !e || this.mouseEnabled) : null != this.__currentState && (!g.get_visible() || this.__isMask || e && !this.mouseEnabled || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b) ? f = !1 : this.__currentState.__hitTest(a, b, c, d, e, g) && (f = e)); if (null != d) for (; 1 < d.length && d[d.length - 1] == d[d.length - 2];) d.pop(); return f }, __hitTestMask: function (a, b) { var c = !1; this.__currentState.__hitTestMask(a, b) && (c = !0); return c }, __setStageReference: function (a) { Bb.prototype.__setStageReference.call(this, a); null != this.__currentState && this.__currentState.__setStageReference(a); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__setStageReference(a) }, __setTransformDirty: function () { Bb.prototype.__setTransformDirty.call(this); null != this.__currentState && this.__currentState.__setTransformDirty(); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__setTransformDirty() }, __update: function (a, b) { Bb.prototype.__update.call(this, a, b); b && (null != this.__currentState && this.__currentState.__update(a, !0), null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__update(a, !0)) }, __updateTransforms: function (a) { Bb.prototype.__updateTransforms.call(this, a); null != this.__currentState && this.__currentState.__updateTransforms(); null != this.get_hitTestState() && this.get_hitTestState() != this.__currentState && this.get_hitTestState().__updateTransforms() }, get_downState: function () { return this.__downState }, set_downState: function (a) { null != this.__downState && this.__currentState == this.__downState && this.set___currentState(this.__downState); return this.__downState = a }, get_hitTestState: function () { return this.__hitTestState }, set_hitTestState: function (a) { null != this.__hitTestState && this.__hitTestState != a && this.__hitTestState != this.get_downState() && this.__hitTestState != this.get_upState() && this.__hitTestState != this.get_overState() && (this.__hitTestState.__renderParent = null); null != a && (a.__renderParent = this, a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty())); return this.__hitTestState = a }, get_overState: function () { return this.__overState }, set_overState: function (a) { null != this.__overState && this.__currentState == this.__overState && this.set___currentState(a); return this.__overState = a }, get_soundTransform: function () { null == this.__soundTransform && (this.__soundTransform = new of); return new of(this.__soundTransform.volume, this.__soundTransform.pan) }, set_soundTransform: function (a) { this.__soundTransform = new of(a.volume, a.pan); return a }, get_upState: function () { return this.__upState }, set_upState: function (a) { null != this.__upState && this.__currentState == this.__upState && this.set___currentState(a); return this.__upState = a }, set___currentState: function (a) { null != this.__currentState && this.__currentState != this.get_hitTestState() && (this.__currentState.__renderParent = null); null != a && null != a.parent && a.parent.removeChild(a); Ga.__supportDOM && null == this.__previousStates && (this.__previousStates = Eb.toObjectVector(null)); if (a != this.__currentState) { if (Ga.__supportDOM) { null != this.__currentState && (this.__currentState.__setStageReference(null), this.__previousStates.push(this.__currentState)); var b = this.__previousStates.indexOf(a, 0); -1 < b && this.__previousStates.splice(b, 1) } null != a && (a.__renderParent = this, a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty())); this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) } return this.__currentState = a }, __this_onMouseDown: function (a) { this.enabled && this.set___currentState(this.get_downState()) }, __this_onMouseOut: function (a) { this.__ignoreEvent = !1; this.get_upState() != this.__currentState && this.set___currentState(this.get_upState()) }, __this_onMouseOver: function (a) { a.buttonDown && (this.__ignoreEvent = !0); this.get_overState() != this.__currentState && null != this.get_overState() && !this.__ignoreEvent && this.enabled && this.set___currentState(this.get_overState()) }, __this_onMouseUp: function (a) { this.__ignoreEvent = !1; this.enabled && null != this.get_overState() ? this.set___currentState(this.get_overState()) : this.set___currentState(this.get_upState()) }, __class__: Ti, __properties__: u(Bb.prototype.__properties__, { set___currentState: "set___currentState", set_upState: "set_upState", get_upState: "get_upState", set_soundTransform: "set_soundTransform", get_soundTransform: "get_soundTransform", set_overState: "set_overState", get_overState: "get_overState", set_hitTestState: "set_hitTestState", get_hitTestState: "get_hitTestState", set_downState: "set_downState", get_downState: "get_downState" }) }); var Ui = function (a, b) { ab.call(this); this.__drawableType = 5; this.set_name(null); this.__color = -1; this.__colorSplit = [255, 255, 255]; this.__colorString = "#FFFFFF"; this.__contentsScaleFactor = 1; this.__deltaTime = this.__currentTabOrderIndex = 0; this.__displayState = 2; this.__logicalHeight = this.__logicalWidth = this.__lastClickTime = this.__mouseY = this.__mouseX = 0; this.__displayMatrix = new Ja; this.__displayRect = new ba; this.__renderDirty = !0; this.stage3Ds = Eb.toObjectVector(null); this.stage3Ds.push(new bi(this)); this.stage3Ds.push(new bi(this)); this.stage3Ds.push(new bi(this)); this.stage3Ds.push(new bi(this)); this.stage = this; this.align = 6; this.allowsFullScreenInteractive = this.allowsFullScreen = !0; this.__quality = 1; this.__scaleMode = 2; this.showDefaultContextMenu = !0; this.softKeyboardRect = new ba; this.stageFocusRect = !0; this.__macKeyboard = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent) || /Mac/.test(navigator.platform); this.__clearBeforeRender = !0; this.__forceRender = !1; this.__stack = []; this.__rollOutStack = []; this.__mouseOutStack = []; this.__touchData = new eb; this.application = a.application; this.window = a; this.set_color(b); this.__contentsScaleFactor = a.__scale; this.__wasFullscreen = a.__fullscreen; this.__resize(); null == Oa.get_current().stage && this.stage.addChild(Oa.get_current()) }; k["openfl.display.Stage"] = Ui; Ui.__name__ = "openfl.display.Stage"; Ui.__interfaces__ = [Pj]; Ui.__super__ = ab; Ui.prototype = u(ab.prototype, { align: null, allowsFullScreen: null, allowsFullScreenInteractive: null, application: null, context3D: null, showDefaultContextMenu: null, softKeyboardRect: null, stage3Ds: null, stageFocusRect: null, stageHeight: null, stageWidth: null, window: null, __cacheFocus: null, __clearBeforeRender: null, __color: null, __colorSplit: null, __colorString: null, __contentsScaleFactor: null, __currentTabOrderIndex: null, __deltaTime: null, __dirty: null, __displayMatrix: null, __displayRect: null, __displayState: null, __dragBounds: null, __dragObject: null, __dragOffsetX: null, __dragOffsetY: null, __focus: null, __forceRender: null, __fullscreen: null, __fullScreenSourceRect: null, __invalidated: null, __lastClickTime: null, __logicalWidth: null, __logicalHeight: null, __macKeyboard: null, __mouseDownLeft: null, __mouseDownMiddle: null, __mouseDownRight: null, __mouseOutStack: null, __mouseOverTarget: null, __mouseX: null, __mouseY: null, __pendingMouseEvent: null, __pendingMouseX: null, __pendingMouseY: null, __quality: null, __renderer: null, __rendering: null, __rollOutStack: null, __scaleMode: null, __stack: null, __touchData: null, __transparent: null, __wasDirty: null, __wasFullscreen: null, __primaryTouch: null, invalidate: function () { this.__renderDirty = this.__invalidated = !0 }, localToGlobal: function (a) { return a.clone() }, __broadcastEvent: function (a) { if (Object.prototype.hasOwnProperty.call(Ga.__broadcastEvents.h, a.type)) for (var b = Ga.__broadcastEvents.h[a.type], c = 0; c < b.length;) { var d = b[c]; ++c; if (d.stage == this || null == d.stage) try { d.__dispatch(a) } catch (e) { ra.lastError = e, d = I.caught(e).unwrap(), this.__handleError(d) } } }, __createRenderer: function () { var a = 1; 1 < this.window.__scale && (a = this.window.devicePixelRatio || 1); var b = this.window.__width * this.window.__scale | 0, c = this.window.__height * this.window.__scale | 0; switch (this.window.context.type) { case "canvas": this.__renderer = new Fg(this.window.context.canvas2D); w.__cast(this.__renderer, Fg).pixelRatio = a; break; case "dom": this.__renderer = new Pi(this.window.context.dom); w.__cast(this.__renderer, Pi).pixelRatio = a; break; case "opengl": case "opengles": case "webgl": this.context3D = new cc(this), this.context3D.configureBackBuffer(b, c, 0, !0, !0, !0), this.context3D.present(), this.__renderer = new Ib(this.context3D) } null != this.__renderer && (a = this.get_quality(), this.__renderer.__allowSmoothing = 2 != a, this.__renderer.__worldTransform = this.__displayMatrix, this.__renderer.__stage = this, this.__renderer.__resize(b, c)) }, __dispatchEvent: function (a) { try { return ab.prototype.__dispatchEvent.call(this, a) } catch (b) { return ra.lastError = b, a = I.caught(b).unwrap(), this.__handleError(a), !1 } }, __dispatchPendingMouseEvent: function () { this.__pendingMouseEvent && (this.__onMouse("mouseMove", this.__pendingMouseX, this.__pendingMouseY, 0), this.__pendingMouseEvent = !1) }, __dispatchStack: function (a, b) { try { var c = b.length; if (0 == c) { a.eventPhase = 2; var d = a.target; d.__dispatch(a) } else { a.eventPhase = 1; a.target = b[b.length - 1]; for (var e = 0, g = c - 1; e < g;) { var f = e++; b[f].__dispatch(a); if (a.__isCanceled) return } a.eventPhase = 2; d = a.target; d.__dispatch(a); if (!a.__isCanceled && a.bubbles) for (a.eventPhase = 3, f = c - 2; 0 <= f;) { b[f].__dispatch(a); if (a.__isCanceled) break; --f } } } catch (v) { ra.lastError = v, a = I.caught(v).unwrap(), this.__handleError(a) } }, __dispatchTarget: function (a, b) { try { return a.__dispatchEvent(b) } catch (c) { return ra.lastError = c, a = I.caught(c).unwrap(), this.__handleError(a), !1 } }, __drag: function (a) { var b = this.__dragObject.parent; if (null != b) { b = b.__getWorldTransform(); var c = b.a * b.d - b.b * b.c; if (0 == c) a.x = -b.tx, a.y = -b.ty; else { var d = 1 / c * (b.c * (b.ty - a.y) + b.d * (a.x - b.tx)); a.y = 1 / c * (b.a * (a.y - b.ty) + b.b * (b.tx - a.x)); a.x = d } } b = a.x + this.__dragOffsetX; a = a.y + this.__dragOffsetY; null != this.__dragBounds && (b < this.__dragBounds.x ? b = this.__dragBounds.x : b > this.__dragBounds.get_right() && (b = this.__dragBounds.get_right()), a < this.__dragBounds.y ? a = this.__dragBounds.y : a > this.__dragBounds.get_bottom() && (a = this.__dragBounds.get_bottom())); this.__dragObject.set_x(b); this.__dragObject.set_y(a) }, __getInteractive: function (a) { null != a && a.push(this); return !0 }, __globalToLocal: function (a, b) { a != b && b.copyFrom(a); return b }, __handleError: function (a) { var b = new Vi("uncaughtError", !0, !0, a); try { Oa.get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(b) } catch (d) { ra.lastError = d } if (!b.__preventDefault) { b = pf.toString(pf.exceptionStack()); console.log(b); b = z.string(a); console.log(b); try { if (null != a && Object.prototype.hasOwnProperty.call(a, "stack") && null != a.stack && "" != a.stack) console.log(a.stack), a.stack = a.stack; else { var c = pf.toString(pf.callStack()); console.log(c) } } catch (d) { ra.lastError = d } throw a; } }, __onKey: function (a, b, c) { this.__dispatchPendingMouseEvent(); Qb.__altKey = Gb.get_altKey(c); Qb.__commandKey = Gb.get_metaKey(c); Qb.__ctrlKey = Gb.get_ctrlKey(c); Qb.__shiftKey = Gb.get_shiftKey(c); var d = []; null == this.__focus ? this.__getInteractive(d) : this.__focus.__getInteractive(d); if (0 < d.length) { switch (b) { case 1073741908: case 1073741909: case 1073741910: case 1073741911: case 1073741912: case 1073741913: case 1073741914: case 1073741915: case 1073741916: case 1073741917: case 1073741918: case 1073741919: case 1073741920: case 1073741921: case 1073741922: case 1073741923: case 1073742044: var e = 3; break; case 1073742048: case 1073742049: case 1073742050: case 1073742051: e = 1; break; case 1073742052: case 1073742053: case 1073742054: case 1073742055: e = 2; break; default: e = 0 } switch (b) { case 8: b = 8; break; case 9: b = 9; break; case 13: b = 13; break; case 27: b = 27; break; case 32: b = 32; break; case 33: b = 49; break; case 34: b = 222; break; case 35: b = 51; break; case 36: b = 52; break; case 37: b = 53; break; case 38: b = 55; break; case 39: b = 222; break; case 40: b = 57; break; case 41: b = 48; break; case 42: b = 56; break; case 44: b = 188; break; case 45: b = 189; break; case 46: b = 190; break; case 47: b = 191; break; case 48: b = 48; break; case 49: b = 49; break; case 50: b = 50; break; case 51: b = 51; break; case 52: b = 52; break; case 53: b = 53; break; case 54: b = 54; break; case 55: b = 55; break; case 56: b = 56; break; case 57: b = 57; break; case 58: b = 186; break; case 59: b = 186; break; case 60: b = 60; break; case 61: b = 187; break; case 62: b = 190; break; case 63: b = 191; break; case 64: b = 50; break; case 91: b = 219; break; case 92: b = 220; break; case 93: b = 221; break; case 94: b = 54; break; case 95: b = 189; break; case 96: b = 192; break; case 97: b = 65; break; case 98: b = 66; break; case 99: b = 67; break; case 100: b = 68; break; case 101: b = 69; break; case 102: b = 70; break; case 103: b = 71; break; case 104: b = 72; break; case 105: b = 73; break; case 106: b = 74; break; case 107: b = 75; break; case 108: b = 76; break; case 109: b = 77; break; case 110: b = 78; break; case 111: b = 79; break; case 112: b = 80; break; case 113: b = 81; break; case 114: b = 82; break; case 115: b = 83; break; case 116: b = 84; break; case 117: b = 85; break; case 118: b = 86; break; case 119: b = 87; break; case 120: b = 88; break; case 121: b = 89; break; case 122: b = 90; break; case 127: b = 46; break; case 1073741881: b = 20; break; case 1073741882: b = 112; break; case 1073741883: b = 113; break; case 1073741884: b = 114; break; case 1073741885: b = 115; break; case 1073741886: b = 116; break; case 1073741887: b = 117; break; case 1073741888: b = 118; break; case 1073741889: b = 119; break; case 1073741890: b = 120; break; case 1073741891: b = 121; break; case 1073741892: b = 122; break; case 1073741893: b = 123; break; case 1073741894: b = 301; break; case 1073741895: b = 145; break; case 1073741896: b = 19; break; case 1073741897: b = 45; break; case 1073741898: b = 36; break; case 1073741899: b = 33; break; case 1073741901: b = 35; break; case 1073741902: b = 34; break; case 1073741903: b = 39; break; case 1073741904: b = 37; break; case 1073741905: b = 40; break; case 1073741906: b = 38; break; case 1073741907: b = 144; break; case 1073741908: b = 111; break; case 1073741909: b = 106; break; case 1073741910: b = 109; break; case 1073741911: b = 107; break; case 1073741912: b = 13; break; case 1073741913: b = 97; break; case 1073741914: b = 98; break; case 1073741915: b = 99; break; case 1073741916: b = 100; break; case 1073741917: b = 101; break; case 1073741918: b = 102; break; case 1073741919: b = 103; break; case 1073741920: b = 104; break; case 1073741921: b = 105; break; case 1073741922: b = 96; break; case 1073741923: b = 110; break; case 1073741925: b = 302; break; case 1073741928: b = 124; break; case 1073741929: b = 125; break; case 1073741930: b = 126; break; case 1073741982: b = 13; break; case 1073742044: b = 110; break; case 1073742048: b = 17; break; case 1073742049: b = 16; break; case 1073742050: b = 18; break; case 1073742051: b = 15; break; case 1073742052: b = 17; break; case 1073742053: b = 16; break; case 1073742054: b = 18; break; case 1073742055: b = 15 } var g = Fa.__getCharCode(b, Gb.get_shiftKey(c)); if ("keyUp" == a && (32 == b || 13 == b) && this.__focus instanceof Ca) { var f = w.__cast(this.__focus, Ca); if (f.get_buttonMode() && 1 == f.focusRect) { var h = na.__pool.get(), p = na.__pool.get(); p.x = this.__mouseX; p.y = this.__mouseY; f = Qb.__create("click", 0, this.__mouseX, this.__mouseY, f.__globalToLocal(p, h), f); this.__dispatchStack(f, d); na.__pool.release(p); na.__pool.release(h) } } e = new ci(a, !0, !0, g, b, e, this.__macKeyboard ? Gb.get_ctrlKey(c) || Gb.get_metaKey(c) : Gb.get_ctrlKey(c), Gb.get_altKey(c), Gb.get_shiftKey(c), Gb.get_ctrlKey(c), Gb.get_metaKey(c)); d.reverse(); this.__dispatchStack(e, d); if (e.__preventDefault) "keyDown" == a ? this.window.onKeyDown.cancel() : this.window.onKeyUp.cancel(); else if ("keyDown" == a && 9 == b) { d = []; this.__tabTest(d); b = -1; a = null; e = Gb.get_shiftKey(c) ? -1 : 1; if (1 < d.length) { me.sort(d, function (a, b) { return a.get_tabIndex() - b.get_tabIndex() }); if (-1 != d[d.length - 1].get_tabIndex()) for (h = 0; h < d.length;) { if (-1 < d[h].get_tabIndex()) { 0 < h && d.splice(0, h); break } ++h } if (null != this.get_focus()) { h = this.get_focus(); for (g = d.indexOf(h); -1 == g && null != h;) { b = h.parent; if (null != b && b.get_tabChildren()) { h = b.getChildIndex(h); if (-1 == h) { h = b; continue } for (h += e; Gb.get_shiftKey(c) ? 0 <= h : h < b.get_numChildren();) { p = b.getChildAt(h); if (p instanceof Bb && (g = w.__cast(p, Bb), g = d.indexOf(g), -1 != g)) { e = 0; break } h += e } } else Gb.get_shiftKey(c) && (g = d.indexOf(b), -1 != g && (e = 0)); h = b } b = 0 > g ? 0 : g + e } else b = this.__currentTabOrderIndex } else 1 == d.length && (a = d[0], this.get_focus() == a && (a = null)); g = 0 <= b && b < d.length; 1 == d.length || 0 == d.length && null != this.get_focus() ? b = 0 : 1 < d.length && (0 > b && (b += d.length), b %= d.length, a = d[b], a == this.get_focus() && (b += e, 0 > b && (b += d.length), b %= d.length, a = d[b])); e = null; null != this.get_focus() && (e = new bg("keyFocusChange", !0, !0, a, Gb.get_shiftKey(c), 0), d = [], this.get_focus().__getInteractive(d), d.reverse(), this.__dispatchStack(e, d), e.isDefaultPrevented() && this.window.onKeyDown.cancel()); null != e && e.isDefaultPrevented() || (this.__currentTabOrderIndex = b, null != a && this.set_focus(a), g && this.window.onKeyDown.cancel()) } } }, __onLimeCreateWindow: function (a) { if (this.window == a) { var b = q(this, this.__onLimeWindowActivate); a.onActivate.add(function () { b(a) }); var c = q(this, this.__onLimeWindowClose); a.onClose.add(function () { c(a) }, !1, -9E3); var d = q(this, this.__onLimeWindowDeactivate); a.onDeactivate.add(function () { d(a) }); var e = q(this, this.__onLimeWindowDropFile); var g = function (b) { e(a, b) }; a.onDropFile.add(g); var f = q(this, this.__onLimeWindowEnter); a.onEnter.add(function () { f(a) }); var h = q(this, this.__onLimeWindowExpose); a.onExpose.add(function () { h(a) }); var p = q(this, this.__onLimeWindowFocusIn); a.onFocusIn.add(function () { p(a) }); var m = q(this, this.__onLimeWindowFocusOut); a.onFocusOut.add(function () { m(a) }); var l = q(this, this.__onLimeWindowFullscreen); a.onFullscreen.add(function () { l(a) }); var n = q(this, this.__onLimeKeyDown); g = function (b, c) { n(a, b, c) }; a.onKeyDown.add(g); var k = q(this, this.__onLimeKeyUp); g = function (b, c) { k(a, b, c) }; a.onKeyUp.add(g); var t = q(this, this.__onLimeWindowLeave); a.onLeave.add(function () { t(a) }); var w = q(this, this.__onLimeWindowMinimize); a.onMinimize.add(function () { w(a) }); var u = q(this, this.__onLimeMouseDown); g = function (b, c, d) { u(a, b, c, d) }; a.onMouseDown.add(g); var x = q(this, this.__onLimeMouseMove); g = function (b, c) { x(a, b, c) }; a.onMouseMove.add(g); var A = q(this, this.__onLimeMouseMoveRelative); g = function (b, c) { A(a, b, c) }; a.onMouseMoveRelative.add(g); var N = q(this, this.__onLimeMouseUp); g = function (b, c, d) { N(a, b, c, d) }; a.onMouseUp.add(g); var J = q(this, this.__onLimeMouseWheel); g = function (b, c, d) { J(a, b, c, d) }; a.onMouseWheel.add(g); var z = q(this, this.__onLimeWindowMove); g = function (b, c) { z(a, b, c) }; a.onMove.add(g); a.onRender.add(q(this, this.__onLimeRender)); a.onRenderContextLost.add(q(this, this.__onLimeRenderContextLost)); a.onRenderContextRestored.add(q(this, this.__onLimeRenderContextRestored)); var B = q(this, this.__onLimeWindowResize); g = function (b, c) { B(a, b, c) }; a.onResize.add(g); var ma = q(this, this.__onLimeWindowRestore); a.onRestore.add(function () { ma(a) }); var C = q(this, this.__onLimeTextEdit); g = function (b, c, d) { C(a, b, c, d) }; a.onTextEdit.add(g); var K = q(this, this.__onLimeTextInput); g = function (b) { K(a, b) }; a.onTextInput.add(g); this.__onLimeWindowCreate(a) } }, __onLimeGamepadAxisMove: function (a, b, c) { try { dc.__onGamepadAxisMove(a, b, c) } catch (d) { ra.lastError = d, a = I.caught(d).unwrap(), this.__handleError(a) } }, __onLimeGamepadButtonDown: function (a, b) { try { dc.__onGamepadButtonDown(a, b) } catch (c) { ra.lastError = c, a = I.caught(c).unwrap(), this.__handleError(a) } }, __onLimeGamepadButtonUp: function (a, b) { try { dc.__onGamepadButtonUp(a, b) } catch (c) { ra.lastError = c, a = I.caught(c).unwrap(), this.__handleError(a) } }, __onLimeGamepadConnect: function (a) { try { dc.__onGamepadConnect(a) } catch (r) { ra.lastError = r; var b = I.caught(r).unwrap(); this.__handleError(b) } var c = q(this, this.__onLimeGamepadAxisMove); b = function (b, d) { c(a, b, d) }; a.onAxisMove.add(b); var d = q(this, this.__onLimeGamepadButtonDown); b = function (b) { d(a, b) }; a.onButtonDown.add(b); var e = q(this, this.__onLimeGamepadButtonUp); b = function (b) { e(a, b) }; a.onButtonUp.add(b); var g = q(this, this.__onLimeGamepadDisconnect); a.onDisconnect.add(function () { g(a) }) }, __onLimeGamepadDisconnect: function (a) { try { dc.__onGamepadDisconnect(a) } catch (b) { ra.lastError = b, a = I.caught(b).unwrap(), this.__handleError(a) } }, __onLimeKeyDown: function (a, b, c) { null != this.window && this.window == a && this.__onKey("keyDown", b, c) }, __onLimeKeyUp: function (a, b, c) { null != this.window && this.window == a && this.__onKey("keyUp", b, c) }, __onLimeModuleExit: function (a) { null != this.window && (a = new oa("deactivate"), this.__broadcastEvent(a)) }, __onLimeMouseDown: function (a, b, c, d) { if (null != this.window && this.window == a) { this.__dispatchPendingMouseEvent(); switch (d) { case 1: var e = "middleMouseDown"; break; case 2: e = "rightMouseDown"; break; default: e = "mouseDown" } this.__onMouse(e, b * a.__scale | 0, c * a.__scale | 0, d); this.showDefaultContextMenu || 2 != d || a.onMouseDown.cancel() } }, __onLimeMouseMove: function (a, b, c) { null != this.window && this.window == a && (this.__pendingMouseEvent = !0, this.__pendingMouseX = b * a.__scale | 0, this.__pendingMouseY = c * a.__scale | 0) }, __onLimeMouseMoveRelative: function (a, b, c) { }, __onLimeMouseUp: function (a, b, c, d) { if (null != this.window && this.window == a) { this.__dispatchPendingMouseEvent(); switch (d) { case 1: var e = "middleMouseUp"; break; case 2: e = "rightMouseUp"; break; default: e = "mouseUp" } this.__onMouse(e, b * a.__scale | 0, c * a.__scale | 0, d); this.showDefaultContextMenu || 2 != d || a.onMouseUp.cancel() } }, __onLimeMouseWheel: function (a, b, c, d) { null != this.window && this.window == a && (this.__dispatchPendingMouseEvent(), d == Ch.PIXELS ? this.__onMouseWheel(b * a.__scale | 0, c * a.__scale | 0, d) : this.__onMouseWheel(b | 0, c | 0, d)) }, __onLimeRender: function (a) { if (!this.__rendering) { this.__rendering = !0; this.__broadcastEvent(new oa("enterFrame")); this.__broadcastEvent(new oa("frameConstructed")); this.__broadcastEvent(new oa("exitFrame")); this.__renderable = !0; this.__enterFrame(this.__deltaTime); this.__deltaTime = 0; a = null != this.__renderer && (this.__renderDirty || this.__forceRender); if (this.__invalidated && a) { this.__invalidated = !1; var b = new oa("render"); this.__broadcastEvent(b) } this.__update(!1, !0); if (null != this.__renderer) { if (null != this.context3D) { for (b = this.stage3Ds.iterator(); b.hasNext();) { var c = b.next(); this.context3D.__renderStage3D(c) } this.context3D.__present && (a = !0) } a ? (null == this.context3D && this.__renderer.__clear(), this.__renderer.__render(this)) : null == this.context3D && this.window.onRender.cancel(); null != this.context3D && (this.context3D.__present ? (this.__renderer.__cleared || this.__renderer.__clear(), this.context3D.__present = !1, this.context3D.__cleared = !1) : this.window.onRender.cancel()); this.__renderer.__cleared = !1 } this.__rendering = !1 } }, __onLimeRenderContextLost: function () { this.context3D = this.__renderer = null; for (var a = this.stage3Ds.iterator(); a.hasNext();) a.next().__lostContext() }, __onLimeRenderContextRestored: function (a) { this.__createRenderer(); for (a = this.stage3Ds.iterator(); a.hasNext();) a.next().__restoreContext() }, __onLimeTextEdit: function (a, b, c, d) { }, __onLimeTextInput: function (a, b) { if (null != this.window && this.window == a) { var c = []; null == this.__focus ? this.__getInteractive(c) : this.__focus.__getInteractive(c); b = new kf("textInput", !0, !0, b); 0 < c.length ? (c.reverse(), this.__dispatchStack(b, c)) : this.__dispatchEvent(b); b.isDefaultPrevented() && a.onTextInput.cancel() } }, __onLimeTouchCancel: function (a) { var b = this.__primaryTouch == a; b && (this.__primaryTouch = null); this.__onTouch("touchEnd", a, b) }, __onLimeTouchMove: function (a) { this.__onTouch("touchMove", a, this.__primaryTouch == a) }, __onLimeTouchEnd: function (a) { var b = this.__primaryTouch == a; b && (this.__primaryTouch = null); this.__onTouch("touchEnd", a, b) }, __onLimeTouchStart: function (a) { null == this.__primaryTouch && (this.__primaryTouch = a); this.__onTouch("touchBegin", a, this.__primaryTouch == a) }, __onLimeUpdate: function (a) { this.__deltaTime = a; this.__dispatchPendingMouseEvent() }, __onLimeWindowActivate: function (a) { }, __onLimeWindowClose: function (a) { this.window == a && (this.window = null); this.__primaryTouch = null; a = new oa("deactivate"); this.__broadcastEvent(a) }, __onLimeWindowCreate: function (a) { null != this.window && this.window == a && null != a.context && this.__createRenderer() }, __onLimeWindowDeactivate: function (a) { }, __onLimeWindowDropFile: function (a, b) { }, __onLimeWindowEnter: function (a) { }, __onLimeWindowExpose: function (a) { null != this.window && this.window == a && (this.__renderDirty = !0) }, __onLimeWindowFocusIn: function (a) { null != this.window && this.window == a && (this.__renderDirty = !0, a = new oa("activate"), this.__broadcastEvent(a), this.set_focus(this.__cacheFocus)) }, __onLimeWindowFocusOut: function (a) { null != this.window && this.window == a && (this.__primaryTouch = null, a = new oa("deactivate"), this.__broadcastEvent(a), a = this.get_focus(), this.set_focus(null), this.__cacheFocus = a, Qb.__altKey = !1, Qb.__commandKey = !1, Qb.__ctrlKey = !1, Qb.__shiftKey = !1) }, __onLimeWindowFullscreen: function (a) { null != this.window && this.window == a && (this.__resize(), this.__wasFullscreen || (this.__wasFullscreen = !0, 2 == this.__displayState && (this.__displayState = 1), this.__dispatchEvent(new gh("fullScreen", !1, !1, !0, !0)))) }, __onLimeWindowLeave: function (a) { null == this.window || this.window != a || Qb.__buttonDown || (this.__dispatchPendingMouseEvent(), a = new oa("mouseLeave"), this.__dispatchEvent(a)) }, __onLimeWindowMinimize: function (a) { }, __onLimeWindowMove: function (a, b, c) { }, __onLimeWindowResize: function (a, b, c) { null != this.window && this.window == a && (this.__resize(), this.__wasFullscreen && !a.__fullscreen && (this.__wasFullscreen = !1, this.__displayState = 2, this.__dispatchEvent(new gh("fullScreen", !1, !1, !1, !0)))) }, __onLimeWindowRestore: function (a) { null != this.window && this.window == a && this.__wasFullscreen && !a.__fullscreen && (this.__wasFullscreen = !1, this.__displayState = 2, this.__dispatchEvent(new gh("fullScreen", !1, !1, !1, !0))) }, __onMouse: function (a, b, c, d) { if (!(2 < d)) { var e = na.__pool.get(); e.setTo(b, c); b = this.__displayMatrix; c = b.a * b.d - b.b * b.c; if (0 == c) e.x = -b.tx, e.y = -b.ty; else { var g = 1 / c * (b.c * (b.ty - e.y) + b.d * (e.x - b.tx)); e.y = 1 / c * (b.a * (e.y - b.ty) + b.b * (b.tx - e.x)); e.x = g } this.__mouseX = e.x; this.__mouseY = e.y; b = []; this.__hitTest(this.__mouseX, this.__mouseY, !0, b, !0, this) ? g = b[b.length - 1] : (g = this, b = [this]); null == g && (g = this); var f = null; switch (a) { case "middleMouseDown": this.__mouseDownMiddle = g; break; case "middleMouseUp": this.__mouseDownMiddle == g && (f = "middleClick"); this.__mouseDownMiddle = null; break; case "mouseDown": g.__allowMouseFocus() ? null != this.get_focus() ? (c = new bg("mouseFocusChange", !0, !0, g, !1, 0), this.__dispatchStack(c, b), c.isDefaultPrevented() || this.set_focus(g)) : this.set_focus(g) : this.set_focus(null); this.__mouseDownLeft = g; Qb.__buttonDown = !0; break; case "mouseUp": if (null != this.__mouseDownLeft) { Qb.__buttonDown = !1; if (this.__mouseDownLeft == g) f = "click"; else { var h = Qb.__create("releaseOutside", 1, this.__mouseX, this.__mouseY, new na(this.__mouseX, this.__mouseY), this); this.__mouseDownLeft.dispatchEvent(h) } this.__mouseDownLeft = null } break; case "rightMouseDown": this.__mouseDownRight = g; break; case "rightMouseUp": this.__mouseDownRight == g && (f = "rightClick"), this.__mouseDownRight = null } c = na.__pool.get(); h = Qb.__create(a, d, this.__mouseX, this.__mouseY, g.__globalToLocal(e, c), g); this.__dispatchStack(h, b); null != f && (h = Qb.__create(f, d, this.__mouseX, this.__mouseY, g.__globalToLocal(e, c), g), this.__dispatchStack(h, b), "mouseUp" == a && w.__cast(g, Bb).doubleClickEnabled && (a = Oa.getTimer(), 500 > a - this.__lastClickTime ? (h = Qb.__create("doubleClick", d, this.__mouseX, this.__mouseY, g.__globalToLocal(e, c), g), this.__dispatchStack(h, b), this.__lastClickTime = 0) : this.__lastClickTime = a)); if ("auto" == ve.__cursor && !ve.__hidden) { h = null; if (null != this.__mouseDownLeft) h = this.__mouseDownLeft.__getCursor(); else for (a = 0; a < b.length;) if (h = b[a], ++a, h = h.__getCursor(), null != h) { this.window.set_cursor(Bf.toLimeCursor(h)); break } null == h && this.window.set_cursor(rc.ARROW) } g != this.__mouseOverTarget && null != this.__mouseOverTarget && (h = Qb.__create("mouseOut", d, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(e, c), this.__mouseOverTarget), this.__dispatchStack(h, this.__mouseOutStack)); for (a = 0; a < this.__rollOutStack.length;) f = this.__rollOutStack[a], -1 == b.indexOf(f) ? (K.remove(this.__rollOutStack, f), h = Qb.__create("rollOut", d, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(e, c), f), h.bubbles = !1, this.__dispatchTarget(f, h)) : ++a; for (a = 0; a < b.length;) f = b[a], ++a, -1 == this.__rollOutStack.indexOf(f) && null != this.__mouseOverTarget && (f.hasEventListener("rollOver") && (h = Qb.__create("rollOver", d, this.__mouseX, this.__mouseY, this.__mouseOverTarget.__globalToLocal(e, c), f), h.bubbles = !1, this.__dispatchTarget(f, h)), (f.hasEventListener("rollOut") || f.hasEventListener("rollOver")) && this.__rollOutStack.push(f)); g != this.__mouseOverTarget && (null != g && (h = Qb.__create("mouseOver", d, this.__mouseX, this.__mouseY, g.__globalToLocal(e, c), g), this.__dispatchStack(h, b)), this.__mouseOverTarget = g, this.__mouseOutStack = b); null != this.__dragObject && (this.__drag(e), d = null, this.__mouseOverTarget == this.__dragObject ? (g = this.__dragObject.mouseEnabled, a = this.__dragObject.mouseChildren, this.__dragObject.mouseEnabled = !1, this.__dragObject.mouseChildren = !1, b = [], this.__hitTest(this.__mouseX, this.__mouseY, !0, b, !0, this) && (d = b[b.length - 1]), this.__dragObject.mouseEnabled = g, this.__dragObject.mouseChildren = a) : this.__mouseOverTarget != this && (d = this.__mouseOverTarget), this.__dragObject.dropTarget = d); na.__pool.release(e); na.__pool.release(c) } }, __onMouseWheel: function (a, b, c) { var d = this.__mouseX, e = this.__mouseY; a = []; if (this.__hitTest(this.__mouseX, this.__mouseY, !0, a, !0, this)) var g = a[a.length - 1]; else g = this, a = [this]; null == g && (g = this); c = na.__pool.get(); c.setTo(d, e); d = this.__displayMatrix; e = d.a * d.d - d.b * d.c; if (0 == e) c.x = -d.tx, c.y = -d.ty; else { var f = 1 / e * (d.c * (d.ty - c.y) + d.d * (c.x - d.tx)); c.y = 1 / e * (d.a * (c.y - d.ty) + d.b * (d.tx - c.x)); c.x = f } b |= 0; b = Qb.__create("mouseWheel", 0, this.__mouseX, this.__mouseY, g.__globalToLocal(c, c), g, b); b.cancelable = !0; this.__dispatchStack(b, a); b.isDefaultPrevented() && this.window.onMouseWheel.cancel(); na.__pool.release(c) }, __onTouch: function (a, b, c) { var d = na.__pool.get(); d.setTo(Math.round(b.x * this.window.__width * this.window.__scale), Math.round(b.y * this.window.__height * this.window.__scale)); var e = this.__displayMatrix, g = e.a * e.d - e.b * e.c; if (0 == g) d.x = -e.tx, d.y = -e.ty; else { var f = 1 / g * (e.c * (e.ty - d.y) + e.d * (d.x - e.tx)); d.y = 1 / g * (e.a * (d.y - e.ty) + e.b * (e.tx - d.x)); d.x = f } e = d.x; g = d.y; f = []; if (this.__hitTest(e, g, !1, f, !0, this)) var h = f[f.length - 1]; else h = this, f = [this]; null == h && (h = this); var p = b.id; if (this.__touchData.h.hasOwnProperty(p)) var m = this.__touchData.h[p]; else m = di.__pool.get(), m.reset(), m.touch = b, this.__touchData.h[p] = m; var l = null, n = !1; switch (a) { case "touchBegin": m.touchDownTarget = h; break; case "touchEnd": m.touchDownTarget == h && (l = "touchTap"), m.touchDownTarget = null, n = !0 } var k = na.__pool.get(); a = $d.__create(a, null, e, g, h.__globalToLocal(d, k), h); a.touchPointID = p; a.isPrimaryTouchPoint = c; a.pressure = b.pressure; this.__dispatchStack(a, f); null != l && (a = $d.__create(l, null, e, g, h.__globalToLocal(d, k), h), a.touchPointID = p, a.isPrimaryTouchPoint = c, a.pressure = b.pressure, this.__dispatchStack(a, f)); l = m.touchOverTarget; h != l && null != l && (a = $d.__create("touchOut", null, e, g, l.__globalToLocal(d, k), l), a.touchPointID = p, a.isPrimaryTouchPoint = c, a.pressure = b.pressure, this.__dispatchTarget(l, a)); for (var t = m.rollOutStack, q, w = 0; w < t.length;) q = t[w], -1 == f.indexOf(q) ? (K.remove(t, q), a = $d.__create("touchRollOut", null, e, g, l.__globalToLocal(d, k), l), a.touchPointID = p, a.isPrimaryTouchPoint = c, a.bubbles = !1, a.pressure = b.pressure, this.__dispatchTarget(q, a)) : ++w; for (w = 0; w < f.length;) q = f[w], ++w, -1 == t.indexOf(q) && (q.hasEventListener("touchRollOver") && (a = $d.__create("touchRollOver", null, e, g, l.__globalToLocal(d, k), q), a.touchPointID = p, a.isPrimaryTouchPoint = c, a.bubbles = !1, a.pressure = b.pressure, this.__dispatchTarget(q, a)), q.hasEventListener("touchRollOut") && t.push(q)); h != l && (null != h && (a = $d.__create("touchOver", null, e, g, h.__globalToLocal(d, k), h), a.touchPointID = p, a.isPrimaryTouchPoint = c, a.bubbles = !0, a.pressure = b.pressure, this.__dispatchTarget(h, a)), m.touchOverTarget = h); na.__pool.release(d); na.__pool.release(k); n && (this.__touchData.remove(p), m.reset(), di.__pool.release(m)) }, __registerLimeModule: function (a) { a.onCreateWindow.add(q(this, this.__onLimeCreateWindow)); a.onUpdate.add(q(this, this.__onLimeUpdate)); a.onExit.add(q(this, this.__onLimeModuleExit), !1, 0); for (a = Pd.devices.iterator(); a.hasNext();) { var b = a.next(); this.__onLimeGamepadConnect(b) } Pd.onConnect.add(q(this, this.__onLimeGamepadConnect)); sd.onStart.add(q(this, this.__onLimeTouchStart)); sd.onMove.add(q(this, this.__onLimeTouchMove)); sd.onEnd.add(q(this, this.__onLimeTouchEnd)); sd.onCancel.add(q(this, this.__onLimeTouchCancel)) }, __resize: function () { var a = this.stageWidth, b = this.stageHeight, c = this.window.__width * this.window.__scale | 0, d = this.window.__height * this.window.__scale | 0; this.__logicalWidth = c; this.__logicalHeight = d; this.__displayMatrix.identity(); if (null != this.get_fullScreenSourceRect() && this.window.__fullscreen) { this.stageWidth = this.get_fullScreenSourceRect().width | 0; this.stageHeight = this.get_fullScreenSourceRect().height | 0; var e = c / this.stageWidth, g = d / this.stageHeight; this.__displayMatrix.translate(-this.get_fullScreenSourceRect().x, -this.get_fullScreenSourceRect().y); this.__displayMatrix.scale(e, g); this.__displayRect.setTo(this.get_fullScreenSourceRect().get_left(), this.get_fullScreenSourceRect().get_right(), this.get_fullScreenSourceRect().get_top(), this.get_fullScreenSourceRect().get_bottom()) } else { if (0 == this.__logicalWidth && 0 == this.__logicalHeight) this.stageWidth = c, this.stageHeight = d; else { this.stageWidth = this.__logicalWidth; this.stageHeight = this.__logicalHeight; e = Math.min(c / this.stageWidth, d / this.stageHeight); g = Math.round((c - this.stageWidth * e) / 2); var f = Math.round((d - this.stageHeight * e) / 2); this.__displayMatrix.scale(e, e); this.__displayMatrix.translate(g, f) } this.__displayRect.setTo(0, 0, this.stageWidth, this.stageHeight) } null != this.context3D && this.context3D.configureBackBuffer(c, d, 0, !0, !0, !0); for (e = this.stage3Ds.iterator(); e.hasNext();) e.next().__resize(c, d); null != this.__renderer && this.__renderer.__resize(c, d); if (this.stageWidth != a || this.stageHeight != b) this.__renderDirty = !0, this.__setTransformDirty(), a = new oa("resize"), this.__dispatchEvent(a) }, __setLogicalSize: function (a, b) { this.__logicalWidth = a; this.__logicalHeight = b; this.__resize() }, __startDrag: function (a, b, c) { if (null == c) this.__dragBounds = null; else { this.__dragBounds = new ba; var d = c.get_right(), e = c.get_bottom(); this.__dragBounds.x = d < c.x ? d : c.x; this.__dragBounds.y = e < c.y ? e : c.y; this.__dragBounds.width = Math.abs(c.width); this.__dragBounds.height = Math.abs(c.height) } this.__dragObject = a; null != this.__dragObject && (b ? this.__dragOffsetY = this.__dragOffsetX = 0 : (a = na.__pool.get(), a.setTo(this.get_mouseX(), this.get_mouseY()), b = this.__dragObject.parent, null != b && (b = b.__getWorldTransform(), c = b.a * b.d - b.b * b.c, 0 == c ? (a.x = -b.tx, a.y = -b.ty) : (d = 1 / c * (b.c * (b.ty - a.y) + b.d * (a.x - b.tx)), a.y = 1 / c * (b.a * (a.y - b.ty) + b.b * (b.tx - a.x)), a.x = d)), this.__dragOffsetX = this.__dragObject.get_x() - a.x, this.__dragOffsetY = this.__dragObject.get_y() - a.y, na.__pool.release(a))) }, __stopDrag: function (a) { this.__dragObject = this.__dragBounds = null }, __unregisterLimeModule: function (a) { a.onCreateWindow.remove(q(this, this.__onLimeCreateWindow)); a.onUpdate.remove(q(this, this.__onLimeUpdate)); a.onExit.remove(q(this, this.__onLimeModuleExit)); Pd.onConnect.remove(q(this, this.__onLimeGamepadConnect)); sd.onStart.remove(q(this, this.__onLimeTouchStart)); sd.onMove.remove(q(this, this.__onLimeTouchMove)); sd.onEnd.remove(q(this, this.__onLimeTouchEnd)); sd.onCancel.remove(q(this, this.__onLimeTouchCancel)) }, __update: function (a, b) { a ? this.__transformDirty && (ab.prototype.__update.call(this, !0, b), b && (this.__transformDirty = !1)) : this.__transformDirty || this.__renderDirty ? (ab.prototype.__update.call(this, !1, b), b && Ga.__supportDOM && (this.__wasDirty = !0)) : !this.__renderDirty && this.__wasDirty && (ab.prototype.__update.call(this, !1, b), b && (this.__wasDirty = !1)) }, get_color: function () { return this.__color }, set_color: function (a) { null == a ? (this.__transparent = !0, a = 0) : this.__transparent = !1; this.__color != a && (this.__colorSplit[0] = ((a & 16711680) >>> 16) / 255, this.__colorSplit[1] = ((a & 65280) >>> 8) / 255, this.__colorSplit[2] = (a & 255) / 255, this.__colorString = "#" + T.hex(a & 16777215, 6), this.__renderDirty = !0, this.__color = -16777216 | a & 16777215); return a }, get_contentsScaleFactor: function () { return this.__contentsScaleFactor }, get_displayState: function () { return this.__displayState }, set_displayState: function (a) { null != this.window && (2 == a ? this.window.__fullscreen && this.window.set_fullscreen(!1) : this.window.__fullscreen || this.window.set_fullscreen(!0)); return this.__displayState = a }, get_focus: function () { return this.__focus }, set_focus: function (a) { if (a != this.__focus) { var b = this.__focus; this.__cacheFocus = this.__focus = a; if (null != b) { var c = new bg("focusOut", !0, !1, a, !1, 0), d = []; b.__getInteractive(d); d.reverse(); this.__dispatchStack(c, d) } null != a && (c = new bg("focusIn", !0, !1, b, !1, 0), d = [], a.__getInteractive(d), d.reverse(), this.__dispatchStack(c, d)) } return a }, get_frameRate: function () { return null != this.window ? this.window.__backend.getFrameRate() : 0 }, set_frameRate: function (a) { return null != this.window ? this.window.__backend.setFrameRate(a) : a }, get_fullScreenHeight: function () { return Math.ceil(this.window.get_display().currentMode.height * this.window.__scale) }, get_fullScreenSourceRect: function () { return null == this.__fullScreenSourceRect ? null : this.__fullScreenSourceRect.clone() }, set_fullScreenSourceRect: function (a) { null == a ? null != this.__fullScreenSourceRect && (this.__fullScreenSourceRect = null, this.__resize()) : a.equals(this.__fullScreenSourceRect) || (this.__fullScreenSourceRect = a.clone(), this.__resize()); return a }, get_fullScreenWidth: function () { return Math.ceil(this.window.get_display().currentMode.width * this.window.__scale) }, set_height: function (a) { return this.get_height() }, get_mouseX: function () { return this.__mouseX }, get_mouseY: function () { return this.__mouseY }, get_quality: function () { return this.__quality }, set_quality: function (a) { this.__quality = a; if (null != this.__renderer) { var b = this.get_quality(); this.__renderer.__allowSmoothing = 2 != b } return a }, set_rotation: function (a) { return 0 }, get_scaleMode: function () { return this.__scaleMode }, set_scaleMode: function (a) { return this.__scaleMode = a }, set_scaleX: function (a) { return 0 }, set_scaleY: function (a) { return 0 }, get_tabEnabled: function () { return !1 }, set_tabEnabled: function (a) { throw I.thrown(new pd("Error: The Stage class does not implement this property or method.")); }, get_tabIndex: function () { return -1 }, set_tabIndex: function (a) { throw I.thrown(new pd("Error: The Stage class does not implement this property or method.")); }, set_transform: function (a) { return this.get_transform() }, set_width: function (a) { return this.get_width() }, set_x: function (a) { return 0 }, set_y: function (a) { return 0 }, __class__: Ui, __properties__: u(ab.prototype.__properties__, { set_scaleMode: "set_scaleMode", get_scaleMode: "get_scaleMode", set_quality: "set_quality", get_quality: "get_quality", get_fullScreenWidth: "get_fullScreenWidth", set_fullScreenSourceRect: "set_fullScreenSourceRect", get_fullScreenSourceRect: "get_fullScreenSourceRect", get_fullScreenHeight: "get_fullScreenHeight", set_frameRate: "set_frameRate", get_frameRate: "get_frameRate", set_focus: "set_focus", get_focus: "get_focus", set_displayState: "set_displayState", get_displayState: "get_displayState", get_contentsScaleFactor: "get_contentsScaleFactor", set_color: "set_color", get_color: "get_color" }) }); var bi = function (a) { jb.call(this); this.__stage = a; this.__height = 0; this.__projectionTransform = new he; this.__renderTransform = new he; this.__y = this.__x = this.__width = 0; this.visible = !0; 0 < a.stageWidth && 0 < a.stageHeight && this.__resize(a.stageWidth, a.stageHeight) }; k["openfl.display.Stage3D"] = bi; bi.__name__ = "openfl.display.Stage3D"; bi.__super__ = jb; bi.prototype = u(jb.prototype, { context3D: null, visible: null, __contextLost: null, __contextRequested: null, __height: null, __indexBuffer: null, __projectionTransform: null, __renderTransform: null, __stage: null, __vertexBuffer: null, __width: null, __x: null, __y: null, __canvas: null, __renderContext: null, __style: null, __webgl: null, requestContext3D: function (a, b) { this.__contextLost ? this.__contextRequested = !0 : null != this.context3D ? (this.__contextRequested = !0, Ve.delay(q(this, this.__dispatchCreate), 1)) : this.__contextRequested || (this.__contextRequested = !0, Ve.delay(q(this, this.__createContext), 1)) }, requestContext3DMatchingProfiles: function (a) { this.requestContext3D() }, __createContext: function () { var a = this.__stage, b = a.__renderer; if ("cairo" == b.__type || "canvas" == b.__type) this.__dispatchError(); else if ("opengl" == b.__type) this.context3D = new cc(a, a.context3D.__contextState, this), this.__dispatchCreate(); else if ("dom" == b.__type) { this.__canvas = window.document.createElement("canvas"); this.__canvas.width = a.stageWidth; this.__canvas.height = a.stageHeight; var c = b.__context.attributes; a = Object.prototype.hasOwnProperty.call(c, "background") && null == c.background; b = Object.prototype.hasOwnProperty.call(c, "colorDepth") ? c.colorDepth : 32; c = Object.prototype.hasOwnProperty.call(c, "antialiasing") && 0 < c.antialiasing; this.__webgl = kr.getContextWebGL(this.__canvas, { alpha: a || 16 < b, antialias: c, depth: !0, premultipliedAlpha: !0, stencil: !0, preserveDrawingBuffer: !1 }); this.__dispatchError() } }, __dispatchError: function () { this.__contextRequested = !1; this.dispatchEvent(new Ze("error", !1, !1, "Context3D not available")) }, __dispatchCreate: function () { this.__contextRequested && (this.__contextRequested = !1, this.dispatchEvent(new oa("context3DCreate"))) }, __lostContext: function () { this.__contextLost = !0; null != this.context3D && (this.context3D.__dispose(), this.__contextRequested = !0) }, __resize: function (a, b) { if (a != this.__width || b != this.__height) null != this.__canvas && (this.__canvas.width = a, this.__canvas.height = b), this.__projectionTransform.copyRawDataFrom(Eb.toFloatVector(null, null, null, [2 / (0 < a ? a : 1), 0, 0, 0, 0, -2 / (0 < b ? b : 1), 0, 0, 0, 0, -.001, 0, -1, 1, 0, 1])), this.__renderTransform.identity(), this.__renderTransform.appendTranslation(this.__x, this.__y, 0), this.__renderTransform.append(this.__projectionTransform), this.__width = a, this.__height = b }, __restoreContext: function () { this.__contextLost = !1; this.__createContext() }, get_x: function () { return this.__x }, set_x: function (a) { if (this.__x == a) return a; this.__x = a; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x, this.__y, 0); this.__renderTransform.append(this.__projectionTransform); return a }, get_y: function () { return this.__y }, set_y: function (a) { if (this.__y == a) return a; this.__y = a; this.__renderTransform.identity(); this.__renderTransform.appendTranslation(this.__x, this.__y, 0); this.__renderTransform.append(this.__projectionTransform); return a }, __class__: bi, __properties__: {set_y: "set_y", get_y: "get_y", set_x: "set_x", get_x: "get_x"} }); var kg = function (a, b, c, d, e, g, f, h) { null == h && (h = 0); null == f && (f = 0); null == g && (g = 0); null == e && (e = 1); null == d && (d = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.__id = a; this.__matrix = new Ja; 0 != b && this.set_x(b); 0 != c && this.set_y(c); 1 != d && this.set_scaleX(d); 1 != e && this.set_scaleY(e); 0 != g && this.set_rotation(g); this.__dirty = !0; this.__length = 0; this.__originX = f; this.__originY = h; this.__alpha = 1; this.__blendMode = null; this.__visible = !0 }; k["openfl.display.Tile"] = kg; kg.__name__ = "openfl.display.Tile"; kg.prototype = { data: null, parent: null, __alpha: null, __blendMode: null, __colorTransform: null, __dirty: null, __id: null, __length: null, __matrix: null, __originX: null, __originY: null, __rect: null, __rotation: null, __rotationCosine: null, __rotationSine: null, __scaleX: null, __scaleY: null, __shader: null, __tileset: null, __visible: null, clone: function () { var a = new kg(this.__id); a.__alpha = this.__alpha; a.__blendMode = this.__blendMode; a.__originX = this.__originX; a.__originY = this.__originY; null != this.__rect && (a.__rect = this.__rect.clone()); a.set_matrix(this.__matrix.clone()); a.__shader = this.__shader; a.set_tileset(this.__tileset); null != this.__colorTransform && (a.__colorTransform = this.__colorTransform.__clone()); return a }, getBounds: function (a) { var b = new ba; this.__findTileRect(b); var c = Ja.__pool.get(); if (null != a && a != this) { c.copyFrom(this.__getWorldTransform()); var d = Ja.__pool.get(); d.copyFrom(a.__getWorldTransform()); d.invert(); c.concat(d); Ja.__pool.release(d) } else c.identity(); this.__getBounds(b, c); Ja.__pool.release(c); return b }, __getBounds: function (a, b) { a.__transform(a, b) }, hitTestTile: function (a) { if (null != a && null != a.parent && null != this.parent) { var b = this.getBounds(this); a = a.getBounds(this); return b.intersects(a) } return !1 }, invalidate: function () { this.__setRenderDirty() }, __findTileRect: function (a) { if (null == this.get_tileset()) if (null != this.parent) { var b = this.parent.__findTileset(); null == b ? a.setTo(0, 0, 0, 0) : (b = b.getRect(this.get_id()), null == b ? a.setTo(0, 0, 0, 0) : a.copyFrom(b)) } else a.setTo(0, 0, 0, 0); else a.copyFrom(this.get_tileset().getRect(this.get_id())); a.x = 0; a.y = 0 }, __findTileset: function () { return null != this.get_tileset() ? this.get_tileset() : this.parent instanceof lg ? this.parent.get_tileset() : null == this.parent ? null : this.parent.__findTileset() }, __getWorldTransform: function () { var a = this.get_matrix().clone(); null != this.parent && a.concat(this.parent.__getWorldTransform()); return a }, __setRenderDirty: function () { this.__dirty || (this.__dirty = !0, null != this.parent && this.parent.__setRenderDirty()) }, get_alpha: function () { return this.__alpha }, set_alpha: function (a) { a != this.__alpha && (this.__alpha = a, this.__setRenderDirty()); return a }, get_blendMode: function () { return this.__blendMode }, set_blendMode: function (a) { a != this.__blendMode && (this.__blendMode = a, this.__setRenderDirty()); return a }, get_colorTransform: function () { return this.__colorTransform }, set_colorTransform: function (a) { a != this.__colorTransform && (this.__colorTransform = a, this.__setRenderDirty()); return a }, get_height: function () { var a = ba.__pool.get(); this.__findTileRect(a); this.__getBounds(a, this.get_matrix()); var b = a.height; ba.__pool.release(a); return b }, set_height: function (a) { var b = ba.__pool.get(); this.__findTileRect(b); 0 != b.height && this.set_scaleY(a / b.height); ba.__pool.release(b); return a }, get_id: function () { return this.__id }, set_id: function (a) { a != this.__id && (this.__id = a, this.__setRenderDirty()); return a }, get_matrix: function () { return this.__matrix }, set_matrix: function (a) { a != this.__matrix && (this.__scaleY = this.__scaleX = this.__rotation = null, this.__matrix = a, this.__setRenderDirty()); return a }, get_originX: function () { return this.__originX }, set_originX: function (a) { a != this.__originX && (this.__originX = a, this.__setRenderDirty()); return a }, get_originY: function () { return this.__originY }, set_originY: function (a) { a != this.__originY && (this.__originY = a, this.__setRenderDirty()); return a }, get_rect: function () { return this.__rect }, set_rect: function (a) { a != this.__rect && (this.__rect = a, this.__setRenderDirty()); return a }, get_rotation: function () { if (null == this.__rotation) if (0 == this.__matrix.b && 0 == this.__matrix.c) this.__rotationSine = this.__rotation = 0, this.__rotationCosine = 1; else { var a = Math.atan2(this.__matrix.d, this.__matrix.c) - Math.PI / 2; this.__rotation = 180 / Math.PI * a; this.__rotationSine = Math.sin(a); this.__rotationCosine = Math.cos(a) } return this.__rotation }, set_rotation: function (a) { if (a != this.__rotation) { this.__rotation = a; var b = Math.PI / 180 * a; this.__rotationSine = Math.sin(b); this.__rotationCosine = Math.cos(b); b = this.get_scaleX(); var c = this.get_scaleY(); this.__matrix.a = this.__rotationCosine * b; this.__matrix.b = this.__rotationSine * b; this.__matrix.c = -this.__rotationSine * c; this.__matrix.d = this.__rotationCosine * c; this.__setRenderDirty() } return a }, get_scaleX: function () { null == this.__scaleX && (0 == this.get_matrix().b ? this.__scaleX = this.__matrix.a : this.__scaleX = Math.sqrt(this.__matrix.a * this.__matrix.a + this.__matrix.b * this.__matrix.b)); return this.__scaleX }, set_scaleX: function (a) { if (a != this.__scaleX) { this.__scaleX = a; if (0 == this.__matrix.b) this.__matrix.a = a; else { this.get_rotation(); var b = this.__rotationSine * a; this.__matrix.a = this.__rotationCosine * a; this.__matrix.b = b } this.__setRenderDirty() } return a }, get_scaleY: function () { null == this.__scaleY && (this.__scaleY = 0 == this.__matrix.c ? this.get_matrix().d : Math.sqrt(this.__matrix.c * this.__matrix.c + this.__matrix.d * this.__matrix.d)); return this.__scaleY }, set_scaleY: function (a) { if (a != this.__scaleY) { this.__scaleY = a; if (0 == this.__matrix.c) this.__matrix.d = a; else { this.get_rotation(); var b = this.__rotationCosine * a; this.__matrix.c = -this.__rotationSine * a; this.__matrix.d = b } this.__setRenderDirty() } return a }, get_shader: function () { return this.__shader }, set_shader: function (a) { a != this.__shader && (this.__shader = a, this.__setRenderDirty()); return a }, get_tileset: function () { return this.__tileset }, set_tileset: function (a) { a != this.__tileset && (this.__tileset = a, this.__setRenderDirty()); return a }, get_visible: function () { return this.__visible }, set_visible: function (a) { a != this.__visible && (this.__visible = a, this.__setRenderDirty()); return a }, get_width: function () { var a = ba.__pool.get(); this.__findTileRect(a); this.__getBounds(a, this.get_matrix()); var b = a.width; ba.__pool.release(a); return b }, set_width: function (a) { var b = ba.__pool.get(); this.__findTileRect(b); 0 != b.width && this.set_scaleX(a / b.width); ba.__pool.release(b); return a }, get_x: function () { return this.__matrix.tx }, set_x: function (a) { a != this.__matrix.tx && (this.__matrix.tx = a, this.__setRenderDirty()); return a }, get_y: function () { return this.__matrix.ty }, set_y: function (a) { a != this.__matrix.ty && (this.__matrix.ty = a, this.__setRenderDirty()); return a }, __class__: kg, __properties__: { set_y: "set_y", get_y: "get_y", set_x: "set_x", get_x: "get_x", set_width: "set_width", get_width: "get_width", set_visible: "set_visible", get_visible: "get_visible", set_tileset: "set_tileset", get_tileset: "get_tileset", set_shader: "set_shader", get_shader: "get_shader", set_scaleY: "set_scaleY", get_scaleY: "get_scaleY", set_scaleX: "set_scaleX", get_scaleX: "get_scaleX", set_rotation: "set_rotation", get_rotation: "get_rotation", set_rect: "set_rect", get_rect: "get_rect", set_originY: "set_originY", get_originY: "get_originY", set_originX: "set_originX", get_originX: "get_originX", set_matrix: "set_matrix", get_matrix: "get_matrix", set_id: "set_id", get_id: "get_id", set_height: "set_height", get_height: "get_height", set_colorTransform: "set_colorTransform", get_colorTransform: "get_colorTransform", set_blendMode: "set_blendMode", get_blendMode: "get_blendMode", set_alpha: "set_alpha", get_alpha: "get_alpha" } }; var Wi = function (a, b, c, d, e, g, f) { null == f && (f = 0); null == g && (g = 0); null == e && (e = 0); null == d && (d = 1); null == c && (c = 1); null == b && (b = 0); null == a && (a = 0); kg.call(this, -1, a, b, c, d, e, g, f); this.__tiles = []; this.__length = 0 }; k["openfl.display.TileContainer"] = Wi; Wi.__name__ = "openfl.display.TileContainer"; Wi.__interfaces__ = [Ci]; Wi.__super__ = kg; Wi.prototype = u(kg.prototype, { __tiles: null, addTile: function (a) { if (null == a) return null; a.parent == this && (K.remove(this.__tiles, a), this.__length--); this.__tiles[this.get_numTiles()] = a; a.parent = this; this.__length++; this.__setRenderDirty(); return a }, addTileAt: function (a, b) { if (null == a) return null; a.parent == this && (K.remove(this.__tiles, a), this.__length--); this.__tiles.splice(b, 0, a); a.parent = this; this.__length++; this.__setRenderDirty(); return a }, addTiles: function (a) { for (var b = 0; b < a.length;) { var c = a[b]; ++b; this.addTile(c) } return a }, clone: function () { for (var a = new Wi, b = 0, c = this.__tiles; b < c.length;) { var d = c[b]; ++b; a.addTile(d.clone()) } return a }, contains: function (a) { return -1 < this.__tiles.indexOf(a) }, getBounds: function (a) { for (var b = new ba, c, d = 0, e = this.__tiles; d < e.length;) c = e[d], ++d, c = c.getBounds(a), b.__expand(c.x, c.y, c.width, c.height); return b }, getTileAt: function (a) { return 0 <= a && a < this.get_numTiles() ? this.__tiles[a] : null }, getTileIndex: function (a) { for (var b = 0, c = this.__tiles.length; b < c;) { var d = b++; if (this.__tiles[d] == a) return d } return -1 }, removeTile: function (a) { null != a && a.parent == this && (a.parent = null, K.remove(this.__tiles, a), this.__length--, this.__setRenderDirty()); return a }, removeTileAt: function (a) { return 0 <= a && a < this.get_numTiles() ? this.removeTile(this.__tiles[a]) : null }, removeTiles: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); 0 > a && (a = 0); b > this.__tiles.length - 1 && (b = this.__tiles.length - 1); a = this.__tiles.splice(a, b - a + 1); for (b = 0; b < a.length;) { var c = a[b]; ++b; c.parent = null } this.__length = this.__tiles.length; this.__setRenderDirty() }, setTileIndex: function (a, b) { 0 <= b && b <= this.get_numTiles() && a.parent == this && (K.remove(this.__tiles, a), this.__tiles.splice(b, 0, a), this.__setRenderDirty()) }, sortTiles: function (a) { this.__tiles.sort(a); this.__setRenderDirty() }, swapTiles: function (a, b) { if (a.parent == this && b.parent == this) { var c = this.__tiles.indexOf(a), d = this.__tiles.indexOf(b); this.__tiles[c] = b; this.__tiles[d] = a; this.__setRenderDirty() } }, swapTilesAt: function (a, b) { var c = this.__tiles[a]; this.__tiles[a] = this.__tiles[b]; this.__tiles[b] = c; this.__setRenderDirty() }, get_numTiles: function () { return this.__length }, get_height: function () { for (var a = ba.__pool.get(), b, c = 0, d = this.__tiles; c < d.length;) b = d[c], ++c, b = b.getBounds(this), a.__expand(b.x, b.y, b.width, b.height); this.__getBounds(a, this.get_matrix()); c = a.height; ba.__pool.release(a); return c }, set_height: function (a) { for (var b = ba.__pool.get(), c, d = 0, e = this.__tiles; d < e.length;) c = e[d], ++d, c = c.getBounds(this), b.__expand(c.x, c.y, c.width, c.height); 0 != b.height && this.set_scaleY(a / b.height); ba.__pool.release(b); return a }, get_width: function () { for (var a = ba.__pool.get(), b, c = 0, d = this.__tiles; c < d.length;) b = d[c], ++c, b = b.getBounds(this), a.__expand(b.x, b.y, b.width, b.height); this.__getBounds(a, this.get_matrix()); c = a.width; ba.__pool.release(a); return c }, set_width: function (a) { for (var b = ba.__pool.get(), c, d = 0, e = this.__tiles; d < e.length;) c = e[d], ++d, c = c.getBounds(this), b.__expand(c.x, c.y, c.width, c.height); 0 != b.width && this.set_scaleX(a / b.width); ba.__pool.release(b); return a }, __class__: Wi, __properties__: u(kg.prototype.__properties__, {get_numTiles: "get_numTiles"}) }); var lg = function (a, b, c, d) { null == d && (d = !0); Ga.call(this); this.__drawableType = 9; this.__tileset = c; this.smoothing = d; this.tileColorTransformEnabled = this.tileBlendModeEnabled = this.tileAlphaEnabled = !0; this.__group = new Wi; this.__group.set_tileset(c); this.__width = a; this.__height = b }; k["openfl.display.Tilemap"] = lg; lg.__name__ = "openfl.display.Tilemap"; lg.__interfaces__ = [Ci]; lg.__super__ = Ga; lg.prototype = u(Ga.prototype, { tileAlphaEnabled: null, tileBlendModeEnabled: null, tileColorTransformEnabled: null, smoothing: null, __group: null, __tileset: null, __buffer: null, __bufferDirty: null, __height: null, __width: null, addTile: function (a) { return this.__group.addTile(a) }, addTileAt: function (a, b) { return this.__group.addTileAt(a, b) }, addTiles: function (a) { return this.__group.addTiles(a) }, contains: function (a) { return this.__group.contains(a) }, getTileAt: function (a) { return this.__group.getTileAt(a) }, getTileIndex: function (a) { return this.__group.getTileIndex(a) }, getTiles: function () { return this.__group.clone() }, removeTile: function (a) { return this.__group.removeTile(a) }, removeTileAt: function (a) { return this.__group.removeTileAt(a) }, removeTiles: function (a, b) { null == b && (b = 2147483647); null == a && (a = 0); this.__group.removeTiles(a, b) }, setTileIndex: function (a, b) { this.__group.setTileIndex(a, b) }, setTiles: function (a) { for (var b = 0, c = this.__group.__tiles; b < c.length;) { var d = c[b]; ++b; this.removeTile(d) } b = 0; for (c = a.__tiles; b < c.length;) d = c[b], ++b, this.addTile(d) }, sortTiles: function (a) { this.__group.sortTiles(a) }, swapTiles: function (a, b) { this.__group.swapTiles(a, b) }, swapTilesAt: function (a, b) { this.__group.swapTilesAt(a, b) }, __enterFrame: function (a) { this.__group.__dirty && !this.__renderDirty && (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __getBounds: function (a, b) { var c = ba.__pool.get(); c.setTo(0, 0, this.__width, this.__height); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) }, __hitTest: function (a, b, c, d, e, g) { if (!g.get_visible() || this.__isMask || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; this.__getRenderTransform(); var f = this.__renderTransform, h = f.a * f.d - f.b * f.c; c = 0 == h ? -f.tx : 1 / h * (f.c * (f.ty - b) + f.d * (a - f.tx)); f = this.__renderTransform; h = f.a * f.d - f.b * f.c; a = 0 == h ? -f.ty : 1 / h * (f.a * (b - f.ty) + f.b * (f.tx - a)); return 0 < c && 0 < a && c <= this.__width && a <= this.__height ? (null == d || e || d.push(g), !0) : !1 }, __renderFlash: function () { }, get_height: function () { return this.__height * Math.abs(this.get_scaleY()) }, set_height: function (a) { this.__height = a | 0; return this.__height * Math.abs(this.get_scaleY()) }, get_numTiles: function () { return this.__group.__length }, get_tileset: function () { return this.__tileset }, set_tileset: function (a) { a != this.__tileset && (this.__tileset = a, this.__group.set_tileset(a), this.__group.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return a }, get_width: function () { return this.__width * Math.abs(this.__scaleX) }, set_width: function (a) { this.__width = a | 0; return this.__width * Math.abs(this.__scaleX) }, __class__: lg, __properties__: u(Ga.prototype.__properties__, { set_tileset: "set_tileset", get_tileset: "get_tileset", get_numTiles: "get_numTiles" }) }); var xi = function (a, b) { this.__bitmapData = a; this.rectData = Eb.toFloatVector(null); this.__data = []; if (null != b) for (a = 0; a < b.length;) { var c = b[a]; ++a; this.addRect(c) } }; k["openfl.display.Tileset"] = xi; xi.__name__ = "openfl.display.Tileset"; xi.prototype = { rectData: null, __bitmapData: null, __data: null, addRect: function (a) { if (null == a) return -1; this.rectData.push(a.x); this.rectData.push(a.y); this.rectData.push(a.width); this.rectData.push(a.height); a = new Ym(a); a.__update(this.__bitmapData); this.__data.push(a); return this.__data.length - 1 }, clone: function () { for (var a = new xi(this.__bitmapData, null), b = ba.__pool.get(), c = 0, d = this.__data; c < d.length;) { var e = d[c]; ++c; b.setTo(e.x, e.y, e.width, e.height); a.addRect(b) } ba.__pool.release(b); return a }, hasRect: function (a) { for (var b = 0, c = this.__data; b < c.length;) { var d = c[b]; ++b; if (a.x == d.x && a.y == d.y && a.width == d.width && a.height == d.height) return !0 } return !1 }, getRect: function (a) { return a < this.__data.length && 0 <= a ? new ba(this.__data[a].x, this.__data[a].y, this.__data[a].width, this.__data[a].height) : null }, getRectID: function (a) { for (var b, c = 0, d = this.__data.length; c < d;) { var e = c++; b = this.__data[e]; if (a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height) return e } return null }, get_bitmapData: function () { return this.__bitmapData }, set_bitmapData: function (a) { this.__bitmapData = a; for (var b = 0, c = this.__data; b < c.length;) { var d = c[b]; ++b; d.__update(this.__bitmapData) } return a }, get_numRects: function () { return this.__data.length }, __class__: xi, __properties__: { get_numRects: "get_numRects", set_bitmapData: "set_bitmapData", get_bitmapData: "get_bitmapData" } }; var Ym = function (a) { null != a && (this.x = a.x | 0, this.y = a.y | 0, this.width = a.width | 0, this.height = a.height | 0) }; k["openfl.display._Tileset.TileData"] = Ym; Ym.__name__ = "openfl.display._Tileset.TileData"; Ym.prototype = { height: null, width: null, x: null, y: null, __bitmapData: null, __uvHeight: null, __uvWidth: null, __uvX: null, __uvY: null, __update: function (a) { if (null != a) { var b = a.width; a = a.height; this.__uvX = this.x / b; this.__uvY = this.y / a; this.__uvWidth = (this.x + this.width) / b; this.__uvHeight = (this.y + this.height) / a } }, __class__: Ym }; var Kr = function () { this.__totalFrames = this.__framesLoaded = 1; this.__currentLabels = []; this.__currentFrame = 1; this.__lastFrameUpdate = this.__lastFrameScriptEval = -1 }; k["openfl.display.Timeline"] = Kr; Kr.__name__ = "openfl.display.Timeline"; Kr.prototype = { frameRate: null, scenes: null, scripts: null, __currentFrame: null, __currentFrameLabel: null, __currentLabel: null, __currentLabels: null, __currentScene: null, __frameScripts: null, __framesLoaded: null, __frameTime: null, __isPlaying: null, __lastFrameScriptEval: null, __lastFrameUpdate: null, __scope: null, __timeElapsed: null, __totalFrames: null, attachMovieClip: function (a) { }, enterFrame: function (a) { }, __addFrameScript: function (a, b) { 0 > a || (a += 1, null != b ? (null == this.__frameScripts && (this.__frameScripts = new eb), this.__frameScripts.h[a] = function (a) { b() }) : null != this.__frameScripts && this.__frameScripts.remove(a)) }, __attachMovieClip: function (a) { this.__scope = a; this.__framesLoaded = this.__totalFrames = 0; if (null != this.scenes && 0 < this.scenes.length) { for (var b = 0, c = this.scenes; b < c.length;) { var d = c[b]; ++b; this.__totalFrames += d.numFrames; this.__framesLoaded += d.numFrames; null != d.labels && (this.__currentLabels = this.__currentLabels.concat(d.labels)) } this.__currentScene = this.scenes[0] } if (null != this.scripts && 0 < this.scripts.length) for (this.__frameScripts = new eb, b = 0, c = this.scripts; b < c.length;) d = c[b], ++b, this.__frameScripts.h[d.frame] = d.script; this.attachMovieClip(a) }, __enterFrame: function (a) { if (this.__isPlaying) { a = this.__getNextFrame(a); if (this.__lastFrameScriptEval == a) return; if (null != this.__frameScripts) { if (a < this.__currentFrame) { if (!this.__evaluateFrameScripts(this.__totalFrames)) return; this.__currentFrame = 1 } if (!this.__evaluateFrameScripts(a)) return } else this.__currentFrame = a } this.__updateSymbol(this.__currentFrame) }, __evaluateFrameScripts: function (a) { if (null == this.__frameScripts) return !0; var b = this.__currentFrame; for (a += 1; b < a;) { var c = b++; if (c != this.__lastFrameScriptEval && (this.__currentFrame = this.__lastFrameScriptEval = c, this.__frameScripts.h.hasOwnProperty(c) && (this.__updateSymbol(c), (0, this.__frameScripts.h[c])(this.__scope), this.__currentFrame != c) || !this.__isPlaying)) return !1 } return !0 }, __getNextFrame: function (a) { null != this.frameRate ? (this.__timeElapsed += a, a = this.__currentFrame + Math.floor(this.__timeElapsed / this.__frameTime), 1 > a && (a = 1), a > this.__totalFrames && (a = Math.floor((a - 1) % this.__totalFrames) + 1), this.__timeElapsed %= this.__frameTime) : (a = this.__currentFrame + 1, a > this.__totalFrames && (a = 1)); return a }, __goto: function (a) { 1 > a ? a = 1 : a > this.__totalFrames && (a = this.__totalFrames); this.__lastFrameScriptEval = -1; this.__currentFrame = a; this.__updateSymbol(this.__currentFrame); this.__evaluateFrameScripts(this.__currentFrame) }, __gotoAndPlay: function (a, b) { this.__play(); this.__goto(this.__resolveFrameReference(a)) }, __gotoAndStop: function (a, b) { this.__stop(); this.__goto(this.__resolveFrameReference(a)) }, __nextFrame: function () { this.__stop(); this.__goto(this.__currentFrame + 1) }, __nextScene: function () { }, __play: function () { this.__isPlaying || 2 > this.__totalFrames || (this.__isPlaying = !0, null != this.frameRate && (this.__frameTime = 1E3 / this.frameRate | 0, this.__timeElapsed = 0)) }, __prevFrame: function () { this.__stop(); this.__goto(this.__currentFrame - 1) }, __prevScene: function () { }, __stop: function () { this.__isPlaying = !1 }, __resolveFrameReference: function (a) { if ("number" == typeof a && (a | 0) === a) return a; if ("string" == typeof a) { for (var b = 0, c = this.__currentLabels; b < c.length;) { var d = c[b]; ++b; if (d.name == a) return d.frame } throw I.thrown(new oi("Error #2109: Frame label " + a + " not found in scene.")); } throw I.thrown("Invalid type for frame " + a.__name__); }, __updateFrameLabel: function () { this.__currentFrameLabel = this.__currentLabel = null; for (var a = 0, b = this.__currentLabels; a < b.length;) { var c = b[a]; ++a; if (c.frame < this.__currentFrame) this.__currentLabel = c.name; else if (c.frame == this.__currentFrame) this.__currentFrameLabel = this.__currentLabel = c.name; else break } }, __updateSymbol: function (a) { this.__currentFrame != this.__lastFrameUpdate && (this.__updateFrameLabel(), this.enterFrame(a), this.__lastFrameUpdate = this.__currentFrame) }, __class__: Kr }; var Yj = function (a, b) { Li.call(this, a, b); this.stage = new Ui(this, Object.prototype.hasOwnProperty.call(b.context, "background") ? b.context.background : 16777215); if (Object.prototype.hasOwnProperty.call(b, "parameters")) try { this.stage.get_loaderInfo().parameters = b.parameters } catch (c) { ra.lastError = c } Object.prototype.hasOwnProperty.call(b, "resizable") && !b.resizable && this.stage.__setLogicalSize(b.width, b.height); a.addModule(this.stage) }; k["openfl.display.Window"] = Yj; Yj.__name__ = "openfl.display.Window"; Yj.__super__ = Li; Yj.prototype = u(Li.prototype, {__class__: Yj}); var Xi = function (a, b, c, d, e, g, f) { null == f && (f = .05); null == g && (g = !1); this.stitch = g; this.stitch_threshold = f; this.octaves = b; this.channels = c; this.grayscale = d; this.calculateOctaves(e) }; k["openfl.display._internal.AbstractNoise"] = Xi; Xi.__name__ = "openfl.display._internal.AbstractNoise"; Xi.prototype = { octaves: null, stitch: null, stitch_threshold: null, channels: null, grayscale: null, octaves_frequencies: null, octaves_persistences: null, persistence_max: null, fill: function (a, b, c, d) { }, stitching: function (a, b, c, d, e, g, f, h) { var r = b >> 16 & 255, m = b >> 8 & 255; b &= 255; if (f - e < c) { var v = a.getPixel32(f - c, d), n = v >> 8 & 255, l = v & 255; e = (f - c) / e; r = this.mixI(v >> 16 & 255, r, e); m = this.mixI(n, m, e); b = this.mixI(l, b, e) } h - g < d && (v = a.getPixel32(c, h - d), n = v >> 8 & 255, l = v & 255, e = (h - d) / g, r = this.mixI(v >> 16 & 255, r, e), m = this.mixI(n, m, e), b = this.mixI(l, b, e)); return -16777216 | r << 16 | m << 8 | b }, color: function (a, b, c) { var d = 0, e = 0, g = 0; null != a && (d = this.noiseToColor(a)); null != b && (e = this.noiseToColor(b)); null != c && (g = this.noiseToColor(c)); return -16777216 | d << 16 | e << 8 | g }, noiseToColor: function (a) { return 128 * (a * this.persistence_max + 1) | 0 }, fade: function (a) { return a * a * a * (a * (6 * a - 15) + 10) }, mixI: function (a, b, c) { return (1 - c) * a + c * b | 0 }, mix: function (a, b, c) { return (1 - c) * a + c * b }, fastfloor: function (a) { return 0 < a ? a | 0 : a - 1 | 0 }, dot2d: function (a, b, c) { return a[0] * b + a[1] * c }, dot: function (a, b, c, d) { return a[0] * b + a[1] * c + a[2] * d }, calculateOctaves: function (a) { this.octaves_frequencies = []; this.octaves_persistences = []; for (var b = this.persistence_max = 0, c = this.octaves; b < c;) { var d = b++; var e = Math.pow(2, d); d = Math.pow(a, d); this.persistence_max += d; this.octaves_frequencies.push(e); this.octaves_persistences.push(d) } this.persistence_max = 1 / this.persistence_max }, __class__: Xi }; var Zm = function () { }; k["openfl.display._internal.CairoBitmap"] = Zm; Zm.__name__ = "openfl.display._internal.CairoBitmap"; Zm.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (0 < c && null != a.__bitmapData && a.__bitmapData.__isValid) { var d = b.cairo; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); b.applyMatrix(a.__renderTransform, d); var e = a.__bitmapData.getSurface(); null != e && (e = No.createForSurface(e), No.set_filter(e, b.__allowSmoothing && a.smoothing ? 1 : 3), d.set_source(e), 1 == c ? d.paint() : d.paintWithAlpha(c)); b.__popMaskObject(a); b.__setBlendMode(10) } } }; Zm.renderDrawable = function (a, b) { }; Zm.renderDrawableMask = function (a, b) { b.cairo.rectangle(0, 0, a.get_width(), a.get_height()) }; var Lr = function () { }; k["openfl.display._internal.CairoBitmapData"] = Lr; Lr.__name__ = "openfl.display._internal.CairoBitmapData"; Lr.renderDrawable = function (a, b) { }; Lr.renderDrawableMask = function (a, b) { }; var $m = function () { }; k["openfl.display._internal.CairoDisplayObject"] = $m; $m.__name__ = "openfl.display._internal.CairoDisplayObject"; $m.render = function (a, b) { }; $m.renderDrawable = function (a, b) { }; $m.renderDrawableMask = function (a, b) { }; var Mr = function () { }; k["openfl.display._internal.CairoDisplayObjectContainer"] = Mr; Mr.__name__ = "openfl.display._internal.CairoDisplayObjectContainer"; Mr.renderDrawable = function (a, b) { }; Mr.renderDrawableMask = function (a, b) { }; var an = function () { }; k["openfl.display._internal.CairoGraphics"] = an; an.__name__ = "openfl.display._internal.CairoGraphics"; an.hitTest = function (a, b, c) { return !1 }; an.render = function (a, b) { }; an.renderMask = function (a, b) { }; var bn = function () { }; k["openfl.display._internal.CairoShape"] = bn; bn.__name__ = "openfl.display._internal.CairoShape"; bn.render = function (a, b) { }; bn.renderDrawable = function (a, b) { }; bn.renderDrawableMask = function (a, b) { }; var Nr = function () { }; k["openfl.display._internal.CairoSimpleButton"] = Nr; Nr.__name__ = "openfl.display._internal.CairoSimpleButton"; Nr.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)) }; Nr.renderDrawableMask = function (a, b) { b.__renderDrawableMask(a.__currentState) }; var cn = function () { }; k["openfl.display._internal.CairoTextField"] = cn; cn.__name__ = "openfl.display._internal.CairoTextField"; cn.render = function (a, b, c) { }; cn.renderDrawable = function (a, b) { }; cn.renderDrawableMask = function (a, b) { }; var ei = function () { }; k["openfl.display._internal.CairoTilemap"] = ei; ei.__name__ = "openfl.display._internal.CairoTilemap"; ei.render = function (a, b) { if (a.__renderable && 0 != a.__group.__tiles.length) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var d = ba.__pool.get(); d.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(d, a.__renderTransform); ei.renderTileContainer(a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, c, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, null, d, new Uh); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } } }; ei.renderTileContainer = function (a, b, c, d, e, g, f, h, p, m, l, n, k, t) { var r = b.cairo, v = Ja.__pool.get(); a = a.__tiles; for (var q, w, u, x, A = null, N = 0; N < a.length;) if (q = a[N], ++N, v.setTo(1, 0, 0, 1, -q.get_originX(), -q.get_originY()), v.concat(q.get_matrix()), v.concat(c), w = null != q.get_tileset() ? q.get_tileset() : d, u = q.get_alpha() * f, (x = q.get_visible()) && !(0 >= u)) if (g || (u = 1), h && (A = null != q.__blendMode ? q.__blendMode : p), 0 < q.__length) ei.renderTileContainer(q, b, v, w, e, g, u, h, A, m, l, n, k, t); else if (null != w) { x = q.get_id(); if (-1 == x) { if (q = q.__rect, null == q || 0 >= q.width || 0 >= q.height) continue } else { q = w.__data[x]; if (null == q) continue; k.setTo(q.x, q.y, q.width, q.height); q = k } w = w.__bitmapData; null != w && (w != m && (l = w.getSurface(), n = No.createForSurface(l), No.set_filter(n, e ? 1 : 3), r.set_source(n), m = w), h && b.__setBlendMode(A), b.applyMatrix(v, r), t.tx = q.x, t.ty = q.y, No.set_matrix(n, t), r.set_source(n), r.save(), r.newPath(), r.rectangle(0, 0, q.width, q.height), r.clip(), 1 == u ? r.paint() : r.paintWithAlpha(u), r.restore()) } Ja.__pool.release(v) }; ei.renderDrawable = function (a, b) { }; ei.renderDrawableMask = function (a, b) { }; var Oi = function () { }; k["openfl.display._internal.CanvasBitmap"] = Oi; Oi.__name__ = "openfl.display._internal.CanvasBitmap"; Oi.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (0 < c && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable) { var d = b.context; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a, !1); va.convertToCanvas(a.__bitmapData.image); d.globalAlpha = c; c = a.__scrollRect; b.setTransform(a.__renderTransform, d); b.__allowSmoothing && a.smoothing || (d.imageSmoothingEnabled = !1); null == c ? d.drawImage(a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height) : d.drawImage(a.__bitmapData.image.get_src(), c.x, c.y, c.width, c.height); b.__allowSmoothing && a.smoothing || (d.imageSmoothingEnabled = !0); b.__popMaskObject(a, !1) } } }; Oi.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); null != a.__bitmapData && null != a.__bitmapData.image && (a.__imageVersion = a.__bitmapData.image.version); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || (u = b.__getAlpha(a.__worldAlpha), 0 >= u))) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x = b.context; b.setTransform(a.__renderTransform, x); var c = a.opaqueBackground; x.fillStyle = "rgb(" + (c >>> 16 & 255) + "," + (c >>> 8 & 255) + "," + (c & 255) + ")"; x.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a) } if (null != a.__graphics && a.__renderable && (u = b.__getAlpha(a.__worldAlpha), !(0 >= u))) { var d = a.__graphics; if (null != d) { B.render(d, b); var e = d.__width, g = d.__height; c = d.__canvas; if (null != c && d.__visible && 1 <= e && 1 <= g) { var f = d.__worldTransform; x = b.context; A = a.__scrollRect; var h = a.__worldScale9Grid; if (null == A || 0 < A.width && 0 < A.height) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x.globalAlpha = u; if (null != h && 0 == f.b && 0 == f.c) { x.setTransform(1, 0, 0, 1, f.tx, f.ty); var p = d.__bounds, m = d.__renderTransform.a, l = d.__renderTransform.d, n = f.a, k = f.d; f = Math.max(1, Math.round(h.x * m)); d = Math.round(h.y * l); u = Math.max(1, Math.round((p.get_right() - h.get_right()) * m)); A = Math.round((p.get_bottom() - h.get_bottom()) * l); m = Math.round(h.width * m); l = Math.round(h.height * l); var t = Math.round(h.x * n), q = Math.round(h.y * k), w = Math.round((p.get_right() - h.get_right()) * n); h = Math.round((p.get_bottom() - h.get_bottom()) * k); p = Math.round(e * n) - t - w; n = Math.round(g * k) - q - h; b.applySmoothing(x, !1); 0 != m && 0 != l ? (x.drawImage(c, 0, 0, f, d, 0, 0, t, q), x.drawImage(c, f, 0, m, d, t, 0, p, q), x.drawImage(c, f + m, 0, u, d, t + p, 0, w, q), x.drawImage(c, 0, d, f, l, 0, q, t, n), x.drawImage(c, f, d, m, l, t, q, p, n), x.drawImage(c, f + m, d, u, l, t + p, q, w, n), x.drawImage(c, 0, d + l, f, A, 0, q + n, t, h), x.drawImage(c, f, d + l, m, A, t, q + n, p, h), x.drawImage(c, f + m, d + l, u, A, t + p, q + n, w, h)) : 0 == m && 0 != l ? (g = t + p + w, x.drawImage(c, 0, 0, e, d, 0, 0, g, q), x.drawImage(c, 0, d, e, l, 0, q, g, n), x.drawImage(c, 0, d + l, e, A, 0, q + n, g, h)) : 0 == l && 0 != m && (e = q + n + h, x.drawImage(c, 0, 0, f, g, 0, 0, t, e), x.drawImage(c, f, 0, m, g, t, 0, p, e), x.drawImage(c, f + m, 0, u, g, t + p, 0, w, e)) } else b.setTransform(f, x), b.__isDOM && (h = 1 / b.pixelRatio, x.scale(h, h)), x.drawImage(c, 0, 0, e, g); b.__popMaskObject(a) } } } } } a.__renderable && (u = b.__getAlpha(a.__worldAlpha), 0 < u && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable && (x = b.context, b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a, !1), va.convertToCanvas(a.__bitmapData.image), x.globalAlpha = u, A = a.__scrollRect, b.setTransform(a.__renderTransform, x), b.__allowSmoothing && a.smoothing || (x.imageSmoothingEnabled = !1), null == A ? x.drawImage(a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height) : x.drawImage(a.__bitmapData.image.get_src(), A.x, A.y, A.width, A.height), b.__allowSmoothing && a.smoothing || (x.imageSmoothingEnabled = !0), b.__popMaskObject(a, !1))) } else if (c = a.__cacheBitmap, c.__renderable) { var u = b.__getAlpha(c.__worldAlpha); if (0 < u && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable) { var x = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); va.convertToCanvas(c.__bitmapData.image); x.globalAlpha = u; var A = c.__scrollRect; b.setTransform(c.__renderTransform, x); b.__allowSmoothing && c.smoothing || (x.imageSmoothingEnabled = !1); null == A ? x.drawImage(c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height) : x.drawImage(c.__bitmapData.image.get_src(), A.x, A.y, A.width, A.height); b.__allowSmoothing && c.smoothing || (x.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1) } } b.__renderEvent(a) }; Oi.renderDrawableMask = function (a, b) { b.context.rect(0, 0, a.get_width(), a.get_height()) }; var Em = function () { }; k["openfl.display._internal.CanvasBitmapData"] = Em; Em.__name__ = "openfl.display._internal.CanvasBitmapData"; Em.renderDrawable = function (a, b) { if (a.readable) { var c = a.image; c.type == De.DATA && va.convertToCanvas(c); var d = b.context; d.globalAlpha = 1; b.setTransform(a.__renderTransform, d); d.drawImage(c.get_src(), 0, 0, c.width, c.height) } }; Em.renderDrawableMask = function (a, b) { }; var Eh = function () { }; k["openfl.display._internal.CanvasDisplayObject"] = Eh; Eh.__name__ = "openfl.display._internal.CanvasDisplayObject"; Eh.render = function (a, b) { if ((null != a.opaqueBackground || null != a.__graphics) && a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var d = b.context; b.setTransform(a.__renderTransform, d); var e = a.opaqueBackground; d.fillStyle = "rgb(" + (e >>> 16 & 255) + "," + (e >>> 8 & 255) + "," + (e & 255) + ")"; d.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a) } if (null != a.__graphics && a.__renderable && (c = b.__getAlpha(a.__worldAlpha), !(0 >= c))) { var g = a.__graphics; if (null != g) { B.render(g, b); var f = g.__width, h = g.__height; e = g.__canvas; if (null != e && g.__visible && 1 <= f && 1 <= h) { var p = g.__worldTransform; d = b.context; var m = a.__scrollRect, l = a.__worldScale9Grid; if (null == m || 0 < m.width && 0 < m.height) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); d.globalAlpha = c; if (null != l && 0 == p.b && 0 == p.c) { d.setTransform(1, 0, 0, 1, p.tx, p.ty); var n = g.__bounds, k = g.__renderTransform.a, t = g.__renderTransform.d, q = p.a, w = p.d; p = Math.max(1, Math.round(l.x * k)); g = Math.round(l.y * t); c = Math.max(1, Math.round((n.get_right() - l.get_right()) * k)); m = Math.round((n.get_bottom() - l.get_bottom()) * t); k = Math.round(l.width * k); t = Math.round(l.height * t); var u = Math.round(l.x * q), x = Math.round(l.y * w), A = Math.round((n.get_right() - l.get_right()) * q); l = Math.round((n.get_bottom() - l.get_bottom()) * w); n = Math.round(f * q) - u - A; q = Math.round(h * w) - x - l; b.applySmoothing(d, !1); 0 != k && 0 != t ? (d.drawImage(e, 0, 0, p, g, 0, 0, u, x), d.drawImage(e, p, 0, k, g, u, 0, n, x), d.drawImage(e, p + k, 0, c, g, u + n, 0, A, x), d.drawImage(e, 0, g, p, t, 0, x, u, q), d.drawImage(e, p, g, k, t, u, x, n, q), d.drawImage(e, p + k, g, c, t, u + n, x, A, q), d.drawImage(e, 0, g + t, p, m, 0, x + q, u, l), d.drawImage(e, p, g + t, k, m, u, x + q, n, l), d.drawImage(e, p + k, g + t, c, m, u + n, x + q, A, l)) : 0 == k && 0 != t ? (h = u + n + A, d.drawImage(e, 0, 0, f, g, 0, 0, h, x), d.drawImage(e, 0, g, f, t, 0, x, h, q), d.drawImage(e, 0, g + t, f, m, 0, x + q, h, l)) : 0 == t && 0 != k && (f = x + q + l, d.drawImage(e, 0, 0, p, h, 0, 0, u, f), d.drawImage(e, p, 0, k, h, u, 0, n, f), d.drawImage(e, p + k, 0, c, h, u + n, 0, A, f)) } else b.setTransform(p, d), b.__isDOM && (l = 1 / b.pixelRatio, d.scale(l, l)), d.drawImage(e, 0, 0, f, h); b.__popMaskObject(a) } } } } } } }; Eh.renderDrawable = function (a, b) { if (null == a.get_mask() || 0 < a.get_mask().get_width() && 0 < a.get_mask().get_height()) if (b.__updateCacheBitmap(a, !1), null != a.__cacheBitmap && !a.__isCacheBitmapRender) { var c = a.__cacheBitmap; if (c.__renderable) { var d = b.__getAlpha(c.__worldAlpha); if (0 < d && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable) { var e = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); va.convertToCanvas(c.__bitmapData.image); e.globalAlpha = d; var g = c.__scrollRect; b.setTransform(c.__renderTransform, e); b.__allowSmoothing && c.smoothing || (e.imageSmoothingEnabled = !1); null == g ? e.drawImage(c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height) : e.drawImage(c.__bitmapData.image.get_src(), g.x, g.y, g.width, g.height); b.__allowSmoothing && c.smoothing || (e.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1) } } } else if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || (d = b.__getAlpha(a.__worldAlpha), 0 >= d || (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() && (b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), e = b.context, b.setTransform(a.__renderTransform, e), c = a.opaqueBackground, e.fillStyle = "rgb(" + (c >>> 16 & 255) + "," + (c >>> 8 & 255) + "," + (c & 255) + ")", e.fillRect(0, 0, a.get_width(), a.get_height()), b.__popMaskObject(a)), null == a.__graphics || !a.__renderable || (d = b.__getAlpha(a.__worldAlpha), 0 >= d))))) { var f = a.__graphics; if (null != f) { B.render(f, b); var h = f.__width, p = f.__height; c = f.__canvas; if (null != c && f.__visible && 1 <= h && 1 <= p) { var m = f.__worldTransform; e = b.context; g = a.__scrollRect; var l = a.__worldScale9Grid; if (null == g || 0 < g.width && 0 < g.height) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); e.globalAlpha = d; if (null != l && 0 == m.b && 0 == m.c) { e.setTransform(1, 0, 0, 1, m.tx, m.ty); var n = f.__bounds, k = f.__renderTransform.a, t = f.__renderTransform.d, q = m.a, w = m.d; m = Math.max(1, Math.round(l.x * k)); f = Math.round(l.y * t); d = Math.max(1, Math.round((n.get_right() - l.get_right()) * k)); g = Math.round((n.get_bottom() - l.get_bottom()) * t); k = Math.round(l.width * k); t = Math.round(l.height * t); var u = Math.round(l.x * q), x = Math.round(l.y * w), A = Math.round((n.get_right() - l.get_right()) * q); l = Math.round((n.get_bottom() - l.get_bottom()) * w); n = Math.round(h * q) - u - A; q = Math.round(p * w) - x - l; b.applySmoothing(e, !1); 0 != k && 0 != t ? (e.drawImage(c, 0, 0, m, f, 0, 0, u, x), e.drawImage(c, m, 0, k, f, u, 0, n, x), e.drawImage(c, m + k, 0, d, f, u + n, 0, A, x), e.drawImage(c, 0, f, m, t, 0, x, u, q), e.drawImage(c, m, f, k, t, u, x, n, q), e.drawImage(c, m + k, f, d, t, u + n, x, A, q), e.drawImage(c, 0, f + t, m, g, 0, x + q, u, l), e.drawImage(c, m, f + t, k, g, u, x + q, n, l), e.drawImage(c, m + k, f + t, d, g, u + n, x + q, A, l)) : 0 == k && 0 != t ? (p = u + n + A, e.drawImage(c, 0, 0, h, f, 0, 0, p, x), e.drawImage(c, 0, f, h, t, 0, x, p, q), e.drawImage(c, 0, f + t, h, g, 0, x + q, p, l)) : 0 == t && 0 != k && (h = x + q + l, e.drawImage(c, 0, 0, m, p, 0, 0, u, h), e.drawImage(c, m, 0, k, p, u, 0, n, h), e.drawImage(c, m + k, 0, d, p, u + n, 0, A, h)) } else b.setTransform(m, e), b.__isDOM && (l = 1 / b.pixelRatio, e.scale(l, l)), e.drawImage(c, 0, 0, h, p); b.__popMaskObject(a) } } } } b.__renderEvent(a) }; Eh.renderDrawableMask = function (a, b) { null != a.__graphics && B.renderMask(a.__graphics, b) }; var Fm = function () { }; k["openfl.display._internal.CanvasDisplayObjectContainer"] = Fm; Fm.__name__ = "openfl.display._internal.CanvasDisplayObjectContainer"; Fm.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && d.__cleanup() } a.__removedChildren.set_length(0); if (!(!a.__renderable || 0 >= a.__worldAlpha || null != a.get_mask() && (0 >= a.get_mask().get_width() || 0 >= a.get_mask().get_height())) && (Eh.renderDrawable(a, b), null == a.__cacheBitmap || a.__isCacheBitmapRender)) { b.__pushMaskObject(a); if (null != b.__stage) { c = 0; for (d = a.__children; c < d.length;) { var e = d[c]; ++c; b.__renderDrawable(e); e.__renderDirty = !1 } a.__renderDirty = !1 } else for (c = 0, d = a.__children; c < d.length;) e = d[c], ++c, b.__renderDrawable(e); b.__popMaskObject(a) } }; Fm.renderDrawableMask = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && d.__cleanup() } a.__removedChildren.set_length(0); null != a.__graphics && B.renderMask(a.__graphics, b); c = 0; for (a = a.__children; c < a.length;) d = a[c], ++c, b.__renderDrawableMask(d) }; var Ie = function () { this.__dirty = !0; this.t_i = this.b_i = this.f_i = this.ff_i = this.i_i = this.ii_i = this.o_i = this.__lastLength = 0; null == Ie.empty ? (this.types = [], this.b = [], this.i = [], this.f = [], this.o = [], this.ff = [], this.ii = [], this.objVersions = [], this.copyOnWrite = !0) : this.__initFromEmpty() }; k["openfl.display._internal.DrawCommandBuffer"] = Ie; Ie.__name__ = "openfl.display._internal.DrawCommandBuffer"; Ie.prototype = { __replace_openfl_display_TriangleCulling: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_Vector_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_Vector_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display__internal_ShaderBuffer: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_JointStyle: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_CapsStyle: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_LineScaleMode: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_Bool: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_InterpolationMethod: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_SpreadMethod: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_Array_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_Array_Int: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display_GradientType: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_Float: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, __replace_openfl_display__internal_DrawCommandType: function (a, b, c) { !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, dirty: null, types: null, b: null, copyOnWrite: null, f: null, ff: null, i: null, ii: null, o: null, t_i: null, b_i: null, f_i: null, ff_i: null, i_i: null, ii_i: null, o_i: null, objVersions: null, __lastLength: null, __dirty: null, append: function (a) { if (0 == this.get_length()) return this.types = a.types, this.b = a.b, this.i = a.i, this.f = a.f, this.o = a.o, this.ff = a.ff, this.ii = a.ii, this.t_i = a.t_i, this.b_i = a.b_i, this.f_i = a.f_i, this.ff_i = a.ff_i, this.i_i = a.i_i, this.ii_i = a.ii_i, this.o_i = a.o_i, this.objVersions = a.objVersions, this.copyOnWrite = a.copyOnWrite = !0, a; for (var b = new $f(a), c = 0, d = a.types; c < d.length;) { var e = d[c]; ++c; switch (e._hx_index) { case 0: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_BITMAP_FILL; e = b; this.beginBitmapFill(e.buffer.o[e.oPos], e.buffer.o[e.oPos + 1], e.buffer.b[e.bPos], e.buffer.b[e.bPos + 1]); break; case 1: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_FILL; e = b; this.beginFill(e.buffer.i[e.iPos], e.buffer.f[e.fPos]); break; case 2: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_GRADIENT_FILL; e = b; this.beginGradientFill(e.buffer.o[e.oPos], e.buffer.ii[e.iiPos], e.buffer.ff[e.ffPos], e.buffer.ii[e.iiPos + 1], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2], e.buffer.o[e.oPos + 3], e.buffer.f[e.fPos]); break; case 3: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.BEGIN_SHADER_FILL; e = b; this.beginShaderFill(e.buffer.o[e.oPos]); break; case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CUBIC_CURVE_TO; e = b; this.cubicCurveTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3], e.buffer.f[e.fPos + 4], e.buffer.f[e.fPos + 5]); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CURVE_TO; e = b; this.curveTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3]); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_CIRCLE; e = b; this.drawCircle(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2]); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ELLIPSE; e = b; this.drawEllipse(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3]); break; case 8: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_QUADS; e = b; this.drawQuads(e.buffer.o[e.oPos], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2]); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_RECT; e = b; this.drawRect(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3]); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ROUND_RECT; e = b; this.drawRoundRect(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1], e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3], e.buffer.f[e.fPos + 4], e.buffer.o[e.oPos]); break; case 12: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_TRIANGLES; e = b; this.drawTriangles(e.buffer.o[e.oPos], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2], e.buffer.o[e.oPos + 3]); break; case 13: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.END_FILL; this.endFill(); break; case 14: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_BITMAP_STYLE; e = b; this.lineBitmapStyle(e.buffer.o[e.oPos], e.buffer.o[e.oPos + 1], e.buffer.b[e.bPos], e.buffer.b[e.bPos + 1]); break; case 15: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_GRADIENT_STYLE; e = b; this.lineGradientStyle(e.buffer.o[e.oPos], e.buffer.ii[e.iiPos], e.buffer.ff[e.ffPos], e.buffer.ii[e.iiPos + 1], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2], e.buffer.o[e.oPos + 3], e.buffer.f[e.fPos]); break; case 16: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_STYLE; e = b; this.lineStyle(e.buffer.o[e.oPos], e.buffer.i[e.iPos], e.buffer.f[e.fPos], e.buffer.b[e.bPos], e.buffer.o[e.oPos + 1], e.buffer.o[e.oPos + 2], e.buffer.o[e.oPos + 3], e.buffer.f[e.fPos + 1]); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_TO; e = b; this.lineTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1]); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.MOVE_TO; e = b; this.moveTo(e.buffer.f[e.fPos], e.buffer.f[e.fPos + 1]); break; case 20: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.OVERRIDE_MATRIX; e = b; this.overrideMatrix(e.buffer.o[e.oPos]); break; case 21: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.WINDING_EVEN_ODD; this.windingEvenOdd(); break; case 22: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.WINDING_NON_ZERO; this.windingNonZero() } } b.destroy(); return a }, beginBitmapFill: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.BEGIN_BITMAP_FILL; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || a != e[g] || a.image.version != this.objVersions[g]) && (this.__dirty = !0); for (e[g] = a; this.objVersions.length < g;) this.objVersions.push(0); this.objVersions[g] = a.image.version; e = this.o; g = this.o_i++; this.__dirty || !(g >= e.length) && b.equals(e[g]) || (this.__dirty = !0); e[g] = b; e = this.b; g = this.b_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.b; g = this.b_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, beginFill: function (a, b) { this.prepareWrite(); var c = this.types, d = this.t_i++, e = Z.BEGIN_FILL; !this.__dirty && (d >= c.length || c[d] != e) && (this.__dirty = !0); c[d] = e; c = this.i; d = this.i_i++; !this.__dirty && (d >= c.length || c[d] != a) && (this.__dirty = !0); c[d] = a; c = this.f; d = this.f_i++; !this.__dirty && (d >= c.length || c[d] != b) && (this.__dirty = !0); c[d] = b }, beginGradientFill: function (a, b, c, d, e, g, f, h) { this.prepareWrite(); var r = this.types, m = this.t_i++, v = Z.BEGIN_GRADIENT_FILL; !this.__dirty && (m >= r.length || r[m] != v) && (this.__dirty = !0); r[m] = v; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != a) && (this.__dirty = !0); r[m] = a; r = this.ii; m = this.ii_i++; !this.__dirty && (m >= r.length || r[m] != b) && (this.__dirty = !0); r[m] = b; r = this.ff; m = this.ff_i++; !this.__dirty && (m >= r.length || r[m] != c) && (this.__dirty = !0); r[m] = c; r = this.ii; m = this.ii_i++; !this.__dirty && (m >= r.length || r[m] != d) && (this.__dirty = !0); r[m] = d; r = this.o; m = this.o_i++; this.__dirty || !(m >= r.length) && e.equals(r[m]) || (this.__dirty = !0); r[m] = e; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != g) && (this.__dirty = !0); r[m] = g; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != f) && (this.__dirty = !0); r[m] = f; r = this.f; m = this.f_i++; !this.__dirty && (m >= r.length || r[m] != h) && (this.__dirty = !0); r[m] = h }, beginShaderFill: function (a) { this.prepareWrite(); var b = this.types, c = this.t_i++, d = Z.BEGIN_SHADER_FILL; !this.__dirty && (c >= b.length || b[c] != d) && (this.__dirty = !0); b[c] = d; b = this.o; c = this.o_i++; !this.__dirty && (c >= b.length || b[c] != a) && (this.__dirty = !0); b[c] = a }, clear: function () { this.o_i = this.ii_i = this.i_i = this.ff_i = this.f_i = this.b_i = this.t_i = 0 }, copy: function () { var a = new Ie; a.append(this); return a }, cubicCurveTo: function (a, b, c, d, e, g) { this.prepareWrite(); var f = this.types, h = this.t_i++, p = Z.CUBIC_CURVE_TO; !this.__dirty && (h >= f.length || f[h] != p) && (this.__dirty = !0); f[h] = p; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != a) && (this.__dirty = !0); f[h] = a; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != b) && (this.__dirty = !0); f[h] = b; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != c) && (this.__dirty = !0); f[h] = c; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != d) && (this.__dirty = !0); f[h] = d; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != e) && (this.__dirty = !0); f[h] = e; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != g) && (this.__dirty = !0); f[h] = g }, curveTo: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.CURVE_TO; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != a) && (this.__dirty = !0); e[g] = a; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != b) && (this.__dirty = !0); e[g] = b; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, destroy: function () { this.ii = this.ff = this.o = this.f = this.i = this.b = this.types = null }, drawCircle: function (a, b, c) { this.prepareWrite(); var d = this.types, e = this.t_i++, g = Z.DRAW_CIRCLE; !this.__dirty && (e >= d.length || d[e] != g) && (this.__dirty = !0); d[e] = g; d = this.f; e = this.f_i++; !this.__dirty && (e >= d.length || d[e] != a) && (this.__dirty = !0); d[e] = a; d = this.f; e = this.f_i++; !this.__dirty && (e >= d.length || d[e] != b) && (this.__dirty = !0); d[e] = b; d = this.f; e = this.f_i++; !this.__dirty && (e >= d.length || d[e] != c) && (this.__dirty = !0); d[e] = c }, drawEllipse: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.DRAW_ELLIPSE; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != a) && (this.__dirty = !0); e[g] = a; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != b) && (this.__dirty = !0); e[g] = b; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, drawQuads: function (a, b, c) { this.prepareWrite(); var d = this.types, e = this.t_i++, g = Z.DRAW_QUADS; !this.__dirty && (e >= d.length || d[e] != g) && (this.__dirty = !0); d[e] = g; d = this.o; e = this.o_i++; !this.__dirty && (e >= d.length || d[e] != a) && (this.__dirty = !0); d[e] = a; d = this.o; e = this.o_i++; !this.__dirty && (e >= d.length || d[e] != b) && (this.__dirty = !0); d[e] = b; d = this.o; e = this.o_i++; !this.__dirty && (e >= d.length || d[e] != c) && (this.__dirty = !0); d[e] = c }, drawRect: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.DRAW_RECT; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != a) && (this.__dirty = !0); e[g] = a; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != b) && (this.__dirty = !0); e[g] = b; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.f; g = this.f_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, drawRoundRect: function (a, b, c, d, e, g) { this.prepareWrite(); var f = this.types, h = this.t_i++, p = Z.DRAW_ROUND_RECT; !this.__dirty && (h >= f.length || f[h] != p) && (this.__dirty = !0); f[h] = p; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != a) && (this.__dirty = !0); f[h] = a; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != b) && (this.__dirty = !0); f[h] = b; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != c) && (this.__dirty = !0); f[h] = c; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != d) && (this.__dirty = !0); f[h] = d; f = this.f; h = this.f_i++; !this.__dirty && (h >= f.length || f[h] != e) && (this.__dirty = !0); f[h] = e; !this.__dirty && (this.o_i >= this.o.length || this.o[this.o_i] != g) && (this.__dirty = !0); this.o[this.o_i++] = g }, drawTriangles: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.DRAW_TRIANGLES; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || e[g] != a) && (this.__dirty = !0); e[g] = a; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || e[g] != b) && (this.__dirty = !0); e[g] = b; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, endFill: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = Z.END_FILL; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, lineBitmapStyle: function (a, b, c, d) { this.prepareWrite(); var e = this.types, g = this.t_i++, f = Z.LINE_BITMAP_STYLE; !this.__dirty && (g >= e.length || e[g] != f) && (this.__dirty = !0); e[g] = f; e = this.o; g = this.o_i++; !this.__dirty && (g >= e.length || a != e[g] || a.image.version != this.objVersions[g]) && (this.__dirty = !0); for (e[g] = a; this.objVersions.length < g;) this.objVersions.push(0); this.objVersions[g] = a.image.version; e = this.o; g = this.o_i++; this.__dirty || !(g >= e.length) && b.equals(e[g]) || (this.__dirty = !0); e[g] = b; e = this.b; g = this.b_i++; !this.__dirty && (g >= e.length || e[g] != c) && (this.__dirty = !0); e[g] = c; e = this.b; g = this.b_i++; !this.__dirty && (g >= e.length || e[g] != d) && (this.__dirty = !0); e[g] = d }, lineGradientStyle: function (a, b, c, d, e, g, f, h) { this.prepareWrite(); var r = this.types, m = this.t_i++, v = Z.LINE_GRADIENT_STYLE; !this.__dirty && (m >= r.length || r[m] != v) && (this.__dirty = !0); r[m] = v; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != a) && (this.__dirty = !0); r[m] = a; r = this.ii; m = this.ii_i++; !this.__dirty && (m >= r.length || r[m] != b) && (this.__dirty = !0); r[m] = b; r = this.ff; m = this.ff_i++; !this.__dirty && (m >= r.length || r[m] != c) && (this.__dirty = !0); r[m] = c; r = this.ii; m = this.ii_i++; !this.__dirty && (m >= r.length || r[m] != d) && (this.__dirty = !0); r[m] = d; r = this.o; m = this.o_i++; this.__dirty || !(m >= r.length) && e.equals(r[m]) || (this.__dirty = !0); r[m] = e; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != g) && (this.__dirty = !0); r[m] = g; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != f) && (this.__dirty = !0); r[m] = f; r = this.f; m = this.f_i++; !this.__dirty && (m >= r.length || r[m] != h) && (this.__dirty = !0); r[m] = h }, lineStyle: function (a, b, c, d, e, g, f, h) { this.prepareWrite(); var r = this.types, m = this.t_i++, v = Z.LINE_STYLE; !this.__dirty && (m >= r.length || r[m] != v) && (this.__dirty = !0); r[m] = v; !this.__dirty && (this.o_i >= this.o.length || this.o[this.o_i] != a) && (this.__dirty = !0); this.o[this.o_i++] = a; r = this.i; m = this.i_i++; !this.__dirty && (m >= r.length || r[m] != b) && (this.__dirty = !0); r[m] = b; r = this.f; m = this.f_i++; !this.__dirty && (m >= r.length || r[m] != c) && (this.__dirty = !0); r[m] = c; r = this.b; m = this.b_i++; !this.__dirty && (m >= r.length || r[m] != d) && (this.__dirty = !0); r[m] = d; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != e) && (this.__dirty = !0); r[m] = e; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != g) && (this.__dirty = !0); r[m] = g; r = this.o; m = this.o_i++; !this.__dirty && (m >= r.length || r[m] != f) && (this.__dirty = !0); r[m] = f; r = this.f; m = this.f_i++; !this.__dirty && (m >= r.length || r[m] != h) && (this.__dirty = !0); r[m] = h }, lineTo: function (a, b) { this.prepareWrite(); var c = this.types, d = this.t_i++, e = Z.LINE_TO; !this.__dirty && (d >= c.length || c[d] != e) && (this.__dirty = !0); c[d] = e; c = this.f; d = this.f_i++; !this.__dirty && (d >= c.length || c[d] != a) && (this.__dirty = !0); c[d] = a; c = this.f; d = this.f_i++; !this.__dirty && (d >= c.length || c[d] != b) && (this.__dirty = !0); c[d] = b }, markAsClean: function () { this.__dirty = !1 }, moveTo: function (a, b) { this.prepareWrite(); var c = this.types, d = this.t_i++, e = Z.MOVE_TO; !this.__dirty && (d >= c.length || c[d] != e) && (this.__dirty = !0); c[d] = e; c = this.f; d = this.f_i++; !this.__dirty && (d >= c.length || c[d] != a) && (this.__dirty = !0); c[d] = a; c = this.f; d = this.f_i++; !this.__dirty && (d >= c.length || c[d] != b) && (this.__dirty = !0); c[d] = b }, prepareWrite: function () { this.copyOnWrite && (this.types = this.types.slice(), this.b = this.b.slice(), this.i = this.i.slice(), this.f = this.f.slice(), this.o = this.o.slice(), this.ff = this.ff.slice(), this.ii = this.ii.slice(), this.objVersions = this.objVersions.slice(), this.copyOnWrite = !1) }, overrideBlendMode: function (a) { this.prepareWrite(); this.types.push(Z.OVERRIDE_BLEND_MODE); this.o.push(a) }, overrideMatrix: function (a) { this.prepareWrite(); var b = this.types, c = this.t_i++, d = Z.OVERRIDE_MATRIX; !this.__dirty && (c >= b.length || b[c] != d) && (this.__dirty = !0); b[c] = d; b = this.o; c = this.o_i++; this.__dirty || !(c >= b.length) && a.equals(b[c]) || (this.__dirty = !0); b[c] = a }, windingEvenOdd: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = Z.WINDING_EVEN_ODD; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, windingNonZero: function () { this.prepareWrite(); var a = this.types, b = this.t_i++, c = Z.WINDING_NON_ZERO; !this.__dirty && (b >= a.length || a[b] != c) && (this.__dirty = !0); a[b] = c }, get_dirty: function () { return this.__dirty }, get_length: function () { return this.t_i }, __initFromEmpty: function () { this.types = Ie.empty.types; this.b = Ie.empty.b; this.i = Ie.empty.i; this.f = Ie.empty.f; this.o = Ie.empty.o; this.ff = Ie.empty.ff; this.ii = Ie.empty.ii; this.objVersions = Ie.empty.objVersions; this.copyOnWrite = !0 }, __endBuffer: function () { this.__lastLength != this.t_i && (this.__dirty = !0); this.__lastLength = this.t_i }, __replaceMtx: function (a, b, c) { this.__dirty || !(b >= a.length) && c.equals(a[b]) || (this.__dirty = !0); a[b] = c }, __replaceBmp: function (a, b, c) { !this.__dirty && (b >= a.length || c != a[b] || c.image.version != this.objVersions[b]) && (this.__dirty = !0); for (a[b] = c; this.objVersions.length < b;) this.objVersions.push(0); this.objVersions[b] = c.image.version }, __class__: Ie, __properties__: {get_length: "get_length", get_dirty: "get_dirty"} }; var B = function () { }; k["openfl.display._internal.CanvasGraphics"] = B; B.__name__ = "openfl.display._internal.CanvasGraphics"; B.closePath = function (a) { null == a && (a = !1); null != B.context.strokeStyle && (a || B.context.closePath(), B.context.stroke(), a && B.context.closePath(), B.context.beginPath()) }; B.createBitmapFill = function (a, b, c) { va.convertToCanvas(a.image); B.setSmoothing(c); return B.context.createPattern(a.image.get_src(), b ? "repeat" : "no-repeat") }; B.createGradientPattern = function (a, b, c, d, e, g, f, h) { g = null; f = !1; null == e && (e = Ja.__pool.get(), e.identity(), f = !0); switch (a) { case 0: g = B.context.createLinearGradient(-819.2, 0, 819.2, 0); B.pendingMatrix = e.clone(); B.inversePendingMatrix = e.clone(); B.inversePendingMatrix.invert(); break; case 1: 1 < h ? h = 1 : -1 > h && (h = -1), g = B.context.createRadialGradient(819.2 * h, 0, 0, 0, 0, 819.2), B.pendingMatrix = e.clone(), B.inversePendingMatrix = e.clone(), B.inversePendingMatrix.invert() } for (var r, m, v, n = 0, l = b.length; n < l;) v = n++, r = b[v], a = c[v], h = (r & 16711680) >>> 16, m = (r & 65280) >>> 8, r &= 255, v = d[v] / 255, 0 > v && (v = 0), 1 < v && (v = 1), g.addColorStop(v, "rgba(" + h + ", " + m + ", " + r + ", " + a + ")"); f && Ja.__pool.release(e); return g }; B.createTempPatternCanvas = function (a, b, c, d) { var e = window.document.createElement("canvas"), g = e.getContext("2d"); e.width = c; e.height = d; a = a.image.get_src(); g.fillStyle = g.createPattern(a, b ? "repeat" : "no-repeat"); g.beginPath(); g.moveTo(0, 0); g.lineTo(0, d); g.lineTo(c, d); g.lineTo(c, 0); g.lineTo(0, 0); g.closePath(); B.hitTesting || g.fill(B.windingRule); return e }; B.drawRoundRect = function (a, b, c, d, e, g) { null == g && (g = e); e *= .5; g *= .5; e > c / 2 && (e = c / 2); g > d / 2 && (g = d / 2); c = a + c; d = b + d; var f = -e + .7071067811865476 * e, h = -e + .41421356237309503 * e, p = -g + .7071067811865476 * g, m = -g + .41421356237309503 * g; B.context.moveTo(c, d - g); B.context.quadraticCurveTo(c, d + m, c + f, d + p); B.context.quadraticCurveTo(c + h, d, c - e, d); B.context.lineTo(a + e, d); B.context.quadraticCurveTo(a - h, d, a - f, d + p); B.context.quadraticCurveTo(a, d + m, a, d - g); B.context.lineTo(a, b + g); B.context.quadraticCurveTo(a, b - m, a - f, b - p); B.context.quadraticCurveTo(a - h, b, a + e, b); B.context.lineTo(c - e, b); B.context.quadraticCurveTo(c + h, b, c + f, b - p); B.context.quadraticCurveTo(c, b - m, c, b + g); B.context.lineTo(c, d - g) }; B.endFill = function () { B.context.beginPath(); B.playCommands(B.fillCommands, !1); B.fillCommands.clear() }; B.endStroke = function () { B.context.beginPath(); B.playCommands(B.strokeCommands, !0); B.context.closePath(); B.strokeCommands.clear() }; B.hitTest = function (a, b, c) { B.bounds = a.__bounds; B.graphics = a; if (0 == a.__commands.get_length() || null == B.bounds || 0 >= B.bounds.width || 0 >= B.bounds.height) return !1; B.hitTesting = !0; var d = a.__renderTransform, e = b * d.b + c * d.d + d.ty; b = b * d.a + c * d.c + d.tx - (B.bounds.x * d.a + B.bounds.y * d.c + d.tx); c = e - (B.bounds.x * d.b + B.bounds.y * d.d + d.ty); e = a.__canvas; var g = a.__context; a.__canvas = B.hitTestCanvas; a.__context = B.hitTestContext; B.context = a.__context; B.context.setTransform(d.a, d.b, d.c, d.d, d.tx, d.ty); B.fillCommands.clear(); B.strokeCommands.clear(); B.hasFill = !1; B.hasStroke = !1; B.bitmapFill = null; B.bitmapRepeat = !1; B.windingRule = "evenodd"; d = new $f(a.__commands); for (var f = a.__commands.types, h = 0, p = a.__commands.get_length(); h < p;) { var m = h++; m = f[m]; switch (m._hx_index) { case 0: case 1: case 2: case 3: B.endFill(); if (B.hasFill && B.context.isPointInPath(b, c, B.windingRule)) return d.destroy(), a.__canvas = e, a.__context = g, !0; B.endStroke(); if (B.hasStroke && B.context.isPointInStroke(b, c)) return d.destroy(), a.__canvas = e, a.__context = g, !0; if (m == Z.BEGIN_BITMAP_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.BEGIN_BITMAP_FILL; m = d; B.fillCommands.beginBitmapFill(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]); B.strokeCommands.beginBitmapFill(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]) } else if (m == Z.BEGIN_GRADIENT_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.BEGIN_GRADIENT_FILL; m = d; B.fillCommands.beginGradientFill(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]); B.strokeCommands.beginGradientFill(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]) } else if (m == Z.BEGIN_SHADER_FILL) { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.BEGIN_SHADER_FILL; m = d; B.fillCommands.beginShaderFill(m.buffer.o[m.oPos]); B.strokeCommands.beginShaderFill(m.buffer.o[m.oPos]) } else { switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.BEGIN_FILL; m = d; B.fillCommands.beginFill(m.buffer.i[m.iPos], 1); B.strokeCommands.beginFill(m.buffer.i[m.iPos], 1) } break; case 4: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.CUBIC_CURVE_TO; m = d; B.fillCommands.cubicCurveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.f[m.fPos + 5]); B.strokeCommands.cubicCurveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.f[m.fPos + 5]); break; case 5: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.CURVE_TO; m = d; B.fillCommands.curveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); B.strokeCommands.curveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); break; case 6: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.DRAW_CIRCLE; m = d; B.fillCommands.drawCircle(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2]); B.strokeCommands.drawCircle(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2]); break; case 7: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.DRAW_ELLIPSE; m = d; B.fillCommands.drawEllipse(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); B.strokeCommands.drawEllipse(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); break; case 9: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.DRAW_RECT; m = d; B.fillCommands.drawRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); B.strokeCommands.drawRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); break; case 10: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.DRAW_ROUND_RECT; m = d; B.fillCommands.drawRoundRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.o[m.oPos]); B.strokeCommands.drawRoundRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.o[m.oPos]); break; case 13: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.END_FILL; B.endFill(); if (B.hasFill && B.context.isPointInPath(b, c, B.windingRule)) return d.destroy(), a.__canvas = e, a.__context = g, !0; B.endStroke(); if (B.hasStroke && B.context.isPointInStroke(b, c)) return d.destroy(), a.__canvas = e, a.__context = g, !0; B.hasFill = !1; B.bitmapFill = null; break; case 14: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.LINE_BITMAP_STYLE; m = d; B.strokeCommands.lineBitmapStyle(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]); break; case 15: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.LINE_GRADIENT_STYLE; m = d; B.strokeCommands.lineGradientStyle(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]); break; case 16: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.LINE_STYLE; m = d; B.strokeCommands.lineStyle(m.buffer.o[m.oPos], m.buffer.i[m.iPos], 1, m.buffer.b[m.bPos], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos + 1]); break; case 17: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.LINE_TO; m = d; B.fillCommands.lineTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); B.strokeCommands.lineTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); break; case 18: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = Z.MOVE_TO; m = d; B.fillCommands.moveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); B.strokeCommands.moveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); break; case 21: B.windingRule = "evenodd"; break; case 22: B.windingRule = "nonzero"; break; default: switch (d.prev._hx_index) { case 0: d.oPos += 2; d.bPos += 2; break; case 1: d.iPos += 1; d.fPos += 1; break; case 2: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 3: d.oPos += 1; break; case 4: d.fPos += 6; break; case 5: d.fPos += 4; break; case 6: d.fPos += 3; break; case 7: d.fPos += 4; break; case 8: d.oPos += 3; break; case 9: d.fPos += 4; break; case 10: d.fPos += 5; d.oPos += 1; break; case 12: d.oPos += 4; break; case 14: d.oPos += 2; d.bPos += 2; break; case 15: d.oPos += 4; d.iiPos += 2; d.ffPos += 1; d.fPos += 1; break; case 16: d.oPos += 4; d.iPos += 1; d.fPos += 2; d.bPos += 1; break; case 17: d.fPos += 2; break; case 18: d.fPos += 2; break; case 19: d.oPos += 1; break; case 20: d.oPos += 1 } d.prev = m } } f = !1; 0 < B.fillCommands.get_length() && B.endFill(); B.hasFill && B.context.isPointInPath(b, c, B.windingRule) && (f = !0); 0 < B.strokeCommands.get_length() && B.endStroke(); B.hasStroke && B.context.isPointInStroke(b, c) && (f = !0); d.destroy(); a.__canvas = e; a.__context = g; return f }; B.isCCW = function (a, b, c, d, e, g) { return 0 > (c - a) * (g - b) - (d - b) * (e - a) }; B.normalizeUVT = function (a, b) { null == b && (b = !1); for (var c = -Infinity, d, e = a.get_length(), g = 1, f = e + 1; g < f;) d = g++, b && 0 == d % 3 || (d = a.get(d - 1), c < d && (c = d)); if (!b) return {max: c, uvt: a}; var h = Eb.toFloatVector(null); g = 1; for (f = e + 1; g < f;) d = g++, b && 0 == d % 3 || h.push(a.get(d - 1)); return {max: c, uvt: h} }; B.playCommands = function (a, b) { null == b && (b = !1); B.bounds = B.graphics.__bounds; var c = B.bounds.x, d = B.bounds.y, e = 0, g = 0, f = !1, h = 0, p = 0, m = !1; B.windingRule = "evenodd"; B.setSmoothing(!0); var l = !1, n = new $f(a), k, t, q, w = null, u = null, x = a.types, A = 0, N = a.get_length(); a:for (; A < N;) { var J = A++, z = x[J]; switch (z._hx_index) { case 0: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.BEGIN_BITMAP_FILL; var ma = n; B.bitmapFill = ma.buffer.o[ma.oPos]; B.context.fillStyle = B.createBitmapFill(ma.buffer.o[ma.oPos], ma.buffer.b[ma.bPos], ma.buffer.b[ma.bPos + 1]); B.hasFill = !0; null != ma.buffer.o[ma.oPos + 1] ? (B.pendingMatrix = ma.buffer.o[ma.oPos + 1], B.inversePendingMatrix = ma.buffer.o[ma.oPos + 1].clone(), B.inversePendingMatrix.invert()) : (B.pendingMatrix = null, B.inversePendingMatrix = null); break; case 1: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.BEGIN_FILL; var C = n; if (.005 > C.buffer.f[C.fPos]) B.hasFill = !1; else { if (1 == C.buffer.f[C.fPos]) { var K = T.hex(C.buffer.i[C.iPos] & 16777215, 6); B.context.fillStyle = "#" + K } else { var F = (C.buffer.i[C.iPos] & 16711680) >>> 16; var I = (C.buffer.i[C.iPos] & 65280) >>> 8; var G = C.buffer.i[C.iPos] & 255; B.context.fillStyle = "rgba(" + F + ", " + I + ", " + G + ", " + C.buffer.f[C.fPos] + ")" } B.bitmapFill = null; B.setSmoothing(!0); B.hasFill = !0 } break; case 2: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.BEGIN_GRADIENT_FILL; var D = n; B.context.fillStyle = B.createGradientPattern(D.buffer.o[D.oPos], D.buffer.ii[D.iiPos], D.buffer.ff[D.ffPos], D.buffer.ii[D.iiPos + 1], D.buffer.o[D.oPos + 1], D.buffer.o[D.oPos + 2], D.buffer.o[D.oPos + 3], D.buffer.f[D.fPos]); B.bitmapFill = null; B.setSmoothing(!0); B.hasFill = !0; break; case 3: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.BEGIN_SHADER_FILL; var y = n, E = y.buffer.o[y.oPos]; 0 < E.inputCount && (B.bitmapFill = E.inputs[0], B.context.fillStyle = B.createBitmapFill(B.bitmapFill, 0 != E.inputWrap[0], 5 != E.inputFilter[0]), B.hasFill = !0, B.pendingMatrix = null, B.inversePendingMatrix = null); break; case 4: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.CUBIC_CURVE_TO; var L = n; l = !0; B.context.bezierCurveTo(L.buffer.f[L.fPos] - c, L.buffer.f[L.fPos + 1] - d, L.buffer.f[L.fPos + 2] - c, L.buffer.f[L.fPos + 3] - d, L.buffer.f[L.fPos + 4] - c, L.buffer.f[L.fPos + 5] - d); break; case 5: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.CURVE_TO; var M = n; l = !0; B.context.quadraticCurveTo(M.buffer.f[M.fPos] - c, M.buffer.f[M.fPos + 1] - d, M.buffer.f[M.fPos + 2] - c, M.buffer.f[M.fPos + 3] - d); break; case 6: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_CIRCLE; var P = n; l = !0; B.context.moveTo(P.buffer.f[P.fPos] - c + P.buffer.f[P.fPos + 2], P.buffer.f[P.fPos + 1] - d); B.context.arc(P.buffer.f[P.fPos] - c, P.buffer.f[P.fPos + 1] - d, P.buffer.f[P.fPos + 2], 0, 2 * Math.PI, !0); break; case 7: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_ELLIPSE; var O = n; l = !0; var Aa = O.buffer.f[O.fPos]; var S = O.buffer.f[O.fPos + 1]; var fb = O.buffer.f[O.fPos + 2]; var za = O.buffer.f[O.fPos + 3]; Aa -= c; S -= d; var Sa = fb / 2 * .5522848; var W = za / 2 * .5522848; var U = Aa + fb; var R = S + za; var H = Aa + fb / 2; var X = S + za / 2; B.context.moveTo(Aa, X); B.context.bezierCurveTo(Aa, X - W, H - Sa, S, H, S); B.context.bezierCurveTo(H + Sa, S, U, X - W, U, X); B.context.bezierCurveTo(U, X + W, H + Sa, R, H, R); B.context.bezierCurveTo(H - Sa, R, Aa, X + W, Aa, X); break; case 8: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_QUADS; var Q = n, V = Q.buffer.o[Q.oPos], aa = Q.buffer.o[Q.oPos + 1], Y = Q.buffer.o[Q.oPos + 2], Te = null != aa, Ba = !1, ca = !1, ha = Te ? aa.get_length() : Math.floor(V.get_length() / 4); if (0 == ha) return; null != Y && (Y.get_length() >= 6 * ha ? ca = Ba = !0 : Y.get_length() >= 4 * ha ? Ba = !0 : Y.get_length() >= 2 * ha && (ca = !0)); var fa = ba.__pool.get(), ka = Ja.__pool.get(), xb = B.graphics.__renderTransform; B.context.save(); for (var la = 0, ia = ha; la < ia;) { var oa = la++; var Ha = Te ? 4 * aa.get(oa) : 4 * oa; if (!(0 > Ha || (fa.setTo(V.get(Ha), V.get(Ha + 1), V.get(Ha + 2), V.get(Ha + 3)), 0 >= fa.width || 0 >= fa.height))) { if (Ba && ca) { var ye = 6 * oa; ka.setTo(Y.get(ye), Y.get(ye + 1), Y.get(ye + 2), Y.get(ye + 3), Y.get(ye + 4), Y.get(ye + 5)) } else Ba ? (ye = 4 * oa, ka.setTo(Y.get(ye), Y.get(ye + 1), Y.get(ye + 2), Y.get(ye + 3), fa.x, fa.y)) : ca ? (ye = 2 * oa, ka.tx = Y.get(ye), ka.ty = Y.get(ye + 1)) : (ka.tx = fa.x, ka.ty = fa.y); ka.tx += e - c; ka.ty += g - d; ka.concat(xb); B.context.setTransform(ka.a, ka.b, ka.c, ka.d, ka.tx, ka.ty); null != B.bitmapFill ? B.context.drawImage(B.bitmapFill.image.get_src(), fa.x, fa.y, fa.width, fa.height, 0, 0, fa.width, fa.height) : B.context.fillRect(0, 0, fa.width, fa.height) } } ba.__pool.release(fa); Ja.__pool.release(ka); B.context.restore(); break; case 9: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_RECT; var ea = n; var Pg = !1; if (null != B.bitmapFill && !B.hitTesting) { var ya = q = t = k = 0; var ra = !0; if (null != B.pendingMatrix) if (0 != B.pendingMatrix.b || 0 != B.pendingMatrix.c) ra = !1; else { null == w && (w = na.__pool.get()); null == u && (u = na.__pool.get()); w.setTo(ea.buffer.f[ea.fPos], ea.buffer.f[ea.fPos + 1]); var pa = B.inversePendingMatrix, ta = w.x, ua = w.y; w.x = ta * pa.a + ua * pa.c + pa.tx; w.y = ta * pa.b + ua * pa.d + pa.ty; u.setTo(ea.buffer.f[ea.fPos] + ea.buffer.f[ea.fPos + 2], ea.buffer.f[ea.fPos + 1] + ea.buffer.f[ea.fPos + 3]); var sa = B.inversePendingMatrix, hb = u.x, vf = u.y; u.x = hb * sa.a + vf * sa.c + sa.tx; u.y = hb * sa.b + vf * sa.d + sa.ty; k = w.y; ya = w.x; q = u.y; t = u.x } else k = ea.buffer.f[ea.fPos + 1], ya = ea.buffer.f[ea.fPos], q = ea.buffer.f[ea.fPos + 1] + ea.buffer.f[ea.fPos + 3], t = ea.buffer.f[ea.fPos] + ea.buffer.f[ea.fPos + 2]; ra && 0 <= k && 0 <= ya && t <= B.bitmapFill.width && q <= B.bitmapFill.height && (Pg = !0, B.hitTesting || B.context.drawImage(B.bitmapFill.image.get_src(), ya, k, t - ya, q - k, ea.buffer.f[ea.fPos] - c, ea.buffer.f[ea.fPos + 1] - d, ea.buffer.f[ea.fPos + 2], ea.buffer.f[ea.fPos + 3])) } Pg || (l = !0, B.context.rect(ea.buffer.f[ea.fPos] - c, ea.buffer.f[ea.fPos + 1] - d, ea.buffer.f[ea.fPos + 2], ea.buffer.f[ea.fPos + 3])); break; case 10: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_ROUND_RECT; var qa = n; l = !0; B.drawRoundRect(qa.buffer.f[qa.fPos] - c, qa.buffer.f[qa.fPos + 1] - d, qa.buffer.f[qa.fPos + 2], qa.buffer.f[qa.fPos + 3], qa.buffer.f[qa.fPos + 4], qa.buffer.o[qa.oPos]); break; case 12: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.DRAW_TRIANGLES; var wa = n, Jd = wa.buffer.o[wa.oPos], xa = wa.buffer.o[wa.oPos + 1], ze = wa.buffer.o[wa.oPos + 2], va = null, Ca = null == B.bitmapFill; if (Ca && null != ze) break a; if (!Ca) { if (null == ze) { ze = Eb.toFloatVector(null); for (var Da = 0, Ea = Jd.get_length() / 2 | 0; Da < Ea;) { var Fa = Da++; ze.push(Jd.get(2 * Fa) - c / B.bitmapFill.width); ze.push(Jd.get(2 * Fa + 1) - d / B.bitmapFill.height) } } var Ia = ze.get_length() != Jd.get_length(), Ka = B.normalizeUVT(ze, Ia), La = Ka.max; ze = Ka.uvt; va = 1 < La ? B.createTempPatternCanvas(B.bitmapFill, B.bitmapRepeat, B.bounds.width | 0, B.bounds.height | 0) : B.createTempPatternCanvas(B.bitmapFill, B.bitmapRepeat, B.bitmapFill.width, B.bitmapFill.height) } for (var Ga = 0, Na = xa.get_length(), Ma, Oa, Pa, Qa, Ra, Ta, $a, ab, bb, Va, Wa, Ua, Xa, Za, Rb, jb, gb, Ae, cb, db, eb, ib, lb, mb, ob, pb, qb, rb; Ga < Na;) { Ma = Ga; Oa = Ga + 1; Pa = Ga + 2; Qa = 2 * xa.get(Ma); Ra = 2 * xa.get(Ma) + 1; Ta = 2 * xa.get(Oa); $a = 2 * xa.get(Oa) + 1; ab = 2 * xa.get(Pa); bb = 2 * xa.get(Pa) + 1; Va = Jd.get(Qa) - c; Wa = Jd.get(Ra) - d; Ua = Jd.get(Ta) - c; Xa = Jd.get($a) - d; Za = Jd.get(ab) - c; Rb = Jd.get(bb) - d; switch (wa.buffer.o[wa.oPos + 3]) { case 0: if (0 > (Ua - Va) * (Rb - Wa) - (Xa - Wa) * (Za - Va)) { Ga += 3; continue } break; case 2: if (!(0 > (Ua - Va) * (Rb - Wa) - (Xa - Wa) * (Za - Va))) { Ga += 3; continue } } Ca ? (B.context.beginPath(), B.context.moveTo(Va, Wa), B.context.lineTo(Ua, Xa), B.context.lineTo(Za, Rb), B.context.closePath(), B.hitTesting || B.context.fill(B.windingRule), Ga += 3) : (jb = ze.get(Qa) * va.width, Ae = ze.get(Ta) * va.width, db = ze.get(ab) * va.width, gb = ze.get(Ra) * va.height, cb = ze.get($a) * va.height, eb = ze.get(bb) * va.height, ib = jb * (eb - cb) - Ae * eb + db * cb + (Ae - db) * gb, 0 == ib ? (Ga += 3, B.context.restore()) : (B.context.save(), B.context.beginPath(), B.context.moveTo(Va, Wa), B.context.lineTo(Ua, Xa), B.context.lineTo(Za, Rb), B.context.closePath(), B.context.clip(), lb = -(gb * (Za - Ua) - cb * Za + eb * Ua + (cb - eb) * Va) / ib, mb = (cb * Rb + gb * (Xa - Rb) - eb * Xa + (eb - cb) * Wa) / ib, ob = (jb * (Za - Ua) - Ae * Za + db * Ua + (Ae - db) * Va) / ib, pb = -(Ae * Rb + jb * (Xa - Rb) - db * Xa + (db - Ae) * Wa) / ib, qb = (jb * (eb * Ua - cb * Za) + gb * (Ae * Za - db * Ua) + (db * cb - Ae * eb) * Va) / ib, rb = (jb * (eb * Xa - cb * Rb) + gb * (Ae * Rb - db * Xa) + (db * cb - Ae * eb) * Wa) / ib, B.context.transform(lb, mb, ob, pb, qb, rb), B.context.drawImage(va, 0, 0, va.width, va.height), B.context.restore(), Ga += 3)) } break; case 14: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.LINE_BITMAP_STYLE; var se = n; b && B.hasStroke && B.closePath(); B.context.moveTo(e - c, g - d); B.context.strokeStyle = B.createBitmapFill(se.buffer.o[se.oPos], se.buffer.b[se.bPos], se.buffer.b[se.bPos + 1]); B.hasStroke = !0; break; case 15: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.LINE_GRADIENT_STYLE; var kb = n; b && B.hasStroke && B.closePath(); B.context.moveTo(e - c, g - d); B.context.strokeStyle = B.createGradientPattern(kb.buffer.o[kb.oPos], kb.buffer.ii[kb.iiPos], kb.buffer.ff[kb.ffPos], kb.buffer.ii[kb.iiPos + 1], kb.buffer.o[kb.oPos + 1], kb.buffer.o[kb.oPos + 2], kb.buffer.o[kb.oPos + 3], kb.buffer.f[kb.fPos]); B.setSmoothing(!0); B.hasStroke = !0; break; case 16: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.LINE_STYLE; var Ya = n; b && B.hasStroke && B.closePath(!0); B.context.moveTo(e - c, g - d); if (null == Ya.buffer.o[Ya.oPos]) B.hasStroke = !1; else { B.context.lineWidth = 0 < Ya.buffer.o[Ya.oPos] ? Ya.buffer.o[Ya.oPos] : 1; var tb = null == Ya.buffer.o[Ya.oPos + 3] ? "round" : Jr.toString(Ya.buffer.o[Ya.oPos + 3]).toLowerCase(); B.context.lineJoin = tb; var vb = null == Ya.buffer.o[Ya.oPos + 2] ? "round" : 0 == Ya.buffer.o[Ya.oPos + 2] ? "butt" : Gr.toString(Ya.buffer.o[Ya.oPos + 2]).toLowerCase(); B.context.lineCap = vb; B.context.miterLimit = Ya.buffer.f[Ya.fPos + 1]; if (1 == Ya.buffer.f[Ya.fPos]) { var wb = T.hex(Ya.buffer.i[Ya.iPos] & 16777215, 6); B.context.strokeStyle = "#" + wb } else F = (Ya.buffer.i[Ya.iPos] & 16711680) >>> 16, I = (Ya.buffer.i[Ya.iPos] & 65280) >>> 8, G = Ya.buffer.i[Ya.iPos] & 255, B.context.strokeStyle = "rgba(" + F + ", " + I + ", " + G + ", " + Ya.buffer.f[Ya.fPos] + ")"; B.setSmoothing(!0); B.hasStroke = !0 } break; case 17: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.LINE_TO; var sb = n; l = !0; B.context.lineTo(sb.buffer.f[sb.fPos] - c, sb.buffer.f[sb.fPos + 1] - d); e = sb.buffer.f[sb.fPos]; g = sb.buffer.f[sb.fPos + 1]; e == h && g == p && (f = !0); break; case 18: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = Z.MOVE_TO; var nb = n; B.context.moveTo(nb.buffer.f[nb.fPos] - c, nb.buffer.f[nb.fPos + 1] - d); e = nb.buffer.f[nb.fPos]; g = nb.buffer.f[nb.fPos + 1]; m && nb.buffer.f[nb.fPos] != h && nb.buffer.f[nb.fPos + 1] != p && (f = !0); h = nb.buffer.f[nb.fPos]; p = nb.buffer.f[nb.fPos + 1]; m = !0; break; case 21: B.windingRule = "evenodd"; break; case 22: B.windingRule = "nonzero"; break; default: switch (n.prev._hx_index) { case 0: n.oPos += 2; n.bPos += 2; break; case 1: n.iPos += 1; n.fPos += 1; break; case 2: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 3: n.oPos += 1; break; case 4: n.fPos += 6; break; case 5: n.fPos += 4; break; case 6: n.fPos += 3; break; case 7: n.fPos += 4; break; case 8: n.oPos += 3; break; case 9: n.fPos += 4; break; case 10: n.fPos += 5; n.oPos += 1; break; case 12: n.oPos += 4; break; case 14: n.oPos += 2; n.bPos += 2; break; case 15: n.oPos += 4; n.iiPos += 2; n.ffPos += 1; n.fPos += 1; break; case 16: n.oPos += 4; n.iPos += 1; n.fPos += 2; n.bPos += 1; break; case 17: n.fPos += 2; break; case 18: n.fPos += 2; break; case 19: n.oPos += 1; break; case 20: n.oPos += 1 } n.prev = z } } null != w && na.__pool.release(w); null != u && na.__pool.release(u); n.destroy(); l && (b && B.hasStroke && (B.hasFill && f ? (B.context.lineTo(h - c, p - d), B.closePath(!1)) : f && e == h && g == p && B.closePath(!1), B.hitTesting || B.context.stroke()), b || !B.hasFill && null == B.bitmapFill || (B.context.translate(-B.bounds.x, -B.bounds.y), null != B.pendingMatrix ? (B.context.transform(B.pendingMatrix.a, B.pendingMatrix.b, B.pendingMatrix.c, B.pendingMatrix.d, B.pendingMatrix.tx, B.pendingMatrix.ty), B.hitTesting || B.context.fill(B.windingRule), B.context.transform(B.inversePendingMatrix.a, B.inversePendingMatrix.b, B.inversePendingMatrix.c, B.inversePendingMatrix.d, B.inversePendingMatrix.tx, B.inversePendingMatrix.ty)) : B.hitTesting || B.context.fill(B.windingRule), B.context.translate(B.bounds.x, B.bounds.y), B.context.closePath())) }; B.render = function (a, b) { a.__update(b.__worldTransform); a.__commands.__endBuffer(); if (a.__softwareDirty && a.__commands.get_dirty()) { B.hitTesting = !1; B.graphics = a; B.allowSmoothing = b.__allowSmoothing; B.worldAlpha = b.__getAlpha(a.__owner.__worldAlpha); B.bounds = a.__bounds; var c = a.__width, d = a.__height; if (!a.__visible || 0 == a.__commands.get_length() || null == B.bounds || 1 > c || 1 > d) a.__canvas = null, a.__context = null, a.__bitmap = null; else { null == a.__canvas && (a.__canvas = window.document.createElement("canvas"), a.__context = a.__canvas.getContext("2d")); B.context = a.__context; var e = a.__renderTransform, g = a.__canvas, f = b.pixelRatio, h = c * f | 0, p = d * f | 0; b.__setBlendModeContext(B.context, 10); b.__isDOM ? (g.width == h && g.height == p ? B.context.clearRect(0, 0, h, p) : (g.width = h, g.height = p, g.style.width = c + "px", g.style.height = d + "px"), c = a.__renderTransform, B.context.setTransform(c.a * f, c.b * f, c.c * f, c.d * f, c.tx * f, c.ty * f)) : (g.width == h && g.height == p ? (B.context.closePath(), B.context.setTransform(1, 0, 0, 1, 0, 0), B.context.clearRect(0, 0, h, p)) : (g.width = c, g.height = d), B.context.setTransform(e.a, e.b, e.c, e.d, e.tx, e.ty)); B.fillCommands.clear(); B.strokeCommands.clear(); B.hasFill = !1; B.hasStroke = !1; B.bitmapFill = null; f = B.bitmapRepeat = !1; d = c = 0; B.windingRule = "evenodd"; e = new $f(a.__commands); g = a.__commands.types; h = 0; for (p = a.__commands.get_length(); h < p;) { var m = h++; m = g[m]; switch (m._hx_index) { case 0: case 1: case 2: case 3: B.endFill(); B.endStroke(); if (m == Z.BEGIN_BITMAP_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.BEGIN_BITMAP_FILL; m = e; B.fillCommands.beginBitmapFill(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]); B.strokeCommands.beginBitmapFill(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]) } else if (m == Z.BEGIN_GRADIENT_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.BEGIN_GRADIENT_FILL; m = e; B.fillCommands.beginGradientFill(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]); B.strokeCommands.beginGradientFill(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]) } else if (m == Z.BEGIN_SHADER_FILL) { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.BEGIN_SHADER_FILL; m = e; B.fillCommands.beginShaderFill(m.buffer.o[m.oPos]); B.strokeCommands.beginShaderFill(m.buffer.o[m.oPos]) } else { switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.BEGIN_FILL; m = e; B.fillCommands.beginFill(m.buffer.i[m.iPos], m.buffer.f[m.fPos]); B.strokeCommands.beginFill(m.buffer.i[m.iPos], m.buffer.f[m.fPos]) } break; case 4: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.CUBIC_CURVE_TO; m = e; B.fillCommands.cubicCurveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.f[m.fPos + 5]); f ? B.strokeCommands.cubicCurveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.f[m.fPos + 5]) : (c = m.buffer.f[m.fPos + 4], d = m.buffer.f[m.fPos + 5]); break; case 5: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.CURVE_TO; m = e; B.fillCommands.curveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); f ? B.strokeCommands.curveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]) : (c = m.buffer.f[m.fPos + 2], d = m.buffer.f[m.fPos + 3]); break; case 6: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_CIRCLE; m = e; B.fillCommands.drawCircle(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2]); f && B.strokeCommands.drawCircle(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2]); break; case 7: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_ELLIPSE; m = e; B.fillCommands.drawEllipse(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); f && B.strokeCommands.drawEllipse(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); break; case 8: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_QUADS; m = e; B.fillCommands.drawQuads(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2]); break; case 9: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_RECT; m = e; B.fillCommands.drawRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); f && B.strokeCommands.drawRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3]); break; case 10: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_ROUND_RECT; m = e; B.fillCommands.drawRoundRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.o[m.oPos]); f && B.strokeCommands.drawRoundRect(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1], m.buffer.f[m.fPos + 2], m.buffer.f[m.fPos + 3], m.buffer.f[m.fPos + 4], m.buffer.o[m.oPos]); break; case 12: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.DRAW_TRIANGLES; m = e; B.fillCommands.drawTriangles(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3]); break; case 13: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.END_FILL; B.endFill(); B.endStroke(); f = B.hasFill = !1; B.bitmapFill = null; d = c = 0; break; case 14: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.LINE_BITMAP_STYLE; m = e; f || 0 == c && 0 == d || (B.strokeCommands.moveTo(c, d), d = c = 0); f = !0; B.strokeCommands.lineBitmapStyle(m.buffer.o[m.oPos], m.buffer.o[m.oPos + 1], m.buffer.b[m.bPos], m.buffer.b[m.bPos + 1]); break; case 15: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.LINE_GRADIENT_STYLE; m = e; f || 0 == c && 0 == d || (B.strokeCommands.moveTo(c, d), d = c = 0); f = !0; B.strokeCommands.lineGradientStyle(m.buffer.o[m.oPos], m.buffer.ii[m.iiPos], m.buffer.ff[m.ffPos], m.buffer.ii[m.iiPos + 1], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos]); break; case 16: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.LINE_STYLE; m = e; f || null == m.buffer.o[m.oPos] || 0 == c && 0 == d || (B.strokeCommands.moveTo(c, d), d = c = 0); f = null != m.buffer.o[m.oPos]; B.strokeCommands.lineStyle(m.buffer.o[m.oPos], m.buffer.i[m.iPos], m.buffer.f[m.fPos], m.buffer.b[m.bPos], m.buffer.o[m.oPos + 1], m.buffer.o[m.oPos + 2], m.buffer.o[m.oPos + 3], m.buffer.f[m.fPos + 1]); break; case 17: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.LINE_TO; m = e; B.fillCommands.lineTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); f ? B.strokeCommands.lineTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]) : (c = m.buffer.f[m.fPos], d = m.buffer.f[m.fPos + 1]); break; case 18: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.MOVE_TO; m = e; B.fillCommands.moveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]); f ? B.strokeCommands.moveTo(m.buffer.f[m.fPos], m.buffer.f[m.fPos + 1]) : (c = m.buffer.f[m.fPos], d = m.buffer.f[m.fPos + 1]); break; case 19: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.OVERRIDE_BLEND_MODE; m = e; b.__setBlendModeContext(B.context, m.buffer.o[m.oPos]); break; case 21: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.WINDING_EVEN_ODD; B.fillCommands.windingEvenOdd(); B.windingRule = "evenodd"; break; case 22: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = Z.WINDING_NON_ZERO; B.fillCommands.windingNonZero(); B.windingRule = "nonzero"; break; default: switch (e.prev._hx_index) { case 0: e.oPos += 2; e.bPos += 2; break; case 1: e.iPos += 1; e.fPos += 1; break; case 2: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 3: e.oPos += 1; break; case 4: e.fPos += 6; break; case 5: e.fPos += 4; break; case 6: e.fPos += 3; break; case 7: e.fPos += 4; break; case 8: e.oPos += 3; break; case 9: e.fPos += 4; break; case 10: e.fPos += 5; e.oPos += 1; break; case 12: e.oPos += 4; break; case 14: e.oPos += 2; e.bPos += 2; break; case 15: e.oPos += 4; e.iiPos += 2; e.ffPos += 1; e.fPos += 1; break; case 16: e.oPos += 4; e.iPos += 1; e.fPos += 2; e.bPos += 1; break; case 17: e.fPos += 2; break; case 18: e.fPos += 2; break; case 19: e.oPos += 1; break; case 20: e.oPos += 1 } e.prev = m } } 0 < B.fillCommands.get_length() && B.endFill(); 0 < B.strokeCommands.get_length() && B.endStroke(); e.destroy(); a.__bitmap = ka.fromCanvas(a.__canvas) } a.__softwareDirty = !1; a.set___dirty(!1) } }; B.renderMask = function (a, b) { if (0 != a.__commands.get_length()) { B.context = b.context; b = new $f(a.__commands); var c = a.__commands.types, d = 0; for (a = a.__commands.get_length(); d < a;) { var e = d++; e = c[e]; switch (e._hx_index) { case 4: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CUBIC_CURVE_TO; e = b; B.context.bezierCurveTo(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0, e.buffer.f[e.fPos + 2] - 0, e.buffer.f[e.fPos + 3] - 0, e.buffer.f[e.fPos + 4] - 0, e.buffer.f[e.fPos + 5] - 0); break; case 5: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.CURVE_TO; e = b; B.context.quadraticCurveTo(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0, e.buffer.f[e.fPos + 2] - 0, e.buffer.f[e.fPos + 3] - 0); break; case 6: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_CIRCLE; e = b; B.context.arc(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0, e.buffer.f[e.fPos + 2], 0, 2 * Math.PI, !0); break; case 7: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ELLIPSE; var g = b; e = g.buffer.f[g.fPos]; var f = g.buffer.f[g.fPos + 1]; var h = g.buffer.f[g.fPos + 2]; var p = g.buffer.f[g.fPos + 3]; e -= 0; f -= 0; g = h / 2 * .5522848; var m = p / 2 * .5522848; var l = e + h; var n = f + p; h = e + h / 2; p = f + p / 2; B.context.moveTo(e, p); B.context.bezierCurveTo(e, p - m, h - g, f, h, f); B.context.bezierCurveTo(h + g, f, l, p - m, l, p); B.context.bezierCurveTo(l, p + m, h + g, n, h, n); B.context.bezierCurveTo(h - g, n, e, p + m, e, p); break; case 9: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_RECT; e = b; B.context.beginPath(); B.context.rect(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0, e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3]); B.context.closePath(); break; case 10: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.DRAW_ROUND_RECT; e = b; B.drawRoundRect(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0, e.buffer.f[e.fPos + 2], e.buffer.f[e.fPos + 3], e.buffer.f[e.fPos + 4], e.buffer.o[e.oPos]); break; case 17: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.LINE_TO; e = b; B.context.lineTo(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0); break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = Z.MOVE_TO; e = b; B.context.moveTo(e.buffer.f[e.fPos] - 0, e.buffer.f[e.fPos + 1] - 0); break; default: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = e } } b.destroy() } }; B.setSmoothing = function (a) { B.allowSmoothing || (a = !1); B.context.imageSmoothingEnabled != a && (B.context.imageSmoothingEnabled = a) }; var Or = function () { }; k["openfl.display._internal.CanvasShape"] = Or; Or.__name__ = "openfl.display._internal.CanvasShape"; Or.render = function (a, b) { if (a.__renderable) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = a.__graphics; if (null != d) { B.render(d, b); var e = d.__width, g = d.__height, f = d.__canvas; if (null != f && d.__visible && 1 <= e && 1 <= g) { var h = d.__worldTransform, p = b.context, m = a.__scrollRect, l = a.__worldScale9Grid; if (null == m || 0 < m.width && 0 < m.height) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); p.globalAlpha = c; if (null != l && 0 == h.b && 0 == h.c) { p.setTransform(1, 0, 0, 1, h.tx, h.ty); var n = d.__bounds, k = d.__renderTransform.a, t = d.__renderTransform.d, q = h.a, w = h.d; h = Math.max(1, Math.round(l.x * k)); d = Math.round(l.y * t); c = Math.max(1, Math.round((n.get_right() - l.get_right()) * k)); m = Math.round((n.get_bottom() - l.get_bottom()) * t); k = Math.round(l.width * k); t = Math.round(l.height * t); var u = Math.round(l.x * q), x = Math.round(l.y * w), A = Math.round((n.get_right() - l.get_right()) * q); l = Math.round((n.get_bottom() - l.get_bottom()) * w); n = Math.round(e * q) - u - A; q = Math.round(g * w) - x - l; b.applySmoothing(p, !1); 0 != k && 0 != t ? (p.drawImage(f, 0, 0, h, d, 0, 0, u, x), p.drawImage(f, h, 0, k, d, u, 0, n, x), p.drawImage(f, h + k, 0, c, d, u + n, 0, A, x), p.drawImage(f, 0, d, h, t, 0, x, u, q), p.drawImage(f, h, d, k, t, u, x, n, q), p.drawImage(f, h + k, d, c, t, u + n, x, A, q), p.drawImage(f, 0, d + t, h, m, 0, x + q, u, l), p.drawImage(f, h, d + t, k, m, u, x + q, n, l), p.drawImage(f, h + k, d + t, c, m, u + n, x + q, A, l)) : 0 == k && 0 != t ? (g = u + n + A, p.drawImage(f, 0, 0, e, d, 0, 0, g, x), p.drawImage(f, 0, d, e, t, 0, x, g, q), p.drawImage(f, 0, d + t, e, m, 0, x + q, g, l)) : 0 == t && 0 != k && (e = x + q + l, p.drawImage(f, 0, 0, h, g, 0, 0, u, e), p.drawImage(f, h, 0, k, g, u, 0, n, e), p.drawImage(f, h + k, 0, c, g, u + n, 0, A, e)) } else b.setTransform(h, p), b.__isDOM && (l = 1 / b.pixelRatio, p.scale(l, l)), p.drawImage(f, 0, 0, e, g); b.__popMaskObject(a) } } } } } }; var Gm = function () { }; k["openfl.display._internal.CanvasSimpleButton"] = Gm; Gm.__name__ = "openfl.display._internal.CanvasSimpleButton"; Gm.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)) }; Gm.renderDrawableMask = function (a, b) { b.__renderDrawableMask(a.__currentState) }; var U = function () { }; k["openfl.display._internal.CanvasTextField"] = U; U.__name__ = "openfl.display._internal.CanvasTextField"; U.render = function (a, b, c) { var d = a.__textEngine, e = !(d.background || d.border), g = e ? d.textBounds : d.bounds, f = a.__graphics, h = 0; if (a.__dirty) { a.__updateLayout(); null == f.__bounds && (f.__bounds = new ba); if (0 == a.get_text().length) { h = d.bounds.width - 4; c = a.get_defaultTextFormat().align; h = 3 == c ? 0 : 4 == c ? h : h / 2; switch (c) { case 0: h += a.get_defaultTextFormat().leftMargin / 2; h -= a.get_defaultTextFormat().rightMargin / 2; h += a.get_defaultTextFormat().indent / 2; h += a.get_defaultTextFormat().blockIndent / 2; break; case 2: h += a.get_defaultTextFormat().leftMargin; h += a.get_defaultTextFormat().indent; h += a.get_defaultTextFormat().blockIndent; break; case 3: h += a.get_defaultTextFormat().leftMargin; h += a.get_defaultTextFormat().indent; h += a.get_defaultTextFormat().blockIndent; break; case 4: h -= a.get_defaultTextFormat().rightMargin } e && (g.y = d.bounds.y, g.x = h) } f.__bounds.copyFrom(g) } f.__update(b.__worldTransform); if (a.__dirty || f.__softwareDirty) { var p = f.__width, m = f.__height; if (!(null != d.text && "" != d.text || d.background || d.border || d.__hasFocus || 1 == d.type && d.selectable) || (0 >= d.width || 0 >= d.height) && 2 != d.autoSize) a.__graphics.__canvas = null, a.__graphics.__context = null, a.__graphics.__bitmap = null, a.__graphics.__softwareDirty = !1, a.__graphics.set___dirty(!1), a.__dirty = !1; else { null == a.__graphics.__canvas && (a.__graphics.__canvas = window.document.createElement("canvas"), a.__graphics.__context = a.__graphics.__canvas.getContext("2d")); U.context = f.__context; c = f.__renderTransform; if (b.__isDOM) { var l = b.pixelRatio; f.__canvas.width = p * l | 0; f.__canvas.height = m * l | 0; f.__canvas.style.width = p + "px"; f.__canvas.style.height = m + "px"; p = Ja.__pool.get(); p.copyFrom(c); p.scale(l, l); b.setTransform(p, U.context); Ja.__pool.release(p) } else f.__canvas.width = p, f.__canvas.height = m, U.context.setTransform(c.a, c.b, c.c, c.d, c.tx, c.ty); null == U.clearRect && (U.clearRect = "undefined" !== typeof navigator && "undefined" !== typeof navigator.isCocoonJS); U.clearRect && U.context.clearRect(0, 0, f.__canvas.width, f.__canvas.height); if (null != d.text && "" != d.text || d.__hasFocus) { e = d.text; f.__context.imageSmoothingEnabled = !b.__allowSmoothing || 0 == d.antiAliasType && 400 == d.sharpness ? !1 : !0; if (d.border || d.background) { U.context.rect(.5, .5, g.width - 1, g.height - 1); if (d.background) { var n = T.hex(d.backgroundColor & 16777215, 6); U.context.fillStyle = "#" + n; U.context.fill() } d.border && (U.context.lineWidth = 1, n = T.hex(d.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()) } U.context.textBaseline = "alphabetic"; U.context.textAlign = "start"; b = -a.get_scrollH(); var k = h = 0; for (n = a.get_scrollV() - 1; k < n;) { var t = k++; h -= d.lineHeights.get(t) } for (c = d.layoutGroups.iterator(); c.hasNext();) if (l = c.next(), !(l.lineIndex < a.get_scrollV() - 1)) { if (l.lineIndex > d.get_bottomScrollV() - 1) break; p = "#" + T.hex(l.format.color & 16777215, 6); U.context.font = Wb.getFont(l.format); U.context.fillStyle = p; U.context.fillText(e.substring(l.startIndex, l.endIndex), l.offsetX + b - g.x, l.offsetY + l.ascent + h - g.y); if (-1 < a.__caretIndex && d.selectable) if (a.__selectionIndex == a.__caretIndex) { if (a.__showCursor && l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex) { k = m = 0; for (n = a.__caretIndex - l.startIndex; k < n;) { t = k++; if (l.positions.length <= t) break; m += l.positions[t] } k = 0; n = a.get_scrollV(); for (t = l.lineIndex + 1; n < t;) { var q = n++; k += d.lineHeights.get(q - 1) } U.context.beginPath(); n = T.hex(l.format.color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(l.offsetX + m - a.get_scrollH() - g.x, k + 2 - g.y); U.context.lineWidth = 1; U.context.lineTo(l.offsetX + m - a.get_scrollH() - g.x, k + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1 - g.y); U.context.stroke(); U.context.closePath() } } else if (l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex || l.startIndex <= a.__selectionIndex && l.endIndex >= a.__selectionIndex || l.startIndex > a.__caretIndex && l.endIndex < a.__selectionIndex || l.startIndex > a.__selectionIndex && l.endIndex < a.__caretIndex) m = Math.min(a.__selectionIndex, a.__caretIndex) | 0, k = Math.max(a.__selectionIndex, a.__caretIndex) | 0, l.startIndex > m && (m = l.startIndex), l.endIndex < k && (k = l.endIndex), t = a.getCharBoundaries(m), k >= l.endIndex ? (n = a.getCharBoundaries(l.endIndex - 1), null != n && (n.x += n.width + 2)) : n = a.getCharBoundaries(k), null != t && null != n && (U.context.fillStyle = "#000000", U.context.fillRect(t.x + b - g.x, t.y + h, n.x - t.x, l.height), U.context.fillStyle = "#FFFFFF", U.context.fillText(e.substring(m, k), b + t.x - g.x, l.offsetY + l.ascent + h)); l.format.underline && (U.context.beginPath(), U.context.strokeStyle = p, U.context.lineWidth = 1, p = l.offsetX + b - g.x, m = Math.floor(l.offsetY + h + l.ascent - g.y) + .5, U.context.moveTo(p, m), U.context.lineTo(p + l.width, m), U.context.stroke(), U.context.closePath()) } } else { if (d.border || d.background) d.border ? U.context.rect(.5, .5, g.width - 1, g.height - 1) : U.context.rect(0, 0, g.width, g.height), d.background && (n = T.hex(d.backgroundColor & 16777215, 6), U.context.fillStyle = "#" + n, U.context.fill()), d.border && (U.context.lineWidth = 1, U.context.lineCap = "square", n = T.hex(d.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()); if (-1 < a.__caretIndex && d.selectable && a.__showCursor) { b = -a.get_scrollH() + (e ? 0 : h); k = h = 0; for (n = a.get_scrollV() - 1; k < n;) t = k++, h += d.lineHeights.get(t); U.context.beginPath(); n = T.hex(a.get_defaultTextFormat().color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(b + 2.5, h + 2.5); U.context.lineWidth = 1; U.context.lineTo(b + 2.5, h + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1); U.context.stroke(); U.context.closePath() } } f.__bitmap = ka.fromCanvas(a.__graphics.__canvas); f.__visible = !0; a.__dirty = !1; f.__softwareDirty = !1; f.set___dirty(!1) } } }; U.renderDrawable = function (a, b) { b.__isDOM && !a.__renderedOnCanvasWhileOnDOM && (a.__renderedOnCanvasWhileOnDOM = !0, 1 == a.get_type() && a.replaceText(0, a.__text.length, a.__text), a.__isHTML && a.__updateText(Db.parse(a.__text, a.__textFormat, a.__textEngine.textFormatRanges)), a.__dirty = !0, a.__layoutDirty = !0, a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty())); if (null == a.get_mask() || 0 < a.get_mask().get_width() && 0 < a.get_mask().get_height()) if (b.__updateCacheBitmap(a, a.__dirty), null == a.__cacheBitmap || a.__isCacheBitmapRender) { var c = a.__textEngine, d = !(c.background || c.border), e = d ? c.textBounds : c.bounds, g = a.__graphics, f = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new ba); if (0 == a.get_text().length) { var h = c.bounds.width - 4, p = a.get_defaultTextFormat().align; f = 3 == p ? 0 : 4 == p ? h : h / 2; switch (p) { case 0: f += a.get_defaultTextFormat().leftMargin / 2; f -= a.get_defaultTextFormat().rightMargin / 2; f += a.get_defaultTextFormat().indent / 2; f += a.get_defaultTextFormat().blockIndent / 2; break; case 2: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 3: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 4: f -= a.get_defaultTextFormat().rightMargin } d && (e.y = c.bounds.y, e.x = f) } g.__bounds.copyFrom(e) } g.__update(b.__worldTransform); if (a.__dirty || g.__softwareDirty) if (p = g.__width, h = g.__height, !(null != c.text && "" != c.text || c.background || c.border || c.__hasFocus || 1 == c.type && c.selectable) || (0 >= c.width || 0 >= c.height) && 2 != c.autoSize) a.__graphics.__canvas = null, a.__graphics.__context = null, a.__graphics.__bitmap = null, a.__graphics.__softwareDirty = !1, a.__graphics.set___dirty(!1), a.__dirty = !1; else { null == a.__graphics.__canvas && (a.__graphics.__canvas = window.document.createElement("canvas"), a.__graphics.__context = a.__graphics.__canvas.getContext("2d")); U.context = g.__context; var m = g.__renderTransform; if (b.__isDOM) { var l = b.pixelRatio; g.__canvas.width = p * l | 0; g.__canvas.height = h * l | 0; g.__canvas.style.width = p + "px"; g.__canvas.style.height = h + "px"; p = Ja.__pool.get(); p.copyFrom(m); p.scale(l, l); b.setTransform(p, U.context); Ja.__pool.release(p) } else g.__canvas.width = p, g.__canvas.height = h, U.context.setTransform(m.a, m.b, m.c, m.d, m.tx, m.ty); null == U.clearRect && (U.clearRect = "undefined" !== typeof navigator && "undefined" !== typeof navigator.isCocoonJS); U.clearRect && U.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if (null != c.text && "" != c.text || c.__hasFocus) { p = c.text; g.__context.imageSmoothingEnabled = !b.__allowSmoothing || 0 == c.antiAliasType && 400 == c.sharpness ? !1 : !0; if (c.border || c.background) { U.context.rect(.5, .5, e.width - 1, e.height - 1); if (c.background) { var n = T.hex(c.backgroundColor & 16777215, 6); U.context.fillStyle = "#" + n; U.context.fill() } c.border && (U.context.lineWidth = 1, n = T.hex(c.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()) } U.context.textBaseline = "alphabetic"; U.context.textAlign = "start"; h = -a.get_scrollH(); var k = d = 0; for (n = a.get_scrollV() - 1; k < n;) { var t = k++; d -= c.lineHeights.get(t) } var q; for (f = c.layoutGroups.iterator(); f.hasNext();) if (l = f.next(), !(l.lineIndex < a.get_scrollV() - 1)) { if (l.lineIndex > c.get_bottomScrollV() - 1) break; m = "#" + T.hex(l.format.color & 16777215, 6); U.context.font = Wb.getFont(l.format); U.context.fillStyle = m; U.context.fillText(p.substring(l.startIndex, l.endIndex), l.offsetX + h - e.x, l.offsetY + l.ascent + d - e.y); if (-1 < a.__caretIndex && c.selectable) if (a.__selectionIndex == a.__caretIndex) { if (a.__showCursor && l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex) { k = q = 0; for (n = a.__caretIndex - l.startIndex; k < n;) { t = k++; if (l.positions.length <= t) break; q += l.positions[t] } k = 0; n = a.get_scrollV(); for (t = l.lineIndex + 1; n < t;) { var w = n++; k += c.lineHeights.get(w - 1) } U.context.beginPath(); n = T.hex(l.format.color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(l.offsetX + q - a.get_scrollH() - e.x, k + 2 - e.y); U.context.lineWidth = 1; U.context.lineTo(l.offsetX + q - a.get_scrollH() - e.x, k + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1 - e.y); U.context.stroke(); U.context.closePath() } } else if (l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex || l.startIndex <= a.__selectionIndex && l.endIndex >= a.__selectionIndex || l.startIndex > a.__caretIndex && l.endIndex < a.__selectionIndex || l.startIndex > a.__selectionIndex && l.endIndex < a.__caretIndex) q = Math.min(a.__selectionIndex, a.__caretIndex) | 0, k = Math.max(a.__selectionIndex, a.__caretIndex) | 0, l.startIndex > q && (q = l.startIndex), l.endIndex < k && (k = l.endIndex), t = a.getCharBoundaries(q), k >= l.endIndex ? (n = a.getCharBoundaries(l.endIndex - 1), null != n && (n.x += n.width + 2)) : n = a.getCharBoundaries(k), null != t && null != n && (U.context.fillStyle = "#000000", U.context.fillRect(t.x + h - e.x, t.y + d, n.x - t.x, l.height), U.context.fillStyle = "#FFFFFF", U.context.fillText(p.substring(q, k), h + t.x - e.x, l.offsetY + l.ascent + d)); l.format.underline && (U.context.beginPath(), U.context.strokeStyle = m, U.context.lineWidth = 1, m = l.offsetX + h - e.x, q = Math.floor(l.offsetY + d + l.ascent - e.y) + .5, U.context.moveTo(m, q), U.context.lineTo(m + l.width, q), U.context.stroke(), U.context.closePath()) } } else { if (c.border || c.background) c.border ? U.context.rect(.5, .5, e.width - 1, e.height - 1) : U.context.rect(0, 0, e.width, e.height), c.background && (n = T.hex(c.backgroundColor & 16777215, 6), U.context.fillStyle = "#" + n, U.context.fill()), c.border && (U.context.lineWidth = 1, U.context.lineCap = "square", n = T.hex(c.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()); if (-1 < a.__caretIndex && c.selectable && a.__showCursor) { h = -a.get_scrollH() + (d ? 0 : f); k = d = 0; for (n = a.get_scrollV() - 1; k < n;) t = k++, d += c.lineHeights.get(t); U.context.beginPath(); n = T.hex(a.get_defaultTextFormat().color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(h + 2.5, d + 2.5); U.context.lineWidth = 1; U.context.lineTo(h + 2.5, d + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1); U.context.stroke(); U.context.closePath() } } g.__bitmap = ka.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1) } d = !1; 0 == a.__textEngine.antiAliasType && 1 == a.__textEngine.gridFitType && (d = b.context.imageSmoothingEnabled) && (b.context.imageSmoothingEnabled = !1); if ((null != a.opaqueBackground || null != a.__graphics) && a.__renderable && (e = b.__getAlpha(a.__worldAlpha), !(0 >= e) && (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height() && (b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), c = b.context, b.setTransform(a.__renderTransform, c), m = a.opaqueBackground, c.fillStyle = "rgb(" + (m >>> 16 & 255) + "," + (m >>> 8 & 255) + "," + (m & 255) + ")", c.fillRect(0, 0, a.get_width(), a.get_height()), b.__popMaskObject(a)), null != a.__graphics && a.__renderable && (e = b.__getAlpha(a.__worldAlpha), !(0 >= e) && (g = a.__graphics, null != g && (B.render(g, b), p = g.__width, h = g.__height, f = g.__canvas, null != f && g.__visible && 1 <= p && 1 <= h && (m = g.__worldTransform, c = b.context, q = a.__scrollRect, l = a.__worldScale9Grid, null == q || 0 < q.width && 0 < q.height))))))) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); c.globalAlpha = e; if (null != l && 0 == m.b && 0 == m.c) { c.setTransform(1, 0, 0, 1, m.tx, m.ty); e = g.__bounds; n = g.__renderTransform.a; var u = g.__renderTransform.d; t = m.a; w = m.d; g = Math.max(1, Math.round(l.x * n)); m = Math.round(l.y * u); q = Math.max(1, Math.round((e.get_right() - l.get_right()) * n)); k = Math.round((e.get_bottom() - l.get_bottom()) * u); n = Math.round(l.width * n); u = Math.round(l.height * u); var x = Math.round(l.x * t), A = Math.round(l.y * w), N = Math.round((e.get_right() - l.get_right()) * t); e = Math.round((e.get_bottom() - l.get_bottom()) * w); l = Math.round(p * t) - x - N; t = Math.round(h * w) - A - e; b.applySmoothing(c, !1); 0 != n && 0 != u ? (c.drawImage(f, 0, 0, g, m, 0, 0, x, A), c.drawImage(f, g, 0, n, m, x, 0, l, A), c.drawImage(f, g + n, 0, q, m, x + l, 0, N, A), c.drawImage(f, 0, m, g, u, 0, A, x, t), c.drawImage(f, g, m, n, u, x, A, l, t), c.drawImage(f, g + n, m, q, u, x + l, A, N, t), c.drawImage(f, 0, m + u, g, k, 0, A + t, x, e), c.drawImage(f, g, m + u, n, k, x, A + t, l, e), c.drawImage(f, g + n, m + u, q, k, x + l, A + t, N, e)) : 0 == n && 0 != u ? (g = x + l + N, c.drawImage(f, 0, 0, p, m, 0, 0, g, A), c.drawImage(f, 0, m, p, u, 0, A, g, t), c.drawImage(f, 0, m + u, p, k, 0, A + t, g, e)) : 0 == u && 0 != n && (e = A + t + e, c.drawImage(f, 0, 0, g, h, 0, 0, x, e), c.drawImage(f, g, 0, n, h, x, 0, l, e), c.drawImage(f, g + n, 0, q, h, x + l, 0, N, e)) } else b.setTransform(m, c), b.__isDOM && (e = 1 / b.pixelRatio, c.scale(e, e)), c.drawImage(f, 0, 0, p, h); b.__popMaskObject(a) } d && (b.context.imageSmoothingEnabled = !0) } else a = a.__cacheBitmap, a.__renderable && (e = b.__getAlpha(a.__worldAlpha), 0 < e && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable && (c = b.context, b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a, !1), va.convertToCanvas(a.__bitmapData.image), c.globalAlpha = e, q = a.__scrollRect, b.setTransform(a.__renderTransform, c), b.__allowSmoothing && a.smoothing || (c.imageSmoothingEnabled = !1), null == q ? c.drawImage(a.__bitmapData.image.get_src(), 0, 0, a.__bitmapData.image.width, a.__bitmapData.image.height) : c.drawImage(a.__bitmapData.image.get_src(), q.x, q.y, q.width, q.height), b.__allowSmoothing && a.smoothing || (c.imageSmoothingEnabled = !0), b.__popMaskObject(a, !1))) }; U.renderDrawableMask = function (a, b) { Eh.renderDrawableMask(a, b) }; var Yf = function () { }; k["openfl.display._internal.CanvasTilemap"] = Yf; Yf.__name__ = "openfl.display._internal.CanvasTilemap"; Yf.render = function (a, b) { if (a.__renderable && 0 != a.__group.__tiles.length) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = b.context; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var e = ba.__pool.get(); e.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(e, a.__renderTransform); b.__allowSmoothing && a.smoothing || (d.imageSmoothingEnabled = !1); Yf.renderTileContainer(a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, c, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, e); b.__allowSmoothing && a.smoothing || (d.imageSmoothingEnabled = !0); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(e) } } }; Yf.renderTileContainer = function (a, b, c, d, e, g, f, h, p, m, l, n) { var r = b.context, v = b.__roundPixels, k = Ja.__pool.get(), t = a.__tiles, q, w = null, u = 0; for (a = a.__length; u < a;) { var x = u++; var A = t[x]; k.setTo(1, 0, 0, 1, -A.get_originX(), -A.get_originY()); k.concat(A.get_matrix()); k.concat(c); v && (k.tx = Math.round(k.tx), k.ty = Math.round(k.ty)); var N = null != A.get_tileset() ? A.get_tileset() : d; x = A.get_alpha() * f; if ((q = A.get_visible()) && !(0 >= x)) if (g || (x = 1), h && (w = null != A.__blendMode ? A.__blendMode : p), 0 < A.__length) Yf.renderTileContainer(A, b, k, N, e, g, x, h, w, m, l, n); else if (null != N) { q = A.get_id(); if (-1 == q) { if (A = A.__rect, null == A || 0 >= A.width || 0 >= A.height) continue } else { A = N.__data[q]; if (null == A) continue; n.setTo(A.x, A.y, A.width, A.height); A = n } N = N.__bitmapData; null != N && (N != m && (null == N.image.buffer.__srcImage && va.convertToCanvas(N.image), l = N.image.get_src(), m = N), r.globalAlpha = x, h && b.__setBlendMode(w), b.setTransform(k, r), r.drawImage(l, A.x, A.y, A.width, A.height, 0, 0, A.width, A.height)) } } Ja.__pool.release(k) }; Yf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || (u = b.__getAlpha(a.__worldAlpha), 0 >= u))) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x = b.context; b.setTransform(a.__renderTransform, x); var c = a.opaqueBackground; x.fillStyle = "rgb(" + (c >>> 16 & 255) + "," + (c >>> 8 & 255) + "," + (c & 255) + ")"; x.fillRect(0, 0, a.get_width(), a.get_height()); b.__popMaskObject(a) } if (null != a.__graphics && a.__renderable && (u = b.__getAlpha(a.__worldAlpha), !(0 >= u))) { var d = a.__graphics; if (null != d) { B.render(d, b); var e = d.__width, g = d.__height; c = d.__canvas; if (null != c && d.__visible && 1 <= e && 1 <= g) { var f = d.__worldTransform; x = b.context; A = a.__scrollRect; var h = a.__worldScale9Grid; if (null == A || 0 < A.width && 0 < A.height) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); x.globalAlpha = u; if (null != h && 0 == f.b && 0 == f.c) { x.setTransform(1, 0, 0, 1, f.tx, f.ty); var p = d.__bounds, m = d.__renderTransform.a, l = d.__renderTransform.d, n = f.a, k = f.d; f = Math.max(1, Math.round(h.x * m)); d = Math.round(h.y * l); u = Math.max(1, Math.round((p.get_right() - h.get_right()) * m)); A = Math.round((p.get_bottom() - h.get_bottom()) * l); m = Math.round(h.width * m); l = Math.round(h.height * l); var t = Math.round(h.x * n), q = Math.round(h.y * k), w = Math.round((p.get_right() - h.get_right()) * n); h = Math.round((p.get_bottom() - h.get_bottom()) * k); p = Math.round(e * n) - t - w; n = Math.round(g * k) - q - h; b.applySmoothing(x, !1); 0 != m && 0 != l ? (x.drawImage(c, 0, 0, f, d, 0, 0, t, q), x.drawImage(c, f, 0, m, d, t, 0, p, q), x.drawImage(c, f + m, 0, u, d, t + p, 0, w, q), x.drawImage(c, 0, d, f, l, 0, q, t, n), x.drawImage(c, f, d, m, l, t, q, p, n), x.drawImage(c, f + m, d, u, l, t + p, q, w, n), x.drawImage(c, 0, d + l, f, A, 0, q + n, t, h), x.drawImage(c, f, d + l, m, A, t, q + n, p, h), x.drawImage(c, f + m, d + l, u, A, t + p, q + n, w, h)) : 0 == m && 0 != l ? (g = t + p + w, x.drawImage(c, 0, 0, e, d, 0, 0, g, q), x.drawImage(c, 0, d, e, l, 0, q, g, n), x.drawImage(c, 0, d + l, e, A, 0, q + n, g, h)) : 0 == l && 0 != m && (e = q + n + h, x.drawImage(c, 0, 0, f, g, 0, 0, t, e), x.drawImage(c, f, 0, m, g, t, 0, p, e), x.drawImage(c, f + m, 0, u, g, t + p, 0, w, e)) } else b.setTransform(f, x), b.__isDOM && (h = 1 / b.pixelRatio, x.scale(h, h)), x.drawImage(c, 0, 0, e, g); b.__popMaskObject(a) } } } } } a.__renderable && 0 != a.__group.__tiles.length && (u = b.__getAlpha(a.__worldAlpha), 0 >= u || (x = b.context, b.__setBlendMode(a.__worldBlendMode), b.__pushMaskObject(a), c = ba.__pool.get(), c.setTo(0, 0, a.__width, a.__height), b.__pushMaskRect(c, a.__renderTransform), b.__allowSmoothing && a.smoothing || (x.imageSmoothingEnabled = !1), Yf.renderTileContainer(a.__group, b, a.__renderTransform, a.__tileset, b.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, u, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, c), b.__allowSmoothing && a.smoothing || (x.imageSmoothingEnabled = !0), b.__popMaskRect(), b.__popMaskObject(a), ba.__pool.release(c))) } else if (c = a.__cacheBitmap, c.__renderable) { var u = b.__getAlpha(c.__worldAlpha); if (0 < u && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable) { var x = b.context; b.__setBlendMode(c.__worldBlendMode); b.__pushMaskObject(c, !1); va.convertToCanvas(c.__bitmapData.image); x.globalAlpha = u; var A = c.__scrollRect; b.setTransform(c.__renderTransform, x); b.__allowSmoothing && c.smoothing || (x.imageSmoothingEnabled = !1); null == A ? x.drawImage(c.__bitmapData.image.get_src(), 0, 0, c.__bitmapData.image.width, c.__bitmapData.image.height) : x.drawImage(c.__bitmapData.image.get_src(), A.x, A.y, A.width, A.height); b.__allowSmoothing && c.smoothing || (x.imageSmoothingEnabled = !0); b.__popMaskObject(c, !1) } } b.__renderEvent(a) }; Yf.renderDrawableMask = function (a, b) { }; var $h = function () { }; k["openfl.display._internal.CanvasVideo"] = $h; $h.__name__ = "openfl.display._internal.CanvasVideo"; $h.render = function (a, b) { if (a.__renderable && null != a.__stream) { var c = b.__getAlpha(a.__worldAlpha); if (!(0 >= c)) { var d = b.context; if (null != a.__stream.__video) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); d.globalAlpha = c; c = a.__scrollRect; var e = a.smoothing; b.setTransform(a.__worldTransform, d); e || (d.imageSmoothingEnabled = !1); null == c ? d.drawImage(a.__stream.__video, 0, 0, a.get_width(), a.get_height()) : d.drawImage(a.__stream.__video, c.x, c.y, c.width, c.height, c.x, c.y, c.width, c.height); e || (d.imageSmoothingEnabled = !0); b.__popMaskObject(a) } } } }; $h.renderDrawable = function (a, b) { $h.render(a, b); b.__renderEvent(a) }; $h.renderDrawableMask = function (a, b) { }; var zf = function () { }; k["openfl.display._internal.Context3DBitmap"] = zf; zf.__name__ = "openfl.display._internal.Context3DBitmap"; zf.render = function (a, b) { if (a.__renderable && !(0 >= a.__worldAlpha) && null != a.__bitmapData && a.__bitmapData.__isValid) { var c = b.__context3D; b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var d = b.__initDisplayShader(a.__worldShader); b.setShader(d); b.applyBitmapData(a.__bitmapData, b.__allowSmoothing && (a.smoothing || b.__upscaled)); b.applyMatrix(b.__getMatrix(a.__renderTransform, a.pixelSnapping)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var e = a.__bitmapData.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); d = a.__bitmapData.getIndexBuffer(c); c.drawTriangles(d); b.__clearShader(); b.__popMaskObject(a) } }; zf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); null != a.__bitmapData && null != a.__bitmapData.image && (a.__imageVersion = a.__bitmapData.image.version); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || 0 >= a.__worldAlpha)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = ba.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var e = a.opaqueBackground; c.clear((e >>> 16 & 255) / 255, (e >>> 8 & 255) / 255, (e & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } null != a.__graphics && cg.render(a, b) } zf.render(a, b) } else zf.render(a.__cacheBitmap, b); b.__renderEvent(a) }; zf.renderDrawableMask = function (a, b) { zf.renderMask(a, b) }; zf.renderMask = function (a, b) { if (null != a.__bitmapData && a.__bitmapData.__isValid) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(ai.opaqueBitmapData, !0); b.applyMatrix(b.__getMatrix(a.__renderTransform, a.pixelSnapping)); b.updateShader(); var e = a.__bitmapData.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); a = a.__bitmapData.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader() } }; var Um = function () { }; k["openfl.display._internal.Context3DBitmapData"] = Um; Um.__name__ = "openfl.display._internal.Context3DBitmapData"; Um.renderDrawable = function (a, b) { var c = b.__context3D; b.__setBlendMode(10); var d = b.__defaultDisplayShader; b.setShader(d); b.applyBitmapData(a, b.__upscaled); b.applyMatrix(b.__getMatrix(a.__worldTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var e = a.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); a = a.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader() }; Um.renderDrawableMask = function (a, b) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(a, b.__upscaled); b.applyMatrix(b.__getMatrix(a.__worldTransform, 1)); b.updateShader(); var e = a.getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); a = a.getIndexBuffer(c); c.drawTriangles(a); b.__clearShader() }; var Gh = function (a, b, c, d) { this.context3D = a; this.elementType = b; this.dataPerVertex = d; this.vertexCount = this.indexCount = 0; this.resize(c) }; k["openfl.display._internal.Context3DBuffer"] = Gh; Gh.__name__ = "openfl.display._internal.Context3DBuffer"; Gh.prototype = { dataPerVertex: null, elementCount: null, elementType: null, indexBufferData: null, indexBuffers: null, indexCount: null, vertexBuffer: null, vertexBufferData: null, vertexCount: null, context3D: null, drawElements: function (a, b) { null == b && (b = -1); if (0 != this.indexCount && 0 != this.vertexCount && 0 == this.elementType._hx_index) if (-1 == b && (b = 2 * this.elementCount), 10922 > a && 10922 > b - a) this.context3D.drawTriangles(this.indexBuffers[0], a, 2 * b); else for (var c = a + b; a < c;) { var d = Math.floor(a / 10922); b = Math.min(c - a, 10922) | 0; if (0 >= b) break; this.context3D.drawTriangles(this.indexBuffers[d], 3 * (a - 10922 * d), 2 * b); a += b } }, flushVertexBufferData: function () { this.vertexBufferData.length > this.vertexCount && (this.vertexCount = this.vertexBufferData.length, this.vertexBuffer = this.context3D.createVertexBuffer(this.vertexCount, this.dataPerVertex, 0)); this.vertexBuffer.uploadFromTypedArray($g.toArrayBufferView(this.vertexBufferData)) }, resize: function (a, b) { null == b && (b = -1); this.elementCount = a; -1 == b && (b = this.dataPerVertex); b != this.dataPerVertex && (this.vertexBuffer = null, this.vertexCount = 0, this.dataPerVertex = b); var c = 0; switch (this.elementType._hx_index) { case 0: c = 4 * a; break; case 1: c = 3 * a; break; case 2: c = 3 * a } b *= c; if (null == this.vertexBufferData) { var d = c = null, e = null, g = null, f = null; this.vertexBufferData = b = null != b ? new Float32Array(b) : null != c ? new Float32Array(c) : null != d ? new Float32Array(d.__array) : null != e ? new Float32Array(e) : null != g ? null == f ? new Float32Array(g, 0) : new Float32Array(g, 0, f) : null } else b > this.vertexBufferData.length && (a = this.vertexBufferData, f = g = e = d = c = null, this.vertexBufferData = b = null != b ? new Float32Array(b) : null != c ? new Float32Array(c) : null != d ? new Float32Array(d.__array) : null != e ? new Float32Array(e) : null != g ? null == f ? new Float32Array(g, 0) : new Float32Array(g, 0, f) : null, this.vertexBufferData.set(a)) }, __class__: Gh }; var dn = A["openfl.display._internal.Context3DElementType"] = { __ename__: "openfl.display._internal.Context3DElementType", __constructs__: null, QUADS: { _hx_name: "QUADS", _hx_index: 0, __enum__: "openfl.display._internal.Context3DElementType", toString: t }, TRIANGLES: { _hx_name: "TRIANGLES", _hx_index: 1, __enum__: "openfl.display._internal.Context3DElementType", toString: t }, TRIANGLE_INDICES: { _hx_name: "TRIANGLE_INDICES", _hx_index: 2, __enum__: "openfl.display._internal.Context3DElementType", toString: t } }; dn.__constructs__ = [dn.QUADS, dn.TRIANGLES, dn.TRIANGLE_INDICES]; var eh = function () { }; k["openfl.display._internal.Context3DDisplayObject"] = eh; eh.__name__ = "openfl.display._internal.Context3DDisplayObject"; eh.render = function (a, b) { if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || 0 >= a.__worldAlpha)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = ba.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var e = a.opaqueBackground; c.clear((e >>> 16 & 255) / 255, (e >>> 8 & 255) / 255, (e & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } null != a.__graphics && cg.render(a, b) } }; eh.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null != a.__cacheBitmap && !a.__isCacheBitmapRender) zf.render(a.__cacheBitmap, b); else if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || 0 >= a.__worldAlpha)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = ba.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var e = a.opaqueBackground; c.clear((e >>> 16 & 255) / 255, (e >>> 8 & 255) / 255, (e & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } null != a.__graphics && cg.render(a, b) } b.__renderEvent(a) }; eh.renderDrawableMask = function (a, b) { null != a.__graphics && cg.renderMask(a, b) }; eh.renderMask = function (a, b) { if (null != a.opaqueBackground || null != a.__graphics) null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(), null != a.__graphics && cg.renderMask(a, b) }; var Vm = function () { }; k["openfl.display._internal.Context3DDisplayObjectContainer"] = Vm; Vm.__name__ = "openfl.display._internal.Context3DDisplayObjectContainer"; Vm.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && d.__cleanup() } a.__removedChildren.set_length(0); if (a.__renderable && !(0 >= a.__worldAlpha) && (eh.renderDrawable(a, b), null == a.__cacheBitmap || a.__isCacheBitmapRender)) { if (0 < a.__children.length) if (b.__pushMaskObject(a), null != b.__stage) { c = 0; for (d = a.__children; c < d.length;) { var e = d[c]; ++c; b.__renderDrawable(e); e.__renderDirty = !1 } a.__renderDirty = !1 } else for (c = 0, d = a.__children; c < d.length;) e = d[c], ++c, b.__renderDrawable(e); 0 < a.__children.length && b.__popMaskObject(a) } }; Vm.renderDrawableMask = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && d.__cleanup() } a.__removedChildren.set_length(0); null != a.__graphics && cg.renderMask(a, b); c = 0; for (a = a.__children; c < a.length;) d = a[c], ++c, b.__renderDrawableMask(d) }; var Uc = function () { }; k["openfl.display._internal.Context3DGraphics"] = Uc; Uc.__name__ = "openfl.display._internal.Context3DGraphics"; Uc.buildBuffer = function (a, b) { var c, d = c = 0, e = 0, g = new $f(a.__commands); b = b.__context3D; for (var f = ba.__pool.get(), h = Ja.__pool.get(), p = null, m = 0, l = a.__commands.types; m < l.length;) { var n = l[m]; ++m; switch (n._hx_index) { case 0: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = Z.BEGIN_BITMAP_FILL; p = g; p = p.buffer.o[p.oPos]; break; case 1: p = null; switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = n; break; case 3: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = Z.BEGIN_SHADER_FILL; p = g; n = p.buffer.o[p.oPos]; p = null; if (null != n) for (var k = 0, t = n.inputCount; k < t;) { var q = k++; if ("bitmap" == n.inputRefs[q].name) { p = n.inputs[q]; break } } break; case 8: if (null != p) { switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = Z.DRAW_QUADS; t = g; n = t.buffer.o[t.oPos]; k = t.buffer.o[t.oPos + 1]; t = t.buffer.o[t.oPos + 2]; q = null != k; var w = !1, u = !1, x = q ? k.get_length() : Math.floor(n.get_length() / 4); if (0 == x) return; null != t && (t.get_length() >= 6 * x ? u = w = !0 : t.get_length() >= 4 * x ? w = !0 : t.get_length() >= 2 * x && (u = !0)); null == a.__quadBuffer ? a.__quadBuffer = new Gh(b, dn.QUADS, x, 4) : a.__quadBuffer.resize(c + x, 4); for (var A, N, J, z, B, ma, C, K, F, D, I, G, y, E, L = a.__quadBuffer.vertexBufferData, M = p.width, P = p.height, O = 0, T = x; O < T;) z = O++, A = 16 * (c + z), N = q ? 4 * k.get(z) : 4 * z, 0 > N || (f.setTo(n.get(N), n.get(N + 1), n.get(N + 2), n.get(N + 3)), N = f.width, J = f.height, 0 >= N || 0 >= J || (w && u ? (z *= 6, h.setTo(t.get(z), t.get(z + 1), t.get(z + 2), t.get(z + 3), t.get(z + 4), t.get(z + 5))) : w ? (z *= 4, h.setTo(t.get(z), t.get(z + 1), t.get(z + 2), t.get(z + 3), f.x, f.y)) : u ? (z *= 2, h.tx = t.get(z), h.ty = t.get(z + 1)) : (h.tx = f.x, h.ty = f.y), z = f.x / M, B = f.y / P, ma = f.get_right() / M, C = f.get_bottom() / P, K = 0 * h.a + 0 * h.c + h.tx, F = 0 * h.b + 0 * h.d + h.ty, D = N * h.a + 0 * h.c + h.tx, I = N * h.b + 0 * h.d + h.ty, G = 0 * h.a + J * h.c + h.tx, y = 0 * h.b + J * h.d + h.ty, E = N * h.a + J * h.c + h.tx, N = N * h.b + J * h.d + h.ty, L[A] = K, L[A + 1] = F, L[A + 2] = z, L[A + 3] = B, L[A + 4] = D, L[A + 4 + 1] = I, L[A + 4 + 2] = ma, L[A + 4 + 3] = B, L[A + 8] = G, L[A + 8 + 1] = y, L[A + 8 + 2] = z, L[A + 8 + 3] = C, L[A + 12] = E, L[A + 12 + 1] = N, L[A + 12 + 2] = ma, L[A + 12 + 3] = C)); c += x } break; case 12: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = Z.DRAW_TRIANGLES; t = g; n = t.buffer.o[t.oPos]; k = t.buffer.o[t.oPos + 1]; t = t.buffer.o[t.oPos + 2]; q = null != k; x = Math.floor(n.get_length() / 2); w = q ? k.get_length() : x; A = (x = (u = null != t) && t.get_length() >= 3 * x) ? 4 : 2; L = x ? 3 : 2; M = A + 2; P = x ? e : d; Uc.resizeVertexBuffer(a, x, P + w * M); O = x ? a.__vertexBufferDataUVT : a.__vertexBufferData; J = 0; for (z = w; J < z;) B = J++, T = P + B * M, N = q ? 2 * k.get(B) : 2 * B, B = q ? k.get(B) * L : B * L, x ? (ma = t.get(B + 2), O[T] = n.get(N) / ma, O[T + 1] = n.get(N + 1) / ma, O[T + 2] = 0, O[T + 3] = 1 / ma) : (O[T] = n.get(N), O[T + 1] = n.get(N + 1)), O[T + A] = u ? t.get(B) : 0, O[T + A + 1] = u ? t.get(B + 1) : 0; x ? e += w * M : d += w * M; break; case 13: p = null; break; default: switch (g.prev._hx_index) { case 0: g.oPos += 2; g.bPos += 2; break; case 1: g.iPos += 1; g.fPos += 1; break; case 2: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 3: g.oPos += 1; break; case 4: g.fPos += 6; break; case 5: g.fPos += 4; break; case 6: g.fPos += 3; break; case 7: g.fPos += 4; break; case 8: g.oPos += 3; break; case 9: g.fPos += 4; break; case 10: g.fPos += 5; g.oPos += 1; break; case 12: g.oPos += 4; break; case 14: g.oPos += 2; g.bPos += 2; break; case 15: g.oPos += 4; g.iiPos += 2; g.ffPos += 1; g.fPos += 1; break; case 16: g.oPos += 4; g.iPos += 1; g.fPos += 2; g.bPos += 1; break; case 17: g.fPos += 2; break; case 18: g.fPos += 2; break; case 19: g.oPos += 1; break; case 20: g.oPos += 1 } g.prev = n } } 0 < c && a.__quadBuffer.flushVertexBufferData(); if (0 < d) { c = a.__vertexBuffer; if (null == c || d > a.__vertexBufferCount) c = b.createVertexBuffer(d, 4, 0), a.__vertexBuffer = c, a.__vertexBufferCount = d; c.uploadFromTypedArray($g.toArrayBufferView(a.__vertexBufferData)) } if (0 < e) { c = a.__vertexBufferUVT; if (null == c || e > a.__vertexBufferCountUVT) c = b.createVertexBuffer(e, 6, 0), a.__vertexBufferUVT = c, a.__vertexBufferCountUVT = e; c.uploadFromTypedArray($g.toArrayBufferView(a.__vertexBufferDataUVT)) } ba.__pool.release(f); Ja.__pool.release(h) }; Uc.isCompatible = function (a) { if (null != a.__owner.__worldScale9Grid) return !1; var b = new $f(a.__commands), c = !1, d = !1, e = !1, g = 0; for (a = a.__commands.types; g < a.length;) { var f = a[g]; ++g; switch (f._hx_index) { case 0: d = !0; e = c = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; case 1: d = !1; c = !0; e = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; case 3: c = d = !1; e = !0; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; case 8: if (d || e) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f } else return b.destroy(), !1; break; case 9: if (c) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f } else return b.destroy(), !1; break; case 12: if (d || e) { switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f } else return b.destroy(), !1; break; case 13: e = c = d = !1; switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; case 18: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; case 19: switch (b.prev._hx_index) { case 0: b.oPos += 2; b.bPos += 2; break; case 1: b.iPos += 1; b.fPos += 1; break; case 2: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 3: b.oPos += 1; break; case 4: b.fPos += 6; break; case 5: b.fPos += 4; break; case 6: b.fPos += 3; break; case 7: b.fPos += 4; break; case 8: b.oPos += 3; break; case 9: b.fPos += 4; break; case 10: b.fPos += 5; b.oPos += 1; break; case 12: b.oPos += 4; break; case 14: b.oPos += 2; b.bPos += 2; break; case 15: b.oPos += 4; b.iiPos += 2; b.ffPos += 1; b.fPos += 1; break; case 16: b.oPos += 4; b.iPos += 1; b.fPos += 2; b.bPos += 1; break; case 17: b.fPos += 2; break; case 18: b.fPos += 2; break; case 19: b.oPos += 1; break; case 20: b.oPos += 1 } b.prev = f; break; default: return b.destroy(), !1 } } b.destroy(); return !0 }; Uc.render = function (a, b) { if (a.__visible && 0 != a.__commands.get_length()) if (null != a.__bitmap && !a.__dirty || !Uc.isCompatible(a)) { var c = b.__softwareRenderer.__worldTransform; b.__softwareRenderer.__worldTransform = b.__worldTransform; B.render(a, b.__softwareRenderer); b.__softwareRenderer.__worldTransform = c } else { a.__bitmap = null; a.__update(b.__worldTransform); var d = a.__width, e = a.__height; if (null != a.__bounds && 1 <= d && 1 <= e) { (a.__hardwareDirty || null == a.__quadBuffer && null == a.__vertexBuffer && null == a.__vertexBufferUVT) && Uc.buildBuffer(a, b); c = new $f(a.__commands); for (var g = b.__context3D, f = Ja.__pool.get(), h = null, p = null, m = !1, l = !1, n = null, k = 0, t = 0, q = 0, w = 0, u = 0, x = a.__commands.types; u < x.length;) switch (d = x[u], ++u, d._hx_index) { case 0: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.BEGIN_BITMAP_FILL; l = c; p = l.buffer.o[l.oPos]; m = l.buffer.b[l.bPos]; l = l.buffer.b[l.bPos + 1]; n = h = null; break; case 1: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.BEGIN_FILL; p = c; n = (p.buffer.i[p.iPos] | 0) & 16777215 | (255 * p.buffer.f[p.fPos] | 0) << 24; p = h = null; break; case 3: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.BEGIN_SHADER_FILL; t = c; h = t.buffer.o[t.oPos]; t = 0; p = null == h || null == h.shader || null == h.shader.__bitmap ? null : h.shader.__bitmap.input; n = null; break; case 8: if (null != p) { switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.DRAW_QUADS; var A = c; d = A.buffer.o[A.oPos]; A = A.buffer.o[A.oPos + 1]; d = null != A ? A.get_length() : Math.floor(d.get_length() / 4); var N = b.__getMatrix(a.__owner.__renderTransform, 1); null == h || Uc.maskRender ? (A = Uc.maskRender ? b.__maskShader : b.__initGraphicsShader(null), b.setShader(A), b.applyMatrix(N), b.applyBitmapData(p, l, m), b.applyAlpha(a.__owner.__worldAlpha), b.applyColorTransform(a.__owner.__worldColorTransform), b.updateShader()) : (A = b.__initShaderBuffer(h), b.__setShaderBuffer(h), b.applyMatrix(N), b.applyBitmapData(p, !1, m), b.applyAlpha(a.__owner.__worldAlpha), b.applyColorTransform(a.__owner.__worldColorTransform)); for (N = k + d; k < N;) { d = Math.min(N - k, g.__quadIndexBufferElements) | 0; if (0 >= d) break; null == h || Uc.maskRender || b.__updateShaderBuffer(t); null != A.__position && g.setVertexBufferAt(A.__position.index, a.__quadBuffer.vertexBuffer, 16 * k, 2); null != A.__textureCoord && g.setVertexBufferAt(A.__textureCoord.index, a.__quadBuffer.vertexBuffer, 16 * k + 2, 2); g.drawTriangles(g.__quadIndexBuffer, 0, 2 * d); t += 4 * d; k += d } b.__clearShader() } break; case 9: if (null != n) { switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.DRAW_RECT; var z = c; A = z.buffer.f[z.fPos]; N = z.buffer.f[z.fPos + 1]; d = z.buffer.f[z.fPos + 2]; e = z.buffer.f[z.fPos + 3]; z = n; Uc.tempColorTransform.redOffset = z >>> 16 & 255; Uc.tempColorTransform.greenOffset = z >>> 8 & 255; Uc.tempColorTransform.blueOffset = z & 255; Uc.tempColorTransform.__combine(a.__owner.__worldColorTransform); f.identity(); f.scale(d, e); f.tx = A; f.ty = N; f.concat(a.__owner.__renderTransform); d = Uc.maskRender ? b.__maskShader : b.__initGraphicsShader(null); b.setShader(d); b.applyMatrix(b.__getMatrix(f, 1)); b.applyBitmapData(Uc.blankBitmapData, !0, m); b.applyAlpha((z >>> 24 & 255) / 255 * a.__owner.__worldAlpha); b.applyColorTransform(Uc.tempColorTransform); b.updateShader(); A = Uc.blankBitmapData.getVertexBuffer(g); null != d.__position && g.setVertexBufferAt(d.__position.index, A, 0, 3); null != d.__textureCoord && g.setVertexBufferAt(d.__textureCoord.index, A, 3, 2); d = Uc.blankBitmapData.getIndexBuffer(g); g.drawTriangles(d); t += 4; b.__clearShader() } break; case 12: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.DRAW_TRIANGLES; e = c; A = e.buffer.o[e.oPos + 1]; N = e.buffer.o[e.oPos + 2]; d = e.buffer.o[e.oPos + 3]; z = null != A; e = Math.floor(e.buffer.o[e.oPos].get_length() / 2); A = z ? A.get_length() : e; z = (N = null != N && N.get_length() >= 3 * e) ? 4 : 2; e = z + 2; var J = N ? a.__vertexBufferUVT : a.__vertexBuffer, ma = N ? w : q, C = b.__getMatrix(a.__owner.__renderTransform, 1); if (null == h || Uc.maskRender) { var K = Uc.maskRender ? b.__maskShader : b.__initGraphicsShader(null); b.setShader(K); b.applyMatrix(C); b.applyBitmapData(p, l, m); b.applyAlpha(a.__owner.__worldAlpha); b.applyColorTransform(a.__owner.__worldColorTransform); b.updateShader() } else K = b.__initShaderBuffer(h), b.__setShaderBuffer(h), b.applyMatrix(C), b.applyBitmapData(p, !1, m), b.applyAlpha(1), b.applyColorTransform(null), b.__updateShaderBuffer(t); null != K.__position && g.setVertexBufferAt(K.__position.index, J, ma, N ? 4 : 2); null != K.__textureCoord && g.setVertexBufferAt(K.__textureCoord.index, J, ma + z, 2); switch (d) { case 0: g.setCulling(0); break; case 1: g.setCulling(3); break; case 2: g.setCulling(1) } g.__drawTriangles(0, A); t += A; N ? w += e * A : q += e * A; switch (d) { case 1: case 2: g.setCulling(0) } b.__clearShader(); break; case 13: h = n = p = null; switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = d; g.setCulling(3); break; case 18: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.MOVE_TO; break; case 19: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = Z.OVERRIDE_BLEND_MODE; d = c; b.__setBlendMode(d.buffer.o[d.oPos]); break; default: switch (c.prev._hx_index) { case 0: c.oPos += 2; c.bPos += 2; break; case 1: c.iPos += 1; c.fPos += 1; break; case 2: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 3: c.oPos += 1; break; case 4: c.fPos += 6; break; case 5: c.fPos += 4; break; case 6: c.fPos += 3; break; case 7: c.fPos += 4; break; case 8: c.oPos += 3; break; case 9: c.fPos += 4; break; case 10: c.fPos += 5; c.oPos += 1; break; case 12: c.oPos += 4; break; case 14: c.oPos += 2; c.bPos += 2; break; case 15: c.oPos += 4; c.iiPos += 2; c.ffPos += 1; c.fPos += 1; break; case 16: c.oPos += 4; c.iPos += 1; c.fPos += 2; c.bPos += 1; break; case 17: c.fPos += 2; break; case 18: c.fPos += 2; break; case 19: c.oPos += 1; break; case 20: c.oPos += 1 } c.prev = d } Ja.__pool.release(f) } a.__hardwareDirty = !1; a.set___dirty(!1) } }; Uc.renderMask = function (a, b) { Uc.maskRender = !0; Uc.render(a, b); Uc.maskRender = !1 }; Uc.resizeIndexBuffer = function (a, b, c) { if (!b) { var d = b ? null : a.__triangleIndexBufferData, e = null; if (null == d) { var g = e = null, f = null, h = null, p = null; e = c = null != c ? new Uint16Array(c) : null != e ? new Uint16Array(e) : null != g ? new Uint16Array(g.__array) : null != f ? new Uint16Array(f) : null != h ? null == p ? new Uint16Array(h, 0) : new Uint16Array(h, 0, p) : null } else c > d.length && (p = h = f = g = e = null, e = c = null != c ? new Uint16Array(c) : null != e ? new Uint16Array(e) : null != g ? new Uint16Array(g.__array) : null != f ? new Uint16Array(f) : null != h ? null == p ? new Uint16Array(h, 0) : new Uint16Array(h, 0, p) : null, e.set(d)); null == e || b || (a.__triangleIndexBufferData = e) } }; Uc.resizeVertexBuffer = function (a, b, c) { var d = b ? a.__vertexBufferDataUVT : a.__vertexBufferData, e = null; if (null == d) { var g = e = null, f = null, h = null, p = null; e = c = null != c ? new Float32Array(c) : null != e ? new Float32Array(e) : null != g ? new Float32Array(g.__array) : null != f ? new Float32Array(f) : null != h ? null == p ? new Float32Array(h, 0) : new Float32Array(h, 0, p) : null } else c > d.length && (p = h = f = g = e = null, e = c = null != c ? new Float32Array(c) : null != e ? new Float32Array(e) : null != g ? new Float32Array(g.__array) : null != f ? new Float32Array(f) : null != h ? null == p ? new Float32Array(h, 0) : new Float32Array(h, 0, p) : null, e.set(d)); null != e && (b ? a.__vertexBufferDataUVT = e : a.__vertexBufferData = e) }; var ai = function () { null == this.__glFragmentSource && (this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tdiscard;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = color;\n\n\t\t\t}\n\n\t\t}"); null == this.__glVertexSource && (this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"); jf.call(this); this.__isGenerated = !0; this.__initGL() }; k["openfl.display._internal.Context3DMaskShader"] = ai; ai.__name__ = "openfl.display._internal.Context3DMaskShader"; ai.__super__ = jf; ai.prototype = u(jf.prototype, { openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_Texture: null, __class__: ai }); var cg = function () { }; k["openfl.display._internal.Context3DShape"] = cg; cg.__name__ = "openfl.display._internal.Context3DShape"; cg.render = function (a, b) { if (a.__renderable && !(0 >= a.__worldAlpha)) { var c = a.__graphics; if (null != c) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); Uc.render(c, b); if (null != c.__bitmap && c.__visible) { var d = b.__context3D, e = b.__initDisplayShader(a.__worldShader); b.setShader(e); b.applyBitmapData(c.__bitmap, !0); b.applyMatrix(b.__getMatrix(c.__worldTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); b.updateShader(); var g = c.__bitmap.getVertexBuffer(d); null != e.__position && d.setVertexBufferAt(e.__position.index, g, 0, 3); null != e.__textureCoord && d.setVertexBufferAt(e.__textureCoord.index, g, 3, 2); c = c.__bitmap.getIndexBuffer(d); d.drawTriangles(c); b.__clearShader() } b.__popMaskObject(a) } } }; cg.renderMask = function (a, b) { var c = a.__graphics; if (null != c && (Uc.renderMask(c, b), null != c.__bitmap)) { a = b.__context3D; var d = b.__maskShader; b.setShader(d); b.applyBitmapData(c.__bitmap, !0); b.applyMatrix(b.__getMatrix(c.__worldTransform, 1)); b.updateShader(); var e = c.__bitmap.getVertexBuffer(a); null != d.__position && a.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && a.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); c = c.__bitmap.getIndexBuffer(a); a.drawTriangles(c); b.__clearShader() } }; var Wm = function () { }; k["openfl.display._internal.Context3DSimpleButton"] = Wm; Wm.__name__ = "openfl.display._internal.Context3DSimpleButton"; Wm.renderDrawable = function (a, b) { !a.__renderable || 0 >= a.__worldAlpha || null == a.__currentState || (b.__pushMaskObject(a), b.__renderDrawable(a.__currentState), b.__popMaskObject(a), b.__renderEvent(a)) }; Wm.renderDrawableMask = function (a, b) { null != a.__currentState && b.__renderDrawableMask(a.__currentState) }; var fh = function () { }; k["openfl.display._internal.Context3DTextField"] = fh; fh.__name__ = "openfl.display._internal.Context3DTextField"; fh.render = function (a, b) { var c = b.__softwareRenderer; b = a.__textEngine; var d = !(b.background || b.border), e = d ? b.textBounds : b.bounds, g = a.__graphics, f = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new ba); if (0 == a.get_text().length) { f = b.bounds.width - 4; var h = a.get_defaultTextFormat().align; f = 3 == h ? 0 : 4 == h ? f : f / 2; switch (h) { case 0: f += a.get_defaultTextFormat().leftMargin / 2; f -= a.get_defaultTextFormat().rightMargin / 2; f += a.get_defaultTextFormat().indent / 2; f += a.get_defaultTextFormat().blockIndent / 2; break; case 2: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 3: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 4: f -= a.get_defaultTextFormat().rightMargin } d && (e.y = b.bounds.y, e.x = f) } g.__bounds.copyFrom(e) } g.__update(c.__worldTransform); if (a.__dirty || g.__softwareDirty) { var p = g.__width, m = g.__height; if (!(null != b.text && "" != b.text || b.background || b.border || b.__hasFocus || 1 == b.type && b.selectable) || (0 >= b.width || 0 >= b.height) && 2 != b.autoSize) a.__graphics.__canvas = null, a.__graphics.__context = null, a.__graphics.__bitmap = null, a.__graphics.__softwareDirty = !1, a.__graphics.set___dirty(!1), a.__dirty = !1; else { null == a.__graphics.__canvas && (a.__graphics.__canvas = window.document.createElement("canvas"), a.__graphics.__context = a.__graphics.__canvas.getContext("2d")); U.context = g.__context; h = g.__renderTransform; if (c.__isDOM) { var l = c.pixelRatio; g.__canvas.width = p * l | 0; g.__canvas.height = m * l | 0; g.__canvas.style.width = p + "px"; g.__canvas.style.height = m + "px"; p = Ja.__pool.get(); p.copyFrom(h); p.scale(l, l); c.setTransform(p, U.context); Ja.__pool.release(p) } else g.__canvas.width = p, g.__canvas.height = m, U.context.setTransform(h.a, h.b, h.c, h.d, h.tx, h.ty); null == U.clearRect && (U.clearRect = "undefined" !== typeof navigator && "undefined" !== typeof navigator.isCocoonJS); U.clearRect && U.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if (null != b.text && "" != b.text || b.__hasFocus) { d = b.text; g.__context.imageSmoothingEnabled = !c.__allowSmoothing || 0 == b.antiAliasType && 400 == b.sharpness ? !1 : !0; if (b.border || b.background) { U.context.rect(.5, .5, e.width - 1, e.height - 1); if (b.background) { var n = T.hex(b.backgroundColor & 16777215, 6); U.context.fillStyle = "#" + n; U.context.fill() } b.border && (U.context.lineWidth = 1, n = T.hex(b.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()) } U.context.textBaseline = "alphabetic"; U.context.textAlign = "start"; c = -a.get_scrollH(); var k = f = 0; for (n = a.get_scrollV() - 1; k < n;) { var t = k++; f -= b.lineHeights.get(t) } for (h = b.layoutGroups.iterator(); h.hasNext();) if (l = h.next(), !(l.lineIndex < a.get_scrollV() - 1)) { if (l.lineIndex > b.get_bottomScrollV() - 1) break; p = "#" + T.hex(l.format.color & 16777215, 6); U.context.font = Wb.getFont(l.format); U.context.fillStyle = p; U.context.fillText(d.substring(l.startIndex, l.endIndex), l.offsetX + c - e.x, l.offsetY + l.ascent + f - e.y); if (-1 < a.__caretIndex && b.selectable) if (a.__selectionIndex == a.__caretIndex) { if (a.__showCursor && l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex) { k = m = 0; for (n = a.__caretIndex - l.startIndex; k < n;) { t = k++; if (l.positions.length <= t) break; m += l.positions[t] } k = 0; n = a.get_scrollV(); for (t = l.lineIndex + 1; n < t;) { var q = n++; k += b.lineHeights.get(q - 1) } U.context.beginPath(); n = T.hex(l.format.color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(l.offsetX + m - a.get_scrollH() - e.x, k + 2 - e.y); U.context.lineWidth = 1; U.context.lineTo(l.offsetX + m - a.get_scrollH() - e.x, k + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1 - e.y); U.context.stroke(); U.context.closePath() } } else if (l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex || l.startIndex <= a.__selectionIndex && l.endIndex >= a.__selectionIndex || l.startIndex > a.__caretIndex && l.endIndex < a.__selectionIndex || l.startIndex > a.__selectionIndex && l.endIndex < a.__caretIndex) m = Math.min(a.__selectionIndex, a.__caretIndex) | 0, k = Math.max(a.__selectionIndex, a.__caretIndex) | 0, l.startIndex > m && (m = l.startIndex), l.endIndex < k && (k = l.endIndex), t = a.getCharBoundaries(m), k >= l.endIndex ? (n = a.getCharBoundaries(l.endIndex - 1), null != n && (n.x += n.width + 2)) : n = a.getCharBoundaries(k), null != t && null != n && (U.context.fillStyle = "#000000", U.context.fillRect(t.x + c - e.x, t.y + f, n.x - t.x, l.height), U.context.fillStyle = "#FFFFFF", U.context.fillText(d.substring(m, k), c + t.x - e.x, l.offsetY + l.ascent + f)); l.format.underline && (U.context.beginPath(), U.context.strokeStyle = p, U.context.lineWidth = 1, p = l.offsetX + c - e.x, m = Math.floor(l.offsetY + f + l.ascent - e.y) + .5, U.context.moveTo(p, m), U.context.lineTo(p + l.width, m), U.context.stroke(), U.context.closePath()) } } else { if (b.border || b.background) b.border ? U.context.rect(.5, .5, e.width - 1, e.height - 1) : U.context.rect(0, 0, e.width, e.height), b.background && (n = T.hex(b.backgroundColor & 16777215, 6), U.context.fillStyle = "#" + n, U.context.fill()), b.border && (U.context.lineWidth = 1, U.context.lineCap = "square", n = T.hex(b.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()); if (-1 < a.__caretIndex && b.selectable && a.__showCursor) { c = -a.get_scrollH() + (d ? 0 : f); k = f = 0; for (n = a.get_scrollV() - 1; k < n;) t = k++, f += b.lineHeights.get(t); U.context.beginPath(); n = T.hex(a.get_defaultTextFormat().color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(c + 2.5, f + 2.5); U.context.lineWidth = 1; U.context.lineTo(c + 2.5, f + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1); U.context.stroke(); U.context.closePath() } } g.__bitmap = ka.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1) } } a.__graphics.__hardwareDirty = !1 }; fh.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if (fh.render(a, b), !(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || 0 >= a.__worldAlpha)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = ba.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var e = a.opaqueBackground; c.clear((e >>> 16 & 255) / 255, (e >>> 8 & 255) / 255, (e & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } null != a.__graphics && cg.render(a, b) } } else zf.render(a.__cacheBitmap, b); b.__renderEvent(a) }; fh.renderDrawableMask = function (a, b) { fh.renderMask(a, b); eh.renderDrawableMask(a, b) }; fh.renderMask = function (a, b) { var c = b.__softwareRenderer; b = a.__textEngine; var d = !(b.background || b.border), e = d ? b.textBounds : b.bounds, g = a.__graphics, f = 0; if (a.__dirty) { a.__updateLayout(); null == g.__bounds && (g.__bounds = new ba); if (0 == a.get_text().length) { f = b.bounds.width - 4; var h = a.get_defaultTextFormat().align; f = 3 == h ? 0 : 4 == h ? f : f / 2; switch (h) { case 0: f += a.get_defaultTextFormat().leftMargin / 2; f -= a.get_defaultTextFormat().rightMargin / 2; f += a.get_defaultTextFormat().indent / 2; f += a.get_defaultTextFormat().blockIndent / 2; break; case 2: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 3: f += a.get_defaultTextFormat().leftMargin; f += a.get_defaultTextFormat().indent; f += a.get_defaultTextFormat().blockIndent; break; case 4: f -= a.get_defaultTextFormat().rightMargin } d && (e.y = b.bounds.y, e.x = f) } g.__bounds.copyFrom(e) } g.__update(c.__worldTransform); if (a.__dirty || g.__softwareDirty) { var p = g.__width, m = g.__height; if (!(null != b.text && "" != b.text || b.background || b.border || b.__hasFocus || 1 == b.type && b.selectable) || (0 >= b.width || 0 >= b.height) && 2 != b.autoSize) a.__graphics.__canvas = null, a.__graphics.__context = null, a.__graphics.__bitmap = null, a.__graphics.__softwareDirty = !1, a.__graphics.set___dirty(!1), a.__dirty = !1; else { null == a.__graphics.__canvas && (a.__graphics.__canvas = window.document.createElement("canvas"), a.__graphics.__context = a.__graphics.__canvas.getContext("2d")); U.context = g.__context; h = g.__renderTransform; if (c.__isDOM) { var l = c.pixelRatio; g.__canvas.width = p * l | 0; g.__canvas.height = m * l | 0; g.__canvas.style.width = p + "px"; g.__canvas.style.height = m + "px"; p = Ja.__pool.get(); p.copyFrom(h); p.scale(l, l); c.setTransform(p, U.context); Ja.__pool.release(p) } else g.__canvas.width = p, g.__canvas.height = m, U.context.setTransform(h.a, h.b, h.c, h.d, h.tx, h.ty); null == U.clearRect && (U.clearRect = "undefined" !== typeof navigator && "undefined" !== typeof navigator.isCocoonJS); U.clearRect && U.context.clearRect(0, 0, g.__canvas.width, g.__canvas.height); if (null != b.text && "" != b.text || b.__hasFocus) { d = b.text; g.__context.imageSmoothingEnabled = !c.__allowSmoothing || 0 == b.antiAliasType && 400 == b.sharpness ? !1 : !0; if (b.border || b.background) { U.context.rect(.5, .5, e.width - 1, e.height - 1); if (b.background) { var n = T.hex(b.backgroundColor & 16777215, 6); U.context.fillStyle = "#" + n; U.context.fill() } b.border && (U.context.lineWidth = 1, n = T.hex(b.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()) } U.context.textBaseline = "alphabetic"; U.context.textAlign = "start"; c = -a.get_scrollH(); var k = f = 0; for (n = a.get_scrollV() - 1; k < n;) { var t = k++; f -= b.lineHeights.get(t) } for (h = b.layoutGroups.iterator(); h.hasNext();) if (l = h.next(), !(l.lineIndex < a.get_scrollV() - 1)) { if (l.lineIndex > b.get_bottomScrollV() - 1) break; p = "#" + T.hex(l.format.color & 16777215, 6); U.context.font = Wb.getFont(l.format); U.context.fillStyle = p; U.context.fillText(d.substring(l.startIndex, l.endIndex), l.offsetX + c - e.x, l.offsetY + l.ascent + f - e.y); if (-1 < a.__caretIndex && b.selectable) if (a.__selectionIndex == a.__caretIndex) { if (a.__showCursor && l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex) { k = m = 0; for (n = a.__caretIndex - l.startIndex; k < n;) { t = k++; if (l.positions.length <= t) break; m += l.positions[t] } k = 0; n = a.get_scrollV(); for (t = l.lineIndex + 1; n < t;) { var q = n++; k += b.lineHeights.get(q - 1) } U.context.beginPath(); n = T.hex(l.format.color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(l.offsetX + m - a.get_scrollH() - e.x, k + 2 - e.y); U.context.lineWidth = 1; U.context.lineTo(l.offsetX + m - a.get_scrollH() - e.x, k + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1 - e.y); U.context.stroke(); U.context.closePath() } } else if (l.startIndex <= a.__caretIndex && l.endIndex >= a.__caretIndex || l.startIndex <= a.__selectionIndex && l.endIndex >= a.__selectionIndex || l.startIndex > a.__caretIndex && l.endIndex < a.__selectionIndex || l.startIndex > a.__selectionIndex && l.endIndex < a.__caretIndex) m = Math.min(a.__selectionIndex, a.__caretIndex) | 0, k = Math.max(a.__selectionIndex, a.__caretIndex) | 0, l.startIndex > m && (m = l.startIndex), l.endIndex < k && (k = l.endIndex), t = a.getCharBoundaries(m), k >= l.endIndex ? (n = a.getCharBoundaries(l.endIndex - 1), null != n && (n.x += n.width + 2)) : n = a.getCharBoundaries(k), null != t && null != n && (U.context.fillStyle = "#000000", U.context.fillRect(t.x + c - e.x, t.y + f, n.x - t.x, l.height), U.context.fillStyle = "#FFFFFF", U.context.fillText(d.substring(m, k), c + t.x - e.x, l.offsetY + l.ascent + f)); l.format.underline && (U.context.beginPath(), U.context.strokeStyle = p, U.context.lineWidth = 1, p = l.offsetX + c - e.x, m = Math.floor(l.offsetY + f + l.ascent - e.y) + .5, U.context.moveTo(p, m), U.context.lineTo(p + l.width, m), U.context.stroke(), U.context.closePath()) } } else { if (b.border || b.background) b.border ? U.context.rect(.5, .5, e.width - 1, e.height - 1) : U.context.rect(0, 0, e.width, e.height), b.background && (n = T.hex(b.backgroundColor & 16777215, 6), U.context.fillStyle = "#" + n, U.context.fill()), b.border && (U.context.lineWidth = 1, U.context.lineCap = "square", n = T.hex(b.borderColor & 16777215, 6), U.context.strokeStyle = "#" + n, U.context.stroke()); if (-1 < a.__caretIndex && b.selectable && a.__showCursor) { c = -a.get_scrollH() + (d ? 0 : f); k = f = 0; for (n = a.get_scrollV() - 1; k < n;) t = k++, f += b.lineHeights.get(t); U.context.beginPath(); n = T.hex(a.get_defaultTextFormat().color & 16777215, 6); U.context.strokeStyle = "#" + n; U.context.moveTo(c + 2.5, f + 2.5); U.context.lineWidth = 1; U.context.lineTo(c + 2.5, f + Wb.getFormatHeight(a.get_defaultTextFormat()) - 1); U.context.stroke(); U.context.closePath() } } g.__bitmap = ka.fromCanvas(a.__graphics.__canvas); g.__visible = !0; a.__dirty = !1; g.__softwareDirty = !1; g.set___dirty(!1) } } a.__graphics.__hardwareDirty = !1 }; var ha = function () { }; k["openfl.display._internal.Context3DTilemap"] = ha; ha.__name__ = "openfl.display._internal.Context3DTilemap"; ha.buildBuffer = function (a, b) { if (!a.__renderable || 0 == a.__group.__tiles.length || 0 >= a.__worldAlpha) a.__group.__dirty = !1; else { ha.numTiles = 0; ha.vertexBufferData = null != a.__buffer ? a.__buffer.vertexBufferData : null; ha.vertexDataPosition = 0; var c = ba.__pool.get(), d = Ja.__pool.get(), e = Ja.__pool.get(); ha.dataPerVertex = 4; a.tileAlphaEnabled && ha.dataPerVertex++; a.tileColorTransformEnabled && (ha.dataPerVertex += 8); ha.buildBufferTileContainer(a, a.__group, b, e, a.__tileset, a.tileAlphaEnabled, a.__worldAlpha, a.tileColorTransformEnabled, a.__worldColorTransform, null, c, d); a.__buffer.flushVertexBufferData(); ba.__pool.release(c); Ja.__pool.release(d); Ja.__pool.release(e) } }; ha.buildBufferTileContainer = function (a, b, c, d, e, g, f, h, p, m, l, n, k) { null == k && (k = !0); var r = Ja.__pool.get(), v = c.__roundPixels, t = b.__tiles, q = null; q = function (a) { a = a.__tiles; for (var b = 0, c = 0; c < a.length;) { var d = a[c]; ++c; 0 < d.__length ? b += q(d) : ++b } return b }; k && ha.resizeBuffer(a, ha.numTiles + q(b)); k = null; for (var w, u, x, A, N, z, J, B, ma, C, K = g ? 5 : 4, F = 0; F < t.length;) { var D = t[F]; ++F; r.setTo(1, 0, 0, 1, -D.get_originX(), -D.get_originY()); r.concat(D.get_matrix()); r.concat(d); v && (r.tx = Math.round(r.tx), r.ty = Math.round(r.ty)); var I = null != D.get_tileset() ? D.get_tileset() : e; var G = D.get_alpha() * f; var y = D.get_visible(); D.__dirty = !1; if (y && !(0 >= G)) if (h && (null != D.get_colorTransform() ? null == p ? k = D.get_colorTransform() : (null == ha.cacheColorTransform && (ha.cacheColorTransform = new Pc), k = ha.cacheColorTransform, k.redMultiplier = p.redMultiplier * D.get_colorTransform().redMultiplier, k.greenMultiplier = p.greenMultiplier * D.get_colorTransform().greenMultiplier, k.blueMultiplier = p.blueMultiplier * D.get_colorTransform().blueMultiplier, k.alphaMultiplier = p.alphaMultiplier * D.get_colorTransform().alphaMultiplier, k.redOffset = p.redOffset + D.get_colorTransform().redOffset, k.greenOffset = p.greenOffset + D.get_colorTransform().greenOffset, k.blueOffset = p.blueOffset + D.get_colorTransform().blueOffset, k.alphaOffset = p.alphaOffset + D.get_colorTransform().alphaOffset) : k = p), g || (G = 1), 0 < D.__length) ha.buildBufferTileContainer(a, D, c, r, I, g, G, h, k, m, l, n, !1); else if (null != I && (y = D.get_id(), w = I.__bitmapData, null != w)) { if (-1 == y) { u = D.__rect; if (null == u || 0 >= u.width || 0 >= u.height) continue; D = u.x / w.width; I = u.y / w.height; y = u.get_right() / w.width; A = u.get_bottom() / w.height } else { w = I.__data[y]; if (null == w) continue; l.setTo(w.x, w.y, w.width, w.height); u = l; D = w.__uvX; I = w.__uvY; y = w.__uvWidth; A = w.__uvHeight } w = u.width; x = u.height; u = 0 * r.a + 0 * r.c + r.tx; N = 0 * r.b + 0 * r.d + r.ty; z = w * r.a + 0 * r.c + r.tx; J = w * r.b + 0 * r.d + r.ty; B = 0 * r.a + x * r.c + r.tx; ma = 0 * r.b + x * r.d + r.ty; C = w * r.a + x * r.c + r.tx; x = w * r.b + x * r.d + r.ty; w = ha.vertexDataPosition; ha.vertexBufferData[w] = u; ha.vertexBufferData[w + 1] = N; ha.vertexBufferData[w + 2] = D; ha.vertexBufferData[w + 3] = I; ha.vertexBufferData[w + ha.dataPerVertex] = z; ha.vertexBufferData[w + ha.dataPerVertex + 1] = J; ha.vertexBufferData[w + ha.dataPerVertex + 2] = y; ha.vertexBufferData[w + ha.dataPerVertex + 3] = I; ha.vertexBufferData[w + 2 * ha.dataPerVertex] = B; ha.vertexBufferData[w + 2 * ha.dataPerVertex + 1] = ma; ha.vertexBufferData[w + 2 * ha.dataPerVertex + 2] = D; ha.vertexBufferData[w + 2 * ha.dataPerVertex + 3] = A; ha.vertexBufferData[w + 3 * ha.dataPerVertex] = C; ha.vertexBufferData[w + 3 * ha.dataPerVertex + 1] = x; ha.vertexBufferData[w + 3 * ha.dataPerVertex + 2] = y; ha.vertexBufferData[w + 3 * ha.dataPerVertex + 3] = A; g && (ha.vertexBufferData[w + 0 * ha.dataPerVertex + 4] = G, ha.vertexBufferData[w + ha.dataPerVertex + 4] = G, ha.vertexBufferData[w + 2 * ha.dataPerVertex + 4] = G, ha.vertexBufferData[w + 3 * ha.dataPerVertex + 4] = G); if (h) if (null != k) for (G = 0; 4 > G;) D = G++, ha.vertexBufferData[w + ha.dataPerVertex * D + K] = k.redMultiplier, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 1] = k.greenMultiplier, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 2] = k.blueMultiplier, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 3] = k.alphaMultiplier, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 4] = k.redOffset, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 5] = k.greenOffset, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 6] = k.blueOffset, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 7] = k.alphaOffset; else for (G = 0; 4 > G;) D = G++, ha.vertexBufferData[w + ha.dataPerVertex * D + K] = 1, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 1] = 1, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 2] = 1, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 3] = 1, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 4] = 0, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 5] = 0, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 6] = 0, ha.vertexBufferData[w + ha.dataPerVertex * D + K + 7] = 0; ha.vertexDataPosition += 4 * ha.dataPerVertex } } b.__dirty = !1; Ja.__pool.release(r) }; ha.flush = function (a, b, c) { null == ha.currentShader && (ha.currentShader = b.__defaultDisplayShader); if (ha.bufferPosition > ha.lastFlushedPosition && null != ha.currentBitmapData && null != ha.currentShader) { var d = b.__initDisplayShader(ha.currentShader); b.setShader(d); b.applyBitmapData(ha.currentBitmapData, a.smoothing); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); a.tileAlphaEnabled ? b.useAlphaArray() : b.applyAlpha(a.__worldAlpha); a.tileBlendModeEnabled && b.__setBlendMode(c); a.tileColorTransformEnabled ? (b.applyHasColorTransform(!0), b.useColorTransformArray()) : b.applyColorTransform(a.__worldColorTransform); b.updateShader(); c = a.__buffer.vertexBuffer; for (var e = ha.lastFlushedPosition * ha.dataPerVertex * 4, g; ha.lastFlushedPosition < ha.bufferPosition;) { g = Math.min(ha.bufferPosition - ha.lastFlushedPosition, ha.context.__quadIndexBufferElements) | 0; if (0 >= g) break; null != d.__position && ha.context.setVertexBufferAt(d.__position.index, c, e, 2); null != d.__textureCoord && ha.context.setVertexBufferAt(d.__textureCoord.index, c, e + 2, 2); a.tileAlphaEnabled && null != d.__alpha && ha.context.setVertexBufferAt(d.__alpha.index, c, e + 4, 1); if (a.tileColorTransformEnabled) { var f = a.tileAlphaEnabled ? 5 : 4; null != d.__colorMultiplier && ha.context.setVertexBufferAt(d.__colorMultiplier.index, c, e + f, 4); null != d.__colorOffset && ha.context.setVertexBufferAt(d.__colorOffset.index, c, e + f + 4, 4) } ha.context.drawTriangles(ha.context.__quadIndexBuffer, 0, 2 * g); ha.lastFlushedPosition += g } b.__clearShader() } ha.lastUsedBitmapData = ha.currentBitmapData; ha.lastUsedShader = ha.currentShader }; ha.render = function (a, b) { if (a.__renderable && !(0 >= a.__worldAlpha) && (ha.context = b.__context3D, ha.buildBuffer(a, b), 0 != ha.numTiles)) { ha.bufferPosition = 0; ha.lastFlushedPosition = 0; ha.lastUsedBitmapData = null; ha.lastUsedShader = null; ha.currentBitmapData = null; ha.currentShader = null; ha.currentBlendMode = a.__worldBlendMode; a.tileBlendModeEnabled || b.__setBlendMode(ha.currentBlendMode); b.__pushMaskObject(a); var c = ba.__pool.get(); c.setTo(0, 0, a.__width, a.__height); b.__pushMaskRect(c, a.__renderTransform); ha.renderTileContainer(a, b, a.__group, a.__worldShader, a.__tileset, a.__worldAlpha, a.tileBlendModeEnabled, ha.currentBlendMode, null); ha.flush(a, b, ha.currentBlendMode); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(c) } }; ha.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { if (!(null == a.opaqueBackground && null == a.__graphics || !a.__renderable || 0 >= a.__worldAlpha)) { if (null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && 0 < a.get_height()) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var c = b.__context3D, d = ba.__pool.get(); d.setTo(0, 0, a.get_width(), a.get_height()); b.__pushMaskRect(d, a.__renderTransform); var e = a.opaqueBackground; c.clear((e >>> 16 & 255) / 255, (e >>> 8 & 255) / 255, (e & 255) / 255, 1, 0, 0, 1); b.__popMaskRect(); b.__popMaskObject(a); ba.__pool.release(d) } null != a.__graphics && cg.render(a, b) } ha.render(a, b) } else zf.render(a.__cacheBitmap, b); b.__renderEvent(a) }; ha.renderDrawableMask = function (a, b) { if (null != a.opaqueBackground || null != a.__graphics) null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(), null != a.__graphics && cg.renderMask(a, b); ha.renderMask(a, b) }; ha.renderTileContainer = function (a, b, c, d, e, g, f, h, p) { c = c.__tiles; for (var r, l, n, v, k = null, t, q = 0; q < c.length;) if (r = c[q], ++q, l = null != r.get_tileset() ? r.get_tileset() : e, n = r.get_alpha() * g, (v = r.get_visible()) && !(0 >= n)) if (v = null != r.get_shader() ? r.get_shader() : d, f && (k = null != r.__blendMode ? r.__blendMode : h), 0 < r.__length) ha.renderTileContainer(a, b, r, v, l, n, f, k, p); else if (null != l && (t = r.get_id(), n = l.__bitmapData, null != n)) { if (-1 == t) { if (r = r.__rect, null == r || 0 >= r.width || 0 >= r.height) continue } else if (r = l.__data[t], null == r) continue; (v != ha.currentShader || n != ha.currentBitmapData && null != ha.currentBitmapData || ha.currentBlendMode != k) && ha.flush(a, b, ha.currentBlendMode); ha.currentBitmapData = n; ha.currentShader = v; ha.currentBlendMode = k; ha.bufferPosition++ } }; ha.renderMask = function (a, b) { }; ha.resizeBuffer = function (a, b) { ha.numTiles = b; null == a.__buffer ? a.__buffer = new Gh(ha.context, dn.QUADS, ha.numTiles, ha.dataPerVertex) : a.__buffer.resize(ha.numTiles, ha.dataPerVertex); ha.vertexBufferData = a.__buffer.vertexBufferData }; var Af = function () { }; k["openfl.display._internal.Context3DVideo"] = Af; Af.__name__ = "openfl.display._internal.Context3DVideo"; Af.render = function (a, b) { if (a.__renderable && !(0 >= a.__worldAlpha) && null != a.__stream && null != a.__stream.__video) { var c = b.__context3D, d = c.gl; if (null != a.__getTexture(c)) { b.__setBlendMode(a.__worldBlendMode); b.__pushMaskObject(a); var e = b.__initDisplayShader(a.__worldShader); b.setShader(e); b.applyBitmapData(null, !0, !1); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); b.applyAlpha(a.__worldAlpha); b.applyColorTransform(a.__worldColorTransform); null != e.__textureSize && (Af.__textureSizeValue[0] = null != a.__stream ? a.__stream.__video.videoWidth : 0, Af.__textureSizeValue[1] = null != a.__stream ? a.__stream.__video.videoHeight : 0, e.__textureSize.value = Af.__textureSizeValue); b.updateShader(); c.setTextureAt(0, a.__getTexture(c)); c.__flushGLTextures(); d.uniform1i(e.__texture.index, 0); a.smoothing ? (d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.LINEAR), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.LINEAR)) : (d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MAG_FILTER, d.NEAREST), d.texParameteri(d.TEXTURE_2D, d.TEXTURE_MIN_FILTER, d.NEAREST)); d = a.__getVertexBuffer(c); null != e.__position && c.setVertexBufferAt(e.__position.index, d, 0, 3); null != e.__textureCoord && c.setVertexBufferAt(e.__textureCoord.index, d, 3, 2); e = a.__getIndexBuffer(c); c.drawTriangles(e); b.__clearShader(); b.__popMaskObject(a) } } }; Af.renderDrawable = function (a, b) { Af.render(a, b); b.__renderEvent(a) }; Af.renderDrawableMask = function (a, b) { Af.renderMask(a, b) }; Af.renderMask = function (a, b) { if (null != a.__stream && null != a.__stream.__video) { var c = b.__context3D, d = b.__maskShader; b.setShader(d); b.applyBitmapData(ai.opaqueBitmapData, !0); b.applyMatrix(b.__getMatrix(a.__renderTransform, 1)); b.updateShader(); var e = a.__getVertexBuffer(c); null != d.__position && c.setVertexBufferAt(d.__position.index, e, 0, 3); null != d.__textureCoord && c.setVertexBufferAt(d.__textureCoord.index, e, 3, 2); a = a.__getIndexBuffer(c); c.drawTriangles(a); b.__clearShader() } }; var Vc = function () { }; k["openfl.display._internal.DOMBitmap"] = Vc; Vc.__name__ = "openfl.display._internal.DOMBitmap"; Vc.clear = function (a, b) { null != a.__cacheBitmap && Vc.clear(a.__cacheBitmap, b); null != a.__image && (b.element.removeChild(a.__image), a.__image = null, a.__style = null); null != a.__canvas && (b.element.removeChild(a.__canvas), a.__canvas = null, a.__style = null) }; Vc.render = function (a, b) { null != a.stage && a.__worldVisible && a.__renderable && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable ? (b.__pushMaskObject(a), null != a.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(a, b) : Vc.renderCanvas(a, b), b.__popMaskObject(a)) : Vc.clear(a, b) }; Vc.renderCanvas = function (a, b) { null != a.__image && (b.element.removeChild(a.__image), a.__image = null); null == a.__canvas && (a.__canvas = window.document.createElement("canvas"), a.__context = a.__canvas.getContext("2d"), a.__imageVersion = -1, b.__allowSmoothing && a.smoothing || (a.__context.imageSmoothingEnabled = !1), b.__initializeElement(a, a.__canvas)); a.__imageVersion != a.__bitmapData.image.version && (va.convertToCanvas(a.__bitmapData.image), a.__canvas.width = a.__bitmapData.width + 1, a.__canvas.width = a.__bitmapData.width, a.__canvas.height = a.__bitmapData.height, a.__context.drawImage(a.__bitmapData.image.buffer.__srcCanvas, 0, 0), a.__imageVersion = a.__bitmapData.image.version); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0) }; Vc.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { B.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), a.__canvas = c.__canvas, a.__context = c.__context, b.__initializeElement(a, a.__canvas)) : sf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && (c.__transformDirty = !1, a.__renderTransformChanged = !0); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a) } } else sf.clear(a, b); null != a.stage && a.__worldVisible && a.__renderable && null != a.__bitmapData && a.__bitmapData.__isValid && a.__bitmapData.readable ? (b.__pushMaskObject(a), null != a.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(a, b) : Vc.renderCanvas(a, b), b.__popMaskObject(a)) : Vc.clear(a, b) } else b.__renderDrawableClear(a), a.__cacheBitmap.stage = a.stage, c = a.__cacheBitmap, null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(c, b) : Vc.renderCanvas(c, b), b.__popMaskObject(c)) : Vc.clear(c, b); b.__renderEvent(a) }; Vc.renderDrawableClear = function (a, b) { Vc.clear(a, b) }; Vc.renderImage = function (a, b) { null != a.__canvas && (b.element.removeChild(a.__canvas), a.__canvas = null); null == a.__image && (a.__image = window.document.createElement("img"), a.__image.crossOrigin = "Anonymous", a.__image.src = a.__bitmapData.image.buffer.__srcImage.src, b.__initializeElement(a, a.__image)); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0) }; var Zf = function () { }; k["openfl.display._internal.DOMDisplayObject"] = Zf; Zf.__name__ = "openfl.display._internal.DOMDisplayObject"; Zf.clear = function (a, b) { null != a.__cacheBitmap && Vc.clear(a.__cacheBitmap, b); sf.clear(a, b) }; Zf.render = function (a, b) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { B.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), a.__canvas = c.__canvas, a.__context = c.__context, b.__initializeElement(a, a.__canvas)) : sf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && (c.__transformDirty = !1, a.__renderTransformChanged = !0); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a) } } else sf.clear(a, b) }; Zf.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { B.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), a.__canvas = c.__canvas, a.__context = c.__context, b.__initializeElement(a, a.__canvas)) : sf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && (c.__transformDirty = !1, a.__renderTransformChanged = !0); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a) } } else sf.clear(a, b) } else b.__renderDrawableClear(a), a.__cacheBitmap.stage = a.stage, c = a.__cacheBitmap, null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(c, b) : Vc.renderCanvas(c, b), b.__popMaskObject(c)) : Vc.clear(c, b); b.__renderEvent(a) }; Zf.renderDrawableClear = function (a, b) { Zf.clear(a, b) }; var Im = function () { }; k["openfl.display._internal.DOMDisplayObjectContainer"] = Im; Im.__name__ = "openfl.display._internal.DOMDisplayObjectContainer"; Im.renderDrawable = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && b.__renderDrawable(d) } for (c = a.__removedChildren.iterator(); c.hasNext();) d = c.next(), null == d.stage && d.__cleanup(); a.__removedChildren.set_length(0); Zf.renderDrawable(a, b); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { b.__pushMaskObject(a); if (null != b.__stage) { c = 0; for (d = a.__children; c < d.length;) { var e = d[c]; ++c; b.__renderDrawable(e); e.__renderDirty = !1 } a.__renderDirty = !1 } else for (c = 0, d = a.__children; c < d.length;) e = d[c], ++c, b.__renderDrawable(e); b.__popMaskObject(a) } }; Im.renderDrawableClear = function (a, b) { for (var c = a.__removedChildren.iterator(); c.hasNext();) { var d = c.next(); null == d.stage && b.__renderDrawableClear(d) } for (c = a.__removedChildren.iterator(); c.hasNext();) d = c.next(), null == d.stage && d.__cleanup(); a.__removedChildren.set_length(0); c = 0; for (a = a.__children; c < a.length;) d = a[c], ++c, b.__renderDrawableClear(d) }; var sf = function () { }; k["openfl.display._internal.DOMShape"] = sf; sf.__name__ = "openfl.display._internal.DOMShape"; sf.clear = function (a, b) { null != a.__canvas && (b.element.removeChild(a.__canvas), a.__canvas = null, a.__style = null) }; sf.render = function (a, b) { var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { B.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), a.__canvas = c.__canvas, a.__context = c.__context, b.__initializeElement(a, a.__canvas)) : sf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && (c.__transformDirty = !1, a.__renderTransformChanged = !0); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a) } } else sf.clear(a, b) }; var Jm = function () { }; k["openfl.display._internal.DOMSimpleButton"] = Jm; Jm.__name__ = "openfl.display._internal.DOMSimpleButton"; Jm.renderDrawable = function (a, b) { b.__pushMaskObject(a); for (var c = a.__previousStates.iterator(); c.hasNext();) { var d = c.next(); b.__renderDrawable(d) } a.__previousStates.set_length(0); null != a.__currentState && (a.__currentState.stage != a.stage && a.__currentState.__setStageReference(a.stage), b.__renderDrawable(a.__currentState)); b.__popMaskObject(a); b.__renderEvent(a) }; Jm.renderDrawableClear = function (a, b) { Zf.renderDrawableClear(a, b) }; var gc = function () { }; k["openfl.display._internal.DOMTextField"] = gc; gc.__name__ = "openfl.display._internal.DOMTextField"; gc.clear = function (a, b) { null != a.__cacheBitmap && Vc.clear(a.__cacheBitmap, b); null != a.__div && (b.element.removeChild(a.__div), a.__div = null, a.__style = null) }; gc.measureText = function (a) { var b = a.__textEngine, c = a.__div; null == c && (c = window.document.createElement("div"), c.innerHTML = b.text.replace(/\n/g, "
"), c.style.setProperty("font", Wb.getFont(a.__textFormat), null), c.style.setProperty("pointer-events", "none", null), c.style.position = "absolute", c.style.top = "110%", window.document.body.appendChild(c)); b.__measuredWidth = c.clientWidth; null == a.__div && (c.style.width = z.string(b.width - 4) + "px"); b.__measuredHeight = c.clientHeight; null == a.__div && window.document.body.removeChild(c) }; gc.render = function (a, b) { var c = a.__textEngine; if (null != a.stage && a.__worldVisible && a.__renderable) { if (a.__dirty || a.__renderTransformChanged || null == a.__div) if ("" != c.text || c.background || c.border || 1 == c.type) { null == a.__div && (a.__div = window.document.createElement("div"), b.__initializeElement(a, a.__div), a.__style.setProperty("outline", "none", null), a.__div.addEventListener("input", function (b) { b.preventDefault(); a.get_htmlText() != a.__div.innerHTML && (a.set_htmlText(a.__div.innerHTML), a.__dirty = !1, a.dispatchEvent(new kf("textInput", !1, !1, a.get_htmlText()))) }, !0)); c.wordWrap ? a.__style.setProperty("word-wrap", "break-word", null) : a.__style.setProperty("white-space", "nowrap", null); a.__style.setProperty("overflow", "hidden", null); c.selectable ? (a.__style.setProperty("cursor", "text", null), a.__style.setProperty("-webkit-user-select", "text", null), a.__style.setProperty("-moz-user-select", "text", null), a.__style.setProperty("-ms-user-select", "text", null), a.__style.setProperty("-o-user-select", "text", null)) : a.__style.setProperty("cursor", "inherit", null); a.__div.contentEditable = 1 == c.type; var d = a.__style; c.background ? d.setProperty("background-color", "#" + T.hex(c.backgroundColor & 16777215, 6), null) : d.removeProperty("background-color"); var e = c.width, g = c.height, f = 1, h = a.__textFormat.size, p = h, m = a.__renderTransform; if (1 != m.a || 1 != m.d) m.a == m.d ? (f = m.a, m.a = m.d = 1) : m.a > m.d ? (f = m.a, m.d /= m.a, m.a = 1) : (f = m.d, m.a /= m.d, m.d = 1), p *= f, e = Math.ceil(e * f), g = Math.ceil(g * f); a.__textFormat.size = p; m = c.text; var l = 0; if (a.__isHTML) { for (var n = m; gc.__regexFont.match(n);) { n = gc.__regexFont.matched(0); var k = ""; gc.__regexFace.match(n) && (k += "font-family:'" + gc.__getAttributeMatch(gc.__regexFace) + "';"); gc.__regexColor.match(n) && (k += "color:#" + gc.__getAttributeMatch(gc.__regexColor) + ";"); if (gc.__regexSize.match(n)) { l = gc.__getAttributeMatch(gc.__regexSize); var t = K.cca(l, 0); l = parseFloat(l) * f; k += "font-size:" + (43 == t || 45 == t ? p + l : l) + "px;" } m = T.replace(m, n, ""); n = gc.__regexFont.matchedRight() } m = m.replace(gc.__regexCloseFont.r, "") } else m = T.htmlEscape(m); m = T.replace(m, "

"); a.__div.innerHTML = m; p = /\n/g; m = a.__div.innerHTML.replace(p, "
"); a.__div.innerHTML = m; p = /\r/g; m = a.__div.innerHTML.replace(p, "
"); a.__div.innerHTML = m; d.setProperty("font", Wb.getFont(a.__textFormat), null); a.__textFormat.size = h; a.__textFormat.leading = f; d.setProperty("top", "3px", null); c.border ? (d.setProperty("border", "solid 1px #" + T.hex(c.borderColor & 16777215, 6), null), a.__renderTransform.translate(-1, -1), a.__renderTransformChanged = !0, a.__transformDirty = !0) : "" != d.border && (d.removeProperty("border"), a.__renderTransformChanged = !0); d.setProperty("color", "#" + T.hex(a.__textFormat.color & 16777215, 6), null); d.setProperty("width", e + "px", null); d.setProperty("height", g + "px", null); switch (a.__textFormat.align) { case 0: d.setProperty("text-align", "center", null); break; case 4: d.setProperty("text-align", "right", null); break; default: d.setProperty("text-align", "left", null) } a.__dirty = !1 } else null != a.__div && (b.element.removeChild(a.__div), a.__div = null); null != a.__div && (c = b.__roundPixels, b.__roundPixels = !0, b.__updateClip(a), b.__applyStyle(a, !0, !0, !0), b.__roundPixels = c) } else gc.clear(a, b) }; gc.renderDrawable = function (a, b) { a.__domRender = !0; b.__updateCacheBitmap(a, a.__forceCachedBitmapUpdate); a.__forceCachedBitmapUpdate = !1; a.__domRender = !1; if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { a.__renderedOnCanvasWhileOnDOM && (a.__renderedOnCanvasWhileOnDOM = !1, a.__isHTML && null != a.__rawHtmlText && (a.__updateText(a.__rawHtmlText), a.__dirty = !0, a.__layoutDirty = !0, a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty()))); var c = a.__textEngine; if (null != a.stage && a.__worldVisible && a.__renderable) { if (a.__dirty || a.__renderTransformChanged || null == a.__div) if ("" != c.text || c.background || c.border || 1 == c.type) { null == a.__div && (a.__div = window.document.createElement("div"), b.__initializeElement(a, a.__div), a.__style.setProperty("outline", "none", null), a.__div.addEventListener("input", function (b) { b.preventDefault(); a.get_htmlText() != a.__div.innerHTML && (a.set_htmlText(a.__div.innerHTML), a.__dirty = !1, a.dispatchEvent(new kf("textInput", !1, !1, a.get_htmlText()))) }, !0)); c.wordWrap ? a.__style.setProperty("word-wrap", "break-word", null) : a.__style.setProperty("white-space", "nowrap", null); a.__style.setProperty("overflow", "hidden", null); c.selectable ? (a.__style.setProperty("cursor", "text", null), a.__style.setProperty("-webkit-user-select", "text", null), a.__style.setProperty("-moz-user-select", "text", null), a.__style.setProperty("-ms-user-select", "text", null), a.__style.setProperty("-o-user-select", "text", null)) : a.__style.setProperty("cursor", "inherit", null); a.__div.contentEditable = 1 == c.type; var d = a.__style; c.background ? d.setProperty("background-color", "#" + T.hex(c.backgroundColor & 16777215, 6), null) : d.removeProperty("background-color"); var e = c.width, g = c.height, f = 1, h = a.__textFormat.size, p = h, m = a.__renderTransform; if (1 != m.a || 1 != m.d) m.a == m.d ? (f = m.a, m.a = m.d = 1) : m.a > m.d ? (f = m.a, m.d /= m.a, m.a = 1) : (f = m.d, m.a /= m.d, m.d = 1), p *= f, e = Math.ceil(e * f), g = Math.ceil(g * f); a.__textFormat.size = p; m = c.text; var l = 0; if (a.__isHTML) { for (var n = m; gc.__regexFont.match(n);) { n = gc.__regexFont.matched(0); var k = ""; gc.__regexFace.match(n) && (k += "font-family:'" + gc.__getAttributeMatch(gc.__regexFace) + "';"); gc.__regexColor.match(n) && (k += "color:#" + gc.__getAttributeMatch(gc.__regexColor) + ";"); if (gc.__regexSize.match(n)) { l = gc.__getAttributeMatch(gc.__regexSize); var t = K.cca(l, 0); l = parseFloat(l) * f; k += "font-size:" + (43 == t || 45 == t ? p + l : l) + "px;" } m = T.replace(m, n, ""); n = gc.__regexFont.matchedRight() } m = m.replace(gc.__regexCloseFont.r, "") } else m = T.htmlEscape(m); m = T.replace(m, "

"); a.__div.innerHTML = m; p = /\n/g; m = a.__div.innerHTML.replace(p, "
"); a.__div.innerHTML = m; p = /\r/g; m = a.__div.innerHTML.replace(p, "
"); a.__div.innerHTML = m; d.setProperty("font", Wb.getFont(a.__textFormat), null); a.__textFormat.size = h; a.__textFormat.leading = f; d.setProperty("top", "3px", null); c.border ? (d.setProperty("border", "solid 1px #" + T.hex(c.borderColor & 16777215, 6), null), a.__renderTransform.translate(-1, -1), a.__renderTransformChanged = !0, a.__transformDirty = !0) : "" != d.border && (d.removeProperty("border"), a.__renderTransformChanged = !0); d.setProperty("color", "#" + T.hex(a.__textFormat.color & 16777215, 6), null); d.setProperty("width", e + "px", null); d.setProperty("height", g + "px", null); switch (a.__textFormat.align) { case 0: d.setProperty("text-align", "center", null); break; case 4: d.setProperty("text-align", "right", null); break; default: d.setProperty("text-align", "left", null) } a.__dirty = !1 } else null != a.__div && (b.element.removeChild(a.__div), a.__div = null); null != a.__div && (c = b.__roundPixels, b.__roundPixels = !0, b.__updateClip(a), b.__applyStyle(a, !0, !0, !0), b.__roundPixels = c) } else gc.clear(a, b) } else b.__renderDrawableClear(a), a.__cacheBitmap.stage = a.stage, c = a.__cacheBitmap, null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(c, b) : Vc.renderCanvas(c, b), b.__popMaskObject(c)) : Vc.clear(c, b); b.__renderEvent(a) }; gc.renderDrawableClear = function (a, b) { gc.clear(a, b) }; gc.__getAttributeMatch = function (a) { return null != a.matched(2) ? a.matched(2) : a.matched(3) }; var Gg = function () { }; k["openfl.display._internal.DOMTilemap"] = Gg; Gg.__name__ = "openfl.display._internal.DOMTilemap"; Gg.clear = function (a, b) { null != a.__cacheBitmap && Vc.clear(a.__cacheBitmap, b); null != a.__canvas && (b.element.removeChild(a.__canvas), a.__canvas = null, a.__style = null) }; Gg.render = function (a, b) { if (null != a.stage && a.__worldVisible && a.__renderable && 0 < a.__group.__tiles.length) { null == a.__canvas && (a.__canvas = window.document.createElement("canvas"), a.__context = a.__canvas.getContext("2d"), b.__initializeElement(a, a.__canvas)); a.__canvas.width = a.__width; a.__canvas.height = a.__height; b.__canvasRenderer.context = a.__context; var c = b.__canvasRenderer; if (a.__renderable && 0 != a.__group.__tiles.length) { var d = c.__getAlpha(a.__worldAlpha); if (!(0 >= d)) { var e = c.context; c.__setBlendMode(a.__worldBlendMode); c.__pushMaskObject(a); var g = ba.__pool.get(); g.setTo(0, 0, a.__width, a.__height); c.__pushMaskRect(g, a.__renderTransform); c.__allowSmoothing && a.smoothing || (e.imageSmoothingEnabled = !1); Yf.renderTileContainer(a.__group, c, a.__renderTransform, a.__tileset, c.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, d, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, g); c.__allowSmoothing && a.smoothing || (e.imageSmoothingEnabled = !0); c.__popMaskRect(); c.__popMaskObject(a); ba.__pool.release(g) } } b.__canvasRenderer.context = null; b.__updateClip(a); b.__applyStyle(a, !0, !1, !0) } else Gg.clear(a, b) }; Gg.renderDrawable = function (a, b) { b.__updateCacheBitmap(a, !1); if (null == a.__cacheBitmap || a.__isCacheBitmapRender) { null != a.opaqueBackground && !a.__isCacheBitmapRender && 0 < a.get_width() && a.get_height(); var c = a.__graphics; if (null != a.stage && a.__worldVisible && a.__renderable && null != c) { B.render(c, b.__canvasRenderer); if (c.__softwareDirty || a.__worldAlphaChanged || a.__canvas != c.__canvas) null != c.__canvas ? a.__canvas != c.__canvas && (null != a.__canvas && b.element.removeChild(a.__canvas), a.__canvas = c.__canvas, a.__context = c.__context, b.__initializeElement(a, a.__canvas)) : sf.clear(a, b); if (null != a.__canvas) { b.__pushMaskObject(a); var d = a.__renderTransform; a.__renderTransform = c.__worldTransform; c.__transformDirty && (c.__transformDirty = !1, a.__renderTransformChanged = !0); b.__updateClip(a); b.__applyStyle(a, !0, !0, !0); a.__renderTransform = d; b.__popMaskObject(a) } } else sf.clear(a, b); if (null != a.stage && a.__worldVisible && a.__renderable && 0 < a.__group.__tiles.length) { null == a.__canvas && (a.__canvas = window.document.createElement("canvas"), a.__context = a.__canvas.getContext("2d"), b.__initializeElement(a, a.__canvas)); a.__canvas.width = a.__width; a.__canvas.height = a.__height; b.__canvasRenderer.context = a.__context; c = b.__canvasRenderer; if (a.__renderable && 0 != a.__group.__tiles.length && (d = c.__getAlpha(a.__worldAlpha), !(0 >= d))) { var e = c.context; c.__setBlendMode(a.__worldBlendMode); c.__pushMaskObject(a); var g = ba.__pool.get(); g.setTo(0, 0, a.__width, a.__height); c.__pushMaskRect(g, a.__renderTransform); c.__allowSmoothing && a.smoothing || (e.imageSmoothingEnabled = !1); Yf.renderTileContainer(a.__group, c, a.__renderTransform, a.__tileset, c.__allowSmoothing && a.smoothing, a.tileAlphaEnabled, d, a.tileBlendModeEnabled, a.__worldBlendMode, null, null, g); c.__allowSmoothing && a.smoothing || (e.imageSmoothingEnabled = !0); c.__popMaskRect(); c.__popMaskObject(a); ba.__pool.release(g) } b.__canvasRenderer.context = null; b.__updateClip(a); b.__applyStyle(a, !0, !1, !0) } else Gg.clear(a, b) } else b.__renderDrawableClear(a), a.__cacheBitmap.stage = a.stage, c = a.__cacheBitmap, null != c.stage && c.__worldVisible && c.__renderable && null != c.__bitmapData && c.__bitmapData.__isValid && c.__bitmapData.readable ? (b.__pushMaskObject(c), null != c.__bitmapData.image.buffer.__srcImage ? Vc.renderImage(c, b) : Vc.renderCanvas(c, b), b.__popMaskObject(c)) : Vc.clear(c, b); b.__renderEvent(a) }; Gg.renderDrawableClear = function (a, b) { Gg.clear(a, b) }; var dh = function () { }; k["openfl.display._internal.DOMVideo"] = dh; dh.__name__ = "openfl.display._internal.DOMVideo"; dh.clear = function (a, b) { a.__active && (b.element.removeChild(a.__stream.__video), a.__active = !1) }; dh.render = function (a, b) { null != a.stage && null != a.__stream && a.__worldVisible && a.__renderable ? (a.__active || (b.__initializeElement(a, a.__stream.__video), a.__active = !0, a.__dirty = !0), a.__dirty && (a.__stream.__video.width = a.__width | 0, a.__stream.__video.height = a.__height | 0, a.__dirty = !1), b.__updateClip(a), b.__applyStyle(a, !0, !0, !0)) : dh.clear(a, b) }; dh.renderDrawable = function (a, b) { dh.render(a, b); b.__renderEvent(a) }; dh.renderDrawableClear = function (a, b) { Zf.renderDrawableClear(a, b) }; var $f = function (a) { this.buffer = a; this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0; this.prev = Z.UNKNOWN }; k["openfl.display._internal.DrawCommandReader"] = $f; $f.__name__ = "openfl.display._internal.DrawCommandReader"; $f.prototype = { buffer: null, bPos: null, iiPos: null, iPos: null, ffPos: null, fPos: null, oPos: null, prev: null, tsPos: null, advance: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } }, bool: function (a) { return this.buffer.b[this.bPos + a] }, destroy: function () { this.buffer = null; this.reset() }, fArr: function (a) { return this.buffer.ff[this.ffPos + a] }, float: function (a) { return this.buffer.f[this.fPos + a] }, iArr: function (a) { return this.buffer.ii[this.iiPos + a] }, int: function (a) { return this.buffer.i[this.iPos + a] }, obj: function (a) { return this.buffer.o[this.oPos + a] }, readBeginBitmapFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.BEGIN_BITMAP_FILL; return this }, readBeginFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.BEGIN_FILL; return this }, readBeginGradientFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.BEGIN_GRADIENT_FILL; return this }, readBeginShaderFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.BEGIN_SHADER_FILL; return this }, readCubicCurveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.CUBIC_CURVE_TO; return this }, readCurveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.CURVE_TO; return this }, readDrawCircle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_CIRCLE; return this }, readDrawEllipse: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_ELLIPSE; return this }, readDrawQuads: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_QUADS; return this }, readDrawRect: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_RECT; return this }, readDrawRoundRect: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_ROUND_RECT; return this }, readDrawTriangles: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.DRAW_TRIANGLES; return this }, readEndFill: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.END_FILL; return this }, readLineBitmapStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.LINE_BITMAP_STYLE; return this }, readLineGradientStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.LINE_GRADIENT_STYLE; return this }, readLineStyle: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.LINE_STYLE; return this }, readLineTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.LINE_TO; return this }, readMoveTo: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.MOVE_TO; return this }, readOverrideBlendMode: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.OVERRIDE_BLEND_MODE; return this }, readOverrideMatrix: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.OVERRIDE_MATRIX; return this }, readWindingEvenOdd: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.WINDING_EVEN_ODD; return this }, readWindingNonZero: function () { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = Z.WINDING_NON_ZERO; return this }, reset: function () { this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0 }, skip: function (a) { switch (this.prev._hx_index) { case 0: this.oPos += 2; this.bPos += 2; break; case 1: this.iPos += 1; this.fPos += 1; break; case 2: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 3: this.oPos += 1; break; case 4: this.fPos += 6; break; case 5: this.fPos += 4; break; case 6: this.fPos += 3; break; case 7: this.fPos += 4; break; case 8: this.oPos += 3; break; case 9: this.fPos += 4; break; case 10: this.fPos += 5; this.oPos += 1; break; case 12: this.oPos += 4; break; case 14: this.oPos += 2; this.bPos += 2; break; case 15: this.oPos += 4; this.iiPos += 2; this.ffPos += 1; this.fPos += 1; break; case 16: this.oPos += 4; this.iPos += 1; this.fPos += 2; this.bPos += 1; break; case 17: this.fPos += 2; break; case 18: this.fPos += 2; break; case 19: this.oPos += 1; break; case 20: this.oPos += 1 } this.prev = a }, __class__: $f }; var Z = A["openfl.display._internal.DrawCommandType"] = { __ename__: "openfl.display._internal.DrawCommandType", __constructs__: null, BEGIN_BITMAP_FILL: { _hx_name: "BEGIN_BITMAP_FILL", _hx_index: 0, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, BEGIN_FILL: { _hx_name: "BEGIN_FILL", _hx_index: 1, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, BEGIN_GRADIENT_FILL: { _hx_name: "BEGIN_GRADIENT_FILL", _hx_index: 2, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, BEGIN_SHADER_FILL: { _hx_name: "BEGIN_SHADER_FILL", _hx_index: 3, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, CUBIC_CURVE_TO: { _hx_name: "CUBIC_CURVE_TO", _hx_index: 4, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, CURVE_TO: { _hx_name: "CURVE_TO", _hx_index: 5, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_CIRCLE: { _hx_name: "DRAW_CIRCLE", _hx_index: 6, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_ELLIPSE: { _hx_name: "DRAW_ELLIPSE", _hx_index: 7, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_QUADS: { _hx_name: "DRAW_QUADS", _hx_index: 8, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_RECT: { _hx_name: "DRAW_RECT", _hx_index: 9, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_ROUND_RECT: { _hx_name: "DRAW_ROUND_RECT", _hx_index: 10, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_TILES: { _hx_name: "DRAW_TILES", _hx_index: 11, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, DRAW_TRIANGLES: { _hx_name: "DRAW_TRIANGLES", _hx_index: 12, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, END_FILL: { _hx_name: "END_FILL", _hx_index: 13, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, LINE_BITMAP_STYLE: { _hx_name: "LINE_BITMAP_STYLE", _hx_index: 14, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, LINE_GRADIENT_STYLE: { _hx_name: "LINE_GRADIENT_STYLE", _hx_index: 15, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, LINE_STYLE: { _hx_name: "LINE_STYLE", _hx_index: 16, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, LINE_TO: { _hx_name: "LINE_TO", _hx_index: 17, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, MOVE_TO: { _hx_name: "MOVE_TO", _hx_index: 18, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, OVERRIDE_BLEND_MODE: { _hx_name: "OVERRIDE_BLEND_MODE", _hx_index: 19, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, OVERRIDE_MATRIX: { _hx_name: "OVERRIDE_MATRIX", _hx_index: 20, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, WINDING_EVEN_ODD: { _hx_name: "WINDING_EVEN_ODD", _hx_index: 21, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, WINDING_NON_ZERO: { _hx_name: "WINDING_NON_ZERO", _hx_index: 22, __enum__: "openfl.display._internal.DrawCommandType", toString: t }, UNKNOWN: { _hx_name: "UNKNOWN", _hx_index: 23, __enum__: "openfl.display._internal.DrawCommandType", toString: t } }; Z.__constructs__ = [Z.BEGIN_BITMAP_FILL, Z.BEGIN_FILL, Z.BEGIN_GRADIENT_FILL, Z.BEGIN_SHADER_FILL, Z.CUBIC_CURVE_TO, Z.CURVE_TO, Z.DRAW_CIRCLE, Z.DRAW_ELLIPSE, Z.DRAW_QUADS, Z.DRAW_RECT, Z.DRAW_ROUND_RECT, Z.DRAW_TILES, Z.DRAW_TRIANGLES, Z.END_FILL, Z.LINE_BITMAP_STYLE, Z.LINE_GRADIENT_STYLE, Z.LINE_STYLE, Z.LINE_TO, Z.MOVE_TO, Z.OVERRIDE_BLEND_MODE, Z.OVERRIDE_MATRIX, Z.WINDING_EVEN_ODD, Z.WINDING_NON_ZERO, Z.UNKNOWN]; var Hh = function () { }; k["openfl.display._internal.FlashRenderer"] = Hh; Hh.__name__ = "openfl.display._internal.FlashRenderer"; Hh.register = function (a) { null == Hh.instances && (Hh.instances = ts.toObjectMap(null, !0), Oa.get_current().stage.addEventListener("enterFrame", Hh.render, !1, -2147483648)); Hh.instances.set(a, !0) }; Hh.render = function (a) { for (a = Hh.instances.keys(); a.hasNext();) a.next().__renderFlash() }; var ap = function () { }; k["openfl.display._internal.IDisplayObject"] = ap; ap.__name__ = "openfl.display._internal.IDisplayObject"; ap.__isInterface__ = !0; ap.prototype = {__renderFlash: null, __class__: ap}; var fi = function () { }; k["openfl.display._internal.FlashTilemap"] = fi; fi.__name__ = "openfl.display._internal.FlashTilemap"; fi.render = function (a) { }; fi.renderTileContainer = function (a, b, c, d, e, g, f, h, p, m, l, n) { }; var Zh = function (a, b, c, d, e, g, f) { null == f && (f = .05); null == g && (g = !1); Xi.call(this, a, b, c, d, e, g, f); this.p_perm = []; for (b = 0; 512 > b;) c = b++, this.p_perm[c] = Zh.P[c & 255]; this.base_factor = .03125; this.setSeed(a) }; k["openfl.display._internal.PerlinNoise"] = Zh; Zh.__name__ = "openfl.display._internal.PerlinNoise"; Zh.__super__ = Xi; Zh.prototype = u(Xi.prototype, { p_perm: null, x_offset: null, y_offset: null, z_offset: null, base_factor: null, fill: function (a, b, c, d) { var e = a.width, g = a.height, f = this.octaves, h = this.octaves_frequencies, p = this.octaves_persistences, m = 1 == (1 & this.channels), l = 2 == (2 & this.channels), n = 4 == (4 & this.channels), k = 0; m && ++k; l && ++k; n && ++k; var t = this.grayscale, q = this.stitch_threshold * e | 0, w = this.stitch_threshold * g | 0, u = b * this.base_factor + this.x_offset; c = c * this.base_factor + this.y_offset; d = d * this.base_factor + this.z_offset; for (var x = 0; x < g;) { var A = x++; b = u; for (var N = 0, z = e; N < z;) { for (var J = N++, B = 0, ma = 0, C = 0, D = 0, K = f; D < K;) { var F = D++, G = h[F]; F = p[F]; B += this.noise(b * G, c * G, d * G) * F; t || (1 < k && (ma += this.noise((b + 1) * G, (c + 1) * G, d * G) * F), 2 < k && (C += this.noise((b + 2) * G, (c + 2) * G, d * G) * F)) } D = 0; t ? D = this.color(B, B, B) : m && l && n ? D = this.color(B, ma, C) : m && l ? D = this.color(B, ma, null) : m && n ? D = this.color(B, null, ma) : l && n ? D = this.color(null, B, ma) : m ? D = this.color(B, null, null) : l ? D = this.color(null, B, null) : n && (D = this.color(null, null, B)); this.stitch && (D = this.stitching(a, D, J, A, q, w, e, g)); a.setPixel32(J, A, D); b += this.base_factor } c += this.base_factor } }, noise: function (a, b, c) { var d = a - a % 1, e = b - b % 1, g = c - c % 1; a -= d; b -= e; c -= g; var f = (d | 0) & 255, h = (e | 0) & 255, p = (g | 0) & 255; g = this.fade(a); e = this.fade(b); d = this.fade(c); var m = this.p_perm[f] + h, l = this.p_perm[m] + p; m = this.p_perm[m + 1] + p; h = this.p_perm[f + 1] + h; f = this.p_perm[h] + p; var n = this.p_perm[h + 1] + p, k = a - 1, t = b - 1, q = c - 1, w = this.p_perm[n + 1] & 15; p = (0 == (w & 1) ? 8 > w ? k : t : 8 > w ? -k : -t) + (0 == (w & 2) ? 4 > w ? t : 12 == w ? k : q : 4 > w ? -t : 14 == w ? -k : -q); w = this.p_perm[m + 1] & 15; h = (0 == (w & 1) ? 8 > w ? a : t : 8 > w ? -a : -t) + (0 == (w & 2) ? 4 > w ? t : 12 == w ? a : q : 4 > w ? -t : 14 == w ? -a : -q); w = this.p_perm[f + 1] & 15; var u = (0 == (w & 1) ? 8 > w ? k : b : 8 > w ? -k : -b) + (0 == (w & 2) ? 4 > w ? b : 12 == w ? k : q : 4 > w ? -b : 14 == w ? -k : -q); w = this.p_perm[l + 1] & 15; q = (0 == (w & 1) ? 8 > w ? a : b : 8 > w ? -a : -b) + (0 == (w & 2) ? 4 > w ? b : 12 == w ? a : q : 4 > w ? -b : 14 == w ? -a : -q); w = this.p_perm[n] & 15; n = (0 == (w & 1) ? 8 > w ? k : t : 8 > w ? -k : -t) + (0 == (w & 2) ? 4 > w ? t : 12 == w ? k : c : 4 > w ? -t : 14 == w ? -k : -c); w = this.p_perm[m] & 15; m = (0 == (w & 1) ? 8 > w ? a : t : 8 > w ? -a : -t) + (0 == (w & 2) ? 4 > w ? t : 12 == w ? a : c : 4 > w ? -t : 14 == w ? -a : -c); w = this.p_perm[f] & 15; f = (0 == (w & 1) ? 8 > w ? k : b : 8 > w ? -k : -b) + (0 == (w & 2) ? 4 > w ? b : 12 == w ? k : c : 4 > w ? -b : 14 == w ? -k : -c); w = this.p_perm[l] & 15; a = (0 == (w & 1) ? 8 > w ? a : b : 8 > w ? -a : -b) + (0 == (w & 2) ? 4 > w ? b : 12 == w ? a : c : 4 > w ? -b : 14 == w ? -a : -c); q += g * (u - q); a += g * (f - a); a += e * (m + g * (n - m) - a); return a + d * (q + e * (h + g * (p - h) - q) - a) }, setSeed: function (a) { this.x_offset = a = 16807 * a % 2147483647 | 0; this.y_offset = a = 16807 * a % 2147483647 | 0; this.z_offset = 16807 * a % 2147483647 | 0 }, __class__: Zh }); var Wg = function (a, b, c, d, e, g, f) { null == f && (f = !1); null == g && (g = !1); null == e && (e = !1); null == d && (d = 0); null == c && (c = 2); null == b && (b = 5); null == a && (a = 0); this.wrap = a; this.filter = b; this.mipfilter = c; this.lodBias = d; this.ignoreSampler = e; this.centroid = g; this.textureAlpha = f }; k["openfl.display._internal.SamplerState"] = Wg; Wg.__name__ = "openfl.display._internal.SamplerState"; Wg.prototype = { centroid: null, filter: null, ignoreSampler: null, lodBias: null, mipfilter: null, mipmapGenerated: null, textureAlpha: null, wrap: null, clone: function () { var a = new Wg(this.wrap, this.filter, this.mipfilter, this.lodBias, this.ignoreSampler, this.centroid, this.textureAlpha); a.mipmapGenerated = this.mipmapGenerated; return a }, copyFrom: function (a) { null == a || a.ignoreSampler || (this.wrap = a.wrap, this.filter = a.filter, this.mipfilter = a.mipfilter, this.lodBias = a.lodBias, this.centroid = a.centroid, this.textureAlpha = a.textureAlpha) }, equals: function (a) { return null == a ? !1 : this.wrap == a.wrap && this.filter == a.filter && this.mipfilter == a.mipfilter && this.lodBias == a.lodBias ? this.textureAlpha == a.textureAlpha : !1 }, __class__: Wg }; var Mm = function () { this.inputRefs = []; this.inputFilter = []; this.inputMipFilter = []; this.inputs = []; this.inputWrap = []; this.overrideIntNames = []; this.overrideIntValues = []; this.overrideFloatNames = []; this.overrideFloatValues = []; this.overrideBoolNames = []; this.overrideBoolValues = []; this.paramLengths = []; this.paramPositions = []; this.paramRefs_Bool = []; this.paramRefs_Float = []; this.paramRefs_Int = []; this.paramTypes = [] }; k["openfl.display._internal.ShaderBuffer"] = Mm; Mm.__name__ = "openfl.display._internal.ShaderBuffer"; Mm.prototype = { inputCount: null, inputRefs: null, inputFilter: null, inputMipFilter: null, inputs: null, inputWrap: null, overrideBoolCount: null, overrideBoolNames: null, overrideBoolValues: null, overrideFloatCount: null, overrideFloatNames: null, overrideFloatValues: null, overrideIntCount: null, overrideIntNames: null, overrideIntValues: null, paramBoolCount: null, paramCount: null, paramData: null, paramDataBuffer: null, paramDataLength: null, paramFloatCount: null, paramIntCount: null, paramLengths: null, paramPositions: null, paramRefs_Bool: null, paramRefs_Float: null, paramRefs_Int: null, paramTypes: null, shader: null, addBoolOverride: function (a, b) { this.overrideBoolNames[this.overrideBoolCount] = a; this.overrideBoolValues[this.overrideBoolCount] = b; this.overrideBoolCount++ }, addFloatOverride: function (a, b) { this.overrideFloatNames[this.overrideFloatCount] = a; this.overrideFloatValues[this.overrideFloatCount] = b; this.overrideFloatCount++ }, addIntOverride: function (a, b) { this.overrideIntNames[this.overrideIntCount] = a; this.overrideIntValues[this.overrideIntCount] = b; this.overrideIntCount++ }, clearOverride: function () { this.overrideBoolCount = this.overrideFloatCount = this.overrideIntCount = 0 }, update: function (a) { this.paramIntCount = this.paramFloatCount = this.paramDataLength = this.paramCount = this.paramBoolCount = this.overrideBoolCount = this.overrideFloatCount = this.overrideIntCount = this.inputCount = 0; this.shader = null; if (null != a) { a.__init(); this.inputCount = a.__inputBitmapData.length; for (var b, c = 0, d = this.inputCount; c < d;) { var e = c++; b = a.__inputBitmapData[e]; this.inputs[e] = b.input; this.inputFilter[e] = b.filter; this.inputMipFilter[e] = b.mipFilter; this.inputRefs[e] = b; this.inputWrap[e] = b.wrap } b = a.__paramBool.length; var g = a.__paramFloat.length, f = a.__paramInt.length; this.paramCount = b + g + f; this.paramBoolCount = b; this.paramFloatCount = g; this.paramIntCount = f; var h = 0; c = 0; for (d = b; c < d;) { e = c++; var p = a.__paramBool[e]; this.paramPositions[h] = this.paramDataLength; var m = null != p.value ? p.value.length : 0; this.paramLengths[h] = m; this.paramDataLength += m; this.paramTypes[h] = 0; this.paramRefs_Bool[e] = p; ++h } c = 0; for (d = g; c < d;) e = c++, p = a.__paramFloat[e], this.paramPositions[h] = this.paramDataLength, m = null != p.value ? p.value.length : 0, this.paramLengths[h] = m, this.paramDataLength += m, this.paramTypes[h] = 1, this.paramRefs_Float[e] = p, ++h; c = 0; for (d = f; c < d;) e = c++, p = a.__paramInt[e], this.paramPositions[h] = this.paramDataLength, m = null != p.value ? p.value.length : 0, this.paramLengths[h] = m, this.paramDataLength += m, this.paramTypes[h] = 2, this.paramRefs_Int[e] = p, ++h; if (0 < this.paramDataLength) if (null == this.paramData) { c = this.paramDataLength; var l = p = h = f = d = null; this.paramData = c = null != c ? new Float32Array(c) : null != d ? new Float32Array(d) : null != f ? new Float32Array(f.__array) : null != h ? new Float32Array(h) : null != p ? null == l ? new Float32Array(p, 0) : new Float32Array(p, 0, l) : null } else this.paramDataLength > this.paramData.length && (c = this.paramDataLength, l = p = h = f = d = null, c = null != c ? new Float32Array(c) : null != d ? new Float32Array(d) : null != f ? new Float32Array(f.__array) : null != h ? new Float32Array(h) : null != p ? null == l ? new Float32Array(p, 0) : new Float32Array(p, 0, l) : null, c.set(this.paramData), this.paramData = c); c = l = p = h = f = 0; for (d = this.paramCount; c < d;) if (e = c++, m = this.paramLengths[e], e < b) { e = this.paramRefs_Bool[f]; ++f; for (var n = 0; n < m;) { var k = n++; this.paramData[l] = e.value[k] ? 1 : 0; ++l } } else if (e < b + g) for (e = this.paramRefs_Float[h], ++h, n = 0; n < m;) k = n++, this.paramData[l] = e.value[k], ++l; else for (e = this.paramRefs_Int[p], ++p, n = 0; n < m;) k = n++, this.paramData[l] = e.value[k], ++l; this.shader = a } }, __class__: Mm }; var cc = function (a, b, c) { this.profile = 3; this.driverInfo = "OpenGL (Direct blitting)"; this.backBufferHeight = this.backBufferWidth = 0; jb.call(this); this.__stage = a; this.__contextState = b; this.__stage3D = c; this.__context = a.window.context; this.gl = this.__context.webgl; null == this.__contextState && (this.__contextState = new ak); this.__state = new ak; var d; this.__vertexConstants = a = new Float32Array(512); this.__fragmentConstants = a = new Float32Array(512); var e = null; a = [1, 1, 1, 1]; var g = d = c = b = null; this.__positionScale = a = null != e ? new Float32Array(e) : null != a ? new Float32Array(a) : null != b ? new Float32Array(b.__array) : null != c ? new Float32Array(c) : null != d ? null == g ? new Float32Array(d, 0) : new Float32Array(d, 0, g) : null; this.__programs = new xa; -1 == cc.__glMaxViewportDims && (cc.__glMaxViewportDims = this.gl.getParameter(this.gl.MAX_VIEWPORT_DIMS)); this.maxBackBufferHeight = this.maxBackBufferWidth = cc.__glMaxViewportDims; -1 == cc.__glMaxTextureMaxAnisotropy && (a = this.gl.getExtension("EXT_texture_filter_anisotropic"), null != a && Object.prototype.hasOwnProperty.call(a, "MAX_TEXTURE_MAX_ANISOTROPY_EXT") || (a = this.gl.getExtension("MOZ_EXT_texture_filter_anisotropic")), null != a && Object.prototype.hasOwnProperty.call(a, "MAX_TEXTURE_MAX_ANISOTROPY_EXT") || (a = this.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")), null != a ? (cc.__glTextureMaxAnisotropy = a.TEXTURE_MAX_ANISOTROPY_EXT, cc.__glMaxTextureMaxAnisotropy = this.gl.getParameter(a.MAX_TEXTURE_MAX_ANISOTROPY_EXT)) : (cc.__glTextureMaxAnisotropy = 0, cc.__glMaxTextureMaxAnisotropy = 0)); -1 == cc.__glDepthStencil && (cc.__glDepthStencil = this.gl.DEPTH_STENCIL); -1 == cc.__glMemoryTotalAvailable && (a = this.gl.getExtension("NVX_gpu_memory_info"), null != a && (cc.__glMemoryTotalAvailable = a.GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, cc.__glMemoryCurrentAvailable = a.GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX)); null == cc.__driverInfo && (a = this.gl.getParameter(this.gl.VENDOR), b = this.gl.getParameter(this.gl.VERSION), c = this.gl.getParameter(this.gl.RENDERER), d = this.gl.getParameter(this.gl.SHADING_LANGUAGE_VERSION), cc.__driverInfo = "OpenGL Vendor=" + a + " Version=" + b + " Renderer=" + c + " GLSL=" + d); this.driverInfo = cc.__driverInfo; this.__quadIndexBufferElements = 16383; e = this.__quadIndexBufferCount = 6 * this.__quadIndexBufferElements; g = d = c = b = a = null; a = null != e ? new Uint16Array(e) : null != a ? new Uint16Array(a) : null != b ? new Uint16Array(b.__array) : null != c ? new Uint16Array(c) : null != d ? null == g ? new Uint16Array(d, 0) : new Uint16Array(d, 0, g) : null; d = c = b = 0; for (g = this.__quadIndexBufferElements; d < g;) d++, a[b] = c, a[b + 1] = c + 1, a[b + 2] = c + 2, a[b + 3] = c + 2, a[b + 4] = c + 1, a[b + 5] = c + 3, b += 6, c += 4; this.__quadIndexBuffer = this.createIndexBuffer(this.__quadIndexBufferCount); this.__quadIndexBuffer.uploadFromTypedArray(a) }; k["openfl.display3D.Context3D"] = cc; cc.__name__ = "openfl.display3D.Context3D"; cc.__super__ = jb; cc.prototype = u(jb.prototype, { backBufferHeight: null, backBufferWidth: null, driverInfo: null, maxBackBufferHeight: null, maxBackBufferWidth: null, profile: null, gl: null, __backBufferAntiAlias: null, __backBufferTexture: null, __backBufferWantsBestResolution: null, __backBufferWantsBestResolutionOnBrowserZoom: null, __cleared: null, __context: null, __contextState: null, __renderStage3DProgram: null, __enableErrorChecking: null, __fragmentConstants: null, __frontBufferTexture: null, __positionScale: null, __present: null, __programs: null, __quadIndexBuffer: null, __quadIndexBufferCount: null, __quadIndexBufferElements: null, __stage: null, __stage3D: null, __state: null, __vertexConstants: null, clear: function (a, b, c, d, e, g, f) { null == f && (f = 7); null == g && (g = 0); null == e && (e = 1); null == d && (d = 1); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.__flushGLFramebuffer(); this.__flushGLViewport(); var h = 0; if (0 != (f & 1)) { null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared || (this.__stage.__renderer.__cleared = !0), this.__cleared = !0); h |= this.gl.COLOR_BUFFER_BIT; if (1 != this.__contextState.colorMaskRed || 1 != this.__contextState.colorMaskGreen || 1 != this.__contextState.colorMaskBlue || 1 != this.__contextState.colorMaskAlpha) this.gl.colorMask(!0, !0, !0, !0), this.__contextState.colorMaskRed = !0, this.__contextState.colorMaskGreen = !0, this.__contextState.colorMaskBlue = !0, this.__contextState.colorMaskAlpha = !0; this.gl.clearColor(a, b, c, d) } 0 != (f & 2) && (h |= this.gl.DEPTH_BUFFER_BIT, 1 != this.__contextState.depthMask && (this.gl.depthMask(!0), this.__contextState.depthMask = !0), this.gl.clearDepth(e)); 0 != (f & 4) && (h |= this.gl.STENCIL_BUFFER_BIT, 255 != this.__contextState.stencilWriteMask && (this.gl.stencilMask(255), this.__contextState.stencilWriteMask = 255), this.gl.clearStencil(g), this.__contextState.stencilWriteMask = 255); 0 != h && (this.__setGLScissorTest(!1), this.gl.clear(h)) }, configureBackBuffer: function (a, b, c, d, e, g) { null == g && (g = !1); null == e && (e = !1); null == d && (d = !0); if (null == this.__stage3D) this.backBufferWidth = a, this.backBufferHeight = b, this.__backBufferAntiAlias = c, this.__state.backBufferEnableDepthAndStencil = d, this.__backBufferWantsBestResolution = e, this.__backBufferWantsBestResolutionOnBrowserZoom = g; else { if (null == this.__backBufferTexture || this.backBufferWidth != a || this.backBufferHeight != b) { null != this.__backBufferTexture && this.__backBufferTexture.dispose(); null != this.__frontBufferTexture && this.__frontBufferTexture.dispose(); this.__backBufferTexture = this.createRectangleTexture(a, b, 1, !0); this.__frontBufferTexture = this.createRectangleTexture(a, b, 1, !0); null == this.__stage3D.__vertexBuffer && (this.__stage3D.__vertexBuffer = this.createVertexBuffer(4, 5)); var f = Eb.toFloatVector(null, null, null, [a, b, 0, 1, 1, 0, b, 0, 0, 1, a, 0, 0, 1, 0, 0, 0, 0, 0, 0]); this.__stage3D.__vertexBuffer.uploadFromVector(f, 0, 20); null == this.__stage3D.__indexBuffer && (this.__stage3D.__indexBuffer = this.createIndexBuffer(6), f = Eb.toIntVector(null, null, null, [0, 1, 2, 2, 1, 3]), this.__stage3D.__indexBuffer.uploadFromVector(f, 0, 6)) } this.backBufferWidth = a; this.backBufferHeight = b; this.__backBufferAntiAlias = c; this.__state.backBufferEnableDepthAndStencil = d; this.__backBufferWantsBestResolution = e; this.__backBufferWantsBestResolutionOnBrowserZoom = g; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(d, c, 0); this.__frontBufferTexture.__getGLFramebuffer(d, c, 0) } }, createCubeTexture: function (a, b, c, d) { null == d && (d = 0); return new Yi(this, a, b, c, d) }, createIndexBuffer: function (a, b) { null == b && (b = 1); return new bp(this, a, b) }, createProgram: function (a) { null == a && (a = 0); return new cp(this, a) }, createRectangleTexture: function (a, b, c, d) { return new bk(this, a, b, ck.toString(c), d) }, createTexture: function (a, b, c, d, e) { null == e && (e = 0); return new gi(this, a, b, c, d, e) }, createVertexBuffer: function (a, b, c) { null == c && (c = 1); return new dp(this, a, b, Pr.toString(c)) }, createVideoTexture: function () { return new en(this) }, dispose: function (a) { this.gl = null; this.__dispose() }, drawToBitmapData: function (a, b, c) { if (null != a) if (b = null != b ? b.__toLimeRectangle() : new Vd(0, 0, this.backBufferWidth, this.backBufferHeight), c = null != c ? c.__toLimeVector2() : new be, this.__stage.context3D == this) { if (null != this.__stage.window) { if (null != this.__stage3D) { var d = -this.__stage3D.get_x() | 0, e = -this.__stage3D.get_y() | 0; c.x = d; c.y = e } e = this.__stage.window.readPixels(); a.image.copyPixels(e, b, c) } } else if (null != this.__backBufferTexture) { d = this.__state.renderToTexture; this.setRenderToBackBuffer(); this.__flushGLFramebuffer(); this.__flushGLViewport(); e = this.backBufferWidth * this.backBufferHeight * 4; var g = e = null != e ? new Uint8Array(e) : null; e = this.gl; e.readPixels(0, 0, this.backBufferWidth, this.backBufferHeight, this.__backBufferTexture.__format, this.gl.UNSIGNED_BYTE, g); e = new Lb(new Uf(g, this.backBufferWidth, this.backBufferHeight, 32, 2)); a.image.copyPixels(e, b, c); null != d && this.setRenderToTexture(d, this.__state.renderToTextureDepthStencil, this.__state.renderToTextureAntiAlias, this.__state.renderToTextureSurfaceSelector) } }, drawTriangles: function (a, b, c) { null == c && (c = -1); null == b && (b = 0); null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared ? this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1) : this.__stage.__renderer.__clear()); this.__flushGL(); null != this.__state.program && this.__state.program.__flush(); c = -1 == c ? a.__numIndices : 3 * c; this.__bindGLElementArrayBuffer(a.__id); this.gl.drawElements(this.gl.TRIANGLES, c, this.gl.UNSIGNED_SHORT, 2 * b) }, present: function () { this.setRenderToBackBuffer(); if (null != this.__stage3D && null != this.__backBufferTexture) { this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1); var a = this.__backBufferTexture; this.__backBufferTexture = this.__frontBufferTexture; this.__frontBufferTexture = a; this.__state.__primaryGLFramebuffer = this.__backBufferTexture.__getGLFramebuffer(this.__state.backBufferEnableDepthAndStencil, this.__backBufferAntiAlias, 0); this.__cleared = !1 } this.__present = !0 }, setBlendFactors: function (a, b) { this.setBlendFactorsSeparate(a, b, a, b) }, setBlendFactorsSeparate: function (a, b, c, d) { this.__state.blendSourceRGBFactor = a; this.__state.blendDestinationRGBFactor = b; this.__state.blendSourceAlphaFactor = c; this.__state.blendDestinationAlphaFactor = d; this.__setGLBlendEquation(this.gl.FUNC_ADD) }, setColorMask: function (a, b, c, d) { this.__state.colorMaskRed = a; this.__state.colorMaskGreen = b; this.__state.colorMaskBlue = c; this.__state.colorMaskAlpha = d }, setCulling: function (a) { this.__state.culling = a }, setDepthTest: function (a, b) { this.__state.depthMask = a; this.__state.depthCompareMode = b }, setProgram: function (a) { this.__state.program = a; this.__state.shader = null; if (null != a) for (var b = 0, c = a.__samplerStates.length; b < c;) { var d = b++; null == this.__state.samplerStates[d] ? this.__state.samplerStates[d] = a.__samplerStates[d].clone() : this.__state.samplerStates[d].copyFrom(a.__samplerStates[d]) } }, setProgramConstantsFromByteArray: function (a, b, c, d, e) { if (0 != c && null != this.__state.program && (null == this.__state.program || 1 != this.__state.program.__format)) { -1 == c && (c = (Fb.get_length(d) >>> 2) - e); var g = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants, f = Fb.toBytes(d), h = 0; d = Fb.get_length(d); null == h && (h = 0); d = null == h ? new Float32Array(f.b.bufferValue) : null == d ? new Float32Array(f.b.bufferValue, h) : new Float32Array(f.b.bufferValue, h, d); f = 4 * b; e = Ba.toFloat(e) / Ba.toFloat(4) | 0; h = 0; for (var p = 4 * c; h < p;) { var m = h++; g[f + m] = d[e + m] } null != this.__state.program && this.__state.program.__markDirty(a, b, c) } }, setProgramConstantsFromMatrix: function (a, b, c, d) { null == d && (d = !1); if (null != this.__state.program && 1 == this.__state.program.__format) this.__flushGLProgram(), a = new Float32Array(16), a[0] = c.rawData.get(0), a[1] = c.rawData.get(1), a[2] = c.rawData.get(2), a[3] = c.rawData.get(3), a[4] = c.rawData.get(4), a[5] = c.rawData.get(5), a[6] = c.rawData.get(6), a[7] = c.rawData.get(7), a[8] = c.rawData.get(8), a[9] = c.rawData.get(9), a[10] = c.rawData.get(10), a[11] = c.rawData.get(11), a[12] = c.rawData.get(12), a[13] = c.rawData.get(13), a[14] = c.rawData.get(14), a[15] = c.rawData.get(15), fc.uniformMatrix4fv(this.gl, b, d, a); else { var e = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants; c = c.rawData; var g = 4 * b; d ? (e[g++] = c.get(0), e[g++] = c.get(4), e[g++] = c.get(8), e[g++] = c.get(12), e[g++] = c.get(1), e[g++] = c.get(5), e[g++] = c.get(9), e[g++] = c.get(13), e[g++] = c.get(2), e[g++] = c.get(6), e[g++] = c.get(10), e[g++] = c.get(14), e[g++] = c.get(3), e[g++] = c.get(7), e[g++] = c.get(11)) : (e[g++] = c.get(0), e[g++] = c.get(1), e[g++] = c.get(2), e[g++] = c.get(3), e[g++] = c.get(4), e[g++] = c.get(5), e[g++] = c.get(6), e[g++] = c.get(7), e[g++] = c.get(8), e[g++] = c.get(9), e[g++] = c.get(10), e[g++] = c.get(11), e[g++] = c.get(12), e[g++] = c.get(13), e[g++] = c.get(14)); e[g++] = c.get(15); null != this.__state.program && this.__state.program.__markDirty(a, b, 4) } }, setProgramConstantsFromVector: function (a, b, c, d) { null == d && (d = -1); if (0 != d && (null == this.__state.program || 1 != this.__state.program.__format)) { -1 == d && (d = c.get_length() >> 2); for (var e = (a = 1 == a) ? this.__vertexConstants : this.__fragmentConstants, g = 0, f = 4 * b, h = 0, p = d; h < p;) h++, e[f++] = c.get(g++), e[f++] = c.get(g++), e[f++] = c.get(g++), e[f++] = c.get(g++); null != this.__state.program && this.__state.program.__markDirty(a, b, d) } }, setRenderToBackBuffer: function () { this.__state.renderToTexture = null }, setRenderToTexture: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = !1); this.__state.renderToTexture = a; this.__state.renderToTextureDepthStencil = b; this.__state.renderToTextureAntiAlias = c; this.__state.renderToTextureSurfaceSelector = d }, setSamplerStateAt: function (a, b, c, d) { null == this.__state.samplerStates[a] && (this.__state.samplerStates[a] = new Wg); a = this.__state.samplerStates[a]; a.wrap = b; a.filter = c; a.mipfilter = d }, setScissorRectangle: function (a) { null != a ? (this.__state.scissorEnabled = !0, this.__state.scissorRectangle.copyFrom(a)) : this.__state.scissorEnabled = !1 }, setStencilActions: function (a, b, c, d, e) { null == e && (e = 5); null == d && (d = 5); null == c && (c = 5); null == b && (b = 0); null == a && (a = 2); this.__state.stencilTriangleFace = a; this.__state.stencilCompareMode = b; this.__state.stencilPass = c; this.__state.stencilDepthFail = d; this.__state.stencilFail = e }, setStencilReferenceValue: function (a, b, c) { null == c && (c = 255); null == b && (b = 255); this.__state.stencilReferenceValue = a; this.__state.stencilReadMask = b; this.__state.stencilWriteMask = c }, setTextureAt: function (a, b) { this.__state.textures[a] = b }, setVertexBufferAt: function (a, b, c, d) { null == d && (d = 4); null == c && (c = 0); if (null == b) this.gl.disableVertexAttribArray(a), this.__bindGLArrayBuffer(null); else switch (this.__bindGLArrayBuffer(b.__id), this.gl.enableVertexAttribArray(a), c *= 4, d) { case 0: this.gl.vertexAttribPointer(a, 4, this.gl.UNSIGNED_BYTE, !0, b.__stride, c); break; case 1: this.gl.vertexAttribPointer(a, 1, this.gl.FLOAT, !1, b.__stride, c); break; case 2: this.gl.vertexAttribPointer(a, 2, this.gl.FLOAT, !1, b.__stride, c); break; case 3: this.gl.vertexAttribPointer(a, 3, this.gl.FLOAT, !1, b.__stride, c); break; case 4: this.gl.vertexAttribPointer(a, 4, this.gl.FLOAT, !1, b.__stride, c); break; default: throw I.thrown(new pd); } }, __bindGLArrayBuffer: function (a) { this.__contextState.__currentGLArrayBuffer != a && (this.gl.bindBuffer(this.gl.ARRAY_BUFFER, a), this.__contextState.__currentGLArrayBuffer = a) }, __bindGLElementArrayBuffer: function (a) { this.__contextState.__currentGLElementArrayBuffer != a && (this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, a), this.__contextState.__currentGLElementArrayBuffer = a) }, __bindGLFramebuffer: function (a) { this.__contextState.__currentGLFramebuffer != a && (this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, a), this.__contextState.__currentGLFramebuffer = a) }, __bindGLTexture2D: function (a) { this.gl.bindTexture(this.gl.TEXTURE_2D, a); this.__contextState.__currentGLTexture2D = a }, __bindGLTextureCubeMap: function (a) { this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP, a); this.__contextState.__currentGLTextureCubeMap = a }, __dispose: function () { this.driverInfo += " (Disposed)"; null != this.__stage3D && (this.__stage3D.__indexBuffer = null, this.__stage3D.__vertexBuffer = null, this.__stage3D = this.__stage3D.context3D = null); this.__positionScale = this.__frontBufferTexture = this.__fragmentConstants = this.__renderStage3DProgram = this.__context = this.__backBufferTexture = null; this.__present = !1; this.__vertexConstants = this.__stage = this.__quadIndexBuffer = null }, __drawTriangles: function (a, b) { null == a && (a = 0); null == this.__state.renderToTexture && (this.__stage.context3D != this || this.__stage.__renderer.__cleared ? this.__cleared || this.clear(0, 0, 0, 0, 1, 0, 1) : this.__stage.__renderer.__clear()); this.__flushGL(); null != this.__state.program && this.__state.program.__flush(); this.gl.drawArrays(this.gl.TRIANGLES, a, b) }, __flushGL: function () { this.__flushGLProgram(); this.__flushGLFramebuffer(); this.__flushGLViewport(); this.__flushGLBlend(); if (this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) this.gl.colorMask(this.__state.colorMaskRed, this.__state.colorMaskGreen, this.__state.colorMaskBlue, this.__state.colorMaskAlpha), this.__contextState.colorMaskRed = this.__state.colorMaskRed, this.__contextState.colorMaskGreen = this.__state.colorMaskGreen, this.__contextState.colorMaskBlue = this.__state.colorMaskBlue, this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha; this.__flushGLCulling(); this.__flushGLDepth(); this.__flushGLScissor(); this.__flushGLStencil(); this.__flushGLTextures() }, __flushGLBlend: function () { if (this.__contextState.blendDestinationRGBFactor != this.__state.blendDestinationRGBFactor || this.__contextState.blendSourceRGBFactor != this.__state.blendSourceRGBFactor || this.__contextState.blendDestinationAlphaFactor != this.__state.blendDestinationAlphaFactor || this.__contextState.blendSourceAlphaFactor != this.__state.blendSourceAlphaFactor) this.__setGLBlend(!0), this.__state.blendDestinationRGBFactor == this.__state.blendDestinationAlphaFactor && this.__state.blendSourceRGBFactor == this.__state.blendSourceAlphaFactor ? this.gl.blendFunc(this.__getGLBlend(this.__state.blendSourceRGBFactor), this.__getGLBlend(this.__state.blendDestinationRGBFactor)) : this.gl.blendFuncSeparate(this.__getGLBlend(this.__state.blendSourceRGBFactor), this.__getGLBlend(this.__state.blendDestinationRGBFactor), this.__getGLBlend(this.__state.blendSourceAlphaFactor), this.__getGLBlend(this.__state.blendDestinationAlphaFactor)), this.__contextState.blendDestinationRGBFactor = this.__state.blendDestinationRGBFactor, this.__contextState.blendSourceRGBFactor = this.__state.blendSourceRGBFactor, this.__contextState.blendDestinationAlphaFactor = this.__state.blendDestinationAlphaFactor, this.__contextState.blendSourceAlphaFactor = this.__state.blendSourceAlphaFactor }, __flushGLColor: function () { if (this.__contextState.colorMaskRed != this.__state.colorMaskRed || this.__contextState.colorMaskGreen != this.__state.colorMaskGreen || this.__contextState.colorMaskBlue != this.__state.colorMaskBlue || this.__contextState.colorMaskAlpha != this.__state.colorMaskAlpha) this.gl.colorMask(this.__state.colorMaskRed, this.__state.colorMaskGreen, this.__state.colorMaskBlue, this.__state.colorMaskAlpha), this.__contextState.colorMaskRed = this.__state.colorMaskRed, this.__contextState.colorMaskGreen = this.__state.colorMaskGreen, this.__contextState.colorMaskBlue = this.__state.colorMaskBlue, this.__contextState.colorMaskAlpha = this.__state.colorMaskAlpha }, __flushGLCulling: function () { if (this.__contextState.culling != this.__state.culling) { if (3 == this.__state.culling) this.__setGLCullFace(!1); else switch (this.__setGLCullFace(!0), this.__state.culling) { case 0: this.gl.cullFace(this.gl.BACK); break; case 1: this.gl.cullFace(this.gl.FRONT); break; case 2: this.gl.cullFace(this.gl.FRONT_AND_BACK); break; case 3: break; default: throw I.thrown(new pd); } this.__contextState.culling = this.__state.culling } }, __flushGLDepth: function () { var a = this.__state.depthMask && (null != this.__state.renderToTexture ? this.__state.renderToTextureDepthStencil : this.__state.backBufferEnableDepthAndStencil); this.__contextState.depthMask != a && (this.gl.depthMask(a), this.__contextState.depthMask = a); if (this.__contextState.depthCompareMode != this.__state.depthCompareMode) { switch (this.__state.depthCompareMode) { case 0: this.gl.depthFunc(this.gl.ALWAYS); break; case 1: this.gl.depthFunc(this.gl.EQUAL); break; case 2: this.gl.depthFunc(this.gl.GREATER); break; case 3: this.gl.depthFunc(this.gl.GEQUAL); break; case 4: this.gl.depthFunc(this.gl.LESS); break; case 5: this.gl.depthFunc(this.gl.LEQUAL); break; case 6: this.gl.depthFunc(this.gl.NEVER); break; case 7: this.gl.depthFunc(this.gl.NOTEQUAL); break; default: throw I.thrown(new pd); } this.__contextState.depthCompareMode = this.__state.depthCompareMode } }, __flushGLFramebuffer: function () { if (null != this.__state.renderToTexture) { if (this.__contextState.renderToTexture != this.__state.renderToTexture || this.__contextState.renderToTextureSurfaceSelector != this.__state.renderToTextureSurfaceSelector) { var a = this.__state.renderToTexture.__getGLFramebuffer(this.__state.renderToTextureDepthStencil, this.__state.renderToTextureAntiAlias, this.__state.renderToTextureSurfaceSelector); this.__bindGLFramebuffer(a); this.__contextState.renderToTexture = this.__state.renderToTexture; this.__contextState.renderToTextureAntiAlias = this.__state.renderToTextureAntiAlias; this.__contextState.renderToTextureDepthStencil = this.__state.renderToTextureDepthStencil; this.__contextState.renderToTextureSurfaceSelector = this.__state.renderToTextureSurfaceSelector } this.__setGLDepthTest(this.__state.renderToTextureDepthStencil); this.__setGLStencilTest(this.__state.renderToTextureDepthStencil); this.__setGLFrontFace(!0) } else { if (null == this.__stage && 0 == this.backBufferWidth && 0 == this.backBufferHeight) throw I.thrown(new id("Context3D backbuffer has not been configured")); if (null != this.__contextState.renderToTexture || this.__contextState.__currentGLFramebuffer != this.__state.__primaryGLFramebuffer || this.__contextState.backBufferEnableDepthAndStencil != this.__state.backBufferEnableDepthAndStencil) this.__bindGLFramebuffer(this.__state.__primaryGLFramebuffer), this.__contextState.renderToTexture = null, this.__contextState.backBufferEnableDepthAndStencil = this.__state.backBufferEnableDepthAndStencil; this.__setGLDepthTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLStencilTest(this.__state.backBufferEnableDepthAndStencil); this.__setGLFrontFace(this.__stage.context3D != this) } }, __flushGLProgram: function () { var a = this.__state.shader, b = this.__state.program; this.__contextState.shader != a && (null != this.__contextState.shader && this.__contextState.shader.__disable(), null != a && a.__enable(), this.__contextState.shader = a); this.__contextState.program != b && (null != this.__contextState.program && this.__contextState.program.__disable(), null != b && b.__enable(), this.__contextState.program = b); null != b && 0 == b.__format && (this.__positionScale[1] = this.__stage.context3D == this && null == this.__state.renderToTexture ? 1 : -1, b.__setPositionScale(this.__positionScale)) }, __flushGLScissor: function () { if (this.__state.scissorEnabled) { this.__setGLScissorTest(!0); this.__contextState.scissorEnabled = !0; var a = this.__state.scissorRectangle.x | 0, b = this.__state.scissorRectangle.y | 0, c = this.__state.scissorRectangle.width | 0, d = this.__state.scissorRectangle.height | 0; null == this.__state.renderToTexture && null == this.__stage3D && (b = (this.__stage.window.__height * this.__stage.window.__scale | 0) - (this.__state.scissorRectangle.height | 0) - b); if (this.__contextState.scissorRectangle.x != a || this.__contextState.scissorRectangle.y != b || this.__contextState.scissorRectangle.width != c || this.__contextState.scissorRectangle.height != d) this.gl.scissor(a, b, c, d), this.__contextState.scissorRectangle.setTo(a, b, c, d) } else this.__contextState.scissorEnabled != this.__state.scissorEnabled && (this.__setGLScissorTest(!1), this.__contextState.scissorEnabled = !1) }, __flushGLStencil: function () { if (this.__contextState.stencilTriangleFace != this.__state.stencilTriangleFace || this.__contextState.stencilPass != this.__state.stencilPass || this.__contextState.stencilDepthFail != this.__state.stencilDepthFail || this.__contextState.stencilFail != this.__state.stencilFail) this.gl.stencilOpSeparate(this.__getGLTriangleFace(this.__state.stencilTriangleFace), this.__getGLStencilAction(this.__state.stencilFail), this.__getGLStencilAction(this.__state.stencilDepthFail), this.__getGLStencilAction(this.__state.stencilPass)), this.__contextState.stencilTriangleFace = this.__state.stencilTriangleFace, this.__contextState.stencilPass = this.__state.stencilPass, this.__contextState.stencilDepthFail = this.__state.stencilDepthFail, this.__contextState.stencilFail = this.__state.stencilFail; this.__contextState.stencilWriteMask != this.__state.stencilWriteMask && (this.gl.stencilMask(this.__state.stencilWriteMask), this.__contextState.stencilWriteMask = this.__state.stencilWriteMask); if (this.__contextState.stencilCompareMode != this.__state.stencilCompareMode || this.__contextState.stencilReferenceValue != this.__state.stencilReferenceValue || this.__contextState.stencilReadMask != this.__state.stencilReadMask) this.gl.stencilFunc(this.__getGLCompareMode(this.__state.stencilCompareMode), this.__state.stencilReferenceValue, this.__state.stencilReadMask), this.__contextState.stencilCompareMode = this.__state.stencilCompareMode, this.__contextState.stencilReferenceValue = this.__state.stencilReferenceValue, this.__contextState.stencilReadMask = this.__state.stencilReadMask }, __flushGLTextures: function () { for (var a = 0, b, c, d = 0, e = this.__state.textures.length; d < e;) { var g = d++; b = this.__state.textures[g]; c = this.__state.samplerStates[g]; null == c && (this.__state.samplerStates[g] = new Wg, c = this.__state.samplerStates[g]); this.gl.activeTexture(this.gl.TEXTURE0 + a); null != b ? (b.__textureTarget == this.gl.TEXTURE_2D ? this.__bindGLTexture2D(b.__getTexture()) : this.__bindGLTextureCubeMap(b.__getTexture()), this.__contextState.textures[g] = b, b.__setSamplerState(c)) : this.__bindGLTexture2D(null); null != this.__state.program && 0 == this.__state.program.__format && c.textureAlpha && (this.gl.activeTexture(this.gl.TEXTURE0 + a + 4), null != b && null != b.__alphaTexture ? (b.__alphaTexture.__textureTarget == this.gl.TEXTURE_2D ? this.__bindGLTexture2D(b.__alphaTexture.__getTexture()) : this.__bindGLTextureCubeMap(b.__alphaTexture.__getTexture()), b.__alphaTexture.__setSamplerState(c), this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[a].location, 1)) : (this.__bindGLTexture2D(null), null != this.__state.program.__agalAlphaSamplerEnabled[a] && this.gl.uniform1i(this.__state.program.__agalAlphaSamplerEnabled[a].location, 0))); ++a } }, __flushGLViewport: function () { if (null == this.__state.renderToTexture) if (this.__stage.context3D == this) { var a = null == this.__stage3D ? 0 : this.__stage3D.get_x() | 0, b = this.__stage.window.__height * this.__stage.window.__scale - this.backBufferHeight - (null == this.__stage3D ? 0 : this.__stage3D.get_y()) | 0; this.gl.viewport(a, b, this.backBufferWidth, this.backBufferHeight) } else this.gl.viewport(0, 0, this.backBufferWidth, this.backBufferHeight); else b = a = 0, this.__state.renderToTexture instanceof gi ? (b = this.__state.renderToTexture, a = b.__width, b = b.__height) : this.__state.renderToTexture instanceof bk ? (b = this.__state.renderToTexture, a = b.__width, b = b.__height) : this.__state.renderToTexture instanceof Yi && (b = this.__state.renderToTexture, b = a = b.__size), this.gl.viewport(0, 0, a, b) }, __getGLBlend: function (a) { switch (a) { case 0: return this.gl.DST_ALPHA; case 1: return this.gl.DST_COLOR; case 2: return this.gl.ONE; case 3: return this.gl.ONE_MINUS_DST_ALPHA; case 4: return this.gl.ONE_MINUS_DST_COLOR; case 5: return this.gl.ONE_MINUS_SRC_ALPHA; case 6: return this.gl.ONE_MINUS_SRC_COLOR; case 7: return this.gl.SRC_ALPHA; case 8: return this.gl.SRC_COLOR; case 9: return this.gl.ZERO; default: throw I.thrown(new pd); } }, __getGLCompareMode: function (a) { switch (a) { case 0: return this.gl.ALWAYS; case 1: return this.gl.EQUAL; case 2: return this.gl.GREATER; case 3: return this.gl.GEQUAL; case 4: return this.gl.LESS; case 5: return this.gl.LEQUAL; case 6: return this.gl.NEVER; case 7: return this.gl.NOTEQUAL; default: return this.gl.EQUAL } }, __getGLStencilAction: function (a) { switch (a) { case 0: return this.gl.DECR; case 1: return this.gl.DECR_WRAP; case 2: return this.gl.INCR; case 3: return this.gl.INCR_WRAP; case 4: return this.gl.INVERT; case 5: return this.gl.KEEP; case 6: return this.gl.REPLACE; case 7: return this.gl.ZERO; default: return this.gl.KEEP } }, __getGLTriangleFace: function (a) { switch (a) { case 0: return this.gl.BACK; case 1: return this.gl.FRONT; case 2: return this.gl.FRONT_AND_BACK; case 3: return this.gl.NONE; default: return this.gl.FRONT_AND_BACK } }, __renderStage3D: function (a) { var b = a.context3D; if (null != b && b != this && null != b.__frontBufferTexture && a.visible && 0 < this.backBufferHeight && 0 < this.backBufferWidth) { if (null == this.__renderStage3DProgram) { var c = new W; c.assemble(Qr.toString(1), "m44 op, va0, vc0\nmov v0, va1"); var d = new W; d.assemble(Qr.toString(0), "tex ft1, v0, fs0 <2d,nearest,nomip>\nmov oc, ft1"); this.__renderStage3DProgram = this.createProgram(); this.__renderStage3DProgram.upload(c.agalcode, d.agalcode) } this.setProgram(this.__renderStage3DProgram); this.setBlendFactors(2, 9); this.setColorMask(!0, !0, !0, !0); this.setCulling(3); this.setDepthTest(!1, 0); this.setStencilActions(); this.setStencilReferenceValue(0, 0, 0); this.setScissorRectangle(null); this.setTextureAt(0, b.__frontBufferTexture); this.setVertexBufferAt(0, a.__vertexBuffer, 0, 3); this.setVertexBufferAt(1, a.__vertexBuffer, 3, 2); this.setProgramConstantsFromMatrix(1, 0, a.__renderTransform, !0); this.drawTriangles(a.__indexBuffer); this.__present = !0 } }, __setGLBlend: function (a) { this.__contextState.__enableGLBlend != a && (a ? this.gl.enable(this.gl.BLEND) : this.gl.disable(this.gl.BLEND), this.__contextState.__enableGLBlend = a) }, __setGLBlendEquation: function (a) { this.__contextState.__glBlendEquation != a && (this.gl.blendEquation(a), this.__contextState.__glBlendEquation = a) }, __setGLCullFace: function (a) { this.__contextState.__enableGLCullFace != a && (a ? this.gl.enable(this.gl.CULL_FACE) : this.gl.disable(this.gl.CULL_FACE), this.__contextState.__enableGLCullFace = a) }, __setGLDepthTest: function (a) { this.__contextState.__enableGLDepthTest != a && (a ? this.gl.enable(this.gl.DEPTH_TEST) : this.gl.disable(this.gl.DEPTH_TEST), this.__contextState.__enableGLDepthTest = a) }, __setGLFrontFace: function (a) { this.__contextState.__frontFaceGLCCW != a && (this.gl.frontFace(a ? this.gl.CCW : this.gl.CW), this.__contextState.__frontFaceGLCCW = a) }, __setGLScissorTest: function (a) { this.__contextState.__enableGLScissorTest != a && (a ? this.gl.enable(this.gl.SCISSOR_TEST) : this.gl.disable(this.gl.SCISSOR_TEST), this.__contextState.__enableGLScissorTest = a) }, __setGLStencilTest: function (a) { this.__contextState.__enableGLStencilTest != a && (a ? this.gl.enable(this.gl.STENCIL_TEST) : this.gl.disable(this.gl.STENCIL_TEST), this.__contextState.__enableGLStencilTest = a) }, get_enableErrorChecking: function () { return this.__enableErrorChecking }, set_enableErrorChecking: function (a) { return this.__enableErrorChecking = a }, get_totalGPUMemory: function () { if (-1 != cc.__glMemoryCurrentAvailable) { var a = this.gl.getParameter(cc.__glMemoryCurrentAvailable), b = this.gl.getParameter(cc.__glMemoryTotalAvailable); if (0 < b) return 1024 * (b - a) } return 0 }, __class__: cc, __properties__: { get_totalGPUMemory: "get_totalGPUMemory", set_enableErrorChecking: "set_enableErrorChecking", get_enableErrorChecking: "get_enableErrorChecking" } }); var Pr = { fromString: function (a) { switch (a) { case "dynamicDraw": return 0; case "staticDraw": return 1; default: return null } }, toString: function (a) { switch (a) { case 0: return "dynamicDraw"; case 1: return "staticDraw"; default: return null } } }, Qr = { fromString: function (a) { switch (a) { case "fragment": return 0; case "vertex": return 1; default: return null } }, toString: function (a) { switch (a) { case 0: return "fragment"; case 1: return "vertex"; default: return null } } }, ck = { fromString: function (a) { switch (a) { case "bgrPacked565": return 0; case "bgra": return 1; case "bgraPacked4444": return 2; case "compressed": return 3; case "compressedAlpha": return 4; case "rgbaHalfFloat": return 5; default: return null } }, toString: function (a) { switch (a) { case 0: return "bgrPacked565"; case 1: return "bgra"; case 2: return "bgraPacked4444"; case 3: return "compressed"; case 4: return "compressedAlpha"; case 5: return "rgbaHalfFloat"; default: return null } } }, bp = function (a, b, c) { this.__context = a; this.__numIndices = b; a = this.__context.gl; this.__id = a.createBuffer(); this.__usage = 0 == c ? a.DYNAMIC_DRAW : a.STATIC_DRAW }; k["openfl.display3D.IndexBuffer3D"] = bp; bp.__name__ = "openfl.display3D.IndexBuffer3D"; bp.prototype = { __context: null, __id: null, __memoryUsage: null, __numIndices: null, __tempUInt16Array: null, __usage: null, dispose: function () { this.__context.gl.deleteBuffer(this.__id) }, uploadFromByteArray: function (a, b, c, d) { b += 2 * c; a = Fb.toArrayBuffer(a); null == b && (b = 0); d = null != a ? null == d ? new Uint16Array(a, b) : new Uint16Array(a, b, d) : null; this.uploadFromTypedArray(d) }, uploadFromTypedArray: function (a, b) { null != a && (b = this.__context.gl, this.__context.__bindGLElementArrayBuffer(this.__id), fc.bufferData(b, b.ELEMENT_ARRAY_BUFFER, a, this.__usage)) }, uploadFromVector: function (a, b, c) { if (null != a) { var d = b + c, e = this.__tempUInt16Array; if (null == this.__tempUInt16Array || this.__tempUInt16Array.length < c) this.__tempUInt16Array = null != c ? new Uint16Array(c) : null, null != e && this.__tempUInt16Array.set(e); for (c = b; c < d;) e = c++, this.__tempUInt16Array[e - b] = a.get(e); this.uploadFromTypedArray(this.__tempUInt16Array) } }, __class__: bp }; var cp = function (a, b) { this.__context = a; this.__format = b; 0 == this.__format ? (this.__agalSamplerUsageMask = 0, this.__agalUniforms = new E, this.__agalSamplerUniforms = new E, this.__agalAlphaSamplerUniforms = new E, this.__agalAlphaSamplerEnabled = []) : (this.__glslAttribNames = [], this.__glslAttribTypes = [], this.__glslSamplerNames = [], this.__glslUniformLocations = [], this.__glslUniformNames = [], this.__glslUniformTypes = []); this.__samplerStates = [] }; k["openfl.display3D.Program3D"] = cp; cp.__name__ = "openfl.display3D.Program3D"; cp.prototype = { __agalAlphaSamplerEnabled: null, __agalAlphaSamplerUniforms: null, __agalFragmentUniformMap: null, __agalPositionScale: null, __agalSamplerUniforms: null, __agalSamplerUsageMask: null, __agalUniforms: null, __agalVertexUniformMap: null, __context: null, __format: null, __glFragmentShader: null, __glFragmentSource: null, __glProgram: null, __glslAttribNames: null, __glslAttribTypes: null, __glslSamplerNames: null, __glslUniformLocations: null, __glslUniformNames: null, __glslUniformTypes: null, __glVertexShader: null, __glVertexSource: null, __samplerStates: null, dispose: function () { this.__deleteShaders() }, getAttributeIndex: function (a) { if (0 == this.__format) return T.startsWith(a, "va") ? z.parseInt(a.substring(2)) : -1; for (var b = 0, c = this.__glslAttribNames.length; b < c;) { var d = b++; if (this.__glslAttribNames[d] == a) return d } return -1 }, getConstantIndex: function (a) { if (0 == this.__format) return T.startsWith(a, "vc") ? z.parseInt(a.substring(2)) : T.startsWith(a, "fc") ? z.parseInt(a.substring(2)) : -1; for (var b = 0, c = this.__glslUniformNames.length; b < c;) { var d = b++; if (this.__glslUniformNames[d] == a) return this.__glslUniformLocations[d] } return -1 }, upload: function (a, b) { if (0 == this.__format) { var c = []; a = Je.convertToGLSL(a, null); b = Je.convertToGLSL(b, c); 5 == Qa.level && (Qa.info(a, { fileName: "openfl/display3D/Program3D.hx", lineNumber: 399, className: "openfl.display3D.Program3D", methodName: "upload" }), Qa.info(b, { fileName: "openfl/display3D/Program3D.hx", lineNumber: 400, className: "openfl.display3D.Program3D", methodName: "upload" })); this.__deleteShaders(); this.__uploadFromGLSL(a, b); this.__buildAGALUniformList(); b = 0; for (a = c.length; b < a;) { var d = b++; this.__samplerStates[d] = c[d] } } }, uploadSources: function (a, b) { if (1 == this.__format) { var c = "#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t" + a, d = "#ifdef GL_ES\n\t\t\t#ifdef GL_FRAGMENT_PRECISION_HIGH\n\t\t\tprecision highp float;\n\t\t\t#else\n\t\t\tprecision mediump float;\n\t\t\t#endif\n\t\t\t#endif\n\t\t\t" + b; if (c != this.__glVertexSource || d != this.__glFragmentSource) { this.__processGLSLData(a, "attribute"); this.__processGLSLData(a, "uniform"); this.__processGLSLData(b, "uniform"); this.__deleteShaders(); this.__uploadFromGLSL(c, d); var e = this.__glslSamplerNames; d = this.__glslAttribNames; var g = this.__glslAttribTypes; a = this.__glslUniformNames; this.__glslSamplerNames = []; this.__glslAttribNames = []; this.__glslAttribTypes = []; this.__glslUniformLocations = []; b = this.__context.gl; for (c = 0; c < e.length;) { var f = e[c]; ++c; var h = b.getUniformLocation(this.__glProgram, f); this.__glslSamplerNames[h] = f } c = 0; for (e = d.length; c < e;) f = c++, h = b.getAttribLocation(this.__glProgram, d[f]), this.__glslAttribNames[h] = d[f], this.__glslAttribTypes[h] = g[f]; c = 0; for (e = a.length; c < e;) f = c++, d = b.getUniformLocation(this.__glProgram, a[f]), this.__glslUniformLocations[f] = d } } }, __buildAGALUniformList: function () { if (1 != this.__format) { var a = this.__context.gl; this.__agalUniforms.clear(); this.__agalSamplerUniforms.clear(); this.__agalAlphaSamplerUniforms.clear(); this.__agalAlphaSamplerEnabled = []; this.__agalSamplerUsageMask = 0; var b = a.getProgramParameter(this.__glProgram, a.ACTIVE_UNIFORMS); for (var c = new E, d = new E, e = 0; e < b;) { var g = e++, f = a.getActiveUniform(this.__glProgram, g), h = f.name, p = f.size, m = f.type; f = new fn(this.__context); f.name = h; f.size = p; f.type = m; f.location = a.getUniformLocation(this.__glProgram, f.name); h = f.name.indexOf("["); 0 <= h && (f.name = f.name.substring(0, h)); switch (f.type) { case 35674: f.regCount = 2; break; case 35675: f.regCount = 3; break; case 35676: f.regCount = 4; break; default: f.regCount = 1 } f.regCount *= f.size; this.__agalUniforms.add(f); if ("vcPositionScale" == f.name) this.__agalPositionScale = f; else if (T.startsWith(f.name, "vc")) f.regIndex = z.parseInt(f.name.substring(2)), f.regData = this.__context.__vertexConstants, c.add(f); else if (T.startsWith(f.name, "fc")) f.regIndex = z.parseInt(f.name.substring(2)), f.regData = this.__context.__fragmentConstants, d.add(f); else if (T.startsWith(f.name, "sampler") && -1 == f.name.indexOf("alpha")) for (f.regIndex = z.parseInt(f.name.substring(7)), this.__agalSamplerUniforms.add(f), h = 0, p = f.regCount; h < p;) m = h++, this.__agalSamplerUsageMask |= 1 << f.regIndex + m; else T.startsWith(f.name, "sampler") && T.endsWith(f.name, "_alpha") ? (h = f.name.indexOf("_") - 7, f.regIndex = z.parseInt(f.name.substring(7, 7 + h)) + 4, this.__agalAlphaSamplerUniforms.add(f)) : T.startsWith(f.name, "sampler") && T.endsWith(f.name, "_alphaEnabled") && (f.regIndex = z.parseInt(f.name.substring(7)), this.__agalAlphaSamplerEnabled[f.regIndex] = f); 5 == Qa.level && Qa.verbose("" + g + " name:" + f.name + " type:" + f.type + " size:" + f.size + " location:" + z.string(f.location), { fileName: "openfl/display3D/Program3D.hx", lineNumber: 577, className: "openfl.display3D.Program3D", methodName: "__buildAGALUniformList" }) } this.__agalVertexUniformMap = new dk(ia.array(c)); this.__agalFragmentUniformMap = new dk(ia.array(d)) } }, __deleteShaders: function () { var a = this.__context.gl; null != this.__glProgram && (this.__glProgram = null); null != this.__glVertexShader && (a.deleteShader(this.__glVertexShader), this.__glVertexShader = null); null != this.__glFragmentShader && (a.deleteShader(this.__glFragmentShader), this.__glFragmentShader = null) }, __disable: function () { }, __enable: function () { var a = this.__context.gl; a.useProgram(this.__glProgram); if (0 == this.__format) { this.__agalVertexUniformMap.markAllDirty(); this.__agalFragmentUniformMap.markAllDirty(); for (var b = this.__agalSamplerUniforms.h; null != b;) { var c = b.item; b = b.next; if (1 == c.regCount) a.uniform1i(c.location, c.regIndex); else throw I.thrown(new pd("!!! TODO: uniform location on webgl")); } for (b = this.__agalAlphaSamplerUniforms.h; null != b;) if (c = b.item, b = b.next, 1 == c.regCount) a.uniform1i(c.location, c.regIndex); else throw I.thrown(new pd("!!! TODO: uniform location on webgl")); } }, __flush: function () { 0 == this.__format && (this.__agalVertexUniformMap.flush(), this.__agalFragmentUniformMap.flush()) }, __getSamplerState: function (a) { return this.__samplerStates[a] }, __markDirty: function (a, b, c) { 1 != this.__format && (a ? this.__agalVertexUniformMap.markDirty(b, c) : this.__agalFragmentUniformMap.markDirty(b, c)) }, __processGLSLData: function (a, b) { var c = 0, d; for (d = "uniform" == b ? new fb("uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)", "") : new fb("attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)", ""); d.matchSub(a, c);) { var e = d.matched(1); var g = d.matched(2); if (!T.startsWith(g, "gl_")) { if (T.startsWith(e, "sampler")) this.__glslSamplerNames.push(g); else { switch (e) { case "bool": c = 0; break; case "bvec2": c = 1; break; case "bvec3": c = 2; break; case "bvec4": c = 3; break; case "dvec2": case "vec2": c = 5; break; case "dvec3": case "vec3": c = 6; break; case "double": case "float": c = 4; break; case "ivec3": case "uvec3": c = 10; break; case "ivec4": case "uvec4": c = 11; break; case "mat2": case "mat2x2": c = 12; break; case "mat2x3": c = 13; break; case "mat2x4": c = 14; break; case "mat3x2": c = 15; break; case "mat3": case "mat3x3": c = 16; break; case "mat3x4": c = 17; break; case "mat4": case "mat4x4": c = 20; break; case "mat4x2": c = 18; break; case "mat4x3": c = 19; break; case "int": case "uint": c = 8; break; case "ivec2": case "uvec2": c = 9; break; case "dvec4": case "vec4": c = 7; break; default: c = null } "uniform" == b ? (this.__glslUniformNames.push(g), this.__glslUniformTypes.push(c)) : (this.__glslAttribNames.push(g), this.__glslAttribTypes.push(c)) } g = d.matchedPos(); c = g.pos + g.len } } }, __setPositionScale: function (a) { 1 != this.__format && null != this.__agalPositionScale && this.__context.gl.uniform4fv(this.__agalPositionScale.location, a) }, __setSamplerState: function (a, b) { this.__samplerStates[a] = b }, __uploadFromGLSL: function (a, b) { var c = this.__context.gl; this.__glVertexSource = a; this.__glFragmentSource = b; this.__glVertexShader = c.createShader(c.VERTEX_SHADER); c.shaderSource(this.__glVertexShader, a); c.compileShader(this.__glVertexShader); if (0 == c.getShaderParameter(this.__glVertexShader, c.COMPILE_STATUS)) { var d = "Error compiling vertex shader\n" + c.getShaderInfoLog(this.__glVertexShader); Qa.error(d + ("\n" + a), { fileName: "openfl/display3D/Program3D.hx", lineNumber: 869, className: "openfl.display3D.Program3D", methodName: "__uploadFromGLSL" }) } this.__glFragmentShader = c.createShader(c.FRAGMENT_SHADER); c.shaderSource(this.__glFragmentShader, b); c.compileShader(this.__glFragmentShader); 0 == c.getShaderParameter(this.__glFragmentShader, c.COMPILE_STATUS) && (d = "Error compiling fragment shader\n" + c.getShaderInfoLog(this.__glFragmentShader), Qa.error(d + ("\n" + b), { fileName: "openfl/display3D/Program3D.hx", lineNumber: 881, className: "openfl.display3D.Program3D", methodName: "__uploadFromGLSL" })); this.__glProgram = c.createProgram(); if (0 == this.__format) for (b = 0; 16 > b;) { var e = b++; d = "va" + e; -1 != a.indexOf(" " + d) && c.bindAttribLocation(this.__glProgram, e, d) } else for (b = 0, a = this.__glslAttribNames; b < a.length;) if (d = a[b], ++b, -1 < d.indexOf("Position") && T.startsWith(d, "openfl_")) { c.bindAttribLocation(this.__glProgram, 0, d); break } c.attachShader(this.__glProgram, this.__glVertexShader); c.attachShader(this.__glProgram, this.__glFragmentShader); c.linkProgram(this.__glProgram); 0 == c.getProgramParameter(this.__glProgram, c.LINK_STATUS) && (d = "Unable to initialize the shader program\n" + c.getProgramInfoLog(this.__glProgram), Qa.error(d, { fileName: "openfl/display3D/Program3D.hx", lineNumber: 922, className: "openfl.display3D.Program3D", methodName: "__uploadFromGLSL" })) }, __class__: cp }; var fn = function (a) { this.context = a; this.isDirty = !0; this.regDataPointer = new Xf(null, 0) }; k["openfl.display3D.Uniform"] = fn; fn.__name__ = "openfl.display3D.Uniform"; fn.prototype = { name: null, location: null, type: null, size: null, regData: null, regIndex: null, regCount: null, isDirty: null, context: null, regDataPointer: null, flush: function () { var a = this.context.gl, b = 4 * this.regIndex; switch (this.type) { case 35664: is.uniform2fv(a, this.location, this.regData.subarray(b, b + 2 * this.regCount)); break; case 35665: var c = this.location; b = this.regData.subarray(b, b + 3 * this.regCount); var d = null; null != d ? a.uniform3fv(c, b, d, null) : a.uniform3fv(c, b); break; case 35666: c = this.location; b = this.regData.subarray(b, b + 4 * this.regCount); d = null; null != d ? a.uniform4fv(c, b, d, null) : a.uniform4fv(c, b); break; case 35674: fc.uniformMatrix2fv(a, this.location, !1, this.regData.subarray(b, b + 4 * this.size)); break; case 35675: fc.uniformMatrix3fv(a, this.location, !1, this.regData.subarray(b, b + 9 * this.size)); break; case 35676: fc.uniformMatrix4fv(a, this.location, !1, this.regData.subarray(b, b + 16 * this.size)); break; default: c = this.location, b = this.regData.subarray(b, b + 4 * this.regCount), d = null, null != d ? a.uniform4fv(c, b, d, null) : a.uniform4fv(c, b) } }, __getUniformRegisters: function (a, b) { return this.regData.subarray(a, a + b) }, __class__: fn }; var dk = function (a) { this.__uniforms = a; this.__uniforms.sort(function (a, b) { return V.compare(a.regIndex, b.regIndex) }); var b = 0; a = 0; for (var c = this.__uniforms; a < c.length;) { var d = c[a]; ++a; d.regIndex + d.regCount > b && (b = d.regIndex + d.regCount) } this.__registerLookup = Eb.toObjectVector(null, b); a = 0; for (c = this.__uniforms; a < c.length;) { d = c[a]; ++a; b = 0; for (var e = d.regCount; b < e;) { var g = b++; this.__registerLookup.set(d.regIndex + g, d) } } this.__anyDirty = this.__allDirty = !0 }; k["openfl.display3D.UniformMap"] = dk; dk.__name__ = "openfl.display3D.UniformMap"; dk.prototype = { __allDirty: null, __anyDirty: null, __registerLookup: null, __uniforms: null, flush: function () { if (this.__anyDirty) { for (var a = 0, b = this.__uniforms; a < b.length;) { var c = b[a]; ++a; if (this.__allDirty || c.isDirty) c.flush(), c.isDirty = !1 } this.__anyDirty = this.__allDirty = !1 } }, markAllDirty: function () { this.__anyDirty = this.__allDirty = !0 }, markDirty: function (a, b) { if (!this.__allDirty) for (b = a + b, b > this.__registerLookup.get_length() && (b = this.__registerLookup.get_length()); a < b;) { var c = this.__registerLookup.get(a); null != c ? (this.__anyDirty = c.isDirty = !0, a = c.regIndex + c.regCount) : ++a } }, __class__: dk }; var dp = function (a, b, c, d) { this.__context = a; this.__numVertices = b; this.__vertexSize = c; a = this.__context.gl; this.__id = a.createBuffer(); this.__stride = 4 * this.__vertexSize; this.__usage = 0 == Pr.fromString(d) ? a.DYNAMIC_DRAW : a.STATIC_DRAW }; k["openfl.display3D.VertexBuffer3D"] = dp; dp.__name__ = "openfl.display3D.VertexBuffer3D"; dp.prototype = { __context: null, __data: null, __id: null, __memoryUsage: null, __numVertices: null, __stride: null, __tempFloat32Array: null, __usage: null, __vertexSize: null, dispose: function () { this.__context.gl.deleteBuffer(this.__id) }, uploadFromByteArray: function (a, b, c, d) { b += c * this.__stride; d *= this.__vertexSize; a = Fb.toArrayBuffer(a); null == b && (b = 0); a = null != a ? null == d ? new Float32Array(a, b) : new Float32Array(a, b, d) : null; this.uploadFromTypedArray($g.toArrayBufferView(a)) }, uploadFromTypedArray: function (a, b) { null != a && (b = this.__context.gl, this.__context.__bindGLArrayBuffer(this.__id), fc.bufferData(b, b.ARRAY_BUFFER, a, this.__usage)) }, uploadFromVector: function (a, b, c) { if (null != a) { b *= this.__vertexSize; var d = c * this.__vertexSize; c = b + d; var e = this.__tempFloat32Array; if (null == this.__tempFloat32Array || this.__tempFloat32Array.length < d) this.__tempFloat32Array = null != d ? new Float32Array(d) : null, null != e && this.__tempFloat32Array.set(e); for (d = b; d < c;) e = d++, this.__tempFloat32Array[e - b] = a.get(e); this.uploadFromTypedArray($g.toArrayBufferView(this.__tempFloat32Array)) } }, __class__: dp }; var Je = function () { }; k["openfl.display3D._internal.AGALConverter"] = Je; Je.__name__ = "openfl.display3D._internal.AGALConverter"; Je.prefixFromType = function (a, b) { switch (a) { case 0: return "va"; case 1: return b == Ig.VERTEX ? "vc" : "fc"; case 2: return b == Ig.VERTEX ? "vt" : "ft"; case 3: return "output_"; case 4: return "v"; case 5: return "sampler"; default: throw I.thrown(new pd("Invalid data!")); } }; Je.readUInt64 = function (a) { var b = a.readInt(); a = a.readInt(); return new db(a, b) }; Je.convertToGLSL = function (a, b) { a.position = 0; a.__endian = 1; var c = a.readByte() & 255; if (176 == c) return a.readUTF(); if (160 != c) throw I.thrown(new pd("Magic value must be 0xA0, may not be AGAL")); var d = a.readInt(); if (1 != d) throw I.thrown(new pd("Version must be 1")); if (161 != (a.readByte() & 255)) throw I.thrown(new pd("Shader type ID must be 0xA1")); c = 0 == (a.readByte() & 255) ? Ig.VERTEX : Ig.FRAGMENT; for (var e = new gn, g = ""; ;) { d = a.position; if (!Ba.gt(Fb.get_length(a), d)) break; var f = a.readInt(); d = a.readUnsignedInt(); var h = Je.readUInt64(a), p = Je.readUInt64(a); d = Zi.parse(d, c); h = hi.parse(h, c, d.mask); var m = hi.parse(p, c, d.mask); g += "\t"; switch (f) { case 0: g += z.string(d.toGLSL() + " = " + h.toGLSL() + "; // mov"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 1: g += z.string(d.toGLSL() + " = " + h.toGLSL() + " + " + m.toGLSL() + "; // add"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 2: g += z.string(d.toGLSL() + " = " + h.toGLSL() + " - " + m.toGLSL() + "; // sub"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 3: g += z.string(d.toGLSL() + " = " + h.toGLSL() + " * " + m.toGLSL() + "; // mul"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 4: g += z.string(d.toGLSL() + " = " + h.toGLSL() + " / " + m.toGLSL() + "; // div"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 5: g = -1 < h.toGLSL().indexOf(".") ? g + z.string(d.toGLSL() + " = 1.0 / " + h.toGLSL() + "; // rcp") : g + z.string(d.toGLSL() + " = vec4(1) / " + h.toGLSL() + "; // rcp"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 6: g += z.string(d.toGLSL() + " = min(" + h.toGLSL() + ", " + m.toGLSL() + "); // min"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 7: g += z.string(d.toGLSL() + " = max(" + h.toGLSL() + ", " + m.toGLSL() + "); // max"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 8: g += z.string(d.toGLSL() + " = fract(" + h.toGLSL() + "); // frc"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 9: g += z.string(d.toGLSL() + " = sqrt(" + h.toGLSL() + "); // sqrt"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 10: g += z.string(d.toGLSL() + " = inversesqrt(" + h.toGLSL() + "); // rsq"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 11: g += z.string(d.toGLSL() + " = pow(" + h.toGLSL() + ", " + m.toGLSL() + "); // pow"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 12: g += z.string(d.toGLSL() + " = log2(" + h.toGLSL() + "); // log"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 13: g += z.string(d.toGLSL() + " = exp2(" + h.toGLSL() + "); // exp"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 14: g += z.string(d.toGLSL() + " = normalize(" + h.toGLSL() + "); // normalize"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 15: g += z.string(d.toGLSL() + " = sin(" + h.toGLSL() + "); // sin"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 16: g += z.string(d.toGLSL() + " = cos(" + h.toGLSL() + "); // cos"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 17: h.sourceMask = m.sourceMask = 7; g += z.string(d.toGLSL() + " = cross(vec3(" + h.toGLSL() + "), vec3(" + m.toGLSL() + ")); // crs"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 18: h.sourceMask = m.sourceMask = 7; g += z.string(d.toGLSL() + " = vec4(dot(vec3(" + h.toGLSL() + "), vec3(" + m.toGLSL() + ")))" + d.getWriteMask() + "; // dp3"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 19: h.sourceMask = m.sourceMask = 15; g += z.string(d.toGLSL() + " = vec4(dot(vec4(" + h.toGLSL() + "), vec4(" + m.toGLSL() + ")))" + d.getWriteMask() + "; // dp4"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 20: g += z.string(d.toGLSL() + " = abs(" + h.toGLSL() + "); // abs"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 21: g += z.string(d.toGLSL() + " = -" + h.toGLSL() + "; // neg"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 22: g += z.string(d.toGLSL() + " = clamp(" + h.toGLSL() + ", 0.0, 1.0); // saturate"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); break; case 23: f = e.getRegisterUsage(m); f != qa.VECTOR_4 && f != qa.VECTOR_4_ARRAY ? (g += z.string(d.toGLSL() + " = " + h.toGLSL() + " * mat3(" + m.toGLSL(!1) + "); // m33"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.MATRIX_4_4)) : (h.sourceMask = m.sourceMask = 7, g += z.string(d.toGLSL() + " = vec3(dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 0) + "), dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 1) + "),dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 2) + ")); // m33"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.VECTOR_4, 0), e.addSR(m, qa.VECTOR_4, 1), e.addSR(m, qa.VECTOR_4, 2)); break; case 24: f = e.getRegisterUsage(m); f != qa.VECTOR_4 && f != qa.VECTOR_4_ARRAY ? (g += z.string(d.toGLSL() + " = " + h.toGLSL() + " * " + m.toGLSL(!1) + "; // m44"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.MATRIX_4_4)) : (h.sourceMask = m.sourceMask = 15, g += z.string(d.toGLSL() + " = vec4(dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 0) + "), dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 1) + "), dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 2) + "), dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 3) + ")); // m44"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.VECTOR_4, 0), e.addSR(m, qa.VECTOR_4, 1), e.addSR(m, qa.VECTOR_4, 2), e.addSR(m, qa.VECTOR_4, 3)); break; case 25: d.mask &= 7; f = e.getRegisterUsage(m); f != qa.VECTOR_4 && f != qa.VECTOR_4_ARRAY ? (g += z.string(d.toGLSL() + " = " + h.toGLSL() + " * " + m.toGLSL(!1) + "; // m34"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.MATRIX_4_4)) : (h.sourceMask = m.sourceMask = 15, g += z.string(d.toGLSL() + " = vec3(dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 0) + "), dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 1) + "),dot(" + h.toGLSL(!0) + "," + m.toGLSL(!0, 2) + ")); // m34"), e.addDR(d, qa.VECTOR_4), e.addSR(h, qa.VECTOR_4), e.addSR(m, qa.VECTOR_4, 0), e.addSR(m, qa.VECTOR_4, 1), e.addSR(m, qa.VECTOR_4, 2)); break; case 39: h.sourceMask = 15; g += z.string("if (any(lessThan(" + h.toGLSL() + ", vec4(0)))) discard;"); e.addSR(h, qa.VECTOR_4); break; case 40: m = $i.parse(p, c); switch (m.d) { case 0: 2 == m.t ? (h.sourceMask = 3, e.addSaR(m, qa.SAMPLER_2D_ALPHA), g += z.string("if (" + m.toGLSL() + "_alphaEnabled) {\n"), g += z.string("\t\t" + d.toGLSL() + " = vec4(texture2D(" + m.toGLSL() + ", " + h.toGLSL() + ").xyz, texture2D(" + m.toGLSL() + "_alpha, " + h.toGLSL() + ").x); // tex + alpha\n"), g += "\t} else {\n", g += z.string("\t\t" + d.toGLSL() + " = texture2D(" + m.toGLSL() + ", " + h.toGLSL() + "); // tex\n"), g += "\t}") : (h.sourceMask = 3, e.addSaR(m, qa.SAMPLER_2D), g += z.string(d.toGLSL() + " = texture2D(" + m.toGLSL() + ", " + h.toGLSL() + "); // tex")); break; case 1: 2 == m.t ? (h.sourceMask = 7, e.addSaR(m, qa.SAMPLER_CUBE_ALPHA), g += z.string("if (" + m.toGLSL() + "_alphaEnabled) {\n"), g += z.string("\t\t" + d.toGLSL() + " = vec4(textureCube(" + m.toGLSL() + ", " + h.toGLSL() + ").xyz, textureCube(" + m.toGLSL() + "_alpha, " + h.toGLSL() + ").x); // tex + alpha\n"), g += "\t} else {\n", g += z.string("\t\t" + d.toGLSL() + " = textureCube(" + m.toGLSL() + ", " + h.toGLSL() + "); // tex"), g += "\t}") : (h.sourceMask = 7, g += z.string(d.toGLSL() + " = textureCube(" + m.toGLSL() + ", " + h.toGLSL() + "); // tex"), e.addSaR(m, qa.SAMPLER_CUBE)) } e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); null != b && (b[m.n] = m.toSamplerState()); break; case 41: h.sourceMask = m.sourceMask = 15; g += z.string(d.toGLSL() + " = vec4(greaterThanEqual(" + h.toGLSL() + ", " + m.toGLSL() + "))" + d.getWriteMask() + "; // ste"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 42: h.sourceMask = m.sourceMask = 15; g += z.string(d.toGLSL() + " = vec4(lessThan(" + h.toGLSL() + ", " + m.toGLSL() + "))" + d.getWriteMask() + "; // slt"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 44: h.sourceMask = m.sourceMask = 15; g += z.string(d.toGLSL() + " = vec4(equal(" + h.toGLSL() + ", " + m.toGLSL() + "))" + d.getWriteMask() + "; // seq"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; case 45: h.sourceMask = m.sourceMask = 15; g += z.string(d.toGLSL() + " = vec4(notEqual(" + h.toGLSL() + ", " + m.toGLSL() + "))" + d.getWriteMask() + "; // sne"); e.addDR(d, qa.VECTOR_4); e.addSR(h, qa.VECTOR_4); e.addSR(m, qa.VECTOR_4); break; default: throw I.thrown(new pd("Opcode " + f)); } g += "\n" } null == Je.limitedProfile && (d = l.context.getParameter(7938), Je.limitedProfile = -1 < d.indexOf("OpenGL ES") || -1 < d.indexOf("WebGL")); a = "" + z.string("// AGAL " + (c == Ig.VERTEX ? "vertex" : "fragment") + " shader\n"); a = Je.limitedProfile ? a + "#version 100\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n" : a + "#version 120\n"; a += z.string(e.toGLSL(!1)); c == Ig.VERTEX && (a += "uniform vec4 vcPositionScale;\n"); a = a + "void main() {\n" + z.string(e.toGLSL(!0)); a += z.string(g); c == Ig.VERTEX && (a += "\tgl_Position *= vcPositionScale;\n"); return a + "}\n" }; var Zi = function () { }; k["openfl.display3D._internal._AGALConverter.DestRegister"] = Zi; Zi.__name__ = "openfl.display3D._internal._AGALConverter.DestRegister"; Zi.parse = function (a, b) { var c = new Zi; c.programType = b; c.type = a >>> 24 & 15; c.mask = a >>> 16 & 15; c.n = a & 65535; return c }; Zi.prototype = { mask: null, n: null, programType: null, type: null, getWriteMask: function () { var a = "."; 0 != (this.mask & 1) && (a += "x"); 0 != (this.mask & 2) && (a += "y"); 0 != (this.mask & 4) && (a += "z"); 0 != (this.mask & 8) && (a += "w"); return a }, toGLSL: function (a) { null == a && (a = !0); var b = 3 == this.type ? this.programType == Ig.VERTEX ? "gl_Position" : "gl_FragColor" : Je.prefixFromType(this.type, this.programType) + this.n; a && 15 != this.mask && (b += this.getWriteMask()); return b }, __class__: Zi }; var Ig = A["openfl.display3D._internal._AGALConverter.ProgramType"] = { __ename__: "openfl.display3D._internal._AGALConverter.ProgramType", __constructs__: null, VERTEX: { _hx_name: "VERTEX", _hx_index: 0, __enum__: "openfl.display3D._internal._AGALConverter.ProgramType", toString: t }, FRAGMENT: { _hx_name: "FRAGMENT", _hx_index: 1, __enum__: "openfl.display3D._internal._AGALConverter.ProgramType", toString: t } }; Ig.__constructs__ = [Ig.VERTEX, Ig.FRAGMENT]; var gn = function () { this.mEntries = [] }; k["openfl.display3D._internal.RegisterMap"] = gn; gn.__name__ = "openfl.display3D._internal.RegisterMap"; gn.prototype = { mEntries: null, add: function (a, b, c, d) { for (var e = 0, g = this.mEntries; e < g.length;) { var f = g[e]; ++e; if (f.type == a && f.name == b && f.number == c) { if (f.usage != d) throw I.thrown(new pd("Cannot use register in multiple ways yet (mat4/vec4)")); return } } f = new ep; f.type = a; f.name = b; f.number = c; f.usage = d; this.mEntries.push(f) }, addDR: function (a, b) { this.add(a.type, a.toGLSL(!1), a.n, b) }, addSaR: function (a, b) { this.add(a.type, a.toGLSL(), a.n, b) }, addSR: function (a, b, c) { null == c && (c = 0); 0 != a.d ? (this.add(a.itype, Je.prefixFromType(a.itype, a.programType) + a.n, a.n, qa.VECTOR_4), this.add(a.type, Je.prefixFromType(a.type, a.programType) + a.o, a.o, qa.VECTOR_4_ARRAY)) : this.add(a.type, a.toGLSL(!1, c), a.n + c, b) }, getRegisterUsage: function (a) { return 0 != a.d ? qa.VECTOR_4_ARRAY : this.getUsage(a.type, a.toGLSL(!1), a.n) }, getUsage: function (a, b, c) { for (var d = 0, e = this.mEntries; d < e.length;) { var g = e[d]; ++d; if (g.type == a && g.name == b && g.number == c) return g.usage } return qa.UNUSED }, toGLSL: function (a) { this.mEntries.sort(function (a, b) { return a.number - b.number }); this.mEntries.sort(function (a, b) { return w.__cast(a.type, Ia) - w.__cast(b.type, Ia) }); for (var b = "", c = 0, d = this.mEntries.length; c < d;) { var e = c++; e = this.mEntries[e]; if (!(a && 2 != e.type || !a && 2 == e.type) && 3 != e.type) { switch (e.type) { case 0: b += "attribute "; break; case 1: b += "uniform "; break; case 2: b += "\t"; break; case 3: break; case 4: b += "varying "; break; case 5: b += "uniform "; break; default: throw I.thrown(new pd); } switch (e.usage._hx_index) { case 0: Qa.info("Missing switch patten: RegisterUsage.UNUSED", { fileName: "openfl/display3D/_internal/AGALConverter.hx", lineNumber: 750, className: "openfl.display3D._internal.RegisterMap", methodName: "toGLSL" }); break; case 1: b += "vec4 "; break; case 2: b += "mat4 "; break; case 3: b += "sampler2D "; break; case 5: b += "samplerCube "; break; case 7: b += "vec4 " } e.usage == qa.SAMPLER_2D_ALPHA ? (b += "sampler2D ", b += z.string(e.name), b += ";\n", b += "uniform ", b += "sampler2D ", b += z.string(e.name + "_alpha"), b += ";\n", b += "uniform ", b += "bool ", b += z.string(e.name + "_alphaEnabled")) : e.usage == qa.SAMPLER_CUBE_ALPHA ? (b += "samplerCube ", b += z.string(e.name), b += ";\n", b += "uniform ", b += "samplerCube ", b += z.string(e.name + "_alpha"), b += ";\n", b += "uniform ", b += "bool ", b += z.string(e.name + "_alphaEnabled")) : b = e.usage == qa.VECTOR_4_ARRAY ? b + z.string(e.name + "[128]") : b + z.string(e.name); b += ";\n" } } return b }, __class__: gn }; var ep = function () { }; k["openfl.display3D._internal._AGALConverter.RegisterMapEntry"] = ep; ep.__name__ = "openfl.display3D._internal._AGALConverter.RegisterMapEntry"; ep.prototype = {name: null, number: null, type: null, usage: null, __class__: ep}; var qa = A["openfl.display3D._internal._AGALConverter.RegisterUsage"] = { __ename__: "openfl.display3D._internal._AGALConverter.RegisterUsage", __constructs__: null, UNUSED: { _hx_name: "UNUSED", _hx_index: 0, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, VECTOR_4: { _hx_name: "VECTOR_4", _hx_index: 1, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, MATRIX_4_4: { _hx_name: "MATRIX_4_4", _hx_index: 2, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, SAMPLER_2D: { _hx_name: "SAMPLER_2D", _hx_index: 3, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, SAMPLER_2D_ALPHA: { _hx_name: "SAMPLER_2D_ALPHA", _hx_index: 4, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, SAMPLER_CUBE: { _hx_name: "SAMPLER_CUBE", _hx_index: 5, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, SAMPLER_CUBE_ALPHA: { _hx_name: "SAMPLER_CUBE_ALPHA", _hx_index: 6, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t }, VECTOR_4_ARRAY: { _hx_name: "VECTOR_4_ARRAY", _hx_index: 7, __enum__: "openfl.display3D._internal._AGALConverter.RegisterUsage", toString: t } }; qa.__constructs__ = [qa.UNUSED, qa.VECTOR_4, qa.MATRIX_4_4, qa.SAMPLER_2D, qa.SAMPLER_2D_ALPHA, qa.SAMPLER_CUBE, qa.SAMPLER_CUBE_ALPHA, qa.VECTOR_4_ARRAY]; var $i = function () { }; k["openfl.display3D._internal._AGALConverter.SamplerRegister"] = $i; $i.__name__ = "openfl.display3D._internal._AGALConverter.SamplerRegister"; $i.parse = function (a, b) { var c = new $i; c.programType = b; b = 60; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.f = b; b = 56; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.m = b; b = 52; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.w = b; b = 48; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.s = b; b = 44; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.d = b; b = 40; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.t = b; b = 32; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; c.type = b; b = 16; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 255; c.b = b; b = a.low & 65535; c.n = b; return c }; $i.prototype = { b: null, d: null, f: null, m: null, n: null, programType: null, s: null, t: null, type: null, w: null, toGLSL: function () { return Je.prefixFromType(this.type, this.programType) + this.n }, toSamplerState: function () { switch (this.f) { case 0: var a = 5; break; case 1: a = 4; break; default: throw I.thrown(new pd); } switch (this.m) { case 0: var b = 2; break; case 1: b = 1; break; case 2: b = 0; break; default: throw I.thrown(new pd); } switch (this.w) { case 0: var c = 0; break; case 1: c = 2; break; default: throw I.thrown(new pd); } return new Wg(c, a, b, (this.b << 24 >> 24) / 8, 4 == (this.s & 4), 1 == (this.s & 1), 2 == this.t) }, __class__: $i }; var hi = function () { }; k["openfl.display3D._internal._AGALConverter.SourceRegister"] = hi; hi.__name__ = "openfl.display3D._internal._AGALConverter.SourceRegister"; hi.parse = function (a, b, c) { var d = new hi; d.programType = b; b = 63; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 1; d.d = b; b = 48; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 3; d.q = b; b = 40; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; d.itype = b; b = 32; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 15; d.type = b; b = 24; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 255; d.s = b; b = 16; b = 0 == b ? new db(a.high, a.low) : 32 > b ? new db(a.high >> b, a.high << 32 - b | a.low >>> b) : new db(a.high >> 31, a.high >> b - 32); b = b.low & 255; d.o = b; b = a.low & 65535; d.n = b; d.sourceMask = c; return d }; hi.prototype = { d: null, itype: null, n: null, o: null, programType: null, q: null, s: null, sourceMask: null, type: null, toGLSL: function (a, b) { null == b && (b = 0); null == a && (a = !0); if (3 == this.type) return this.programType == Ig.VERTEX ? "gl_Position" : "gl_FragColor"; var c = 228 == this.s && 15 == this.sourceMask, d = ""; if (5 != this.type && !c) { if (0 != (this.sourceMask & 1)) switch (this.s & 3) { case 0: d += "x"; break; case 1: d += "y"; break; case 2: d += "z"; break; case 3: d += "w" } if (0 != (this.sourceMask & 2)) switch (this.s >> 2 & 3) { case 0: d += "x"; break; case 1: d += "y"; break; case 2: d += "z"; break; case 3: d += "w" } if (0 != (this.sourceMask & 4)) switch (this.s >> 4 & 3) { case 0: d += "x"; break; case 1: d += "y"; break; case 2: d += "z"; break; case 3: d += "w" } if (0 != (this.sourceMask & 8)) switch (this.s >> 6 & 3) { case 0: d += "x"; break; case 1: d += "y"; break; case 2: d += "z"; break; case 3: d += "w" } } c = Je.prefixFromType(this.type, this.programType); if (0 == this.d) c += this.n + b; else { c += this.o; var e = ""; switch (this.q) { case 0: e = "x"; break; case 1: e = "y"; break; case 2: e = "z"; break; case 3: e = "w" } e = Je.prefixFromType(this.itype, this.programType) + this.n + "." + e; c += "[ int(" + e + ") +" + b + "]" } a && "" != d && (c += "." + d); return c }, __class__: hi }; var ek = function (a, b) { this.version = 0; a.position = b; var c = a.readUTFBytes(3); a.position = b; if ("ATF" != c) throw I.thrown(new pd("ATF signature not found")); 255 == a.b[b + 6] ? (this.version = a.b[b + 7], a.position = b + 8, c = this.__readUInt32(a)) : (this.version = 0, a.position = b + 3, c = this.__readUInt24(a)); if (Ba.gt(w.__cast(b + c, Ia), Fb.get_length(a))) throw I.thrown(new pd("ATF length exceeds byte array length")); this.data = a }; k["openfl.display3D._internal.ATFReader"] = ek; ek.__name__ = "openfl.display3D._internal.ATFReader"; ek.prototype = { atfFormat: null, cubeMap: null, data: null, height: null, mipCount: null, version: null, width: null, readHeader: function (a, b, c) { var d = this.data.readUnsignedByte(), e = d >>> 7; if (!c && 0 != e) throw I.thrown(new pd("ATF Cube map not expected")); if (c && 1 != e) throw I.thrown(new pd("ATF Cube map expected")); this.cubeMap = c; this.atfFormat = d & 127; 3 != this.atfFormat && 5 != this.atfFormat && Qa.warn("Only ATF block compressed textures without JPEG-XR+LZMA are supported", { fileName: "openfl/display3D/_internal/ATFReader.hx", lineNumber: 96, className: "openfl.display3D._internal.ATFReader", methodName: "readHeader" }); this.width = 1 << this.data.readUnsignedByte(); this.height = 1 << this.data.readUnsignedByte(); if (this.width != a || this.height != b) throw I.thrown(new pd("ATF width and height dont match")); this.mipCount = this.data.readUnsignedByte(); return 5 == this.atfFormat }, readTextures: function (a) { for (var b = 3 > this.version ? 3 : 4, c = 0, d = this.cubeMap ? 6 : 1; c < d;) for (var e = c++, g = 0, f = this.mipCount; g < f;) for (var h = g++, p = 0, m = b; p < m;) { var l = p++, n = 0 == this.version ? this.__readUInt24(this.data) : this.__readUInt32(this.data); if (Ba.gt(this.data.position + n, Fb.get_length(this.data))) throw I.thrown(new pd("Block length exceeds ATF file length")); if (Ba.gt(n, 0)) { var k = new lb(new ArrayBuffer(n)), t = this.data, q = Fb.fromBytes(k), w = 0, u = n; null == u && (u = 0); null == w && (w = 0); t.readBytes(q, w, u); a(e, h, l, this.width >> h, this.height >> h, n, k) } } }, __readUInt24: function (a) { var b = a.readUnsignedByte() << 16; b |= a.readUnsignedByte() << 8; return b |= a.readUnsignedByte() }, __readUInt32: function (a) { var b = a.readUnsignedByte() << 24; b |= a.readUnsignedByte() << 16; b |= a.readUnsignedByte() << 8; return b |= a.readUnsignedByte() }, __class__: ek }; var ak = function () { this.backBufferEnableDepthAndStencil = !1; this.blendDestinationAlphaFactor = 9; this.blendSourceAlphaFactor = 2; this.blendDestinationRGBFactor = 9; this.blendSourceRGBFactor = 2; this.colorMaskAlpha = this.colorMaskBlue = this.colorMaskGreen = this.colorMaskRed = !0; this.culling = 3; this.depthCompareMode = 4; this.depthMask = !0; this.samplerStates = []; this.scissorRectangle = new ba; this.stencilCompareMode = 0; this.stencilPass = this.stencilFail = this.stencilDepthFail = 5; this.stencilReadMask = 255; this.stencilReferenceValue = 0; this.stencilTriangleFace = 2; this.stencilWriteMask = 255; this.textures = []; this.__frontFaceGLCCW = !0; this.__glBlendEquation = 32774 }; k["openfl.display3D._internal.Context3DState"] = ak; ak.__name__ = "openfl.display3D._internal.Context3DState"; ak.prototype = { backBufferEnableDepthAndStencil: null, blendDestinationAlphaFactor: null, blendSourceAlphaFactor: null, blendDestinationRGBFactor: null, blendSourceRGBFactor: null, colorMaskRed: null, colorMaskGreen: null, colorMaskBlue: null, colorMaskAlpha: null, culling: null, depthCompareMode: null, depthMask: null, program: null, renderToTexture: null, renderToTextureAntiAlias: null, renderToTextureDepthStencil: null, renderToTextureSurfaceSelector: null, samplerStates: null, scissorEnabled: null, scissorRectangle: null, stencilCompareMode: null, stencilDepthFail: null, stencilFail: null, stencilPass: null, stencilReadMask: null, stencilReferenceValue: null, stencilTriangleFace: null, stencilWriteMask: null, textures: null, shader: null, __currentGLArrayBuffer: null, __currentGLElementArrayBuffer: null, __currentGLFramebuffer: null, __currentGLTexture2D: null, __currentGLTextureCubeMap: null, __enableGLBlend: null, __enableGLCullFace: null, __enableGLDepthTest: null, __enableGLScissorTest: null, __enableGLStencilTest: null, __frontFaceGLCCW: null, __glBlendEquation: null, __primaryGLFramebuffer: null, __rttDepthGLRenderbuffer: null, __rttGLFramebuffer: null, __rttGLRenderbuffer: null, __rttStencilGLRenderbuffer: null, __class__: ak }; var hc = function (a) { jb.call(this); this.__context = a; var b = this.__context.gl; this.__textureID = b.createTexture(); this.__textureContext = this.__context.__context; if (null == hc.__supportsBGRA) { hc.__textureInternalFormat = b.RGBA; hc.__supportsBGRA = !1; hc.__textureFormat = b.RGBA; hc.__compressedFormats = new eb; hc.__compressedFormatsAlpha = new eb; a = b.getExtension("WEBGL_compressed_texture_s3tc"); var c = b.getExtension("WEBGL_compressed_texture_etc1"); b = b.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"); if (null != a) { var d = a.COMPRESSED_RGBA_S3TC_DXT1_EXT; hc.__compressedFormats.h[0] = d; d = a.COMPRESSED_RGBA_S3TC_DXT5_EXT; hc.__compressedFormatsAlpha.h[0] = d } null != c && (d = c.COMPRESSED_RGB_ETC1_WEBGL, hc.__compressedFormats.h[2] = d, d = c.COMPRESSED_RGB_ETC1_WEBGL, hc.__compressedFormatsAlpha.h[2] = d); null != b && (d = b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG, hc.__compressedFormats.h[1] = d, d = b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, hc.__compressedFormatsAlpha.h[1] = d) } this.__internalFormat = hc.__textureInternalFormat; this.__format = hc.__textureFormat }; k["openfl.display3D.textures.TextureBase"] = hc; hc.__name__ = "openfl.display3D.textures.TextureBase"; hc.__super__ = jb; hc.prototype = u(jb.prototype, { __alphaTexture: null, __context: null, __format: null, __glDepthRenderbuffer: null, __glFramebuffer: null, __glStencilRenderbuffer: null, __height: null, __internalFormat: null, __optimizeForRenderToTexture: null, __samplerState: null, __streamingLevels: null, __textureContext: null, __textureID: null, __textureTarget: null, __width: null, dispose: function () { var a = this.__context.gl; null != this.__alphaTexture && (this.__alphaTexture.dispose(), this.__alphaTexture = null); null != this.__textureID && (a.deleteTexture(this.__textureID), this.__textureID = null); null != this.__glFramebuffer && (a.deleteFramebuffer(this.__glFramebuffer), this.__glFramebuffer = null); null != this.__glDepthRenderbuffer && (a.deleteRenderbuffer(this.__glDepthRenderbuffer), this.__glDepthRenderbuffer = null); null != this.__glStencilRenderbuffer && (a.deleteRenderbuffer(this.__glStencilRenderbuffer), this.__glStencilRenderbuffer = null) }, __getGLFramebuffer: function (a, b, c) { b = this.__context.gl; null == this.__glFramebuffer && (this.__glFramebuffer = b.createFramebuffer(), this.__context.__bindGLFramebuffer(this.__glFramebuffer), b.framebufferTexture2D(b.FRAMEBUFFER, b.COLOR_ATTACHMENT0, b.TEXTURE_2D, this.__textureID, 0), this.__context.__enableErrorChecking && (c = b.checkFramebufferStatus(b.FRAMEBUFFER), c != b.FRAMEBUFFER_COMPLETE && Qa.warn("Error: Context3D.setRenderToTexture status:" + c + " width:" + this.__width + " height:" + this.__height, { fileName: "openfl/display3D/textures/TextureBase.hx", lineNumber: 201, className: "openfl.display3D.textures.TextureBase", methodName: "__getGLFramebuffer" }))); a && null == this.__glDepthRenderbuffer && (this.__context.__bindGLFramebuffer(this.__glFramebuffer), 0 != cc.__glDepthStencil ? (this.__glStencilRenderbuffer = this.__glDepthRenderbuffer = b.createRenderbuffer(), b.bindRenderbuffer(b.RENDERBUFFER, this.__glDepthRenderbuffer), b.renderbufferStorage(b.RENDERBUFFER, cc.__glDepthStencil, this.__width, this.__height), b.framebufferRenderbuffer(b.FRAMEBUFFER, b.DEPTH_STENCIL_ATTACHMENT, b.RENDERBUFFER, this.__glDepthRenderbuffer)) : (this.__glDepthRenderbuffer = b.createRenderbuffer(), this.__glStencilRenderbuffer = b.createRenderbuffer(), b.bindRenderbuffer(b.RENDERBUFFER, this.__glDepthRenderbuffer), b.renderbufferStorage(b.RENDERBUFFER, b.DEPTH_COMPONENT16, this.__width, this.__height), b.bindRenderbuffer(b.RENDERBUFFER, this.__glStencilRenderbuffer), b.renderbufferStorage(b.RENDERBUFFER, b.STENCIL_INDEX8, this.__width, this.__height), b.framebufferRenderbuffer(b.FRAMEBUFFER, b.DEPTH_ATTACHMENT, b.RENDERBUFFER, this.__glDepthRenderbuffer), b.framebufferRenderbuffer(b.FRAMEBUFFER, b.STENCIL_ATTACHMENT, b.RENDERBUFFER, this.__glStencilRenderbuffer)), this.__context.__enableErrorChecking && (c = b.checkFramebufferStatus(b.FRAMEBUFFER), c != b.FRAMEBUFFER_COMPLETE && Qa.warn("Error: Context3D.setRenderToTexture status:" + c + " width:" + this.__width + " height:" + this.__height, { fileName: "openfl/display3D/textures/TextureBase.hx", lineNumber: 239, className: "openfl.display3D.textures.TextureBase", methodName: "__getGLFramebuffer" })), b.bindRenderbuffer(b.RENDERBUFFER, null)); return this.__glFramebuffer }, __getImage: function (a) { var b = a.image; if (!a.__isValid || null == b) return null; va.sync(b, !1); a = this.__context.gl; b.type == De.DATA || b.get_premultiplied() ? !b.get_premultiplied() && b.get_transparent() && (a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 0), b = b.clone(), b.set_premultiplied(!0)) : a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); 0 != b.get_format() && (b = b.clone(), b.set_format(0), b.buffer.premultiplied = !0); return b }, __getTexture: function () { return this.__textureID }, __setSamplerState: function (a) { if (!a.equals(this.__samplerState)) { var b = this.__context.gl; this.__textureTarget == this.__context.gl.TEXTURE_CUBE_MAP ? this.__context.__bindGLTextureCubeMap(this.__textureID) : this.__context.__bindGLTexture2D(this.__textureID); var c; switch (a.wrap) { case 0: var d = c = b.CLAMP_TO_EDGE; break; case 1: c = b.CLAMP_TO_EDGE; d = b.REPEAT; break; case 2: d = c = b.REPEAT; break; case 3: c = b.REPEAT; d = b.CLAMP_TO_EDGE; break; default: throw I.thrown(new id("wrap bad enum")); } var e = 5 == a.filter ? b.NEAREST : b.LINEAR; switch (a.mipfilter) { case 0: var g = 5 == a.filter ? b.NEAREST_MIPMAP_LINEAR : b.LINEAR_MIPMAP_LINEAR; break; case 1: g = 5 == a.filter ? b.NEAREST_MIPMAP_NEAREST : b.LINEAR_MIPMAP_NEAREST; break; case 2: g = 5 == a.filter ? b.NEAREST : b.LINEAR; break; default: throw I.thrown(new id("mipfiter bad enum")); } b.texParameteri(this.__textureTarget, b.TEXTURE_MIN_FILTER, g); b.texParameteri(this.__textureTarget, b.TEXTURE_MAG_FILTER, e); b.texParameteri(this.__textureTarget, b.TEXTURE_WRAP_S, c); b.texParameteri(this.__textureTarget, b.TEXTURE_WRAP_T, d); null == this.__samplerState && (this.__samplerState = a.clone()); this.__samplerState.copyFrom(a); return !0 } return !1 }, __uploadFromImage: function (a) { var b = this.__context.gl, c; if (this.__textureTarget == b.TEXTURE_2D) { if (1 == a.buffer.bitsPerPixel) var d = c = b.ALPHA; else c = hc.__textureInternalFormat, d = hc.__textureFormat; this.__context.__bindGLTexture2D(this.__textureID); a.type == De.DATA || a.get_premultiplied() ? !a.get_premultiplied() && a.get_transparent() && b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1) : b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1); a.type == De.DATA ? fc.texImage2D(b, b.TEXTURE_2D, 0, c, a.buffer.width, a.buffer.height, 0, d, b.UNSIGNED_BYTE, a.get_data()) : fc.texImage2D(b, b.TEXTURE_2D, 0, c, d, b.UNSIGNED_BYTE, a.get_src()); this.__context.__bindGLTexture2D(null) } }, __class__: hc }); var Yi = function (a, b, c, d, e) { hc.call(this, a); this.__width = this.__height = this.__size = b; this.__optimizeForRenderToTexture = d; this.__streamingLevels = e; this.__textureTarget = this.__context.gl.TEXTURE_CUBE_MAP; this.__uploadedSides = 0 }; k["openfl.display3D.textures.CubeTexture"] = Yi; Yi.__name__ = "openfl.display3D.textures.CubeTexture"; Yi.__super__ = hc; Yi.prototype = u(hc.prototype, { __framebufferSurface: null, __size: null, __uploadedSides: null, uploadCompressedTextureFromByteArray: function (a, b, c) { null == c && (c = !1); var d = this; c ? Ve.delay(function () { d.__uploadCompressedTextureFromByteArray(a, b); var c = new oa("textureReady"); d.dispatchEvent(c) }, 1) : this.__uploadCompressedTextureFromByteArray(a, b) }, uploadFromBitmapData: function (a, b, c, d) { null == c && (c = 0); if (null != a && (d = this.__size >> c, 0 != d && (a = this.__getImage(a), null != a))) if (0 == c && null != a.buffer && null == a.buffer.data && null != a.buffer.get_src()) { var e = this.__context.gl; d = this.__size >> c; 0 != d && (d = this.__sideToTarget(b), this.__context.__bindGLTextureCubeMap(this.__textureID), fc.texImage2D(e, d, c, this.__internalFormat, this.__format, e.UNSIGNED_BYTE, a.buffer.get_src()), this.__context.__bindGLTextureCubeMap(null), this.__uploadedSides |= 1 << b) } else this.uploadFromTypedArray(a.get_data(), b, c) }, uploadFromByteArray: function (a, b, c, d) { null == d && (d = 0); 0 == b ? this.uploadFromTypedArray(a.b, c, d) : (a = Fb.toArrayBuffer(a), null == b && (b = 0), b = null != a ? new Uint8Array(a, b) : null, this.uploadFromTypedArray(b, c, d)) }, uploadFromTypedArray: function (a, b, c) { null == c && (c = 0); if (null != a) { var d = this.__context.gl, e = this.__size >> c; if (0 != e) { var g = this.__sideToTarget(b); this.__context.__bindGLTextureCubeMap(this.__textureID); fc.texImage2D(d, g, c, this.__internalFormat, e, e, 0, this.__format, d.UNSIGNED_BYTE, a); this.__context.__bindGLTextureCubeMap(null); this.__uploadedSides |= 1 << b } } }, __getGLFramebuffer: function (a, b, c) { var d = this.__context.gl; null == this.__glFramebuffer && (this.__glFramebuffer = d.createFramebuffer(), this.__framebufferSurface = -1); if (this.__framebufferSurface != c && (this.__framebufferSurface = c, this.__context.__bindGLFramebuffer(this.__glFramebuffer), d.framebufferTexture2D(d.FRAMEBUFFER, d.COLOR_ATTACHMENT0, d.TEXTURE_CUBE_MAP_POSITIVE_X + c, this.__textureID, 0), this.__context.__enableErrorChecking)) { var e = d.checkFramebufferStatus(d.FRAMEBUFFER); e != d.FRAMEBUFFER_COMPLETE && Qa.error("Error: Context3D.setRenderToTexture status:" + e + " width:" + this.__width + " height:" + this.__height, { fileName: "openfl/display3D/textures/CubeTexture.hx", lineNumber: 278, className: "openfl.display3D.textures.CubeTexture", methodName: "__getGLFramebuffer" }) } return hc.prototype.__getGLFramebuffer.call(this, a, b, c) }, __setSamplerState: function (a) { if (hc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; 2 == a.mipfilter || this.__samplerState.mipmapGenerated || (b.generateMipmap(b.TEXTURE_CUBE_MAP), this.__samplerState.mipmapGenerated = !0); if (0 != cc.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1 } a > cc.__glMaxTextureMaxAnisotropy && (a = cc.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_CUBE_MAP, cc.__glTextureMaxAnisotropy, a) } return !0 } return !1 }, __sideToTarget: function (a) { var b = this.__context.gl; switch (a) { case 0: return b.TEXTURE_CUBE_MAP_POSITIVE_X; case 1: return b.TEXTURE_CUBE_MAP_NEGATIVE_X; case 2: return b.TEXTURE_CUBE_MAP_POSITIVE_Y; case 3: return b.TEXTURE_CUBE_MAP_NEGATIVE_Y; case 4: return b.TEXTURE_CUBE_MAP_POSITIVE_Z; case 5: return b.TEXTURE_CUBE_MAP_NEGATIVE_Z; default: throw I.thrown(new pd); } }, __uploadCompressedTextureFromByteArray: function (a, b) { var c = this; a = new ek(a, b); var d = a.readHeader(this.__size, this.__size, !0), e = this.__context.gl; this.__context.__bindGLTextureCubeMap(this.__textureID); var g = !1; a.readTextures(function (a, b, f, h, r, m, p) { var n = d ? hc.__compressedFormatsAlpha.h[f] : hc.__compressedFormats.h[f]; if (0 != n) if (g = !0, a = c.__sideToTarget(a), c.__format = n, c.__internalFormat = n, d && 2 == f) { m = m / 2 | 0; var l = f = null, k = null, v = null, t = p.b.buffer, q = 0; null == q && (q = 0); f = null != f ? new Uint8Array(f) : null != l ? new Uint8Array(l) : null != k ? new Uint8Array(k.__array) : null != v ? new Uint8Array(v) : null != t ? null == m ? new Uint8Array(t, q) : new Uint8Array(t, q, m) : null; fc.compressedTexImage2D(e, a, b, c.__internalFormat, h, r, 0, f); var w = new Yi(c.__context, c.__size, 3, c.__optimizeForRenderToTexture, c.__streamingLevels); w.__format = n; w.__internalFormat = n; c.__context.__bindGLTextureCubeMap(w.__textureID); v = k = l = f = null; t = p.b.buffer; q = m; null == q && (q = 0); f = null != f ? new Uint8Array(f) : null != l ? new Uint8Array(l) : null != k ? new Uint8Array(k.__array) : null != v ? new Uint8Array(v) : null != t ? null == m ? new Uint8Array(t, q) : new Uint8Array(t, q, m) : null; fc.compressedTexImage2D(e, a, b, w.__internalFormat, h, r, 0, f); c.__alphaTexture = w } else v = k = l = f = null, t = p.b.buffer, q = 0, null == q && (q = 0), f = null != f ? new Uint8Array(f) : null != l ? new Uint8Array(l) : null != k ? new Uint8Array(k.__array) : null != v ? new Uint8Array(v) : null != t ? null == m ? new Uint8Array(t, q) : new Uint8Array(t, q, m) : null, fc.compressedTexImage2D(e, a, b, c.__internalFormat, h, r, 0, f) }); if (!g) { a = this.__size * this.__size * 4; var f = b = null, h = null, p = null, m = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(0), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a); a = this.__size * this.__size * 4; m = p = h = f = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(1), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a); a = this.__size * this.__size * 4; m = p = h = f = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(2), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a); a = this.__size * this.__size * 4; m = p = h = f = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(3), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a); a = this.__size * this.__size * 4; m = p = h = f = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(4), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a); a = this.__size * this.__size * 4; m = p = h = f = b = null; a = null != a ? new Uint8Array(a) : null != b ? new Uint8Array(b) : null != f ? new Uint8Array(f.__array) : null != h ? new Uint8Array(h) : null != p ? null == m ? new Uint8Array(p, 0) : new Uint8Array(p, 0, m) : null; fc.texImage2D(e, this.__sideToTarget(5), 0, this.__internalFormat, this.__size, this.__size, 0, this.__format, e.UNSIGNED_BYTE, a) } this.__context.__bindGLTextureCubeMap(null) }, __class__: Yi }); var bk = function (a, b, c, d, e) { hc.call(this, a); this.__width = b; this.__height = c; this.__optimizeForRenderToTexture = e; this.__textureTarget = this.__context.gl.TEXTURE_2D; this.uploadFromTypedArray(null); e && this.__getGLFramebuffer(!0, 0, 0) }; k["openfl.display3D.textures.RectangleTexture"] = bk; bk.__name__ = "openfl.display3D.textures.RectangleTexture"; bk.__super__ = hc; bk.prototype = u(hc.prototype, { uploadFromBitmapData: function (a) { if (null != a && (a = this.__getImage(a), null != a)) if (null != a.buffer && null == a.buffer.data && null != a.buffer.get_src()) { var b = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); fc.texImage2D(b, this.__textureTarget, 0, this.__internalFormat, this.__format, b.UNSIGNED_BYTE, a.buffer.get_src()); this.__context.__bindGLTexture2D(null) } else this.uploadFromTypedArray(a.get_data()) }, uploadFromByteArray: function (a, b) { 0 == b ? this.uploadFromTypedArray(a.b) : (a = Fb.toArrayBuffer(a), null == b && (b = 0), b = null != a ? new Uint8Array(a, b) : null, this.uploadFromTypedArray(b)) }, uploadFromTypedArray: function (a) { var b = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); fc.texImage2D(b, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, b.UNSIGNED_BYTE, a); this.__context.__bindGLTexture2D(null) }, __setSamplerState: function (a) { if (hc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; if (0 != cc.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1 } a > cc.__glMaxTextureMaxAnisotropy && (a = cc.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_2D, cc.__glTextureMaxAnisotropy, a) } return !0 } return !1 }, __class__: bk }); var gi = function (a, b, c, d, e, g) { hc.call(this, a); this.__width = b; this.__height = c; this.__optimizeForRenderToTexture = e; this.__streamingLevels = g; a = this.__context.gl; this.__textureTarget = a.TEXTURE_2D; this.__context.__bindGLTexture2D(this.__textureID); fc.texImage2D(a, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, a.UNSIGNED_BYTE, null); this.__context.__bindGLTexture2D(null); e && this.__getGLFramebuffer(!0, 0, 0) }; k["openfl.display3D.textures.Texture"] = gi; gi.__name__ = "openfl.display3D.textures.Texture"; gi.__super__ = hc; gi.prototype = u(hc.prototype, { uploadCompressedTextureFromByteArray: function (a, b, c) { null == c && (c = !1); var d = this; c ? Ve.delay(function () { d.__uploadCompressedTextureFromByteArray(a, b); var c = new oa("textureReady"); d.dispatchEvent(c) }, 1) : this.__uploadCompressedTextureFromByteArray(a, b) }, uploadFromBitmapData: function (a, b, c) { null == b && (b = 0); if (null != a) { c = this.__width >> b; var d = this.__height >> b; if (0 != c || 0 != d) { 0 == c && (c = 1); 0 == d && (d = 1); if (a.width != c || a.height != d) c = new ka(c, d, !0, 0), c.draw(a), a = c; a = this.__getImage(a); if (null != a) if (0 == b && null != a.buffer && null == a.buffer.data && null != a.buffer.get_src()) { var e = this.__context.gl; c = this.__width >> b; d = this.__height >> b; if (0 != c || 0 != d) this.__context.__bindGLTexture2D(this.__textureID), fc.texImage2D(e, this.__textureTarget, b, this.__internalFormat, this.__format, e.UNSIGNED_BYTE, a.buffer.get_src()), this.__context.__bindGLTexture2D(null) } else this.uploadFromTypedArray(a.get_data(), b) } } }, uploadFromByteArray: function (a, b, c) { null == c && (c = 0); 0 == b ? this.uploadFromTypedArray(a.b, c) : (a = Fb.toArrayBuffer(a), null == b && (b = 0), b = null != a ? new Uint8Array(a, b) : null, this.uploadFromTypedArray(b, c)) }, uploadFromTypedArray: function (a, b) { null == b && (b = 0); if (null != a) { var c = this.__context.gl, d = this.__width >> b, e = this.__height >> b; if (0 != d || 0 != e) 0 == d && (d = 1), 0 == e && (e = 1), this.__context.__bindGLTexture2D(this.__textureID), fc.texImage2D(c, this.__textureTarget, b, this.__internalFormat, d, e, 0, this.__format, c.UNSIGNED_BYTE, a), this.__context.__bindGLTexture2D(null) } }, __setSamplerState: function (a) { if (hc.prototype.__setSamplerState.call(this, a)) { var b = this.__context.gl; 2 == a.mipfilter || this.__samplerState.mipmapGenerated || (b.generateMipmap(b.TEXTURE_2D), this.__samplerState.mipmapGenerated = !0); if (0 != cc.__glMaxTextureMaxAnisotropy) { switch (a.filter) { case 0: a = 16; break; case 1: a = 2; break; case 2: a = 4; break; case 3: a = 8; break; default: a = 1 } a > cc.__glMaxTextureMaxAnisotropy && (a = cc.__glMaxTextureMaxAnisotropy); b.texParameterf(b.TEXTURE_2D, cc.__glTextureMaxAnisotropy, a) } return !0 } return !1 }, __uploadCompressedTextureFromByteArray: function (a, b) { var c = this; a = new ek(a, b); var d = a.readHeader(this.__width, this.__height, !1), e = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); var g = !1; a.readTextures(function (a, b, f, h, l, n, k) { a = d ? hc.__compressedFormatsAlpha.h[f] : hc.__compressedFormats.h[f]; if (0 != a) if (g = !0, c.__format = a, c.__internalFormat = a, d && 2 == f) { n = n / 2 | 0; var r = f = null, m = null, p = null, v = k.b.buffer, t = 0; null == t && (t = 0); f = null != f ? new Uint8Array(f) : null != r ? new Uint8Array(r) : null != m ? new Uint8Array(m.__array) : null != p ? new Uint8Array(p) : null != v ? null == n ? new Uint8Array(v, t) : new Uint8Array(v, t, n) : null; fc.compressedTexImage2D(e, c.__textureTarget, b, c.__internalFormat, h, l, 0, f); var q = new gi(c.__context, c.__width, c.__height, 3, c.__optimizeForRenderToTexture, c.__streamingLevels); q.__format = a; q.__internalFormat = a; c.__context.__bindGLTexture2D(q.__textureID); p = m = r = f = null; v = k.b.buffer; t = n; null == t && (t = 0); f = null != f ? new Uint8Array(f) : null != r ? new Uint8Array(r) : null != m ? new Uint8Array(m.__array) : null != p ? new Uint8Array(p) : null != v ? null == n ? new Uint8Array(v, t) : new Uint8Array(v, t, n) : null; fc.compressedTexImage2D(e, q.__textureTarget, b, q.__internalFormat, h, l, 0, f); c.__alphaTexture = q } else p = m = r = f = null, v = k.b.buffer, t = 0, null == t && (t = 0), f = null != f ? new Uint8Array(f) : null != r ? new Uint8Array(r) : null != m ? new Uint8Array(m.__array) : null != p ? new Uint8Array(p) : null != v ? null == n ? new Uint8Array(v, t) : new Uint8Array(v, t, n) : null, fc.compressedTexImage2D(e, c.__textureTarget, b, c.__internalFormat, h, l, 0, f) }); g || (a = this.__width * this.__height * 4, a = null != a ? new Uint8Array(a) : null, fc.texImage2D(e, this.__textureTarget, 0, this.__internalFormat, this.__width, this.__height, 0, this.__format, e.UNSIGNED_BYTE, a)); this.__context.__bindGLTexture2D(null) }, __class__: gi }); var en = function (a) { hc.call(this, a); this.__textureTarget = this.__context.gl.TEXTURE_2D }; k["openfl.display3D.textures.VideoTexture"] = en; en.__name__ = "openfl.display3D.textures.VideoTexture"; en.__super__ = hc; en.prototype = u(hc.prototype, { videoHeight: null, videoWidth: null, __cacheTime: null, __netStream: null, attachNetStream: function (a) { var b = this; null != this.__netStream && this.__netStream.__video.removeEventListener("canplay", q(this, this.__onCanPlay), !1); this.__cacheTime = -1; this.__netStream = a; null != this.__netStream && (2 <= this.__netStream.__video.readyState ? Ve.delay(function () { b.__textureReady() }, 0) : this.__netStream.__video.addEventListener("canplay", q(this, this.__onCanPlay), !1)) }, dispose: function () { null != this.__netStream && null != this.__netStream.__video && this.__netStream.__video.removeEventListener("timeupdate", q(this, this.__onTimeUpdate)); hc.prototype.dispose.call(this) }, __onCanPlay: function (a) { this.__netStream.__video.addEventListener("timeupdate", q(this, this.__onTimeUpdate)); this.__textureReady() }, __onTimeUpdate: function (a) { null != this.__netStream && this.__netStream.__video.currentTime != this.__cacheTime && 2 <= this.__netStream.__video.readyState && this.__textureReady() }, __getTexture: function () { if (this.__netStream.__video.currentTime != this.__cacheTime && 2 <= this.__netStream.__video.readyState) { var a = this.__context.gl; this.__context.__bindGLTexture2D(this.__textureID); fc.texImage2D(a, a.TEXTURE_2D, 0, a.RGBA, a.RGBA, a.UNSIGNED_BYTE, this.__netStream.__video); this.__cacheTime = this.__netStream.__video.currentTime } return this.__textureID }, __textureReady: function () { this.videoWidth = this.__netStream.__video.videoWidth; this.videoHeight = this.__netStream.__video.videoHeight; var a = new oa("textureReady"); this.dispatchEvent(a) }, __class__: en }); var id = function (a, b) { null == b && (b = 0); null == a && (a = ""); this.message = a; this.errorID = b; this.name = "Error" }; k["openfl.errors.Error"] = id; id.__name__ = "openfl.errors.Error"; id.prototype = { errorID: null, message: null, name: null, getStackTrace: function () { return pf.toString(pf.exceptionStack()) }, toString: function () { return null != this.message ? this.message : "Error" }, __class__: id }; var oi = function (a) { null == a && (a = ""); id.call(this, a); this.name = "ArgumentError" }; k["openfl.errors.ArgumentError"] = oi; oi.__name__ = "openfl.errors.ArgumentError"; oi.__super__ = id; oi.prototype = u(id.prototype, {__class__: oi}); var aj = function (a) { null == a && (a = ""); id.call(this, a); this.name = "IOError" }; k["openfl.errors.IOError"] = aj; aj.__name__ = "openfl.errors.IOError"; aj.__super__ = id; aj.prototype = u(id.prototype, {__class__: aj}); var hh = function (a, b) { aj.call(this, "End of file was encountered"); this.name = "EOFError"; this.errorID = 2030 }; k["openfl.errors.EOFError"] = hh; hh.__name__ = "openfl.errors.EOFError"; hh.__super__ = aj; hh.prototype = u(aj.prototype, {__class__: hh}); var pd = function (a) { null == a && (a = ""); id.call(this, a, 0); this.name = "IllegalOperationError" }; k["openfl.errors.IllegalOperationError"] = pd; pd.__name__ = "openfl.errors.IllegalOperationError"; pd.__super__ = id; pd.prototype = u(id.prototype, {__class__: pd}); var Jh = function (a) { null == a && (a = ""); id.call(this, a, 0); this.name = "RangeError" }; k["openfl.errors.RangeError"] = Jh; Jh.__name__ = "openfl.errors.RangeError"; Jh.__super__ = id; Jh.prototype = u(id.prototype, {__class__: Jh}); var fp = function (a) { null == a && (a = ""); id.call(this, a, 0); this.name = "SecurityError" }; k["openfl.errors.SecurityError"] = fp; fp.__name__ = "openfl.errors.SecurityError"; fp.__super__ = id; fp.prototype = u(id.prototype, {__class__: fp}); var nj = function (a) { null == a && (a = ""); id.call(this, a, 0); this.name = "TypeError" }; k["openfl.errors.TypeError"] = nj; nj.__name__ = "openfl.errors.TypeError"; nj.__super__ = id; nj.prototype = u(id.prototype, {__class__: nj}); var ih = function (a, b, c, d) { null == d && (d = !1); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.activating = d }; k["openfl.events.ActivityEvent"] = ih; ih.__name__ = "openfl.events.ActivityEvent"; ih.__super__ = oa; ih.prototype = u(oa.prototype, { activating: null, clone: function () { var a = new ih(this.type, this.bubbles, this.cancelable, this.activating); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("ActivityEvent", ["type", "bubbles", "cancelable", "activating"]) }, __init: function () { oa.prototype.__init.call(this); this.activating = !1 }, __class__: ih }); var kf = function (a, b, c, d) { null == d && (d = ""); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.text = d }; k["openfl.events.TextEvent"] = kf; kf.__name__ = "openfl.events.TextEvent"; kf.__super__ = oa; kf.prototype = u(oa.prototype, { text: null, clone: function () { var a = new kf(this.type, this.bubbles, this.cancelable, this.text); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("TextEvent", ["type", "bubbles", "cancelable", "text"]) }, __init: function () { oa.prototype.__init.call(this); this.text = "" }, __class__: kf }); var Ze = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = ""); null == c && (c = !1); null == b && (b = !1); kf.call(this, a, b, c, d); this.errorID = e }; k["openfl.events.ErrorEvent"] = Ze; Ze.__name__ = "openfl.events.ErrorEvent"; Ze.__super__ = kf; Ze.prototype = u(kf.prototype, { errorID: null, clone: function () { var a = new Ze(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("ErrorEvent", ["type", "bubbles", "cancelable", "text", "errorID"]) }, __init: function () { kf.prototype.__init.call(this); this.errorID = 0 }, __class__: Ze }); var mj = function (a) { this.active = !1; this.reset(a) }; k["openfl.events._EventDispatcher.DispatchIterator"] = mj; mj.__name__ = "openfl.events._EventDispatcher.DispatchIterator"; mj.prototype = { active: null, index: null, isCopy: null, list: null, copy: function () { this.isCopy || (this.list = this.list.slice(), this.isCopy = !0) }, hasNext: function () { return this.index < this.list.length }, next: function () { return this.list[this.index++] }, remove: function (a, b) { if (this.active) if (this.isCopy) { b = this.index; for (var c = this.list.length; b < c;) { var d = b++; if (this.list[d] == a) { this.list.splice(d, 1); break } } } else b < this.index && this.index-- }, reset: function (a) { this.list = a; this.isCopy = !1; this.index = 0 }, start: function () { this.active = !0 }, stop: function () { this.active = !1 }, __class__: mj }; var lj = function (a, b, c) { this.callback = a; this.useCapture = b; this.priority = c }; k["openfl.events._EventDispatcher.Listener"] = lj; lj.__name__ = "openfl.events._EventDispatcher.Listener"; lj.prototype = { callback: null, priority: null, useCapture: null, match: function (a, b) { return V.compareMethods(this.callback, a) ? this.useCapture == b : !1 }, __class__: lj }; var bg = function (a, b, c, d, e, g) { null == g && (g = 0); null == e && (e = !1); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.keyCode = g; this.shiftKey = e; this.relatedObject = d }; k["openfl.events.FocusEvent"] = bg; bg.__name__ = "openfl.events.FocusEvent"; bg.__super__ = oa; bg.prototype = u(oa.prototype, { keyCode: null, relatedObject: null, shiftKey: null, clone: function () { var a = new bg(this.type, this.bubbles, this.cancelable, this.relatedObject, this.shiftKey, this.keyCode); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("FocusEvent", "type bubbles cancelable relatedObject shiftKey keyCode".split(" ")) }, __init: function () { oa.prototype.__init.call(this); this.keyCode = 0; this.shiftKey = !1; this.relatedObject = null }, __class__: bg }); var gh = function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = !1); null == c && (c = !1); null == b && (b = !1); ih.call(this, a, b, c); this.fullScreen = d; this.interactive = e }; k["openfl.events.FullScreenEvent"] = gh; gh.__name__ = "openfl.events.FullScreenEvent"; gh.__super__ = ih; gh.prototype = u(ih.prototype, { fullScreen: null, interactive: null, clone: function () { var a = new gh(this.type, this.bubbles, this.cancelable, this.fullScreen, this.interactive); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("FullscreenEvent", ["type", "bubbles", "cancelable", "fullscreen", "interactive"]) }, __init: function () { ih.prototype.__init.call(this); this.interactive = this.fullScreen = !1 }, __class__: gh }); var Jg = function (a, b, c, d) { null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.device = d }; k["openfl.events.GameInputEvent"] = Jg; Jg.__name__ = "openfl.events.GameInputEvent"; Jg.__super__ = oa; Jg.prototype = u(oa.prototype, { device: null, clone: function () { var a = new Jg(this.type, this.bubbles, this.cancelable, this.device); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("GameInputEvent", ["type", "bubbles", "cancelable", "device"]) }, __init: function () { oa.prototype.__init.call(this); this.device = null }, __class__: Jg }); var ii = function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); this.status = d; this.redirected = e; oa.call(this, a, b, c) }; k["openfl.events.HTTPStatusEvent"] = ii; ii.__name__ = "openfl.events.HTTPStatusEvent"; ii.__super__ = oa; ii.prototype = u(oa.prototype, { redirected: null, responseHeaders: null, responseURL: null, status: null, clone: function () { var a = new ii(this.type, this.bubbles, this.cancelable, this.status, this.redirected); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("HTTPStatusEvent", ["type", "bubbles", "cancelable", "status", "redirected"]) }, __init: function () { oa.prototype.__init.call(this); this.status = 0; this.redirected = !1 }, __class__: ii }); var sg = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = ""); null == c && (c = !1); null == b && (b = !0); Ze.call(this, a, b, c, d, e) }; k["openfl.events.IOErrorEvent"] = sg; sg.__name__ = "openfl.events.IOErrorEvent"; sg.__super__ = Ze; sg.prototype = u(Ze.prototype, { clone: function () { var a = new sg(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("IOErrorEvent", ["type", "bubbles", "cancelable", "text", "errorID"]) }, __class__: sg }); var ci = function (a, b, c, d, e, g, f, h, p, m, l) { null == l && (l = !1); null == m && (m = !1); null == p && (p = !1); null == h && (h = !1); null == f && (f = !1); null == e && (e = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.charCode = d; this.keyCode = e; this.keyLocation = null != g ? g : 0; this.ctrlKey = f; this.altKey = h; this.shiftKey = p; this.controlKey = m; this.commandKey = l }; k["openfl.events.KeyboardEvent"] = ci; ci.__name__ = "openfl.events.KeyboardEvent"; ci.__super__ = oa; ci.prototype = u(oa.prototype, { altKey: null, charCode: null, commandKey: null, controlKey: null, ctrlKey: null, keyCode: null, keyLocation: null, shiftKey: null, clone: function () { var a = new ci(this.type, this.bubbles, this.cancelable, this.charCode, this.keyCode, this.keyLocation, this.ctrlKey, this.altKey, this.shiftKey, this.controlKey, this.commandKey); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("KeyboardEvent", "type bubbles cancelable charCode keyCode keyLocation ctrlKey altKey shiftKey".split(" ")) }, __init: function () { oa.prototype.__init.call(this); this.keyLocation = this.keyCode = this.charCode = 0; this.commandKey = this.controlKey = this.shiftKey = this.altKey = this.ctrlKey = !1 }, __class__: ci }); var Qb = function (a, b, c, d, e, g, f, h, l, m, k, n, t) { null == t && (t = 0); null == n && (n = !1); null == k && (k = 0); null == m && (m = !1); null == l && (l = !1); null == h && (h = !1); null == f && (f = !1); null == e && (e = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.shiftKey = l; this.altKey = h; this.ctrlKey = f; this.bubbles = b; this.relatedObject = g; this.delta = k; this.localX = d; this.localY = e; this.buttonDown = m; this.commandKey = n; this.clickCount = t; this.isRelatedObjectInaccessible = !1; this.stageY = this.stageX = NaN }; k["openfl.events.MouseEvent"] = Qb; Qb.__name__ = "openfl.events.MouseEvent"; Qb.__create = function (a, b, c, d, e, g, f) { null == f && (f = 0); a = new Qb(a, !0, !1, e.x, e.y, null, Qb.__ctrlKey, Qb.__altKey, Qb.__shiftKey, Qb.__buttonDown, f, Qb.__commandKey); a.stageX = c; a.stageY = d; a.target = g; return a }; Qb.__super__ = oa; Qb.prototype = u(oa.prototype, { altKey: null, buttonDown: null, commandKey: null, clickCount: null, ctrlKey: null, delta: null, isRelatedObjectInaccessible: null, localX: null, localY: null, relatedObject: null, shiftKey: null, stageX: null, stageY: null, clone: function () { var a = new Qb(this.type, this.bubbles, this.cancelable, this.localX, this.localY, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.buttonDown, this.delta, this.commandKey, this.clickCount); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("MouseEvent", "type bubbles cancelable localX localY relatedObject ctrlKey altKey shiftKey buttonDown delta".split(" ")) }, updateAfterEvent: function () { }, __init: function () { oa.prototype.__init.call(this); this.bubbles = this.ctrlKey = this.altKey = this.shiftKey = !1; this.relatedObject = null; this.localY = this.localX = this.delta = 0; this.commandKey = this.buttonDown = !1; this.clickCount = 0; this.isRelatedObjectInaccessible = !1; this.stageY = this.stageX = NaN }, __class__: Qb }); var ji = function (a, b, c, d) { null == c && (c = !1); null == b && (b = !1); this.info = d; oa.call(this, a, b, c) }; k["openfl.events.NetStatusEvent"] = ji; ji.__name__ = "openfl.events.NetStatusEvent"; ji.__super__ = oa; ji.prototype = u(oa.prototype, { info: null, clone: function () { var a = new ji(this.type, this.bubbles, this.cancelable, this.info); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("NetStatusEvent", ["type", "bubbles", "cancelable", "info"]) }, __init: function () { oa.prototype.__init.call(this); this.info = null }, __class__: ji }); var Hg = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = 0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.bytesLoaded = d; this.bytesTotal = e }; k["openfl.events.ProgressEvent"] = Hg; Hg.__name__ = "openfl.events.ProgressEvent"; Hg.__super__ = oa; Hg.prototype = u(oa.prototype, { bytesLoaded: null, bytesTotal: null, clone: function () { var a = new Hg(this.type, this.bubbles, this.cancelable, this.bytesLoaded, this.bytesTotal); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("ProgressEvent", ["type", "bubbles", "cancelable", "bytesLoaded", "bytesTotal"]) }, __init: function () { oa.prototype.__init.call(this); this.bytesTotal = this.bytesLoaded = 0 }, __class__: Hg }); var wg = function (a, b, c, d, e, g) { null == g && (g = !0); null == c && (c = !1); null == b && (b = !1); oa.call(this, a, b, c); this.objectMatrix = d; this.objectColorTransform = e; this.allowSmoothing = g }; k["openfl.events.RenderEvent"] = wg; wg.__name__ = "openfl.events.RenderEvent"; wg.__super__ = oa; wg.prototype = u(oa.prototype, { allowSmoothing: null, objectColorTransform: null, objectMatrix: null, renderer: null, clone: function () { var a = new wg(this.type, this.bubbles, this.cancelable, this.objectMatrix.clone(), this.objectColorTransform.__clone(), this.allowSmoothing); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("RenderEvent", ["type", "bubbles", "cancelable"]) }, __init: function () { oa.prototype.__init.call(this); this.objectColorTransform = this.objectMatrix = null; this.allowSmoothing = !1; this.renderer = null }, __class__: wg }); var bj = function (a, b, c, d, e) { null == e && (e = 0); null == d && (d = ""); null == c && (c = !1); null == b && (b = !1); Ze.call(this, a, b, c, d, e) }; k["openfl.events.SecurityErrorEvent"] = bj; bj.__name__ = "openfl.events.SecurityErrorEvent"; bj.__super__ = Ze; bj.prototype = u(Ze.prototype, { clone: function () { var a = new bj(this.type, this.bubbles, this.cancelable, this.text, this.errorID); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("SecurityErrorEvent", ["type", "bubbles", "cancelable", "text", "errorID"]) }, __class__: bj }); var $d = function (a, b, c, d, e, g, f, h, l, m, k, n, t, q, w, u, x, A, N, z) { null == u && (u = !1); null == w && (w = !1); null == q && (q = !1); null == t && (t = !1); null == n && (n = !1); null == m && (m = 0); null == l && (l = 0); null == h && (h = 0); null == f && (f = 0); null == g && (g = 0); null == e && (e = !1); null == d && (d = 0); null == c && (c = !1); null == b && (b = !0); oa.call(this, a, b, c); this.touchPointID = d; this.isPrimaryTouchPoint = e; this.localX = g; this.localY = f; this.sizeX = h; this.sizeY = l; this.pressure = m; this.relatedObject = k; this.ctrlKey = n; this.altKey = t; this.shiftKey = q; this.commandKey = w; this.controlKey = u; this.stageY = this.stageX = NaN }; k["openfl.events.TouchEvent"] = $d; $d.__name__ = "openfl.events.TouchEvent"; $d.__create = function (a, b, c, d, e, g) { a = new $d(a, !0, !1, 0, !0, e.x, e.y, 1, 1, 1); a.stageX = c; a.stageY = d; a.target = g; return a }; $d.__super__ = oa; $d.prototype = u(oa.prototype, { altKey: null, commandKey: null, controlKey: null, ctrlKey: null, delta: null, isPrimaryTouchPoint: null, localX: null, localY: null, pressure: null, relatedObject: null, shiftKey: null, sizeX: null, sizeY: null, stageX: null, stageY: null, touchPointID: null, clone: function () { var a = new $d(this.type, this.bubbles, this.cancelable, this.touchPointID, this.isPrimaryTouchPoint, this.localX, this.localY, this.sizeX, this.sizeY, this.pressure, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.commandKey, this.controlKey); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("TouchEvent", "type bubbles cancelable touchPointID isPrimaryTouchPoint localX localY sizeX sizeY pressure relatedObject ctrlKey altKey shiftKey commandKey controlKey".split(" ")) }, updateAfterEvent: function () { }, __init: function () { oa.prototype.__init.call(this); this.touchPointID = 0; this.isPrimaryTouchPoint = !1; this.pressure = this.sizeY = this.sizeX = this.localY = this.localX = 0; this.relatedObject = null; this.controlKey = this.commandKey = this.shiftKey = this.altKey = this.ctrlKey = !1; this.stageY = this.stageX = NaN }, __class__: $d }); var Vi = function (a, b, c, d) { null == c && (c = !0); null == b && (b = !0); Ze.call(this, a, b, c); this.error = d }; k["openfl.events.UncaughtErrorEvent"] = Vi; Vi.__name__ = "openfl.events.UncaughtErrorEvent"; Vi.__super__ = Ze; Vi.prototype = u(Ze.prototype, { error: null, clone: function () { var a = new Vi(this.type, this.bubbles, this.cancelable, this.error); a.target = this.target; a.currentTarget = this.currentTarget; a.eventPhase = this.eventPhase; return a }, toString: function () { return this.__formatToString("UncaughtErrorEvent", ["type", "bubbles", "cancelable", "error"]) }, __init: function () { Ze.prototype.__init.call(this); this.error = null }, __class__: Vi }); var Tm = function () { jb.call(this) }; k["openfl.events.UncaughtErrorEvents"] = Tm; Tm.__name__ = "openfl.events.UncaughtErrorEvents"; Tm.__super__ = jb; Tm.prototype = u(jb.prototype, {__class__: Tm}); var cj = function () { this.__leftExtension = this.__bottomExtension = 0; this.__needSecondBitmapData = !0; this.__numShaderPasses = 0; this.__preserveObject = !1; this.__rightExtension = 0; this.__shaderBlendMode = 10; this.__topExtension = 0; this.__smooth = !0 }; k["openfl.filters.BitmapFilter"] = cj; cj.__name__ = "openfl.filters.BitmapFilter"; cj.prototype = { __bottomExtension: null, __leftExtension: null, __needSecondBitmapData: null, __numShaderPasses: null, __preserveObject: null, __renderDirty: null, __rightExtension: null, __shaderBlendMode: null, __smooth: null, __topExtension: null, clone: function () { return new cj }, __applyFilter: function (a, b, c, d) { return b }, __initShader: function (a, b, c) { return null }, __class__: cj }; var dj = function (a) { null == this.__glFragmentSource && (this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\n\t\tuniform sampler2D openfl_Texture;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\tgl_FragColor = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t}"); null == this.__glVertexSource && (this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\t\t}"); jf.call(this, a); this.__isGenerated = !0; this.__initGL() }; k["openfl.filters.BitmapFilterShader"] = dj; dj.__name__ = "openfl.filters.BitmapFilterShader"; dj.__super__ = jf; dj.prototype = u(jf.prototype, { openfl_Position: null, openfl_TextureCoord: null, openfl_Matrix: null, openfl_TextureSize: null, openfl_Texture: null, __class__: dj }); var fk = function () { null == this.__glFragmentSource && (this.__glFragmentSource = "varying vec2 openfl_TextureCoordv;\n\t\tuniform sampler2D openfl_Texture;\n\n\t\tuniform mat4 uMultipliers;\n\t\tuniform vec4 uOffsets;\n\n\t\tvoid main(void) {\n\n\t\t\tvec4 color = texture2D (openfl_Texture, openfl_TextureCoordv);\n\n\t\t\tif (color.a == 0.0) {\n\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\n\t\t\t} else {\n\n\t\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\t\t\t\tcolor = uOffsets + color * uMultipliers;\n\n\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a, color.a);\n\n\t\t\t}\n\n\t\t}"); null == this.__glVertexSource && (this.__glVertexSource = "attribute vec4 openfl_Position;\n\t\tattribute vec2 openfl_TextureCoord;\n\n\t\tvarying vec2 openfl_TextureCoordv;\n\n\t\tuniform mat4 openfl_Matrix;\n\t\tuniform vec2 openfl_TextureSize;\n\n\n\t\tvoid main(void) {\n\n\t\t\topenfl_TextureCoordv = openfl_TextureCoord;\n\n\t\tgl_Position = openfl_Matrix * openfl_Position;\n\n\n\t\t}"); dj.call(this); this.uMultipliers.value = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; this.uOffsets.value = [0, 0, 0, 0]; this.__isGenerated = !0; this.__initGL() }; k["openfl.filters._ColorMatrixFilter.ColorMatrixShader"] = fk; fk.__name__ = "openfl.filters._ColorMatrixFilter.ColorMatrixShader"; fk.__super__ = dj; fk.prototype = u(dj.prototype, { init: function (a) { var b = this.uMultipliers.value, c = this.uOffsets.value; b[0] = a[0]; b[1] = a[1]; b[2] = a[2]; b[3] = a[3]; b[4] = a[5]; b[5] = a[6]; b[6] = a[7]; b[7] = a[8]; b[8] = a[10]; b[9] = a[11]; b[10] = a[12]; b[11] = a[13]; b[12] = a[15]; b[13] = a[16]; b[14] = a[17]; b[15] = a[18]; c[0] = a[4] / 255; c[1] = a[9] / 255; c[2] = a[14] / 255; c[3] = a[19] / 255 }, uMultipliers: null, uOffsets: null, __class__: fk }); var jg = function (a) { cj.call(this); this.set_matrix(a); this.__numShaderPasses = 1; this.__needSecondBitmapData = !1 }; k["openfl.filters.ColorMatrixFilter"] = jg; jg.__name__ = "openfl.filters.ColorMatrixFilter"; jg.__super__ = cj; jg.prototype = u(cj.prototype, { __matrix: null, clone: function () { return new jg(this.__matrix) }, __applyFilter: function (a, b, c, d) { var e = b.image, g = a.image; va.convertToData(e); va.convertToData(g); var f = e.get_data(), h = g.get_data(), l = d.x - c.x | 0; d = d.y - c.y | 0; b = 4 * b.width; var m = 4 * a.width, k = e.buffer.format, n = g.buffer.format; e = e.buffer.premultiplied; g = g.buffer.premultiplied; for (var t, q = 0, w, u, x = c.y | 0, A = c.height | 0; x < A;) for (var N = x++, z = c.x | 0, J = c.width | 0; z < J;) { u = z++; w = N * b + 4 * u; u = (N + l) * m + 4 * (u + d); var B = k, ma = e; null == ma && (ma = !1); null == B && (B = 0); switch (B) { case 0: t = (f[w] & 255) << 24 | (f[w + 1] & 255) << 16 | (f[w + 2] & 255) << 8 | f[w + 3] & 255; break; case 1: t = (f[w + 1] & 255) << 24 | (f[w + 2] & 255) << 16 | (f[w + 3] & 255) << 8 | f[w] & 255; break; case 2: t = (f[w + 2] & 255) << 24 | (f[w + 1] & 255) << 16 | (f[w] & 255) << 8 | f[w + 3] & 255 } ma && 0 != (t & 255) && 255 != (t & 255) && (D.unmult = 255 / (t & 255), t = (D.__clamp[Math.round((t >>> 24 & 255) * D.unmult)] & 255) << 24 | (D.__clamp[Math.round((t >>> 16 & 255) * D.unmult)] & 255) << 16 | (D.__clamp[Math.round((t >>> 8 & 255) * D.unmult)] & 255) << 8 | t & 255); 0 == (t & 255) ? q = 0 : (q = ((Math.max(0, Math.min(this.__matrix[0] * (t >>> 24 & 255) + this.__matrix[1] * (t >>> 16 & 255) + this.__matrix[2] * (t >>> 8 & 255) + this.__matrix[3] * (t & 255) + this.__matrix[4], 255)) | 0) & 255) << 24 | (q >>> 16 & 255) << 16 | (q >>> 8 & 255) << 8 | q & 255, q = (q >>> 24 & 255) << 24 | ((Math.max(0, Math.min(this.__matrix[5] * (t >>> 24 & 255) + this.__matrix[6] * (t >>> 16 & 255) + this.__matrix[7] * (t >>> 8 & 255) + this.__matrix[8] * (t & 255) + this.__matrix[9], 255)) | 0) & 255) << 16 | (q >>> 8 & 255) << 8 | q & 255, q = (q >>> 24 & 255) << 24 | (q >>> 16 & 255) << 16 | ((Math.max(0, Math.min(this.__matrix[10] * (t >>> 24 & 255) + this.__matrix[11] * (t >>> 16 & 255) + this.__matrix[12] * (t >>> 8 & 255) + this.__matrix[13] * (t & 255) + this.__matrix[14], 255)) | 0) & 255) << 8 | q & 255, q = (q >>> 24 & 255) << 24 | (q >>> 16 & 255) << 16 | (q >>> 8 & 255) << 8 | (Math.max(0, Math.min(this.__matrix[15] * (t >>> 24 & 255) + this.__matrix[16] * (t >>> 16 & 255) + this.__matrix[17] * (t >>> 8 & 255) + this.__matrix[18] * (t & 255) + this.__matrix[19], 255)) | 0) & 255); w = n; B = g; null == B && (B = !1); null == w && (w = 0); B && (0 == (q & 255) ? 0 != q && (q = 0) : 255 != (q & 255) && (D.a16 = D.__alpha16[q & 255], q = ((q >>> 24 & 255) * D.a16 >> 16 & 255) << 24 | ((q >>> 16 & 255) * D.a16 >> 16 & 255) << 16 | ((q >>> 8 & 255) * D.a16 >> 16 & 255) << 8 | q & 255)); switch (w) { case 0: h[u] = q >>> 24 & 255; h[u + 1] = q >>> 16 & 255; h[u + 2] = q >>> 8 & 255; h[u + 3] = q & 255; break; case 1: h[u] = q & 255; h[u + 1] = q >>> 24 & 255; h[u + 2] = q >>> 16 & 255; h[u + 3] = q >>> 8 & 255; break; case 2: h[u] = q >>> 8 & 255, h[u + 1] = q >>> 16 & 255, h[u + 2] = q >>> 24 & 255, h[u + 3] = q & 255 } } a.image.dirty = !0; return a }, __initShader: function (a, b, c) { jg.__colorMatrixShader.init(this.get_matrix()); return jg.__colorMatrixShader }, get_matrix: function () { return this.__matrix }, set_matrix: function (a) { null == a && (a = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]); return this.__matrix = a }, __class__: jg, __properties__: {set_matrix: "set_matrix", get_matrix: "get_matrix"} }); var he = function (a) { null != a && 16 == a.get_length() ? this.rawData = a.concat(null) : this.rawData = Eb.toFloatVector(null, null, null, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]) }; k["openfl.geom.Matrix3D"] = he; he.__name__ = "openfl.geom.Matrix3D"; he.create2D = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 1); var e = d * Math.PI / 180; d = Math.cos(e); e = Math.sin(e); return new he(Eb.toFloatVector(null, null, null, [d * c, -e * c, 0, 0, e * c, d * c, 0, 0, 0, 0, 1, 0, a, b, 0, 1])) }; he.createABCD = function (a, b, c, d, e, g) { return new he(Eb.toFloatVector(null, null, null, [a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, e, g, 0, 1])) }; he.createOrtho = function (a, b, c, d, e, g) { var f = 1 / (b - a), h = 1 / (d - c), l = 1 / (g - e); return new he(Eb.toFloatVector(null, null, null, [2 * f, 0, 0, 0, 0, 2 * h, 0, 0, 0, 0, -2 * l, 0, -(a + b) * f, -(c + d) * h, -(e + g) * l, 1])) }; he.interpolate = function (a, b, c) { for (var d = new he, e = 0; 16 > e;) { var g = e++; d.rawData.set(g, a.rawData.get(g) + (b.rawData.get(g) - a.rawData.get(g)) * c) } return d }; he.__getAxisRotation = function (a, b, c, d) { var e = new he; a = new td(a, b, c); d = Math.PI / 180 * -d; c = Math.cos(d); d = Math.sin(d); b = 1 - c; e.rawData.set(0, c + a.x * a.x * b); e.rawData.set(5, c + a.y * a.y * b); e.rawData.set(10, c + a.z * a.z * b); c = a.x * a.y * b; var g = a.z * d; e.rawData.set(4, c + g); e.rawData.set(1, c - g); c = a.x * a.z * b; g = a.y * d; e.rawData.set(8, c - g); e.rawData.set(2, c + g); c = a.y * a.z * b; g = a.x * d; e.rawData.set(9, c + g); e.rawData.set(6, c - g); return e }; he.prototype = { rawData: null, append: function (a) { var b = this.rawData.get(0), c = this.rawData.get(4), d = this.rawData.get(8), e = this.rawData.get(12), g = this.rawData.get(1), f = this.rawData.get(5), h = this.rawData.get(9), l = this.rawData.get(13), m = this.rawData.get(2), k = this.rawData.get(6), n = this.rawData.get(10), t = this.rawData.get(14), q = this.rawData.get(3), w = this.rawData.get(7), u = this.rawData.get(11), x = this.rawData.get(15), A = a.rawData.get(0), N = a.rawData.get(4), z = a.rawData.get(8), J = a.rawData.get(12), B = a.rawData.get(1), ma = a.rawData.get(5), C = a.rawData.get(9), D = a.rawData.get(13), K = a.rawData.get(2), G = a.rawData.get(6), F = a.rawData.get(10), I = a.rawData.get(14), y = a.rawData.get(3), E = a.rawData.get(7), L = a.rawData.get(11); a = a.rawData.get(15); this.rawData.set(0, b * A + g * N + m * z + q * J); this.rawData.set(1, b * B + g * ma + m * C + q * D); this.rawData.set(2, b * K + g * G + m * F + q * I); this.rawData.set(3, b * y + g * E + m * L + q * a); this.rawData.set(4, c * A + f * N + k * z + w * J); this.rawData.set(5, c * B + f * ma + k * C + w * D); this.rawData.set(6, c * K + f * G + k * F + w * I); this.rawData.set(7, c * y + f * E + k * L + w * a); this.rawData.set(8, d * A + h * N + n * z + u * J); this.rawData.set(9, d * B + h * ma + n * C + u * D); this.rawData.set(10, d * K + h * G + n * F + u * I); this.rawData.set(11, d * y + h * E + n * L + u * a); this.rawData.set(12, e * A + l * N + t * z + x * J); this.rawData.set(13, e * B + l * ma + t * C + x * D); this.rawData.set(14, e * K + l * G + t * F + x * I); this.rawData.set(15, e * y + l * E + t * L + x * a) }, appendRotation: function (a, b, c) { var d = 0, e = d, g = e; null != c && (g = c.x, e = c.y, d = c.z); c = a * Math.PI / 180; a = Math.cos(c); c = Math.sin(c); var f = b.x, h = b.y; b = b.z; var l = f * f, m = h * h, k = b * b, n = l + m + k; if (0 != n) { var t = Math.sqrt(n); f /= t; h /= t; b /= t; l /= n; m /= n; k /= n } n = 1 - a; t = new he; var q = t.rawData; q.set(0, l + (m + k) * a); q.set(1, f * h * n + b * c); q.set(2, f * b * n - h * c); q.set(4, f * h * n - b * c); q.set(5, m + (l + k) * a); q.set(6, h * b * n + f * c); q.set(8, f * b * n + h * c); q.set(9, h * b * n - f * c); q.set(10, k + (l + m) * a); q.set(12, (g * (m + k) - f * (e * h + d * b)) * n + (e * b - d * h) * c); q.set(13, (e * (l + k) - h * (g * f + d * b)) * n + (d * f - g * b) * c); q.set(14, (d * (l + m) - b * (g * f + e * h)) * n + (g * h - e * f) * c); this.append(t) }, appendScale: function (a, b, c) { this.append(new he(Eb.toFloatVector(null, null, null, [a, 0, 0, 0, 0, b, 0, 0, 0, 0, c, 0, 0, 0, 0, 1]))) }, appendTranslation: function (a, b, c) { var d = this.rawData; d.set(12, d.get(12) + a); d = this.rawData; d.set(13, d.get(13) + b); d = this.rawData; d.set(14, d.get(14) + c) }, clone: function () { return new he(this.rawData.copy()) }, copyColumnFrom: function (a, b) { switch (a) { case 0: this.rawData.set(0, b.x); this.rawData.set(1, b.y); this.rawData.set(2, b.z); this.rawData.set(3, b.w); break; case 1: this.rawData.set(4, b.x); this.rawData.set(5, b.y); this.rawData.set(6, b.z); this.rawData.set(7, b.w); break; case 2: this.rawData.set(8, b.x); this.rawData.set(9, b.y); this.rawData.set(10, b.z); this.rawData.set(11, b.w); break; case 3: this.rawData.set(12, b.x), this.rawData.set(13, b.y), this.rawData.set(14, b.z), this.rawData.set(15, b.w) } }, copyColumnTo: function (a, b) { switch (a) { case 0: b.x = this.rawData.get(0); b.y = this.rawData.get(1); b.z = this.rawData.get(2); b.w = this.rawData.get(3); break; case 1: b.x = this.rawData.get(4); b.y = this.rawData.get(5); b.z = this.rawData.get(6); b.w = this.rawData.get(7); break; case 2: b.x = this.rawData.get(8); b.y = this.rawData.get(9); b.z = this.rawData.get(10); b.w = this.rawData.get(11); break; case 3: b.x = this.rawData.get(12), b.y = this.rawData.get(13), b.z = this.rawData.get(14), b.w = this.rawData.get(15) } }, copyFrom: function (a) { this.rawData = a.rawData.copy() }, copyRawDataFrom: function (a, b, c) { null == c && (c = !1); null == b && (b = 0); c && this.transpose(); for (var d = 0, e = a.get_length() - b; d < e;) { var g = d++; this.rawData.set(g, a.get(g + b)) } c && this.transpose() }, copyRawDataTo: function (a, b, c) { null == c && (c = !1); null == b && (b = 0); c && this.transpose(); for (var d = 0, e = this.rawData.get_length(); d < e;) { var g = d++; a.set(g + b, this.rawData.get(g)) } c && this.transpose() }, copyRowFrom: function (a, b) { switch (a) { case 0: this.rawData.set(0, b.x); this.rawData.set(4, b.y); this.rawData.set(8, b.z); this.rawData.set(12, b.w); break; case 1: this.rawData.set(1, b.x); this.rawData.set(5, b.y); this.rawData.set(9, b.z); this.rawData.set(13, b.w); break; case 2: this.rawData.set(2, b.x); this.rawData.set(6, b.y); this.rawData.set(10, b.z); this.rawData.set(14, b.w); break; case 3: this.rawData.set(3, b.x), this.rawData.set(7, b.y), this.rawData.set(11, b.z), this.rawData.set(15, b.w) } }, copyRowTo: function (a, b) { switch (a) { case 0: b.x = this.rawData.get(0); b.y = this.rawData.get(4); b.z = this.rawData.get(8); b.w = this.rawData.get(12); break; case 1: b.x = this.rawData.get(1); b.y = this.rawData.get(5); b.z = this.rawData.get(9); b.w = this.rawData.get(13); break; case 2: b.x = this.rawData.get(2); b.y = this.rawData.get(6); b.z = this.rawData.get(10); b.w = this.rawData.get(14); break; case 3: b.x = this.rawData.get(3), b.y = this.rawData.get(7), b.z = this.rawData.get(11), b.w = this.rawData.get(15) } }, copyToMatrix3D: function (a) { a.rawData = this.rawData.copy() }, decompose: function (a) { null == a && (a = 1); var b = Eb.toObjectVector(null), c = this.clone().rawData.copy(), d = new td(c.get(12), c.get(13), c.get(14)); c.set(12, 0); c.set(13, 0); c.set(14, 0); var e = new td; e.x = Math.sqrt(c.get(0) * c.get(0) + c.get(1) * c.get(1) + c.get(2) * c.get(2)); e.y = Math.sqrt(c.get(4) * c.get(4) + c.get(5) * c.get(5) + c.get(6) * c.get(6)); e.z = Math.sqrt(c.get(8) * c.get(8) + c.get(9) * c.get(9) + c.get(10) * c.get(10)); 0 > c.get(0) * (c.get(5) * c.get(10) - c.get(6) * c.get(9)) - c.get(1) * (c.get(4) * c.get(10) - c.get(6) * c.get(8)) + c.get(2) * (c.get(4) * c.get(9) - c.get(5) * c.get(8)) && (e.z = -e.z); var g = c; g.set(0, g.get(0) / e.x); g = c; g.set(1, g.get(1) / e.x); g = c; g.set(2, g.get(2) / e.x); g = c; g.set(4, g.get(4) / e.y); g = c; g.set(5, g.get(5) / e.y); g = c; g.set(6, g.get(6) / e.y); g = c; g.set(8, g.get(8) / e.z); g = c; g.set(9, g.get(9) / e.z); g = c; g.set(10, g.get(10) / e.z); g = new td; switch (a) { case 0: g.w = Math.acos((c.get(0) + c.get(5) + c.get(10) - 1) / 2); a = Math.sqrt((c.get(6) - c.get(9)) * (c.get(6) - c.get(9)) + (c.get(8) - c.get(2)) * (c.get(8) - c.get(2)) + (c.get(1) - c.get(4)) * (c.get(1) - c.get(4))); 0 != a ? (g.x = (c.get(6) - c.get(9)) / a, g.y = (c.get(8) - c.get(2)) / a, g.z = (c.get(1) - c.get(4)) / a) : g.x = g.y = g.z = 0; break; case 1: g.y = Math.asin(-c.get(2)); 1 != c.get(2) && -1 != c.get(2) ? (g.x = Math.atan2(c.get(6), c.get(10)), g.z = Math.atan2(c.get(1), c.get(0))) : (g.z = 0, g.x = Math.atan2(c.get(4), c.get(5))); break; case 2: a = c.get(0) + c.get(5) + c.get(10), 0 < a ? (g.w = Math.sqrt(1 + a) / 2, g.x = (c.get(6) - c.get(9)) / (4 * g.w), g.y = (c.get(8) - c.get(2)) / (4 * g.w), g.z = (c.get(1) - c.get(4)) / (4 * g.w)) : c.get(0) > c.get(5) && c.get(0) > c.get(10) ? (g.x = Math.sqrt(1 + c.get(0) - c.get(5) - c.get(10)) / 2, g.w = (c.get(6) - c.get(9)) / (4 * g.x), g.y = (c.get(1) + c.get(4)) / (4 * g.x), g.z = (c.get(8) + c.get(2)) / (4 * g.x)) : c.get(5) > c.get(10) ? (g.y = Math.sqrt(1 + c.get(5) - c.get(0) - c.get(10)) / 2, g.x = (c.get(1) + c.get(4)) / (4 * g.y), g.w = (c.get(8) - c.get(2)) / (4 * g.y), g.z = (c.get(6) + c.get(9)) / (4 * g.y)) : (g.z = Math.sqrt(1 + c.get(10) - c.get(0) - c.get(5)) / 2, g.x = (c.get(8) + c.get(2)) / (4 * g.z), g.y = (c.get(6) + c.get(9)) / (4 * g.z), g.w = (c.get(1) - c.get(4)) / (4 * g.z)) } b.push(d); b.push(g); b.push(e); return b }, deltaTransformVector: function (a) { var b = a.x, c = a.y; a = a.z; return new td(b * this.rawData.get(0) + c * this.rawData.get(4) + a * this.rawData.get(8), b * this.rawData.get(1) + c * this.rawData.get(5) + a * this.rawData.get(9), b * this.rawData.get(2) + c * this.rawData.get(6) + a * this.rawData.get(10), b * this.rawData.get(3) + c * this.rawData.get(7) + a * this.rawData.get(11)) }, identity: function () { this.rawData = Eb.toFloatVector(null, null, null, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]) }, interpolateTo: function (a, b) { for (var c = 0; 16 > c;) { var d = c++; this.rawData.set(d, this.rawData.get(d) + (a.rawData.get(d) - this.rawData.get(d)) * b) } }, invert: function () { var a = this.get_determinant(), b = 1E-11 < Math.abs(a); if (b) { a = 1 / a; var c = this.rawData.get(0), d = this.rawData.get(4), e = this.rawData.get(8), g = this.rawData.get(12), f = this.rawData.get(1), h = this.rawData.get(5), l = this.rawData.get(9), m = this.rawData.get(13), k = this.rawData.get(2), n = this.rawData.get(6), t = this.rawData.get(10), q = this.rawData.get(14), w = this.rawData.get(3), u = this.rawData.get(7), x = this.rawData.get(11), A = this.rawData.get(15); this.rawData.set(0, a * (h * (t * A - q * x) - l * (n * A - q * u) + m * (n * x - t * u))); this.rawData.set(1, -a * (f * (t * A - q * x) - l * (k * A - q * w) + m * (k * x - t * w))); this.rawData.set(2, a * (f * (n * A - q * u) - h * (k * A - q * w) + m * (k * u - n * w))); this.rawData.set(3, -a * (f * (n * x - t * u) - h * (k * x - t * w) + l * (k * u - n * w))); this.rawData.set(4, -a * (d * (t * A - q * x) - e * (n * A - q * u) + g * (n * x - t * u))); this.rawData.set(5, a * (c * (t * A - q * x) - e * (k * A - q * w) + g * (k * x - t * w))); this.rawData.set(6, -a * (c * (n * A - q * u) - d * (k * A - q * w) + g * (k * u - n * w))); this.rawData.set(7, a * (c * (n * x - t * u) - d * (k * x - t * w) + e * (k * u - n * w))); this.rawData.set(8, a * (d * (l * A - m * x) - e * (h * A - m * u) + g * (h * x - l * u))); this.rawData.set(9, -a * (c * (l * A - m * x) - e * (f * A - m * w) + g * (f * x - l * w))); this.rawData.set(10, a * (c * (h * A - m * u) - d * (f * A - m * w) + g * (f * u - h * w))); this.rawData.set(11, -a * (c * (h * x - l * u) - d * (f * x - l * w) + e * (f * u - h * w))); this.rawData.set(12, -a * (d * (l * q - m * t) - e * (h * q - m * n) + g * (h * t - l * n))); this.rawData.set(13, a * (c * (l * q - m * t) - e * (f * q - m * k) + g * (f * t - l * k))); this.rawData.set(14, -a * (c * (h * q - m * n) - d * (f * q - m * k) + g * (f * n - h * k))); this.rawData.set(15, a * (c * (h * t - l * n) - d * (f * t - l * k) + e * (f * n - h * k))) } return b }, pointAt: function (a, b, c) { null == b && (b = new td(0, 0, -1)); null == c && (c = new td(0, -1, 0)); b = b.subtract(a); c = c.clone(); b.normalize(); c.normalize(); var d = b.clone(); d.scaleBy(c.dotProduct(b)); c = c.subtract(d); 0 < c.get_length() ? c.normalize() : c = 0 != b.x ? new td(-b.y, b.x, 0) : new td(1, 0, 0); d = c.crossProduct(b); d.normalize(); this.rawData.set(0, d.x); this.rawData.set(4, d.y); this.rawData.set(8, d.z); this.rawData.set(12, 0); this.rawData.set(1, c.x); this.rawData.set(5, c.y); this.rawData.set(9, c.z); this.rawData.set(13, 0); this.rawData.set(2, b.x); this.rawData.set(6, b.y); this.rawData.set(10, b.z); this.rawData.set(14, 0); this.rawData.set(3, a.x); this.rawData.set(7, a.y); this.rawData.set(11, a.z); this.rawData.set(15, 1) }, prepend: function (a) { var b = a.rawData.get(0), c = a.rawData.get(4), d = a.rawData.get(8), e = a.rawData.get(12), g = a.rawData.get(1), f = a.rawData.get(5), h = a.rawData.get(9), l = a.rawData.get(13), m = a.rawData.get(2), k = a.rawData.get(6), n = a.rawData.get(10), t = a.rawData.get(14), q = a.rawData.get(3), w = a.rawData.get(7), u = a.rawData.get(11); a = a.rawData.get(15); var x = this.rawData.get(0), A = this.rawData.get(4), N = this.rawData.get(8), z = this.rawData.get(12), J = this.rawData.get(1), B = this.rawData.get(5), ma = this.rawData.get(9), C = this.rawData.get(13), D = this.rawData.get(2), K = this.rawData.get(6), G = this.rawData.get(10), F = this.rawData.get(14), I = this.rawData.get(3), y = this.rawData.get(7), E = this.rawData.get(11), L = this.rawData.get(15); this.rawData.set(0, b * x + g * A + m * N + q * z); this.rawData.set(1, b * J + g * B + m * ma + q * C); this.rawData.set(2, b * D + g * K + m * G + q * F); this.rawData.set(3, b * I + g * y + m * E + q * L); this.rawData.set(4, c * x + f * A + k * N + w * z); this.rawData.set(5, c * J + f * B + k * ma + w * C); this.rawData.set(6, c * D + f * K + k * G + w * F); this.rawData.set(7, c * I + f * y + k * E + w * L); this.rawData.set(8, d * x + h * A + n * N + u * z); this.rawData.set(9, d * J + h * B + n * ma + u * C); this.rawData.set(10, d * D + h * K + n * G + u * F); this.rawData.set(11, d * I + h * y + n * E + u * L); this.rawData.set(12, e * x + l * A + t * N + a * z); this.rawData.set(13, e * J + l * B + t * ma + a * C); this.rawData.set(14, e * D + l * K + t * G + a * F); this.rawData.set(15, e * I + l * y + t * E + a * L) }, prependRotation: function (a, b, c) { var d = 0, e = d, g = e; null != c && (g = c.x, e = c.y, d = c.z); c = a * Math.PI / 180; a = Math.cos(c); c = Math.sin(c); var f = b.x, h = b.y; b = b.z; var l = f * f, m = h * h, k = b * b, n = l + m + k; if (0 != n) { var t = Math.sqrt(n); f /= t; h /= t; b /= t; l /= n; m /= n; k /= n } n = 1 - a; t = new he; var q = t.rawData; q.set(0, l + (m + k) * a); q.set(1, f * h * n + b * c); q.set(2, f * b * n - h * c); q.set(4, f * h * n - b * c); q.set(5, m + (l + k) * a); q.set(6, h * b * n + f * c); q.set(8, f * b * n + h * c); q.set(9, h * b * n - f * c); q.set(10, k + (l + m) * a); q.set(12, (g * (m + k) - f * (e * h + d * b)) * n + (e * b - d * h) * c); q.set(13, (e * (l + k) - h * (g * f + d * b)) * n + (d * f - g * b) * c); q.set(14, (d * (l + m) - b * (g * f + e * h)) * n + (g * h - e * f) * c); this.prepend(t) }, prependScale: function (a, b, c) { this.prepend(new he(Eb.toFloatVector(null, null, null, [a, 0, 0, 0, 0, b, 0, 0, 0, 0, c, 0, 0, 0, 0, 1]))) }, prependTranslation: function (a, b, c) { var d = new he; d.set_position(new td(a, b, c)); this.prepend(d) }, recompose: function (a, b) { null == b && (b = 1); if (3 > a.get_length() || 0 == a.get(2).x || 0 == a.get(2).y || 0 == a.get(2).z) return !1; this.identity(); var c = []; c[0] = c[1] = c[2] = a.get(2).x; c[4] = c[5] = c[6] = a.get(2).y; c[8] = c[9] = c[10] = a.get(2).z; if (1 == b) { b = Math.cos(a.get(1).x); var d = Math.cos(a.get(1).y), e = Math.cos(a.get(1).z), g = Math.sin(a.get(1).x), f = Math.sin(a.get(1).y), h = Math.sin(a.get(1).z); this.rawData.set(0, d * e * c[0]); this.rawData.set(1, d * h * c[1]); this.rawData.set(2, -f * c[2]); this.rawData.set(3, 0); this.rawData.set(4, (g * f * e - b * h) * c[4]); this.rawData.set(5, (g * f * h + b * e) * c[5]); this.rawData.set(6, g * d * c[6]); this.rawData.set(7, 0); this.rawData.set(8, (b * f * e + g * h) * c[8]); this.rawData.set(9, (b * f * h - g * e) * c[9]); this.rawData.set(10, b * d * c[10]) } else d = a.get(1).x, e = a.get(1).y, g = a.get(1).z, f = a.get(1).w, 0 == b && (d *= Math.sin(f / 2), e *= Math.sin(f / 2), g *= Math.sin(f / 2), f = Math.cos(f / 2)), this.rawData.set(0, (1 - 2 * e * e - 2 * g * g) * c[0]), this.rawData.set(1, (2 * d * e + 2 * f * g) * c[1]), this.rawData.set(2, (2 * d * g - 2 * f * e) * c[2]), this.rawData.set(3, 0), this.rawData.set(4, (2 * d * e - 2 * f * g) * c[4]), this.rawData.set(5, (1 - 2 * d * d - 2 * g * g) * c[5]), this.rawData.set(6, (2 * e * g + 2 * f * d) * c[6]), this.rawData.set(7, 0), this.rawData.set(8, (2 * d * g + 2 * f * e) * c[8]), this.rawData.set(9, (2 * e * g - 2 * f * d) * c[9]), this.rawData.set(10, (1 - 2 * d * d - 2 * e * e) * c[10]); this.rawData.set(11, 0); this.rawData.set(12, a.get(0).x); this.rawData.set(13, a.get(0).y); this.rawData.set(14, a.get(0).z); this.rawData.set(15, 1); 0 == a.get(2).x && this.rawData.set(0, 1E-15); 0 == a.get(2).y && this.rawData.set(5, 1E-15); 0 == a.get(2).z && this.rawData.set(10, 1E-15); return !(0 == a.get(2).x || 0 == a.get(2).y || 0 == a.get(2).y) }, transformVector: function (a) { var b = a.x, c = a.y; a = a.z; return new td(b * this.rawData.get(0) + c * this.rawData.get(4) + a * this.rawData.get(8) + this.rawData.get(12), b * this.rawData.get(1) + c * this.rawData.get(5) + a * this.rawData.get(9) + this.rawData.get(13), b * this.rawData.get(2) + c * this.rawData.get(6) + a * this.rawData.get(10) + this.rawData.get(14), b * this.rawData.get(3) + c * this.rawData.get(7) + a * this.rawData.get(11) + this.rawData.get(15)) }, transformVectors: function (a, b) { for (var c = 0, d, e, g; c + 3 <= a.get_length();) d = a.get(c), e = a.get(c + 1), g = a.get(c + 2), b.set(c, d * this.rawData.get(0) + e * this.rawData.get(4) + g * this.rawData.get(8) + this.rawData.get(12)), b.set(c + 1, d * this.rawData.get(1) + e * this.rawData.get(5) + g * this.rawData.get(9) + this.rawData.get(13)), b.set(c + 2, d * this.rawData.get(2) + e * this.rawData.get(6) + g * this.rawData.get(10) + this.rawData.get(14)), c += 3 }, transpose: function () { var a = this.rawData.copy(); this.rawData.set(1, a.get(4)); this.rawData.set(2, a.get(8)); this.rawData.set(3, a.get(12)); this.rawData.set(4, a.get(1)); this.rawData.set(6, a.get(9)); this.rawData.set(7, a.get(13)); this.rawData.set(8, a.get(2)); this.rawData.set(9, a.get(6)); this.rawData.set(11, a.get(14)); this.rawData.set(12, a.get(3)); this.rawData.set(13, a.get(7)); this.rawData.set(14, a.get(11)) }, get_determinant: function () { return (this.rawData.get(0) * this.rawData.get(5) - this.rawData.get(4) * this.rawData.get(1)) * (this.rawData.get(10) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(11)) - (this.rawData.get(0) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(7)) + (this.rawData.get(0) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(7)) + (this.rawData.get(4) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(3)) - (this.rawData.get(4) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(3)) + (this.rawData.get(8) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(9)) * (this.rawData.get(2) * this.rawData.get(7) - this.rawData.get(6) * this.rawData.get(3)) }, get_position: function () { return new td(this.rawData.get(12), this.rawData.get(13), this.rawData.get(14)) }, set_position: function (a) { this.rawData.set(12, a.x); this.rawData.set(13, a.y); this.rawData.set(14, a.z); return a }, __class__: he, __properties__: { set_position: "set_position", get_position: "get_position", get_determinant: "get_determinant" } }; var sk = function (a) { this.__colorTransform = new Pc; this.concatenatedColorTransform = new Pc; this.pixelBounds = new ba; this.__displayObject = a; this.__hasMatrix = !0 }; k["openfl.geom.Transform"] = sk; sk.__name__ = "openfl.geom.Transform"; sk.prototype = { concatenatedColorTransform: null, pixelBounds: null, __colorTransform: null, __displayObject: null, __hasMatrix: null, __hasMatrix3D: null, get_colorTransform: function () { return this.__colorTransform }, set_colorTransform: function (a) { this.__colorTransform.__equals(a, !1) || (this.__colorTransform.__copyFrom(a), null != a && this.__displayObject.set_alpha(a.alphaMultiplier), a = this.__displayObject, a.__renderDirty || (a.__renderDirty = !0, a.__setParentRenderDirty())); return this.__colorTransform }, get_concatenatedMatrix: function () { return this.__hasMatrix ? this.__displayObject.__getWorldTransform().clone() : null }, get_matrix: function () { return this.__hasMatrix ? this.__displayObject.__transform.clone() : null }, set_matrix: function (a) { if (null == a) return this.__hasMatrix = !1, null; this.__hasMatrix = !0; this.__hasMatrix3D = !1; null != this.__displayObject && this.__setTransform(a.a, a.b, a.c, a.d, a.tx, a.ty); return a }, get_matrix3D: function () { if (this.__hasMatrix3D) { var a = this.__displayObject.__transform; return new he(Eb.toFloatVector(null, null, null, [a.a, a.b, 0, 0, a.c, a.d, 0, 0, 0, 0, 1, 0, a.tx, a.ty, 0, 1])) } return null }, set_matrix3D: function (a) { if (null == a) return this.__hasMatrix3D = !1, null; this.__hasMatrix = !1; this.__hasMatrix3D = !0; this.__setTransform(a.rawData.get(0), a.rawData.get(1), a.rawData.get(5), a.rawData.get(6), a.rawData.get(12), a.rawData.get(13)); return a }, __setTransform: function (a, b, c, d, e, g) { if (null != this.__displayObject) { var f = this.__displayObject.__transform; if (f.a != a || f.b != b || f.c != c || f.d != d || f.tx != e || f.ty != g) { var h = 0 == b ? a : Math.sqrt(a * a + b * b); var l = 0 == c ? d : Math.sqrt(c * c + d * d); this.__displayObject.__scaleX = h; this.__displayObject.__scaleY = l; h = 180 / Math.PI * Math.atan2(d, c) - 90; h != this.__displayObject.__rotation && (this.__displayObject.__rotation = h, h *= Math.PI / 180, this.__displayObject.__rotationSine = Math.sin(h), this.__displayObject.__rotationCosine = Math.cos(h)); f.a = a; f.b = b; f.c = c; f.d = d; f.tx = e; f.ty = g; this.__displayObject.__setTransformDirty() } } }, __class__: sk, __properties__: { set_matrix3D: "set_matrix3D", get_matrix3D: "get_matrix3D", set_matrix: "set_matrix", get_matrix: "get_matrix", get_concatenatedMatrix: "get_concatenatedMatrix", set_colorTransform: "set_colorTransform", get_colorTransform: "get_colorTransform" } }; var td = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); this.w = d; this.x = a; this.y = b; this.z = c }; k["openfl.geom.Vector3D"] = td; td.__name__ = "openfl.geom.Vector3D"; td.__properties__ = { get_Z_AXIS: "get_Z_AXIS", get_Y_AXIS: "get_Y_AXIS", get_X_AXIS: "get_X_AXIS" }; td.angleBetween = function (a, b) { var c = a.get_length(), d = b.get_length(); a = a.dotProduct(b); 0 != c && (a /= c); 0 != d && (a /= d); return Math.acos(a) }; td.distance = function (a, b) { var c = b.x - a.x, d = b.y - a.y; a = b.z - a.z; return Math.sqrt(c * c + d * d + a * a) }; td.get_X_AXIS = function () { return new td(1, 0, 0) }; td.get_Y_AXIS = function () { return new td(0, 1, 0) }; td.get_Z_AXIS = function () { return new td(0, 0, 1) }; td.prototype = { w: null, x: null, y: null, z: null, add: function (a) { return new td(this.x + a.x, this.y + a.y, this.z + a.z) }, clone: function () { return new td(this.x, this.y, this.z, this.w) }, copyFrom: function (a) { this.x = a.x; this.y = a.y; this.z = a.z }, crossProduct: function (a) { return new td(this.y * a.z - this.z * a.y, this.z * a.x - this.x * a.z, this.x * a.y - this.y * a.x, 1) }, decrementBy: function (a) { this.x -= a.x; this.y -= a.y; this.z -= a.z }, dotProduct: function (a) { return this.x * a.x + this.y * a.y + this.z * a.z }, equals: function (a, b) { null == b && (b = !1); return this.x == a.x && this.y == a.y && this.z == a.z ? b ? this.w == a.w : !0 : !1 }, incrementBy: function (a) { this.x += a.x; this.y += a.y; this.z += a.z }, nearEquals: function (a, b, c) { null == c && (c = !1); return Math.abs(this.x - a.x) < b && Math.abs(this.y - a.y) < b && Math.abs(this.z - a.z) < b ? c ? Math.abs(this.w - a.w) < b : !0 : !1 }, negate: function () { this.x *= -1; this.y *= -1; this.z *= -1 }, normalize: function () { var a = this.get_length(); 0 != a && (this.x /= a, this.y /= a, this.z /= a); return a }, project: function () { this.x /= this.w; this.y /= this.w; this.z /= this.w }, scaleBy: function (a) { this.x *= a; this.y *= a; this.z *= a }, setTo: function (a, b, c) { this.x = a; this.y = b; this.z = c }, subtract: function (a) { return new td(this.x - a.x, this.y - a.y, this.z - a.z) }, toString: function () { return "Vector3D(" + this.x + ", " + this.y + ", " + this.z + ")" }, get_length: function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) }, get_lengthSquared: function () { return this.x * this.x + this.y * this.y + this.z * this.z }, __class__: td, __properties__: {get_lengthSquared: "get_lengthSquared", get_length: "get_length"} }; var gp = function () { }; k["openfl.media.ID3Info"] = gp; gp.__name__ = "openfl.media.ID3Info"; gp.prototype = { album: null, artist: null, comment: null, genre: null, songName: null, track: null, year: null, __class__: gp }; var Cf = function (a, b) { jb.call(this, this); this.bytesTotal = this.bytesLoaded = 0; this.isBuffering = !1; this.url = null; null != a && this.load(a, b) }; k["openfl.media.Sound"] = Cf; Cf.__name__ = "openfl.media.Sound"; Cf.fromAudioBuffer = function (a) { var b = new Cf; b.__buffer = a; return b }; Cf.fromFile = function (a) { return Cf.fromAudioBuffer(Zc.fromFile(a)) }; Cf.loadFromFile = function (a) { return Zc.loadFromFile(a).then(function (a) { return ob.withValue(Cf.fromAudioBuffer(a)) }) }; Cf.loadFromFiles = function (a) { return Zc.loadFromFiles(a).then(function (a) { return ob.withValue(Cf.fromAudioBuffer(a)) }) }; Cf.__super__ = jb; Cf.prototype = u(jb.prototype, { bytesLoaded: null, bytesTotal: null, isBuffering: null, url: null, __buffer: null, close: function () { null != this.__buffer && (this.__buffer.dispose(), this.__buffer = null) }, load: function (a, b) { var c = this; this.url = a.url; a = ta.getLibrary("default"); if (null != a && Object.prototype.hasOwnProperty.call(a.cachedAudioBuffers.h, this.url)) this.AudioBuffer_onURLLoad(a.cachedAudioBuffers.h[this.url]); else Zc.loadFromFile(this.url).onComplete(q(this, this.AudioBuffer_onURLLoad)).onError(function (a) { c.AudioBuffer_onURLLoad(null) }) }, loadCompressedDataFromByteArray: function (a, b) { if (null == a || 0 >= b) this.dispatchEvent(new sg("ioError")); else { if (Ba.gt(a.position, 0) || Ba.gt(Fb.get_length(a), b)) { var c = b; null == c && (c = 0); var d = new uc(c), e = a.position; c = b; null == c && (c = 0); null == e && (e = 0); d.writeBytes(a, e, c); a = d } this.__buffer = Zc.fromBytes(Fb.toBytes(a)); null == this.__buffer ? this.dispatchEvent(new sg("ioError")) : this.dispatchEvent(new oa("complete")) } }, loadPCMFromByteArray: function (a, b, c, d, e) { null == e && (e = 44100); null == d && (d = !0); null == c && (c = "float"); if (null == a) this.dispatchEvent(new sg("ioError")); else { c = "float" == c ? 32 : 16; d = d ? 2 : 1; b = c / 8 * d * b | 0; if (Ba.gt(a.position, 0) || Ba.gt(Fb.get_length(a), b)) { var g = b; null == g && (g = 0); var f = g = new uc(g), h = a.position; g = b; null == g && (g = 0); null == h && (h = 0); f.writeBytes(a, h, g); a = f } b = new Zc; b.bitsPerSample = c; b.channels = d; a = Fb.toArrayBuffer(a); g = null != a ? new Uint8Array(a, 0) : null; b.data = g; b.sampleRate = e | 0; this.__buffer = b; this.dispatchEvent(new oa("complete")) } }, play: function (a, b, c) { null == b && (b = 0); null == a && (a = 0); if (null == this.__buffer || 32 <= xd.__soundChannels.length) return null; c = null == c ? new of : c.clone(); var d = xd.__soundTransform.pan + c.pan; 1 < d && (d = 1); -1 > d && (d = -1); var e = xd.__soundTransform.volume * c.volume, g = new Tj(this.__buffer); g.offset = a | 0; 1 < b && g.set_loops(b - 1); g.set_gain(e); 0 != d && g.set_pan(d); return new hn(g, c) }, get_id3: function () { return new gp }, get_length: function () { return null != this.__buffer ? 1E3 * this.__buffer.get_src().duration() | 0 : 0 }, AudioBuffer_onURLLoad: function (a) { null == a ? this.dispatchEvent(new sg("ioError")) : (this.__buffer = a, this.dispatchEvent(new oa("complete"))) }, __class__: Cf, __properties__: {get_length: "get_length", get_id3: "get_id3"} }); var hn = function (a, b) { jb.call(this, this); this.rightPeak = this.leftPeak = 1; this.__soundTransform = null != b ? b : new of; null != a && (this.__source = a, this.__source.onComplete.add(q(this, this.source_onComplete)), this.__isValid = !0, this.__source.play()); xd.__registerSoundChannel(this) }; k["openfl.media.SoundChannel"] = hn; hn.__name__ = "openfl.media.SoundChannel"; hn.__super__ = jb; hn.prototype = u(jb.prototype, { leftPeak: null, rightPeak: null, __isValid: null, __soundTransform: null, __source: null, stop: function () { xd.__unregisterSoundChannel(this); this.__isValid && (this.__source.stop(), this.__dispose()) }, __dispose: function () { this.__isValid && (this.__source.onComplete.remove(q(this, this.source_onComplete)), this.__source.dispose(), this.__source = null, this.__isValid = !1) }, __updateTransform: function () { this.set_soundTransform(this.get_soundTransform()) }, get_position: function () { return this.__isValid ? this.__source.get_currentTime() + this.__source.offset : 0 }, set_position: function (a) { if (!this.__isValid) return 0; this.__source.set_currentTime((a | 0) - this.__source.offset); return a }, get_soundTransform: function () { return this.__soundTransform.clone() }, set_soundTransform: function (a) { if (null != a) { this.__soundTransform.pan = a.pan; this.__soundTransform.volume = a.volume; var b = xd.__soundTransform.pan + this.__soundTransform.pan; -1 > b && (b = -1); 1 < b && (b = 1); var c = xd.__soundTransform.volume * this.__soundTransform.volume; this.__isValid && (this.__source.set_gain(c), 0 == b && null == this.__source.get_pan() || this.__source.set_pan(b)) } return a }, source_onComplete: function () { xd.__unregisterSoundChannel(this); this.__dispose(); this.dispatchEvent(new oa("soundComplete")) }, __class__: hn, __properties__: { set_soundTransform: "set_soundTransform", get_soundTransform: "get_soundTransform", set_position: "set_position", get_position: "get_position" } }); var Rr = function (a, b) { null == b && (b = !1); null == a && (a = 1E3); this.bufferTime = a; this.checkPolicyFile = b }; k["openfl.media.SoundLoaderContext"] = Rr; Rr.__name__ = "openfl.media.SoundLoaderContext"; Rr.prototype = {bufferTime: null, checkPolicyFile: null, __class__: Rr}; var xd = function () { }; k["openfl.media.SoundMixer"] = xd; xd.__name__ = "openfl.media.SoundMixer"; xd.__properties__ = {set_soundTransform: "set_soundTransform", get_soundTransform: "get_soundTransform"}; xd.areSoundsInaccessible = function () { return !1 }; xd.stopAll = function () { for (var a = 0, b = xd.__soundChannels; a < b.length;) { var c = b[a]; ++a; c.stop() } }; xd.__registerSoundChannel = function (a) { xd.__soundChannels.push(a) }; xd.__unregisterSoundChannel = function (a) { K.remove(xd.__soundChannels, a) }; xd.get_soundTransform = function () { return xd.__soundTransform }; xd.set_soundTransform = function (a) { xd.__soundTransform = a.clone(); for (var b = 0, c = xd.__soundChannels; b < c.length;) { var d = c[b]; ++b; d.__updateTransform() } return a }; var jn = function (a, b) { null == b && (b = 240); null == a && (a = 320); Ga.call(this); this.__drawableType = 8; this.__width = a; this.__height = b; this.__textureTime = -1; this.smoothing = !1; this.deblocking = 0 }; k["openfl.media.Video"] = jn; jn.__name__ = "openfl.media.Video"; jn.__super__ = Ga; jn.prototype = u(Ga.prototype, { deblocking: null, smoothing: null, __active: null, __buffer: null, __bufferAlpha: null, __bufferColorTransform: null, __bufferContext: null, __bufferData: null, __dirty: null, __height: null, __indexBuffer: null, __indexBufferContext: null, __indexBufferData: null, __stream: null, __texture: null, __textureTime: null, __uvRect: null, __vertexBuffer: null, __vertexBufferContext: null, __vertexBufferData: null, __width: null, attachNetStream: function (a) { this.__stream = a; null == this.__stream || null == this.__stream.__video || this.__stream.__closed || this.__stream.__video.play() }, clear: function () { }, __enterFrame: function (a) { this.__renderable && null != this.__stream && !this.__renderDirty && (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __getBounds: function (a, b) { var c = ba.__pool.get(); c.setTo(0, 0, this.__width, this.__height); c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) }, __getIndexBuffer: function (a) { if (null == this.__indexBuffer || this.__indexBufferContext != a.__context) this.__indexBufferData = new Uint16Array(6), this.__indexBufferData[0] = 0, this.__indexBufferData[1] = 1, this.__indexBufferData[2] = 2, this.__indexBufferData[3] = 2, this.__indexBufferData[4] = 1, this.__indexBufferData[5] = 3, this.__indexBufferContext = a.__context, this.__indexBuffer = a.createIndexBuffer(6), this.__indexBuffer.uploadFromTypedArray(this.__indexBufferData); return this.__indexBuffer }, __getTexture: function (a) { if (null == this.__stream || null == this.__stream.__video) return null; var b = a.__context.webgl, c = b.RGBA, d = b.RGBA; this.__stream.__closed || this.__stream.__video.currentTime == this.__textureTime || (null == this.__texture && (this.__texture = a.createRectangleTexture(this.__stream.__video.videoWidth, this.__stream.__video.videoHeight, 1, !1)), a.__bindGLTexture2D(this.__texture.__textureID), fc.texImage2D(b, b.TEXTURE_2D, 0, c, d, b.UNSIGNED_BYTE, this.__stream.__video), this.__textureTime = this.__stream.__video.currentTime); return this.__texture }, __getVertexBuffer: function (a) { if (null == this.__vertexBuffer || this.__vertexBufferContext != a.__context) this.__vertexBufferData = new Float32Array(20), this.__vertexBufferData[0] = this.get_width(), this.__vertexBufferData[1] = this.get_height(), this.__vertexBufferData[3] = 1, this.__vertexBufferData[4] = 1, this.__vertexBufferData[6] = this.get_height(), this.__vertexBufferData[9] = 1, this.__vertexBufferData[10] = this.get_width(), this.__vertexBufferData[13] = 1, this.__vertexBufferContext = a.__context, this.__vertexBuffer = a.createVertexBuffer(3, 5), this.__vertexBuffer.uploadFromTypedArray($g.toArrayBufferView(this.__vertexBufferData)); return this.__vertexBuffer }, __hitTest: function (a, b, c, d, e, g) { if (!g.get_visible() || this.__isMask || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; this.__getRenderTransform(); var f = this.__renderTransform, h = f.a * f.d - f.b * f.c; c = 0 == h ? -f.tx : 1 / h * (f.c * (f.ty - b) + f.d * (a - f.tx)); f = this.__renderTransform; h = f.a * f.d - f.b * f.c; a = 0 == h ? -f.ty : 1 / h * (f.a * (b - f.ty) + f.b * (f.tx - a)); return 0 < c && 0 < a && c <= this.__width && a <= this.__height ? (null == d || e || d.push(g), !0) : !1 }, __hitTestMask: function (a, b) { var c = na.__pool.get(); c.setTo(a, b); this.__globalToLocal(c, c); a = 0 < c.x && 0 < c.y && c.x <= this.__width && c.y <= this.__height; na.__pool.release(c); return a }, get_height: function () { return this.__height * this.get_scaleY() }, set_height: function (a) { if (1 != this.get_scaleY() || a != this.__height) this.__setTransformDirty(), this.__dirty = !0; this.set_scaleY(1); return this.__height = a }, get_videoHeight: function () { return null != this.__stream && null != this.__stream.__video ? this.__stream.__video.videoHeight | 0 : 0 }, get_videoWidth: function () { return null != this.__stream && null != this.__stream.__video ? this.__stream.__video.videoWidth | 0 : 0 }, get_width: function () { return this.__width * this.__scaleX }, set_width: function (a) { if (1 != this.__scaleX || this.__width != a) this.__setTransformDirty(), this.__dirty = !0; this.set_scaleX(1); return this.__width = a }, __class__: jn, __properties__: u(Ga.prototype.__properties__, { get_videoWidth: "get_videoWidth", get_videoHeight: "get_videoHeight" }) }); var gk = function () { jb.call(this) }; k["openfl.net.NetConnection"] = gk; gk.__name__ = "openfl.net.NetConnection"; gk.__super__ = jb; gk.prototype = u(jb.prototype, { connect: function (a, b, c, d, e, f) { if (null != a) throw I.thrown('Error: Can only connect in "HTTP streaming" mode'); this.dispatchEvent(new ji("netStatus", !1, !0, {code: "NetConnection.Connect.Success"})) }, __class__: gk }); var kn = function (a, b) { jb.call(this); this.__connection = a; this.__soundTransform = new of; this.__video = window.document.createElement("video"); this.__video.setAttribute("playsinline", ""); this.__video.setAttribute("webkit-playsinline", ""); this.__video.setAttribute("crossorigin", "anonymous"); this.__video.addEventListener("error", q(this, this.video_onError), !1); this.__video.addEventListener("waiting", q(this, this.video_onWaiting), !1); this.__video.addEventListener("ended", q(this, this.video_onEnd), !1); this.__video.addEventListener("pause", q(this, this.video_onPause), !1); this.__video.addEventListener("seeking", q(this, this.video_onSeeking), !1); this.__video.addEventListener("playing", q(this, this.video_onPlaying), !1); this.__video.addEventListener("timeupdate", q(this, this.video_onTimeUpdate), !1); this.__video.addEventListener("loadstart", q(this, this.video_onLoadStart), !1); this.__video.addEventListener("stalled", q(this, this.video_onStalled), !1); this.__video.addEventListener("durationchanged", q(this, this.video_onDurationChanged), !1); this.__video.addEventListener("canplay", q(this, this.video_onCanPlay), !1); this.__video.addEventListener("canplaythrough", q(this, this.video_onCanPlayThrough), !1); this.__video.addEventListener("loadedmetadata", q(this, this.video_onLoadMetaData), !1) }; k["openfl.net.NetStream"] = kn; kn.__name__ = "openfl.net.NetStream"; kn.__super__ = jb; kn.prototype = u(jb.prototype, { audioCodec: null, bufferLength: null, bufferTime: null, bytesLoaded: null, bytesTotal: null, checkPolicyFile: null, client: null, currentFPS: null, decodedFrames: null, liveDelay: null, objectEncoding: null, time: null, videoCode: null, __closed: null, __connection: null, __soundTransform: null, __timer: null, __video: null, close: function () { null != this.__video && (this.__closed = !0, this.__video.pause(), this.__video.src = "", this.time = 0) }, dispose: function () { this.close(); this.__video = null }, pause: function () { null != this.__video && this.__video.pause() }, play: function (a, b, c, d, e, f) { null != this.__video && (this.__video.volume = xd.__soundTransform.volume * this.__soundTransform.volume, "string" == typeof a ? this.__video.src = a : this.__video.srcObject = a, this.__video.play()) }, requestVideoStatus: function () { var a = this; null != this.__video && (null == this.__timer && (this.__timer = new Ve(1)), this.__timer.run = function () { a.__video.paused ? a.__playStatus("NetStream.Play.pause") : a.__playStatus("NetStream.Play.playing"); a.__timer.stop() }) }, resume: function () { null != this.__video && this.__video.play() }, seek: function (a) { null != this.__video && (0 > a ? a = 0 : a > this.__video.duration && (a = this.__video.duration), this.__dispatchStatus("NetStream.SeekStart.Notify"), this.__video.currentTime = a) }, togglePause: function () { null != this.__video && (this.__video.paused ? this.__video.play() : this.__video.pause()) }, __dispatchStatus: function (a) { a = new ji("netStatus", !1, !1, {code: a}); this.__connection.dispatchEvent(a); this.dispatchEvent(a) }, __playStatus: function (a) { if (null != this.__video && null != this.client) try { var b = this.client.onPlayStatus; b({ code: a, duration: this.__video.duration, position: this.__video.currentTime, speed: this.__video.playbackRate, start: this.__video.startTime }) } catch (c) { ra.lastError = c } }, video_onCanPlay: function (a) { this.__playStatus("NetStream.Play.canplay") }, video_onCanPlayThrough: function (a) { this.__playStatus("NetStream.Play.canplaythrough") }, video_onDurationChanged: function (a) { this.__playStatus("NetStream.Play.durationchanged") }, video_onEnd: function (a) { this.__dispatchStatus("NetStream.Play.Stop"); this.__dispatchStatus("NetStream.Play.Complete"); this.__playStatus("NetStream.Play.Complete") }, video_onError: function (a) { this.__dispatchStatus("NetStream.Play.Stop"); this.__playStatus("NetStream.Play.error") }, video_onLoadMetaData: function (a) { if (null != this.__video && null != this.client) try { var b = this.client.onMetaData; b({ width: this.__video.videoWidth, height: this.__video.videoHeight, duration: this.__video.duration }) } catch (c) { ra.lastError = c } }, video_onLoadStart: function (a) { this.__playStatus("NetStream.Play.loadstart") }, video_onPause: function (a) { this.__playStatus("NetStream.Play.pause") }, video_onPlaying: function (a) { this.__dispatchStatus("NetStream.Play.Start"); this.__playStatus("NetStream.Play.playing") }, video_onSeeking: function (a) { this.__playStatus("NetStream.Play.seeking"); this.__dispatchStatus("NetStream.Seek.Complete") }, video_onStalled: function (a) { this.__playStatus("NetStream.Play.stalled") }, video_onTimeUpdate: function (a) { null != this.__video && (this.time = this.__video.currentTime, this.__playStatus("NetStream.Play.timeupdate")) }, video_onWaiting: function (a) { this.__playStatus("NetStream.Play.waiting") }, get_soundTransform: function () { return this.__soundTransform.clone() }, set_soundTransform: function (a) { null != a && (this.__soundTransform.pan = a.pan, this.__soundTransform.volume = a.volume, null != this.__video && (this.__video.volume = xd.__soundTransform.volume * this.__soundTransform.volume)); return a }, get_speed: function () { return null != this.__video ? this.__video.playbackRate : 1 }, set_speed: function (a) { return null != this.__video ? this.__video.playbackRate = a : a }, __class__: kn, __properties__: { set_speed: "set_speed", get_speed: "get_speed", set_soundTransform: "set_soundTransform", get_soundTransform: "get_soundTransform" } }); var qd = function () { jb.call(this); this.client = this; this.objectEncoding = qd.defaultObjectEncoding }; k["openfl.net.SharedObject"] = qd; qd.__name__ = "openfl.net.SharedObject"; qd.getLocal = function (a, b, c) { c = " ~%&\\;:\"',<>?#".split(""); var d = !0; if (null == a || "" == a) d = !1; else for (var e = 0; e < c.length;) { var f = c[e]; ++e; if (-1 < a.indexOf(f)) { d = !1; break } } if (!d) throw I.thrown(new id("Error #2134: Cannot create SharedObject.")); null == qd.__sharedObjects && (qd.__sharedObjects = new xa, null != zd.current && zd.current.onExit.add(qd.application_onExit)); c = b + "/" + a; if (!Object.prototype.hasOwnProperty.call(qd.__sharedObjects.h, c)) { d = null; try { var h = Zg.getLocalStorage(); null == b && (null != h && (d = h.getItem(window.location.href + ":" + a), h.removeItem(window.location.href + ":" + a)), b = window.location.pathname); null != h && null == d && (d = h.getItem(b + ":" + a)) } catch (p) { ra.lastError = p } h = new qd; h.data = {}; h.__localPath = b; h.__name = a; if (null != d && "" != d) try { var l = new Oe(d); l.setResolver({resolveEnum: Ha.resolveEnum, resolveClass: qd.__resolveClass}); h.data = l.unserialize() } catch (p) { ra.lastError = p } qd.__sharedObjects.h[c] = h } return qd.__sharedObjects.h[c] }; qd.getRemote = function (a, b, c, d) { Ic.notImplemented({ fileName: "openfl/net/SharedObject.hx", lineNumber: 808, className: "openfl.net.SharedObject", methodName: "getRemote" }); return null }; qd.__getPath = function (a, b) { a = $a.get_applicationStorageDirectory() + "/" + a + "/"; b = T.replace(b, "//", "/"); b = T.replace(b, "//", "/"); T.startsWith(b, "/") && (b = K.substr(b, 1, null)); T.endsWith(b, "/") && (b = b.substring(0, b.length - 1)); if (-1 < b.indexOf("/")) { var c = b.split("/"); b = ""; for (var d = 0, e = c.length - 1; d < e;) { var f = d++; b += "#" + c[f] + "/" } b += c[c.length - 1] } return a + b + ".sol" }; qd.__mkdir = function (a) { }; qd.__resolveClass = function (a) { return null != a ? (T.startsWith(a, "neash.") && (a = T.replace(a, "neash.", "openfl.")), T.startsWith(a, "native.") && (a = T.replace(a, "native.", "openfl.")), T.startsWith(a, "flash.") && (a = T.replace(a, "flash.", "openfl.")), T.startsWith(a, "openfl._v2.") && (a = T.replace(a, "openfl._v2.", "openfl.")), T.startsWith(a, "openfl._legacy.") && (a = T.replace(a, "openfl._legacy.", "openfl.")), k[a]) : null }; qd.application_onExit = function (a) { a = qd.__sharedObjects.h; for (var b = Object.keys(a), c = b.length, d = 0; d < c;) a[b[d++]].flush() }; qd.__super__ = jb; qd.prototype = u(jb.prototype, { client: null, data: null, fps: null, objectEncoding: null, __localPath: null, __name: null, clear: function () { this.data = {}; try { var a = Zg.getLocalStorage(); null != a && a.removeItem(this.__localPath + ":" + this.__name) } catch (b) { ra.lastError = b } }, close: function () { }, connect: function (a, b) { Ic.notImplemented({ fileName: "openfl/net/SharedObject.hx", lineNumber: 392, className: "openfl.net.SharedObject", methodName: "connect" }) }, flush: function (a) { if (0 == V.fields(this.data).length) return 0; a = Ge.run(this.data); try { var b = Zg.getLocalStorage(); null != b && (b.removeItem(this.__localPath + ":" + this.__name), b.setItem(this.__localPath + ":" + this.__name, a)) } catch (c) { return ra.lastError = c, 1 } return 0 }, send: function (a) { Ic.notImplemented({ fileName: "openfl/net/SharedObject.hx", lineNumber: 824, className: "openfl.net.SharedObject", methodName: "send" }) }, setDirty: function (a) { }, setProperty: function (a, b) { null != this.data && (this.data[a] = b) }, get_size: function () { try { var a = Ge.run(this.data); return lb.ofString(a).length } catch (b) { return ra.lastError = b, 0 } }, __class__: qd, __properties__: {get_size: "get_size"} }); var uh = function (a) { jb.call(this); this.bytesTotal = this.bytesLoaded = 0; this.dataFormat = 1; null != a && this.load(a) }; k["openfl.net.URLLoader"] = uh; uh.__name__ = "openfl.net.URLLoader"; uh.__super__ = jb; uh.prototype = u(jb.prototype, { bytesLoaded: null, bytesTotal: null, data: null, dataFormat: null, __httpRequest: null, close: function () { null != this.__httpRequest && this.__httpRequest.cancel() }, load: function (a) { var b = this; if (0 == this.dataFormat) { var c = new ym; this.__prepareRequest(c, a); c.load().onProgress(q(this, this.httpRequest_onProgress)).onError(q(this, this.httpRequest_onError)).onComplete(function (a) { b.__dispatchStatus(); b.data = a; a = new oa("complete"); b.dispatchEvent(a) }) } else c = new Uj, this.__prepareRequest(c, a), c.load().onProgress(q(this, this.httpRequest_onProgress)).onError(q(this, this.httpRequest_onError)).onComplete(function (a) { b.__dispatchStatus(); b.data = a; a = new oa("complete"); b.dispatchEvent(a) }) }, __dispatchStatus: function () { var a = new ii("httpStatus", !1, !1, this.__httpRequest.responseStatus); a.responseURL = this.__httpRequest.uri; var b = []; if (this.__httpRequest.enableResponseHeaders && null != this.__httpRequest.responseHeaders) for (var c = 0, d = this.__httpRequest.responseHeaders; c < d.length;) { var e = d[c]; ++c; b.push(new hp(e.name, e.value)) } a.responseHeaders = b; this.dispatchEvent(a) }, __prepareRequest: function (a, b) { this.__httpRequest = a; this.__httpRequest.uri = b.url; this.__httpRequest.method = b.method; if (null != b.data) if (Ha.typeof(b.data) == xb.TObject) { var c = V.fields(b.data); for (a = 0; a < c.length;) { var d = c[a]; ++a; this.__httpRequest.formData.h[d] = V.field(b.data, d) } } else this.__httpRequest.data = b.data instanceof lb ? b.data : lb.ofString(z.string(b.data)); this.__httpRequest.contentType = b.contentType; if (null != b.requestHeaders) for (a = 0, c = b.requestHeaders; a < c.length;) d = c[a], ++a, this.__httpRequest.headers.push(new im(d.name, d.value)); this.__httpRequest.followRedirects = b.followRedirects; this.__httpRequest.timeout = b.idleTimeout | 0; this.__httpRequest.withCredentials = b.manageCookies; this.__httpRequest.userAgent = b.userAgent; this.__httpRequest.enableResponseHeaders = !0 }, httpRequest_onError: function (a) { this.__dispatchStatus(); var b = 403 == a ? new bj("securityError") : new sg("ioError"); b.text = z.string(a); this.dispatchEvent(b) }, httpRequest_onProgress: function (a, b) { var c = new Hg("progress"); c.bytesLoaded = a; c.bytesTotal = b; this.dispatchEvent(c) }, __class__: uh }); var Vg = function (a) { null != a && (this.url = a); this.contentType = null; this.followRedirects = Ih.followRedirects; this.idleTimeout = 0 < Ih.idleTimeout ? Ih.idleTimeout : 3E4; this.manageCookies = Ih.manageCookies; this.method = "GET"; this.requestHeaders = []; this.userAgent = Ih.userAgent }; k["openfl.net.URLRequest"] = Vg; Vg.__name__ = "openfl.net.URLRequest"; Vg.prototype = { contentType: null, data: null, followRedirects: null, idleTimeout: null, manageCookies: null, method: null, requestHeaders: null, url: null, userAgent: null, __class__: Vg }; var Ih = function () { }; k["openfl.net.URLRequestDefaults"] = Ih; Ih.__name__ = "openfl.net.URLRequestDefaults"; var hp = function (a, b) { null == b && (b = ""); null == a && (a = ""); this.name = a; this.value = b }; k["openfl.net.URLRequestHeader"] = hp; hp.__name__ = "openfl.net.URLRequestHeader"; hp.prototype = {name: null, value: null, __class__: hp}; var $r = { _new: function (a) { var b = {}; null != a && $r.decode(b, a); return b }, decode: function (a, b) { for (var c = V.fields(a), d = 0; d < c.length;) { var e = c[d]; ++d; V.deleteField(a, e) } c = b.split(";").join("&").split("&"); for (d = 0; d < c.length;) if (e = c[d], ++d, b = e.indexOf("="), 0 < b) { var f = K.substr(e, 0, b); f = decodeURIComponent(f.split("+").join(" ")); e = K.substr(e, b + 1, null); a[f] = decodeURIComponent(e.split("+").join(" ")) } else 0 != b && (a[decodeURIComponent(e.split("+").join(" "))] = "") }, toString: function (a) { for (var b = [], c = V.fields(a), d = 0; d < c.length;) { var e = c[d]; ++d; var f = V.field(a, e); if (-1 < e.indexOf("[]") && f instanceof Array) { var h = []; for (f = H(f); f.hasNext();) { var l = f.next(); h.push(encodeURIComponent(l)) } h = h.join("&" + e + "="); b.push(encodeURIComponent(e) + "=" + h) } else b.push(encodeURIComponent(e) + "=" + encodeURIComponent(f)) } return b.join("&") } }, Si = function (a) { this.parentDomain = null != a ? a : Si.currentDomain }; k["openfl.system.ApplicationDomain"] = Si; Si.__name__ = "openfl.system.ApplicationDomain"; Si.prototype = { parentDomain: null, getDefinition: function (a) { return k[a] }, hasDefinition: function (a) { return null != k[a] }, __class__: Si }; var Cc = function () { }; k["openfl.system.Capabilities"] = Cc; Cc.__name__ = "openfl.system.Capabilities"; Cc.__properties__ = { get_version: "get_version", get_screenResolutionY: "get_screenResolutionY", get_screenResolutionX: "get_screenResolutionX", get_screenDPI: "get_screenDPI", get_pixelAspectRatio: "get_pixelAspectRatio", get_os: "get_os", get_manufacturer: "get_manufacturer", get_language: "get_language", get_cpuArchitecture: "get_cpuArchitecture" }; Cc.hasMultiChannelAudio = function (a) { return !1 }; Cc.get_cpuArchitecture = function () { return "x86" }; Cc.get_language = function () { var a = Xe.get_language(Xe.get_currentLocale()); if (null != a) switch (a = a.toLowerCase(), a) { case "cs": case "da": case "de": case "en": case "es": case "fi": case "fr": case "hu": case "it": case "ja": case "ko": case "nb": case "nl": case "pl": case "pt": case "ru": case "sv": case "tr": return a; case "zh": a = Xe.get_region(Xe.get_currentLocale()); if (null != a) switch (a.toUpperCase()) { case "HANT": case "TW": return "zh-TW" } return "zh-CN"; default: return "xu" } return "en" }; Cc.get_manufacturer = function () { var a = $a.get_platformName(); return "OpenFL" + (null != a ? " " + a : "") }; Cc.get_os = function () { var a = $a.get_platformLabel(); return null != a ? a : "" }; Cc.get_pixelAspectRatio = function () { return 1 }; Cc.get_screenDPI = function () { var a = null != Ic.application ? Ic.application.__window : null, b = 72; null != a && (b *= a.__scale); return b }; Cc.get_screenResolutionX = function () { var a = Ic.current.stage, b = 0; if (null == a) return 0; if (null != a.window) { var c = a.window.get_display(); null != c && (b = Math.ceil(c.currentMode.width * a.window.__scale)) } return 0 < b ? b : a.stageWidth }; Cc.get_screenResolutionY = function () { var a = Ic.current.stage, b = 0; if (null == a) return 0; if (null != a.window) { var c = a.window.get_display(); null != c && (b = Math.ceil(c.currentMode.height * a.window.__scale)) } return 0 < b ? b : a.stageHeight }; Cc.get_version = function () { return "WEB " + (T.replace("9.1.0", ".", ",") + ",0") }; var Sr = function (a, b, c) { null == a && (a = !1); this.checkPolicyFile = a; this.securityDomain = c; this.applicationDomain = b; this.allowLoadBytesCodeExecution = this.allowCodeImport = !0 }; k["openfl.system.LoaderContext"] = Sr; Sr.__name__ = "openfl.system.LoaderContext"; Sr.prototype = { allowCodeImport: null, allowLoadBytesCodeExecution: null, applicationDomain: null, checkPolicyFile: null, securityDomain: null, __class__: Sr }; var hk = function () { }; k["openfl.system.SecurityDomain"] = hk; hk.__name__ = "openfl.system.SecurityDomain"; hk.prototype = {__class__: hk}; var fg = function () { }; k["openfl.system.System"] = fg; fg.__name__ = "openfl.system.System"; fg.__properties__ = {get_vmVersion: "get_vmVersion", get_totalMemory: "get_totalMemory"}; fg.disposeXML = function (a) { }; fg.exit = function (a) { $a.exit(a) }; fg.gc = function () { }; fg.pause = function () { Ic.notImplemented({ fileName: "openfl/system/System.hx", lineNumber: 213, className: "openfl.system.System", methodName: "pause" }) }; fg.resume = function () { Ic.notImplemented({ fileName: "openfl/system/System.hx", lineNumber: 229, className: "openfl.system.System", methodName: "resume" }) }; fg.setClipboard = function (a) { oe.set_text(a) }; fg.get_totalMemory = function () { return window.performance && window.performance.memory ? window.performance.memory.usedJSHeapSize : 0 }; fg.get_vmVersion = function () { return "1.0.0" }; var Wc = function (a) { Sd.call(this, a) }; k["openfl.text.Font"] = Wc; Wc.__name__ = "openfl.text.Font"; Wc.enumerateFonts = function (a) { return Wc.__registeredFonts }; Wc.fromBytes = function (a) { var b = new Wc; b.__fromBytes(Fb.toBytes(a)); return b }; Wc.fromFile = function (a) { var b = new Wc; b.__fromFile(a); return b }; Wc.loadFromBytes = function (a) { return Sd.loadFromBytes(Fb.toBytes(a)).then(function (a) { var b = new Wc; b.__fromLimeFont(a); return ob.withValue(b) }) }; Wc.loadFromFile = function (a) { return Sd.loadFromFile(a).then(function (a) { var b = new Wc; b.__fromLimeFont(a); return ob.withValue(b) }) }; Wc.loadFromName = function (a) { return Sd.loadFromName(a).then(function (a) { var b = new Wc; b.__fromLimeFont(a); return ob.withValue(b) }) }; Wc.registerFont = function (a) { a = null == w.getClass(a) ? w.__cast(Ha.createInstance(a, []), Wc) : w.__cast(a, Wc); null != a && (Wc.__registeredFonts.push(a), Wc.__fontByName.h[a.name] = a) }; Wc.__super__ = Sd; Wc.prototype = u(Sd.prototype, { fontStyle: null, fontType: null, __initialized: null, __fromLimeFont: function (a) { this.__copyFrom(a) }, __initialize: function () { return this.__initialized }, get_fontName: function () { return this.name }, set_fontName: function (a) { return this.name = a }, __class__: Wc, __properties__: {set_fontName: "set_fontName", get_fontName: "get_fontName"} }); var cf = function () { this.__renderedOnCanvasWhileOnDOM = this.__forceCachedBitmapUpdate = !1; Bb.call(this); this.__drawableType = 7; this.__caretIndex = -1; this.__displayAsPassword = !1; this.__graphics = new $e(this); this.__textEngine = new Wb(this); this.__layoutDirty = !0; this.__offsetY = this.__offsetX = 0; this.__mouseWheelEnabled = !0; this.__text = ""; this.doubleClickEnabled = !0; null == cf.__defaultTextFormat && (cf.__defaultTextFormat = new Sg("Times New Roman", 12, 0, !1, !1, !1, "", "", 3, 0, 0, 0, 0), cf.__defaultTextFormat.blockIndent = 0, cf.__defaultTextFormat.bullet = !1, cf.__defaultTextFormat.letterSpacing = 0, cf.__defaultTextFormat.kerning = !1); this.__textFormat = cf.__defaultTextFormat.clone(); this.__textEngine.textFormatRanges.push(new lf(this.__textFormat, 0, 0)); this.addEventListener("mouseDown", q(this, this.this_onMouseDown)); this.addEventListener("focusIn", q(this, this.this_onFocusIn)); this.addEventListener("focusOut", q(this, this.this_onFocusOut)); this.addEventListener("keyDown", q(this, this.this_onKeyDown)); this.addEventListener("mouseWheel", q(this, this.this_onMouseWheel)); this.addEventListener("doubleClick", q(this, this.this_onDoubleClick)) }; k["openfl.text.TextField"] = cf; cf.__name__ = "openfl.text.TextField"; cf.__super__ = Bb; cf.prototype = u(Bb.prototype, { __bounds: null, __caretIndex: null, __cursorTimer: null, __dirty: null, __displayAsPassword: null, __domRender: null, __inputEnabled: null, __isHTML: null, __layoutDirty: null, __mouseWheelEnabled: null, __offsetX: null, __offsetY: null, __selectionIndex: null, __showCursor: null, __text: null, __htmlText: null, __textEngine: null, __textFormat: null, __div: null, __renderedOnCanvasWhileOnDOM: null, __rawHtmlText: null, __forceCachedBitmapUpdate: null, appendText: function (a) { null != a && "" != a && (this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__updateText(this.__text + a), this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end = this.__text.length, this.setSelection(this.__text.length, this.__text.length)) }, getCharBoundaries: function (a) { if (0 > a || a > this.__text.length - 1) return null; var b = new ba; return this.__getCharBoundaries(a, b) ? b : null }, getCharIndexAtPoint: function (a, b) { if (2 >= a || a > this.get_width() + 4 || 0 >= b || b > this.get_height() + 4) return -1; this.__updateLayout(); a += this.get_scrollH(); for (var c = 0, d = this.get_scrollV() - 1; c < d;) { var e = c++; b += this.__textEngine.lineHeights.get(e) } for (c = this.__textEngine.layoutGroups.iterator(); c.hasNext();) { var f = c.next(); if (b >= f.offsetY && b <= f.offsetY + f.height && a >= f.offsetX && a <= f.offsetX + f.width) { c = b = 0; for (d = f.positions.length; c < d;) if (e = c++, b += f.positions[e], a <= f.offsetX + b) return f.startIndex + e; return f.endIndex } } return -1 }, getFirstCharInParagraph: function (a) { if (0 > a || a > this.get_text().length) return -1; for (var b = this.__textEngine.getLineBreakIndex(), c = 0; -1 < b;) { if (b < a) c = b + 1; else if (b >= a) break; b = this.__textEngine.getLineBreakIndex(b + 1) } return c }, getLineIndexAtPoint: function (a, b) { this.__updateLayout(); if (2 >= a || a > this.get_width() + 4 || 0 >= b || b > this.get_height() + 4) return -1; a = 0; for (var c = this.get_scrollV() - 1; a < c;) { var d = a++; b += this.__textEngine.lineHeights.get(d) } for (a = this.__textEngine.layoutGroups.iterator(); a.hasNext();) if (c = a.next(), b >= c.offsetY && b <= c.offsetY + c.height) return c.lineIndex; return -1 }, getLineIndexOfChar: function (a) { if (0 > a || a > this.__text.length) return -1; this.__updateLayout(); for (var b = this.__textEngine.layoutGroups.iterator(); b.hasNext();) { var c = b.next(); if (c.startIndex <= a && c.endIndex >= a) return c.lineIndex } return -1 }, getLineLength: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return 0; for (var b = -1, c = -1, d = this.__textEngine.layoutGroups.iterator(); d.hasNext();) { var e = d.next(); if (e.lineIndex == a) -1 == b && (b = e.startIndex); else if (e.lineIndex == a + 1) { c = e.startIndex; break } } -1 == c && (c = this.__text.length); return c - b }, getLineMetrics: function (a) { this.__updateLayout(); var b = this.__textEngine.lineAscents.get(a), c = this.__textEngine.lineDescents.get(a), d = this.__textEngine.lineLeadings.get(a), e = this.__textEngine.lineHeights.get(a); a = this.__textEngine.lineWidths.get(a); switch (this.__textFormat.align) { case 0: var f = (this.__textEngine.width - a) / 2; break; case 1: case 4: f = this.__textEngine.width - a - 2; break; case 2: case 3: case 5: f = 2 } return new ip(f, a, e, b, c, d) }, getLineOffset: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return -1; for (var b = this.__textEngine.layoutGroups.iterator(); b.hasNext();) { var c = b.next(); if (c.lineIndex == a) return c.startIndex } return 0 }, getLineText: function (a) { this.__updateLayout(); if (0 > a || a > this.__textEngine.numLines - 1) return null; for (var b = -1, c = -1, d = this.__textEngine.layoutGroups.iterator(); d.hasNext();) { var e = d.next(); if (e.lineIndex == a) -1 == b && (b = e.startIndex); else if (e.lineIndex == a + 1) { c = e.startIndex; break } } -1 == c && (c = this.__text.length); return this.__textEngine.text.substring(b, c) }, getParagraphLength: function (a) { if (0 > a || a > this.get_text().length) return -1; var b = this.getFirstCharInParagraph(a); if (a >= this.get_text().length) return this.get_text().length - b + 1; a = this.__textEngine.getLineBreakIndex(a) + 1; 0 == a && (a = this.__text.length); return a - b }, getTextFormat: function (a, b) { null == b && (b = -1); null == a && (a = -1); var c = null; if (a >= this.get_text().length || -1 > a || b > this.get_text().length || -1 > b) throw I.thrown(new Jh("The supplied index is out of bounds")); -1 == a && (a = 0); -1 == b && (b = this.get_text().length); if (a >= b) return new Sg; for (var d = this.__textEngine.textFormatRanges.iterator(); d.hasNext();) { var e = d.next(); if (e.start <= a && e.end > a || e.start < b && e.end >= b) null == c ? c = e.format.clone() : (e.format.font != c.font && (c.font = null), e.format.size != c.size && (c.size = null), e.format.color != c.color && (c.color = null), e.format.bold != c.bold && (c.bold = null), e.format.italic != c.italic && (c.italic = null), e.format.underline != c.underline && (c.underline = null), e.format.url != c.url && (c.url = null), e.format.target != c.target && (c.target = null), e.format.align != c.align && (c.align = null), e.format.leftMargin != c.leftMargin && (c.leftMargin = null), e.format.rightMargin != c.rightMargin && (c.rightMargin = null), e.format.indent != c.indent && (c.indent = null), e.format.leading != c.leading && (c.leading = null), e.format.blockIndent != c.blockIndent && (c.blockIndent = null), e.format.bullet != c.bullet && (c.bullet = null), e.format.kerning != c.kerning && (c.kerning = null), e.format.letterSpacing != c.letterSpacing && (c.letterSpacing = null), e.format.tabStops != c.tabStops && (c.tabStops = null)) } null == c && (c = new Sg); return c }, replaceSelectedText: function (a) { this.__replaceSelectedText(a, !1) }, replaceText: function (a, b, c) { this.__replaceText(a, b, c, !1) }, setSelection: function (a, b) { this.__selectionIndex = a; this.__caretIndex = b; this.__updateScrollV(); this.__updateScrollH(); null != this.stage && this.stage.get_focus() == this && (this.__stopCursorTimer(), this.__startCursorTimer()) }, setTextFormat: function (a, b, c) { null == c && (c = -1); null == b && (b = -1); var d = this.get_text().length; -1 == b ? (-1 == c && (c = d), b = 0) : -1 == c && (c = b + 1); if (b != c) { if (0 > b || 0 >= c || c < b || b >= d || c > d) throw I.thrown(new Jh); if (0 == b && c == d) { this.__textEngine.textFormatRanges.set_length(1); var e = this.__textEngine.textFormatRanges.get(0); e.start = 0; e.end = d; e.format.__merge(a) } else { d = 0; for (var f; d < this.__textEngine.textFormatRanges.get_length();) if (e = this.__textEngine.textFormatRanges.get(d), e.end <= b) ++d; else if (e.start >= c) break; else if (e.start <= b && e.end >= c) if (e.start == b && e.end == c) { e.format = e.format.clone(); e.format.__merge(a); break } else if (e.start == b) f = new lf(e.format.clone(), b, c), f.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d, f), e.start = c, d += 2; else { e.end == c ? (f = new lf(e.format.clone(), b, c), f.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, f)) : (f = new lf(e.format.clone(), b, c), f.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, f), f = new lf(e.format.clone(), c, e.end), this.__textEngine.textFormatRanges.insertAt(d + 2, f)); e.end = b; break } else if (e.start >= b && e.end <= c) e.start == b ? (e.format = e.format.clone(), e.format.__merge(a), e.end = c) : this.__textEngine.textFormatRanges.removeAt(d); else if (e.start > b && e.end > b) { e.start = c; break } else e.start < b && e.end <= c ? (f = new lf(e.format.clone(), b, c), f.format.__merge(a), this.__textEngine.textFormatRanges.insertAt(d + 1, f), e.end = b, d += 2) : (++d, Qa.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: "openfl/text/TextField.hx", lineNumber: 1571, className: "openfl.text.TextField", methodName: "setTextFormat" })) } this.__layoutDirty = this.__dirty = !0; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) } }, __allowMouseFocus: function () { return 1 == this.__textEngine.type || this.get_tabEnabled() ? !0 : this.get_selectable() }, __caretBeginningOfLine: function () { this.__caretIndex = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)) }, __caretBeginningOfNextLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); this.__caretIndex = a < this.__textEngine.numLines - 1 ? this.getLineOffset(a + 1) : this.__text.length }, __caretBeginningOfPreviousLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); if (0 < a) { var b = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)); this.__caretIndex = this.__caretIndex == b ? this.getLineOffset(a - 1) : b } }, __caretEndOfLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); this.__caretIndex = a < this.__textEngine.numLines - 1 ? this.getLineOffset(a + 1) - 1 : this.__text.length }, __caretNextCharacter: function () { this.__caretIndex < this.__text.length && this.__caretIndex++ }, __caretNextLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); a < this.__textEngine.numLines - 1 && (this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(), a + 1)) }, __caretPreviousCharacter: function () { 0 < this.__caretIndex && this.__caretIndex-- }, __caretPreviousLine: function () { var a = this.getLineIndexOfChar(this.__caretIndex); 0 < a && (this.__caretIndex = this.__getCharIndexOnDifferentLine(this.get_caretIndex(), a - 1)) }, __disableInput: function () { this.__inputEnabled && null != this.stage && (this.stage.window.__backend.setTextInputEnabled(!1), this.stage.window.onTextInput.remove(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.remove(q(this, this.window_onKeyDown)), this.__inputEnabled = !1, this.__stopCursorTimer()) }, __dispatch: function (a) { if (2 == a.eventPhase && "mouseUp" == a.type) { var b = this.__getGroup(this.get_mouseX(), this.get_mouseY(), !0); null != b && (b = b.format.url, null != b && "" != b && (T.startsWith(b, "event:") ? this.dispatchEvent(new kf("link", !1, !1, K.substr(b, 6, null))) : Oa.getURL(new Vg(b)))) } return Bb.prototype.__dispatch.call(this, a) }, __enableInput: function () { null != this.stage && (this.stage.window.__backend.setTextInputEnabled(!0), this.__inputEnabled || (this.stage.window.__backend.setTextInputEnabled(!0), this.stage.window.onTextInput.has(q(this, this.window_onTextInput)) || (this.stage.window.onTextInput.add(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.add(q(this, this.window_onKeyDown))), this.__inputEnabled = !0, this.__startCursorTimer())) }, __getAdvance: function (a) { return a }, __getBounds: function (a, b) { this.__updateLayout(); var c = ba.__pool.get(); c.copyFrom(this.__textEngine.bounds); b.tx += this.__offsetX; b.ty += this.__offsetY; c.__transform(c, b); a.__expand(c.x, c.y, c.width, c.height); ba.__pool.release(c) }, __getCharBoundaries: function (a, b) { if (0 > a || a > this.__text.length - 1) return !1; this.__updateLayout(); for (var c = this.__textEngine.layoutGroups.iterator(); c.hasNext();) { var d = c.next(); if (a >= d.startIndex && a < d.endIndex) try { for (var e = d.offsetX, f = 0, h = a - d.startIndex; f < h;) { var l = f++; e += d.positions[l] } b.setTo(e, d.offsetY, d.positions[a - d.startIndex], d.ascent + d.descent); return !0 } catch (p) { ra.lastError = p } } return !1 }, __getCharIndexOnDifferentLine: function (a, b) { if (0 > a || a > this.__text.length || 0 > b || b > this.__textEngine.numLines - 1) return -1; for (var c = null, d = null, e = this.__textEngine.layoutGroups.iterator(); e.hasNext();) { var f = e.next(); if (a >= f.startIndex && a <= f.endIndex) { c = f.offsetX; for (var h = 0, l = a - f.startIndex; h < l;) { var p = h++; c += f.positions[p] } if (null != d) return this.__getPosition(c, d) } if (f.lineIndex == b) { d = f.offsetY + f.height / 2; f = 0; for (h = this.get_scrollV() - 1; f < h;) l = f++, d -= this.__textEngine.lineHeights.get(l); if (null != c) return this.__getPosition(c, d) } } return -1 }, __getCursor: function () { var a = this.__getGroup(this.get_mouseX(), this.get_mouseY(), !0); return null != a && "" != a.format.url ? "button" : this.__textEngine.selectable ? "ibeam" : null }, __getGroup: function (a, b, c) { null == c && (c = !1); this.__updateLayout(); a += this.get_scrollH(); for (var d = 0, e = this.get_scrollV() - 1; d < e;) { var f = d++; b += this.__textEngine.lineHeights.get(f) } !c && b > this.__textEngine.textHeight && (b = this.__textEngine.textHeight); var h = !0; d = 0; for (e = this.__textEngine.layoutGroups.get_length(); d < e;) { f = d++; var l = this.__textEngine.layoutGroups.get(f); f = f < this.__textEngine.layoutGroups.get_length() - 1 ? this.__textEngine.layoutGroups.get(f + 1) : null; h && (b < l.offsetY && (b = l.offsetY), a < l.offsetX && (a = l.offsetX), h = !1); if (b >= l.offsetY && b <= l.offsetY + l.height || !c && null == f) if (a >= l.offsetX && a <= l.offsetX + l.width || !c && (null == f || f.lineIndex != l.lineIndex)) return l } return null }, __getPosition: function (a, b) { b = this.__getGroup(a, b); if (null == b) return this.__text.length; for (var c = 0, d = 0, e = b.positions.length; d < e;) { var f = d++; c += b.positions[f]; if (a <= b.offsetX + c) { if (a <= b.offsetX + (c - b.positions[f]) + b.positions[f] / 2) return b.startIndex + f; if (b.startIndex + f < b.endIndex) return b.startIndex + f + 1; break } } return b.endIndex }, __hitTest: function (a, b, c, d, e, f) { if (!f.get_visible() || this.__isMask || e && !this.mouseEnabled || null != this.get_mask() && !this.get_mask().__hitTestMask(a, b)) return !1; this.__getRenderTransform(); this.__updateLayout(); c = this.__renderTransform; e = c.a * c.d - c.b * c.c; var g = 0 == e ? -c.tx : 1 / e * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; e = c.a * c.d - c.b * c.c; return this.__textEngine.bounds.contains(g, 0 == e ? -c.ty : 1 / e * (c.a * (b - c.ty) + c.b * (c.tx - a))) ? (null != d && d.push(f), !0) : !1 }, __hitTestMask: function (a, b) { this.__getRenderTransform(); this.__updateLayout(); var c = this.__renderTransform, d = c.a * c.d - c.b * c.c, e = 0 == d ? -c.tx : 1 / d * (c.c * (c.ty - b) + c.d * (a - c.tx)); c = this.__renderTransform; d = c.a * c.d - c.b * c.c; return this.__textEngine.bounds.contains(e, 0 == d ? -c.ty : 1 / d * (c.a * (b - c.ty) + c.b * (c.tx - a))) ? !0 : !1 }, __replaceSelectedText: function (a, b) { null == b && (b = !0); null == a && (a = ""); if ("" != a || this.__selectionIndex != this.__caretIndex) { var c = this.__caretIndex < this.__selectionIndex ? this.__caretIndex : this.__selectionIndex, d = this.__caretIndex > this.__selectionIndex ? this.__caretIndex : this.__selectionIndex; if (!(c == d && 0 < this.__textEngine.maxChars && this.__text.length == this.__textEngine.maxChars)) { c > this.__text.length && (c = this.__text.length); d > this.__text.length && (d = this.__text.length); if (d < c) { var e = d; d = c; c = e } 0 > c && (c = 0); this.__replaceText(c, d, a, b) } } }, __replaceText: function (a, b, c, d) { if (!(b < a || 0 > a || b > this.__text.length || null == c)) { d && (c = this.__textEngine.restrictText(c), 0 < this.__textEngine.maxChars && (d = this.__textEngine.maxChars - this.__text.length + (b - a), 0 >= d ? c = "" : d < c.length && (c = K.substr(c, 0, d)))); this.__updateText(this.__text.substring(0, a) + c + this.__text.substring(b)); d = c.length - (b - a); for (var e = 0, f; e < this.__textEngine.textFormatRanges.get_length();) f = this.__textEngine.textFormatRanges.get(e), a == b ? f.start == f.end ? 0 != f.start ? Qa.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: "openfl/text/TextField.hx", lineNumber: 2060, className: "openfl.text.TextField", methodName: "__replaceText" }) : f.end += d : f.end >= a && (f.start >= a ? (f.start += d, f.end += d) : f.start < a && f.end >= b && (f.end += d)) : f.end > a && (f.start > b ? (f.start += d, f.end += d) : f.start <= a && f.end > b ? f.end += d : f.start >= a && f.end <= b ? this.__textEngine.textFormatRanges.splice(e--, 1) : f.end > b && f.start > a && f.start <= b ? (f.start = a, f.end += d) : f.start < a && f.end > a && f.end <= b && (f.end = a)), ++e; 0 == this.__textEngine.textFormatRanges.get_length() ? this.__textEngine.textFormatRanges.push(new lf(this.get_defaultTextFormat().clone(), 0, c.length)) : a == b && 0 < this.__textEngine.textFormatRanges.get(0).start ? this.__textEngine.textFormatRanges.unshift(new lf(this.get_defaultTextFormat().clone(), 0, this.__textEngine.textFormatRanges.get(0).start)) : a != b && this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end < this.__text.length && this.__textEngine.textFormatRanges.push(new lf(this.get_defaultTextFormat().clone(), this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end, this.__text.length)); this.setSelection(a + c.length, a + c.length); this.__layoutDirty = this.__dirty = !0; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) } }, __startCursorTimer: function () { this.__cursorTimer = Ve.delay(q(this, this.__startCursorTimer), 600); this.__showCursor = !this.__showCursor; this.__dirty = !0; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()) }, __startTextInput: function () { 0 > this.__caretIndex && (this.__selectionIndex = this.__caretIndex = this.__text.length); (Ga.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : 1) && this.__enableInput() }, __stopCursorTimer: function () { null != this.__cursorTimer && (this.__cursorTimer.stop(), this.__cursorTimer = null); this.__showCursor && (this.__showCursor = !1, this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())) }, __stopTextInput: function () { (Ga.__supportDOM ? this.__renderedOnCanvasWhileOnDOM : 1) && this.__disableInput() }, __updateLayout: function () { if (this.__layoutDirty) { var a = this.__textEngine.width; this.__textEngine.update(); if (2 != this.__textEngine.autoSize) { if (this.__textEngine.width != a) switch (this.__textEngine.autoSize) { case 0: this.set_x(this.get_x() + (a - this.__textEngine.width) / 2); break; case 3: this.set_x(this.get_x() + (a - this.__textEngine.width)) } this.__textEngine.getBounds() } this.__layoutDirty = !1 } }, __updateScrollH: function () { this.__updateLayout(); if (this.get_textWidth() <= this.get_width() - 4) this.set_scrollH(0); else { var a = this.get_scrollH(); if (0 == this.__caretIndex || this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex)) == this.__caretIndex) a = 0; else { var b = ba.__pool.get(), c = !1; this.__caretIndex < this.__text.length && (c = this.__getCharBoundaries(this.__caretIndex, b)); c || (this.__getCharBoundaries(this.__caretIndex - 1, b), b.x += b.width); for (; b.x < a && 0 < a;) a -= 24; for (; b.x > a + this.get_width() - 4;) a += 24; ba.__pool.release(b) } 0 < a && 1 != this.get_type() && (b = this.getLineLength(this.getLineIndexOfChar(this.__caretIndex)), this.get_scrollH() + this.get_width() - 4 > b && this.set_scrollH(Math.ceil(b - this.get_width() + 4))); 0 > a ? this.set_scrollH(0) : a > this.get_maxScrollH() ? this.set_scrollH(this.get_maxScrollH()) : this.set_scrollH(a) } }, __updateScrollV: function () { this.__updateLayout(); if (this.get_textHeight() <= this.get_height() - 4) this.set_scrollV(1); else { var a = this.getLineIndexOfChar(this.__caretIndex); -1 == a && 0 < this.__caretIndex && (a = this.getLineIndexOfChar(this.__caretIndex - 1) + 1); if (a + 1 < this.get_scrollV()) this.set_scrollV(a + 1); else if (a + 1 > this.get_bottomScrollV()) { for (var b = 0; 0 <= a;) if (b + this.__textEngine.lineHeights.get(a) <= this.get_height() - 4) b += this.__textEngine.lineHeights.get(a), --a; else break; this.set_scrollV(a + 2) } else this.set_scrollV(this.get_scrollV()) } }, __updateText: function (a) { Ga.__supportDOM && this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = this.__text != a); this.__textEngine.set_text(a); this.__text = this.__textEngine.text; this.__text.length < this.__caretIndex && (this.__selectionIndex = this.__caretIndex = this.__text.length); if (!this.__displayAsPassword || Ga.__supportDOM && !this.__renderedOnCanvasWhileOnDOM) this.__textEngine.set_text(this.__text); else { a = ""; for (var b = 0, c = this.get_text().length; b < c;) b++, a += "*"; this.__textEngine.set_text(a) } }, __updateTransforms: function (a) { Bb.prototype.__updateTransforms.call(this, a); a = this.__renderTransform; var b = this.__offsetX, c = this.__offsetY; a.tx = b * a.a + c * a.c + a.tx; a.ty = b * a.b + c * a.d + a.ty }, get_antiAliasType: function () { return this.__textEngine.antiAliasType }, set_antiAliasType: function (a) { return this.__textEngine.antiAliasType = a }, get_autoSize: function () { return this.__textEngine.autoSize }, set_autoSize: function (a) { a != this.__textEngine.autoSize && (this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.autoSize = a }, get_background: function () { return this.__textEngine.background }, set_background: function (a) { a != this.__textEngine.background && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.background = a }, get_backgroundColor: function () { return this.__textEngine.backgroundColor }, set_backgroundColor: function (a) { a != this.__textEngine.backgroundColor && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.backgroundColor = a }, get_border: function () { return this.__textEngine.border }, set_border: function (a) { a != this.__textEngine.border && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.border = a }, get_borderColor: function () { return this.__textEngine.borderColor }, set_borderColor: function (a) { a != this.__textEngine.borderColor && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.borderColor = a }, get_bottomScrollV: function () { this.__updateLayout(); return this.__textEngine.get_bottomScrollV() }, get_caretIndex: function () { return this.__caretIndex }, get_defaultTextFormat: function () { return this.__textFormat.clone() }, set_defaultTextFormat: function (a) { this.__textFormat.__merge(a); this.__dirty = this.__layoutDirty = !0; this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); return a }, get_displayAsPassword: function () { return this.__displayAsPassword }, set_displayAsPassword: function (a) { a != this.__displayAsPassword && (this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__displayAsPassword = a, this.__updateText(this.__text)); return a }, get_embedFonts: function () { return this.__textEngine.embedFonts }, set_embedFonts: function (a) { return this.__textEngine.embedFonts = a }, get_gridFitType: function () { return this.__textEngine.gridFitType }, set_gridFitType: function (a) { return this.__textEngine.gridFitType = a }, get_height: function () { this.__updateLayout(); return this.__textEngine.height * Math.abs(this.get_scaleY()) }, set_height: function (a) { a != this.__textEngine.height && (this.__setTransformDirty(), this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__textEngine.height = a); return this.__textEngine.height * Math.abs(this.get_scaleY()) }, get_htmlText: function () { return this.__isHTML ? this.__rawHtmlText : this.__text }, set_htmlText: function (a) { this.__isHTML && this.__text == a || (this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); this.__isHTML = !0; this.__rawHtmlText = a; a = Db.parse(a, this.__textFormat, this.__textEngine.textFormatRanges); if (Ga.__supportDOM) { 1 < this.__textEngine.textFormatRanges.get_length() && this.__textEngine.textFormatRanges.splice(1, this.__textEngine.textFormatRanges.get_length() - 1); var b = this.__textEngine.textFormatRanges.get(0); b.format = this.__textFormat; b.start = 0; this.__renderedOnCanvasWhileOnDOM ? (b.end = a.length, this.__updateText(a)) : (b.end = this.__rawHtmlText.length, this.__updateText(this.__rawHtmlText)) } else this.__updateText(a); this.setSelection(this.get_length(), this.get_length()); return a }, get_length: function () { return null != this.__text ? this.__text.length : 0 }, get_maxChars: function () { return this.__textEngine.maxChars }, set_maxChars: function (a) { a != this.__textEngine.maxChars && (this.__textEngine.maxChars = a, this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return a }, get_maxScrollH: function () { this.__updateLayout(); return this.__textEngine.maxScrollH }, get_maxScrollV: function () { this.__updateLayout(); return this.__textEngine.get_maxScrollV() }, get_mouseWheelEnabled: function () { return this.__mouseWheelEnabled }, set_mouseWheelEnabled: function (a) { return this.__mouseWheelEnabled = a }, get_multiline: function () { return this.__textEngine.multiline }, set_multiline: function (a) { a != this.__textEngine.multiline && (this.__layoutDirty = this.__dirty = !0, this.__updateText(this.__text), this.__updateScrollH(), this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.multiline = a }, get_numLines: function () { this.__updateLayout(); return this.__textEngine.numLines }, get_restrict: function () { return this.__textEngine.restrict }, set_restrict: function (a) { this.__textEngine.restrict != a && (this.__textEngine.set_restrict(a), this.__updateText(this.__text)); return a }, get_scrollH: function () { return this.__textEngine.scrollH }, set_scrollH: function (a) { this.__updateLayout(); a > this.__textEngine.maxScrollH && (a = this.__textEngine.maxScrollH); 0 > a && (a = 0); a != this.__textEngine.scrollH && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__textEngine.scrollH = a, this.dispatchEvent(new oa("scroll"))); return this.__textEngine.scrollH }, get_scrollV: function () { return this.__textEngine.get_scrollV() }, set_scrollV: function (a) { this.__updateLayout(); 0 < a && a != this.__textEngine.get_scrollV() && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__textEngine.set_scrollV(a), this.dispatchEvent(new oa("scroll"))); return this.__textEngine.get_scrollV() }, get_selectable: function () { return this.__textEngine.selectable }, set_selectable: function (a) { a != this.__textEngine.selectable && 1 == this.get_type() && (null != this.stage && this.stage.get_focus() == this ? this.__startTextInput() : a || this.__stopTextInput()); return this.__textEngine.selectable = a }, get_selectionBeginIndex: function () { return Math.min(this.__caretIndex, this.__selectionIndex) | 0 }, get_selectionEndIndex: function () { return Math.max(this.__caretIndex, this.__selectionIndex) | 0 }, get_sharpness: function () { return this.__textEngine.sharpness }, set_sharpness: function (a) { a != this.__textEngine.sharpness && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.sharpness = a }, get_tabEnabled: function () { return null == this.__tabEnabled ? 1 == this.__textEngine.type : this.__tabEnabled }, get_text: function () { return this.__text }, set_text: function (a) { if (this.__isHTML || this.__text != a) this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()); else return a; 1 < this.__textEngine.textFormatRanges.get_length() && this.__textEngine.textFormatRanges.splice(1, this.__textEngine.textFormatRanges.get_length() - 1); var b = this.__textEngine.textFormatRanges.get(0); b.format = this.__textFormat; b.start = 0; b.end = a.length; this.__isHTML = !1; this.__updateText(a); this.setSelection(0, 0); return a }, get_textColor: function () { return this.__textFormat.color }, set_textColor: function (a) { a != this.__textFormat.color && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); for (var b = this.__textEngine.textFormatRanges.iterator(); b.hasNext();) b.next().format.color = a; return this.__textFormat.color = a }, get_textWidth: function () { this.__updateLayout(); return this.__textEngine.textWidth }, get_textHeight: function () { this.__updateLayout(); return this.__textEngine.textHeight }, get_type: function () { return this.__textEngine.type }, set_type: function (a) { a != this.__textEngine.type && (1 == a ? (this.addEventListener("addedToStage", q(this, this.this_onAddedToStage)), this.this_onFocusIn(null), this.__textEngine.__useIntAdvances = !0) : (this.removeEventListener("addedToStage", q(this, this.this_onAddedToStage)), this.__stopTextInput(), this.__textEngine.__useIntAdvances = null), this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.type = a }, get_width: function () { this.__updateLayout(); return this.__textEngine.width * Math.abs(this.__scaleX) }, set_width: function (a) { a != this.__textEngine.width && (this.__setTransformDirty(), this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()), this.__textEngine.width = a); return this.__textEngine.width * Math.abs(this.__scaleX) }, get_wordWrap: function () { return this.__textEngine.wordWrap }, set_wordWrap: function (a) { a != this.__textEngine.wordWrap && (this.__layoutDirty = this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())); return this.__textEngine.wordWrap = a }, get_x: function () { return this.__transform.tx + this.__offsetX }, set_x: function (a) { a != this.__transform.tx + this.__offsetX && this.__setTransformDirty(); return this.__transform.tx = a - this.__offsetX }, get_y: function () { return this.__transform.ty + this.__offsetY }, set_y: function (a) { a != this.__transform.ty + this.__offsetY && this.__setTransformDirty(); return this.__transform.ty = a - this.__offsetY }, stage_onMouseMove: function (a) { null != this.stage && this.get_selectable() && 0 <= this.__selectionIndex && (this.__updateLayout(), a = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY()), a != this.__caretIndex && (this.__caretIndex = a, a = !0, Ga.__supportDOM && (this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0), a = !1), a && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())))) }, stage_onMouseUp: function (a) { if (null != this.stage && (this.stage.removeEventListener("mouseMove", q(this, this.stage_onMouseMove)), this.stage.removeEventListener("mouseUp", q(this, this.stage_onMouseUp)), this.stage.get_focus() == this)) { this.__getWorldTransform(); this.__updateLayout(); a = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY()); var b = Math.max(this.__selectionIndex, a) | 0; this.__selectionIndex = Math.min(this.__selectionIndex, a) | 0; this.__caretIndex = b; this.__inputEnabled && (this.this_onFocusIn(null), this.__stopCursorTimer(), this.__startCursorTimer(), Ga.__supportDOM && this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0)) } }, this_onAddedToStage: function (a) { this.this_onFocusIn(null) }, this_onFocusIn: function (a) { 1 == this.get_type() && null != this.stage && this.stage.get_focus() == this && this.__startTextInput() }, this_onFocusOut: function (a) { this.__stopCursorTimer(); null != a.relatedObject && a.relatedObject instanceof cf ? (null != this.stage && (this.stage.window.onTextInput.remove(q(this, this.window_onTextInput)), this.stage.window.onKeyDown.remove(q(this, this.window_onKeyDown))), this.__inputEnabled = !1) : this.__stopTextInput(); this.__selectionIndex != this.__caretIndex && (this.__selectionIndex = this.__caretIndex, this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())) }, this_onKeyDown: function (a) { this.get_selectable() && 1 != this.get_type() && 67 == a.keyCode && (a.commandKey || a.ctrlKey) && this.__caretIndex != this.__selectionIndex && oe.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)) }, this_onMouseDown: function (a) { if (this.get_selectable() || 1 == this.get_type()) this.__updateLayout(), this.__selectionIndex = this.__caretIndex = this.__getPosition(this.get_mouseX() + this.get_scrollH(), this.get_mouseY()), Ga.__supportDOM || (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty())), this.stage.addEventListener("mouseMove", q(this, this.stage_onMouseMove)), this.stage.addEventListener("mouseUp", q(this, this.stage_onMouseUp)) }, this_onMouseWheel: function (a) { this.get_mouseWheelEnabled() && this.set_scrollV(this.get_scrollV() - a.delta) }, this_onDoubleClick: function (a) { if (this.get_selectable()) { this.__updateLayout(); a = "\n.!?, ;:()-_/".split(""); var b = this.__text, c = -1, d = b.length, e = Math.max(this.__caretIndex, 1) | 0; if (0 < b.length && 0 <= this.__caretIndex && d >= this.__caretIndex) { for (var f = 0; f < a.length;) { var h = a[f]; ++f; var l = b.lastIndexOf(h, e - 1); l > c && (c = l + 1); l = b.indexOf(h, e); l < d && -1 != l && (d = l) } c != d && (this.setSelection(c, d), a = !0, Ga.__supportDOM && (this.__renderedOnCanvasWhileOnDOM && (this.__forceCachedBitmapUpdate = !0), a = !1), a && (this.__dirty = !0, this.__renderDirty || (this.__renderDirty = !0, this.__setParentRenderDirty()))) } } }, window_onKeyDown: function (a, b) { switch (a) { case 8: this.__selectionIndex == this.__caretIndex && 0 < this.__caretIndex && (this.__selectionIndex = this.__caretIndex - 1); this.__selectionIndex != this.__caretIndex ? (this.replaceSelectedText(""), this.__selectionIndex = this.__caretIndex, this.dispatchEvent(new oa("change", !0))) : (this.__stopCursorTimer(), this.__startCursorTimer()); break; case 97: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b)) && (this.__caretIndex = this.__text.length, this.__selectionIndex = 0); break; case 99: (Gb.get_metaKey(b) || Gb.get_ctrlKey(b)) && this.__caretIndex != this.__selectionIndex && oe.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)); break; case 120: (Gb.get_metaKey(b) || Gb.get_ctrlKey(b)) && this.__caretIndex != this.__selectionIndex && (oe.set_text(this.__text.substring(this.__caretIndex, this.__selectionIndex)), this.replaceSelectedText(""), this.dispatchEvent(new oa("change", !0))); break; case 127: this.__selectionIndex == this.__caretIndex && this.__caretIndex < this.__text.length && (this.__selectionIndex = this.__caretIndex + 1); this.__selectionIndex != this.__caretIndex ? (this.replaceSelectedText(""), this.__selectionIndex = this.__caretIndex, this.dispatchEvent(new oa("change", !0))) : (this.__stopCursorTimer(), this.__startCursorTimer()); break; case 1073741898: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretIndex = 0 : this.__caretBeginningOfLine(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741901: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretIndex = this.__text.length : this.__caretEndOfLine(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741903: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretBeginningOfNextLine() : this.__caretNextCharacter(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741904: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretBeginningOfPreviousLine() : this.__caretPreviousCharacter(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741905: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretIndex = this.__text.length : this.__caretNextLine(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 1073741906: this.get_selectable() && (Gb.get_metaKey(b) || Gb.get_ctrlKey(b) ? this.__caretIndex = 0 : this.__caretPreviousLine(), Gb.get_shiftKey(b) || (this.__selectionIndex = this.__caretIndex), this.setSelection(this.__selectionIndex, this.__caretIndex)); break; case 13: case 1073741912: this.__textEngine.multiline ? (a = new kf("textInput", !0, !0, "\n"), this.dispatchEvent(a), a.isDefaultPrevented() || (this.__replaceSelectedText("\n", !0), this.dispatchEvent(new oa("change", !0)))) : (this.__stopCursorTimer(), this.__startCursorTimer()) } }, window_onTextInput: function (a) { this.__replaceSelectedText(a, !0); this.dispatchEvent(new oa("change", !0)) }, __class__: cf, __properties__: u(Bb.prototype.__properties__, { set_wordWrap: "set_wordWrap", get_wordWrap: "get_wordWrap", set_type: "set_type", get_type: "get_type", get_textWidth: "get_textWidth", get_textHeight: "get_textHeight", set_textColor: "set_textColor", get_textColor: "get_textColor", set_text: "set_text", get_text: "get_text", set_sharpness: "set_sharpness", get_sharpness: "get_sharpness", get_selectionEndIndex: "get_selectionEndIndex", get_selectionBeginIndex: "get_selectionBeginIndex", set_selectable: "set_selectable", get_selectable: "get_selectable", set_scrollV: "set_scrollV", get_scrollV: "get_scrollV", set_scrollH: "set_scrollH", get_scrollH: "get_scrollH", set_restrict: "set_restrict", get_restrict: "get_restrict", get_numLines: "get_numLines", set_multiline: "set_multiline", get_multiline: "get_multiline", set_mouseWheelEnabled: "set_mouseWheelEnabled", get_mouseWheelEnabled: "get_mouseWheelEnabled", get_maxScrollV: "get_maxScrollV", get_maxScrollH: "get_maxScrollH", set_maxChars: "set_maxChars", get_maxChars: "get_maxChars", get_length: "get_length", set_htmlText: "set_htmlText", get_htmlText: "get_htmlText", set_gridFitType: "set_gridFitType", get_gridFitType: "get_gridFitType", set_embedFonts: "set_embedFonts", get_embedFonts: "get_embedFonts", set_displayAsPassword: "set_displayAsPassword", get_displayAsPassword: "get_displayAsPassword", set_defaultTextFormat: "set_defaultTextFormat", get_defaultTextFormat: "get_defaultTextFormat", get_caretIndex: "get_caretIndex", get_bottomScrollV: "get_bottomScrollV", set_borderColor: "set_borderColor", get_borderColor: "get_borderColor", set_border: "set_border", get_border: "get_border", set_backgroundColor: "set_backgroundColor", get_backgroundColor: "get_backgroundColor", set_background: "set_background", get_background: "get_background", set_autoSize: "set_autoSize", get_autoSize: "get_autoSize", set_antiAliasType: "set_antiAliasType", get_antiAliasType: "get_antiAliasType" }) }); var Sg = function (a, b, c, d, e, f, h, l, p, m, k, n, t) { this.font = a; this.size = b; this.color = c; this.bold = d; this.italic = e; this.underline = f; this.url = h; this.target = l; this.align = p; this.leftMargin = m; this.rightMargin = k; this.indent = n; this.leading = t }; k["openfl.text.TextFormat"] = Sg; Sg.__name__ = "openfl.text.TextFormat"; Sg.prototype = { align: null, blockIndent: null, bold: null, bullet: null, color: null, font: null, indent: null, italic: null, kerning: null, leading: null, leftMargin: null, letterSpacing: null, rightMargin: null, size: null, tabStops: null, target: null, underline: null, url: null, __ascent: null, __descent: null, clone: function () { var a = new Sg(this.font, this.size, this.color, this.bold, this.italic, this.underline, this.url, this.target); a.align = this.align; a.leftMargin = this.leftMargin; a.rightMargin = this.rightMargin; a.indent = this.indent; a.leading = this.leading; a.blockIndent = this.blockIndent; a.bullet = this.bullet; a.kerning = this.kerning; a.letterSpacing = this.letterSpacing; a.tabStops = this.tabStops; a.__ascent = this.__ascent; a.__descent = this.__descent; return a }, __merge: function (a) { null != a.font && (this.font = a.font); null != a.size && (this.size = a.size); null != a.color && (this.color = a.color); null != a.bold && (this.bold = a.bold); null != a.italic && (this.italic = a.italic); null != a.underline && (this.underline = a.underline); null != a.url && (this.url = a.url); null != a.target && (this.target = a.target); null != a.align && (this.align = a.align); null != a.leftMargin && (this.leftMargin = a.leftMargin); null != a.rightMargin && (this.rightMargin = a.rightMargin); null != a.indent && (this.indent = a.indent); null != a.leading && (this.leading = a.leading); null != a.blockIndent && (this.blockIndent = a.blockIndent); null != a.bullet && (this.bullet = a.bullet); null != a.kerning && (this.kerning = a.kerning); null != a.letterSpacing && (this.letterSpacing = a.letterSpacing); null != a.tabStops && (this.tabStops = a.tabStops); null != a.__ascent && (this.__ascent = a.__ascent); null != a.__descent && (this.__descent = a.__descent) }, __class__: Sg }; var ik = { fromString: function (a) { switch (a) { case "center": return 0; case "end": return 1; case "justify": return 2; case "left": return 3; case "right": return 4; case "start": return 5; default: return null } }, toString: function (a) { switch (a) { case 0: return "center"; case 1: return "end"; case 2: return "justify"; case 3: return "left"; case 4: return "right"; case 5: return "start"; default: return null } } }, ip = function (a, b, c, d, e, f) { this.x = a; this.width = b; this.height = c; this.ascent = d; this.descent = e; this.leading = f }; k["openfl.text.TextLineMetrics"] = ip; ip.__name__ = "openfl.text.TextLineMetrics"; ip.prototype = { ascent: null, descent: null, height: null, leading: null, width: null, x: null, __class__: ip }; var jp = function (a, b, c) { this.glyph = a; this.advance = b; this.offset = null != c ? c : new be }; k["openfl.text._internal.GlyphPosition"] = jp; jp.__name__ = "openfl.text._internal.GlyphPosition"; jp.prototype = {advance: null, glyph: null, offset: null, __class__: jp}; var Db = function () { }; k["openfl.text._internal.HTMLParser"] = Db; Db.__name__ = "openfl.text._internal.HTMLParser"; Db.parse = function (a, b, c) { a = a.replace(Db.__regexBreakTag.r, "\n"); a = a.replace(Db.__regexEntities[5].r, " "); var d = a.split("<"); if (1 == d.length) a = T.htmlUnescape(a.replace(Db.__regexHTMLTag.r, "")), 1 < c.get_length() && c.splice(1, c.get_length() - 1), c = c.get(0), c.format = b, c.start = 0, c.end = a.length; else { c.splice(0, c.get_length()); a = ""; for (var e, f = [b.clone()], h = [], l = !1, p = 0; p < d.length;) if (e = d[p], ++p, "" != e) { var m = "/" == K.substr(e, 0, 1), k = e.indexOf(">"), n = k + 1, t = e.indexOf(" "); t = e.substring(m ? 1 : 0, -1 < t && t < k ? t : k); if (m) 0 == h.length || t.toLowerCase() != h[h.length - 1].toLowerCase() ? Qa.info("Invalid HTML, unexpected closing tag ignored: " + t, { fileName: "openfl/text/_internal/HTMLParser.hx", lineNumber: 82, className: "openfl.text._internal.HTMLParser", methodName: "parse" }) : (h.pop(), f.pop(), m = f[f.length - 1].clone(), "p" == t.toLowerCase() && 0 < c.get_length() && (a += "\n", l = !0), n < e.length && (e = T.htmlUnescape(K.substr(e, n, null)), c.push(new lf(m, a.length, a.length + e.length)), a += e, l = !1)); else if (m = f[f.length - 1].clone(), -1 < k) { switch (t.toLowerCase()) { case "a": Db.__regexHref.match(e) && (m.url = Db.__getAttributeMatch(Db.__regexHref)); break; case "b": m.bold = !0; break; case "em": case "i": m.italic = !0; break; case "font": Db.__regexFace.match(e) && (m.font = Db.__getAttributeMatch(Db.__regexFace)); Db.__regexColor.match(e) && (m.color = z.parseInt("0x" + Db.__getAttributeMatch(Db.__regexColor))); if (Db.__regexSize.match(e)) { k = Db.__getAttributeMatch(Db.__regexSize); var q = K.cca(k, 0); m.size = 43 == q || 45 == q ? (2 <= f.length ? f[f.length - 2] : b).size + z.parseInt(k) : z.parseInt(k) } break; case "p": 0 < c.get_length() && !l && (a += "\n"); Db.__regexAlign.match(e) && (k = Db.__getAttributeMatch(Db.__regexAlign).toLowerCase(), m.align = ik.fromString(k)); break; case "textformat": Db.__regexBlockIndent.match(e) && (m.blockIndent = z.parseInt(Db.__getAttributeMatch(Db.__regexBlockIndent))); Db.__regexIndent.match(e) && (m.indent = z.parseInt(Db.__getAttributeMatch(Db.__regexIndent))); Db.__regexLeading.match(e) && (m.leading = z.parseInt(Db.__getAttributeMatch(Db.__regexLeading))); Db.__regexLeftMargin.match(e) && (m.leftMargin = z.parseInt(Db.__getAttributeMatch(Db.__regexLeftMargin))); Db.__regexRightMargin.match(e) && (m.rightMargin = z.parseInt(Db.__getAttributeMatch(Db.__regexRightMargin))); if (Db.__regexTabStops.match(e)) { k = Db.__getAttributeMatch(Db.__regexTabStops).split(" "); q = []; for (var w = 0; w < k.length;) { var u = k[w]; ++w; q.push(z.parseInt(u)) } m.tabStops = q } break; case "u": m.underline = !0 } f.push(m); h.push(t); n < e.length && (e = T.htmlUnescape(e.substring(n)), c.push(new lf(m, a.length, a.length + e.length)), a += e, l = !1) } else e = T.htmlUnescape(e), c.push(new lf(m, a.length, a.length + e.length)), a += e, l = !1 } 0 == c.get_length() && c.push(new lf(f[0], 0, 0)) } return a }; Db.__getAttributeMatch = function (a) { return null != a.matched(2) ? a.matched(2) : a.matched(3) }; var Wb = function (a) { this.textField = a; this.height = this.width = 100; this.set_text(""); this.bounds = new ba(0, 0, 0, 0); this.textBounds = new ba(0, 0, 0, 0); this.type = 0; this.autoSize = 2; this.embedFonts = !1; this.selectable = !0; this.borderColor = 0; this.border = !1; this.backgroundColor = 16777215; this.background = !1; this.gridFitType = 1; this.maxChars = 0; this.multiline = !1; this.numLines = 1; this.scrollH = this.sharpness = 0; this.set_scrollV(1); this.wordWrap = !1; this.lineAscents = Eb.toFloatVector(null); this.lineBreaks = Eb.toIntVector(null); this.lineDescents = Eb.toFloatVector(null); this.lineLeadings = Eb.toFloatVector(null); this.lineHeights = Eb.toFloatVector(null); this.lineWidths = Eb.toFloatVector(null); this.layoutGroups = Eb.toObjectVector(null); this.textFormatRanges = Eb.toObjectVector(null); null == Wb.__context && (Wb.__context = window.document.createElement("canvas").getContext("2d")) }; k["openfl.text._internal.TextEngine"] = Wb; Wb.__name__ = "openfl.text._internal.TextEngine"; Wb.findFont = function (a) { return Wc.__fontByName.h[a] }; Wb.findFontVariant = function (a) { var b = a.font, c = a.bold; a = a.italic; null == b && (b = "_serif"); var d = T.replace(T.replace(b, " Normal", ""), " Regular", ""); return c && a && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, d + " Bold Italic") ? Wb.findFont(d + " Bold Italic") : c && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, d + " Bold") ? Wb.findFont(d + " Bold") : a && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, d + " Italic") ? Wb.findFont(d + " Italic") : Wb.findFont(b) }; Wb.getFormatHeight = function (a) { Wb.__context.font = Wb.getFont(a); var b = Wb.getFontInstance(a); if (null != a.__ascent) { var c = a.size * a.__ascent; b = a.size * a.__descent } else null != b && 0 != b.unitsPerEM ? (c = b.ascender / b.unitsPerEM * a.size, b = Math.abs(b.descender / b.unitsPerEM * a.size)) : (c = a.size, b = .185 * a.size); return c + b + a.leading }; Wb.getFont = function (a) { var b = a.font, c = a.bold, d = a.italic; null == b && (b = "_serif"); var e = T.replace(T.replace(b, " Normal", ""), " Regular", ""); c && d && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, e + " Bold Italic") ? (b = e + " Bold Italic", d = c = !1) : c && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, e + " Bold") ? (b = e + " Bold", c = !1) : d && Object.prototype.hasOwnProperty.call(Wc.__fontByName.h, e + " Italic") ? (b = e + " Italic", d = !1) : (c && (-1 < b.indexOf(" Bold ") || T.endsWith(b, " Bold")) && (c = !1), d && (-1 < b.indexOf(" Italic ") || T.endsWith(b, " Italic")) && (d = !1)); c = (d ? "italic " : "normal ") + "normal " + (c ? "bold " : "normal "); c += a.size + "px"; c += "/" + (a.leading + a.size + 3) + "px "; switch (b) { case "_sans": a = "sans-serif"; break; case "_serif": a = "serif"; break; case "_typewriter": a = "monospace"; break; default: a = "'" + b.replace(/^[\s'"]+(.*)[\s'"]+$/, "$1") + "'" } return c += "" + a }; Wb.getFontInstance = function (a) { return Wb.findFontVariant(a) }; Wb.prototype = { antiAliasType: null, autoSize: null, background: null, backgroundColor: null, border: null, borderColor: null, bottomScrollV: null, bounds: null, caretIndex: null, embedFonts: null, gridFitType: null, height: null, layoutGroups: null, lineAscents: null, lineBreaks: null, lineDescents: null, lineLeadings: null, lineHeights: null, lineWidths: null, maxChars: null, maxScrollH: null, maxScrollV: null, multiline: null, numLines: null, restrict: null, scrollH: null, scrollV: null, selectable: null, sharpness: null, text: null, textBounds: null, textHeight: null, textFormatRanges: null, textWidth: null, type: null, width: null, wordWrap: null, textField: null, __cursorTimer: null, __hasFocus: null, __isKeyDown: null, __measuredHeight: null, __measuredWidth: null, __restrictRegexp: null, __selectionStart: null, __showCursor: null, __textFormat: null, __textLayout: null, __texture: null, __useIntAdvances: null, __cairoFont: null, __font: null, createRestrictRegexp: function (a) { var b = "", c = []; 0 < (new fb("\\^(.-.|.)", "gu")).map(a, function (a) { b += a.matched(1); return "" }).length && c.push("[^" + a + "]"); 0 < b.length && c.push("[" + b + "]"); return new fb("(" + c.join("|") + ")", "g") }, getBounds: function () { var a = this.border ? 1 : 0; this.bounds.width = this.width + a; this.bounds.height = this.height + a; for (var b = a = this.width, c = this.layoutGroups.iterator(); c.hasNext();) { var d = c.next(); d.offsetX < a && (a = d.offsetX); d.offsetY < b && (b = d.offsetY) } a >= this.width && (a = 2); b >= this.height && (b = 2); this.textBounds.setTo(Math.max(a - 2, 0), Math.max(b - 2, 0), Math.min(this.textWidth + 4, this.bounds.width + 4), Math.min(1.185 * this.textHeight + 4, this.bounds.height + 4)) }, getLine: function (a) { return 0 > a || a > this.lineBreaks.get_length() + 1 ? null : 0 == this.lineBreaks.get_length() ? this.text : this.text.substring(0 < a ? this.lineBreaks.get(a - 1) : 0, this.lineBreaks.get(a)) }, getLineBreakIndex: function (a) { null == a && (a = 0); var b = this.text.indexOf("\n", a); a = this.text.indexOf("\r", a); return -1 == b ? a : -1 == a ? b : b < a ? b : a }, getLineMeasurements: function () { this.lineAscents.set_length(0); this.lineDescents.set_length(0); this.lineLeadings.set_length(0); this.lineHeights.set_length(0); this.lineWidths.set_length(0); var a = 0, b = 0, c = null, d = 0, e = 0, f; this.textHeight = this.textWidth = 0; this.numLines = 1; this.maxScrollH = 0; for (var h = this.layoutGroups.iterator(); h.hasNext();) { for (f = h.next(); f.lineIndex > this.numLines - 1;) this.lineAscents.push(a), this.lineDescents.push(b), this.lineLeadings.push(null != c ? c : 0), this.lineHeights.push(d), this.lineWidths.push(e), b = a = 0, c = null, e = d = 0, this.numLines++; a = Math.max(a, f.ascent); b = Math.max(b, f.descent); c = null == c ? f.leading : Math.max(c, f.leading) | 0; d = Math.max(d, f.height); e = f.offsetX - 2 + f.width; e > this.textWidth && (this.textWidth = e); f = f.offsetY - 2 + f.ascent + f.descent; f > this.textHeight && (this.textHeight = f) } 0 == this.textHeight && null != this.textField && 1 == this.textField.get_type() && (a = this.textField.__textFormat, b = Wb.getFontInstance(a), null != a.__ascent ? (h = a.size * a.__ascent, f = a.size * a.__descent) : null != b && 0 != b.unitsPerEM ? (h = b.ascender / b.unitsPerEM * a.size, f = Math.abs(b.descender / b.unitsPerEM * a.size)) : (h = a.size, f = .185 * a.size), c = a.leading, a = h, b = f, this.textHeight = h + f); this.lineAscents.push(a); this.lineDescents.push(b); this.lineLeadings.push(null != c ? c : 0); this.lineHeights.push(d); this.lineWidths.push(e); 1 == this.numLines && 0 < c && (this.textHeight += c); 0 < this.layoutGroups.get_length() && (h = this.layoutGroups.get(this.layoutGroups.get_length() - 1), null != h && h.startIndex == h.endIndex && (this.textHeight -= d)); if (2 != this.autoSize) switch (this.autoSize) { case 0: case 1: case 3: this.wordWrap || (this.width = this.textWidth + 4), this.height = this.textHeight + 4, this.bottomScrollV = this.numLines } this.maxScrollH = this.textWidth > this.width - 4 ? this.textWidth - this.width + 4 | 0 : 0; this.scrollH > this.maxScrollH && (this.scrollH = this.maxScrollH) }, getLayoutGroups: function () { var a = this; this.layoutGroups.set_length(0); if (null != this.text && "" != this.text) { var b = -1, c = null, d = null, e = cf.__defaultTextFormat.clone(), f = 0, h = 0, l = 0, p = 0, m = 3, k = 0, n = 0, t = 0, q = 0, w = !0, u = null, x = null, A = 0, N = 0, z = 0, J = -2, B = -1, ma = this.text.indexOf(" "), C = this.getLineBreakIndex(), D = 0, G = 0, F = 0, I = 0, y = function (b, c, d) { var e = []; if (null == a.__useIntAdvances) { var f = new fb("Trident/7.0", ""); a.__useIntAdvances = f.match(R.navigator.userAgent) } if (a.__useIntAdvances) { var g = 0; for (f = c; f < d;) { var h = f++; h = Wb.__context.measureText(b.substring(c, h + 1)).width; e.push(h - g); g = h } } else for (f = c; f < d;) h = f++, h < b.length - 1 ? (c = Wb.__context.measureText(b.charAt(h + 1)).width, c = Wb.__context.measureText(K.substr(b, h, 2)).width - c) : c = Wb.__context.measureText(b.charAt(h)).width, e.push(c); return e }, E = function (a) { for (var b = 0, c = 0; c < a.length;) { var d = a[c]; ++c; b += d } return b }, L = function () { return 2 + t + k + (w ? n : 0) }, M = function () { return a.width - 2 - q - L() }, P = function (b, d) { null == u || u.startIndex != u.endIndex ? (u = new ln(c.format, b, d), a.layoutGroups.push(u)) : (u.format = c.format, u.startIndex = b, u.endIndex = d) }, O = function () { null != e.__ascent ? (h = e.size * e.__ascent, p = e.size * e.__descent) : null != d && 0 != d.unitsPerEM ? (h = d.ascender / d.unitsPerEM * e.size, p = Math.abs(d.descender / d.unitsPerEM * e.size)) : (h = e.size, p = .185 * e.size); f = e.leading; N = Math.ceil(h + p + f); N > z && (z = N); h > l && (l = h) }, T = function () { w = !0; m = null != e.align ? e.align : 3; k = null != e.blockIndent ? e.blockIndent : 0; n = null != e.indent ? e.indent : 0; t = null != e.leftMargin ? e.leftMargin : 0; q = null != e.rightMargin ? e.rightMargin : 0 }, Aa = function () { return b < a.textFormatRanges.get_length() - 1 ? (b += 1, c = a.textFormatRanges.get(b), e.__merge(c.format), Wb.__context.font = Wb.getFont(e), d = Wb.getFontInstance(e), !0) : !1 }, S = function (d, e) { if (d >= e) x = [], A = 0; else if (e <= c.end) x = y(a.text, d, e), A = E(x); else { var f = d; d = c.end; var g = 0; x = []; for (A = 0; ;) if (f != d && (f = y(a.text, f, d), x = x.concat(f)), d != e) { if (!Aa()) { Qa.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: "openfl/text/_internal/TextEngine.hx", lineNumber: 1064, className: "openfl.text._internal.TextEngine", methodName: "getLayoutGroups" }); break } f = d; d = e < c.end ? e : c.end; ++g } else { A = E(x); break } b -= g + 1; Aa() } }, za = function (b) { if (b <= c.end) { x = y(a.text, F, b); A = E(x); P(F, b); u.positions = x; var d = D, e = L(); u.offsetX = d + e; u.ascent = h; u.descent = p; u.leading = f; u.lineIndex = I; u.offsetY = G + 2; u.width = A; u.height = N; D += A; b == c.end && (u = null, Aa(), O()) } else for (; ;) { var g = b < c.end ? b : c.end; F != g && (x = y(a.text, F, g), A = E(x), P(F, g), u.positions = x, d = D, e = L(), u.offsetX = d + e, u.ascent = h, u.descent = p, u.leading = f, u.lineIndex = I, u.offsetY = G + 2, u.width = A, u.height = N, D += A, F = g); g == c.end && (u = null); if (g == b) break; if (!Aa()) { Qa.warn("You found a bug in OpenFL's text code! Please save a copy of your project and contact Joshua Granick (@singmajesty) so we can fix this.", { fileName: "openfl/text/_internal/TextEngine.hx", lineNumber: 1152, className: "openfl.text._internal.TextEngine", methodName: "getLayoutGroups" }); break } O() } F = b }, Sa = function () { O(); for (var b = a.layoutGroups.get_length(); -1 < --b;) { var c = a.layoutGroups.get(b); if (c.lineIndex < I) break; c.lineIndex > I || (c.ascent = l, c.height = z) } G += z; z = l = 0; I += 1; D = 0; w = !1 }, W = function (b) { if (4 <= a.width && a.wordWrap) { var c = x, d, e, f; for (d = E(c); 0 < c.length && D + d > M();) { for (f = d = e = 0; D + f < M();) { var g = c[d]; 0 == g ? (++d, ++e) : (f += g, ++d) } if (d == e) d = e + 1; else for (; 1 < d && D + f > M();) --d, 0 < d - e ? (S(F, F + d - e), f = A) : (d = 1, e = 0, S(F, F + 1), f = 0); c = F + d - e; za(c); Sa(); S(c, b); c = x; d = A } } za(b) }; Aa(); T(); O(); for (var U, X = this.text.length + 1; F < X;) if (-1 < C && (-1 == ma || C < ma)) F <= C ? (S(F, C), W(C), u = null) : null != u && u.startIndex != u.endIndex && (u.endIndex == ma && (u.width -= u.positions[u.positions.length - 1]), u = null), Sa(), c.end == C && (Aa(), O()), F = C + 1, B = C, C = this.getLineBreakIndex(F), T(); else if (-1 < ma) for (null != u && u.startIndex != u.endIndex && (u = null), U = !1; F < this.text.length;) { var H = -1; -1 == ma ? H = C : (H = ma + 1, -1 < C && C < H && (H = C)); -1 == H && (H = this.text.length); S(F, H); if (2 == m) { if (0 < x.length && F == J) { F += 1; var Q = x.shift(); A -= Q; D += Q } 0 < x.length && H == ma + 1 && (--H, Q = x.pop(), A -= Q) } this.wordWrap && D + A > M() && (U = !0, 0 < x.length && H == ma + 1 && D + A - x[x.length - 1] <= M() && (U = !1)); if (U) { 2 != m && (null != u || 0 < this.layoutGroups.get_length()) && (U = u, null == U && (U = this.layoutGroups.get(this.layoutGroups.get_length() - 1)), U.width -= U.positions[U.positions.length - 1], U.endIndex--); U = this.layoutGroups.get_length() - 1; for (Q = 0; ;) { u = this.layoutGroups.get(U); if (0 < U && u.startIndex > J) ++Q; else break; --U } F == J + 1 && Sa(); D = 0; if (0 < Q) { U = this.layoutGroups.get(this.layoutGroups.get_length() - Q).offsetX; Q = this.layoutGroups.get_length() - Q; for (var V = this.layoutGroups.get_length(); Q < V;) { var Y = Q++; u = this.layoutGroups.get(Y); u.offsetX -= U; u.offsetY = G + 2; u.lineIndex = I; D += u.width } } W(H); U = !1 } else null != u && F == ma ? (2 != m && (u.endIndex = ma, u.positions = u.positions.concat(x), u.width += A), D += A, F = H) : (null == u || 2 == m ? W(H) : (Q = H < c.end ? H : c.end, Q < H && (x = y(this.text, F, Q), A = E(x)), u.endIndex = Q, u.positions = u.positions.concat(x), u.width += A, D += A, Q == c.end && (u = null, Aa(), O(), F = Q, Q != H && za(H)), C == H && ++H, F = H), H == this.text.length && Sa()); H = this.text.indexOf(" ", F); C == J && (u.endIndex = C, 0 > C - u.startIndex - u.positions.length && u.positions.push(0), F = C + 1); J = ma; ma = H; if (-1 < C && C <= F && (ma > C || -1 == ma) || F > this.text.length) break } else F < this.text.length && (S(F, this.text.length), W(this.text.length), Sa()), F += 1; B == F - 2 && -1 < B && (P(F - 1, F - 1), u.positions = [], u.ascent = h, u.descent = p, u.leading = f, u.lineIndex = I - 1, u.offsetX = L(), u.offsetY = G + 2 - N, u.width = 0, u.height = N) } }, restrictText: function (a) { if (null == a) return a; null != this.__restrictRegexp && (a = this.__restrictRegexp.split(a).join("")); return a }, setTextAlignment: function () { for (var a = -1, b = 0, c, d, e = !1, f = 0, h = this.layoutGroups.get_length(); f < h;) { var l = f++; c = this.layoutGroups.get(l); if (c.lineIndex != a) switch (a = c.lineIndex, b = this.width - 4 - c.format.rightMargin, c.format.align) { case 0: b = this.lineWidths.get(a) < b ? Math.round((b - this.lineWidths.get(a)) / 2) : 0; break; case 2: if (this.lineWidths.get(a) < b) { d = 1; for (var p = l + 1, m = this.layoutGroups.get_length(); p < m;) { var k = p++; if (this.layoutGroups.get(k).lineIndex == a) 0 != k && 32 != K.cca(this.text, this.layoutGroups.get(k).startIndex - 1) || ++d; else break } if (1 < d && (c = this.layoutGroups.get(l + d - 1), p = K.cca(this.text, c.endIndex), c.endIndex < this.text.length && 10 != p && 13 != p)) for (b = (b - this.lineWidths.get(a)) / (d - 1), e = !0, p = 1; this.layoutGroups.get(l + p).offsetX += b * p, ++p < d;) ; } b = 0; break; case 4: b = this.lineWidths.get(a) < b ? Math.round(b - this.lineWidths.get(a)) : 0; break; default: b = 0 } 0 < b && (c.offsetX += b) } e && this.getLineMeasurements() }, trimText: function (a) { if (null == a) return a; 0 < this.maxChars && a.length > this.maxChars && (a = K.substr(a, 0, this.maxChars)); return a }, update: function () { null == this.text || 0 == this.textFormatRanges.get_length() ? (this.lineAscents.set_length(0), this.lineBreaks.set_length(0), this.lineDescents.set_length(0), this.lineLeadings.set_length(0), this.lineHeights.set_length(0), this.lineWidths.set_length(0), this.layoutGroups.set_length(0), this.textHeight = this.textWidth = 0, this.numLines = 1, this.maxScrollH = 0, this.bottomScrollV = this.maxScrollV = 1) : (this.getLayoutGroups(), this.getLineMeasurements(), this.setTextAlignment()); this.getBounds() }, get_bottomScrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; for (var a = this.lineHeights.get_length(), b = this.lineLeadings.get_length() == a ? -this.lineLeadings.get(a - 1) : 0, c = this.get_scrollV() - 1, d = this.lineHeights.get_length(); c < d;) { var e = c++; if (b + this.lineHeights.get(e) <= this.height - 4) b += this.lineHeights.get(e); else { a = e; break } } return a < this.get_scrollV() ? this.get_scrollV() : a }, get_maxScrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; for (var a = this.numLines - 1, b = 0, c = a; 0 <= a;) if (b + this.lineHeights.get(a) <= this.height - 4) b += this.lineHeights.get(a), --a; else break; a = a == c ? this.numLines : a + 2; return 1 > a ? 1 : a }, set_restrict: function (a) { if (this.restrict == a) return this.restrict; this.restrict = a; this.__restrictRegexp = null == this.restrict || 0 == this.restrict.length ? null : this.createRestrictRegexp(a); return this.restrict }, get_scrollV: function () { if (1 == this.numLines || null == this.lineHeights) return 1; var a = this.get_maxScrollV(); return this.scrollV > a ? a : this.scrollV }, set_scrollV: function (a) { 1 > a && (a = 1); return this.scrollV = a }, set_text: function (a) { return this.text = a }, __class__: Wb, __properties__: { set_text: "set_text", set_scrollV: "set_scrollV", get_scrollV: "get_scrollV", set_restrict: "set_restrict", get_maxScrollV: "get_maxScrollV", get_bottomScrollV: "get_bottomScrollV" } }; var lf = function (a, b, c) { this.format = a; this.start = b; this.end = c }; k["openfl.text._internal.TextFormatRange"] = lf; lf.__name__ = "openfl.text._internal.TextFormatRange"; lf.prototype = {end: null, format: null, start: null, __class__: lf}; var Yd = function (a, b, c, d, e, f) { null == f && (f = "en"); null == e && (e = "Zyyy"); null == d && (d = 4); null == c && (c = 12); null == a && (a = ""); this.letterSpacing = 0; this.set_text(a); this.set_font(b); this.set_size(c); this.__direction = d; this.__script = e; this.__language = f; this.positions = []; this.__dirty = !0; this.__create(this.__direction, this.__script, this.__language) }; k["openfl.text._internal.TextLayout"] = Yd; Yd.__name__ = "openfl.text._internal.TextLayout"; Yd.prototype = { autoHint: null, font: null, glyphs: null, letterSpacing: null, positions: null, size: null, text: null, __buffer: null, __direction: null, __dirty: null, __handle: null, __language: null, __script: null, __font: null, __hbBuffer: null, __hbFont: null, __create: function (a, b, c) { 4 == c.length && (this.__hbBuffer = rs._new(), js._new(c)) }, __position: function () { this.positions = [] }, get_positions: function () { this.__dirty && (this.__dirty = !1, this.__position()); return this.positions }, get_direction: function () { return this.__direction }, set_direction: function (a) { if (a == this.__direction) return a; this.__direction = a; this.__dirty = !0; return a }, set_font: function (a) { if (a == this.font) return a; this.font = a; this.__dirty = !0; return a }, get_glyphs: function () { for (var a = [], b = 0, c = this.get_positions(); b < c.length;) { var d = c[b]; ++b; a.push(d.glyph) } return a }, get_language: function () { return this.__language }, set_language: function (a) { if (a == this.__language) return a; this.__language = a; this.__dirty = !0; return a }, get_script: function () { return this.__script }, set_script: function (a) { if (a == this.__script) return a; this.__script = a; this.__dirty = !0; return a }, set_size: function (a) { if (a == this.size) return a; this.size = a; this.__dirty = !0; return a }, set_text: function (a) { if (a == this.text) return a; this.text = a; this.__dirty = !0; return a }, __class__: Yd, __properties__: { set_text: "set_text", set_size: "set_size", set_script: "set_script", get_script: "get_script", get_positions: "get_positions", set_language: "set_language", get_language: "get_language", get_glyphs: "get_glyphs", set_font: "set_font", set_direction: "set_direction", get_direction: "get_direction" } }; var ln = function (a, b, c) { this.format = a; this.startIndex = b; this.endIndex = c }; k["openfl.text._internal.TextLayoutGroup"] = ln; ln.__name__ = "openfl.text._internal.TextLayoutGroup"; ln.prototype = { ascent: null, descent: null, endIndex: null, format: null, height: null, leading: null, lineIndex: null, offsetX: null, offsetY: null, positions: null, startIndex: null, width: null, getAdvance: function (a) { return this.positions[a] }, __class__: ln }; var dc = function () { jb.call(this); dc.__instances.push(this) }; k["openfl.ui.GameInput"] = dc; dc.__name__ = "openfl.ui.GameInput"; dc.getDeviceAt = function (a) { return 0 <= a && a < dc.__deviceList.length ? dc.__deviceList[a] : null }; dc.__getDevice = function (a) { if (null == a) return null; if (null == dc.__devices.h.__keys__[a.__id__]) { var b = bd.__getDeviceData(), c = b[a.id].id; b = bd.__getDeviceData(); b = new mn(c, b[a.id].id); dc.__deviceList.push(b); dc.__devices.set(a, b); dc.numDevices = dc.__deviceList.length } return dc.__devices.h[a.__id__] }; dc.__onGamepadAxisMove = function (a, b, c) { a = dc.__getDevice(a); if (null != a && a.enabled) { if (!a.__axis.h.hasOwnProperty(b)) { if (null == b) var d = "null"; else switch (b) { case 0: d = "LEFT_X"; break; case 1: d = "LEFT_Y"; break; case 2: d = "RIGHT_X"; break; case 3: d = "RIGHT_Y"; break; case 4: d = "TRIGGER_LEFT"; break; case 5: d = "TRIGGER_RIGHT"; break; default: d = "UNKNOWN (" + b + ")" } d = new Df(a, "AXIS_" + d, -1, 1); a.__axis.h[b] = d; a.__controls.push(d) } d = a.__axis.h[b]; d.value = c; d.dispatchEvent(new oa("change")) } }; dc.__onGamepadButtonDown = function (a, b) { a = dc.__getDevice(a); if (null != a && a.enabled) { if (!a.__button.h.hasOwnProperty(b)) { if (null == b) var c = "null"; else switch (b) { case 0: c = "A"; break; case 1: c = "B"; break; case 2: c = "X"; break; case 3: c = "Y"; break; case 4: c = "BACK"; break; case 5: c = "GUIDE"; break; case 6: c = "START"; break; case 7: c = "LEFT_STICK"; break; case 8: c = "RIGHT_STICK"; break; case 9: c = "LEFT_SHOULDER"; break; case 10: c = "RIGHT_SHOULDER"; break; case 11: c = "DPAD_UP"; break; case 12: c = "DPAD_DOWN"; break; case 13: c = "DPAD_LEFT"; break; case 14: c = "DPAD_RIGHT"; break; default: c = "UNKNOWN (" + b + ")" } c = new Df(a, "BUTTON_" + c, 0, 1); a.__button.h[b] = c; a.__controls.push(c) } c = a.__button.h[b]; c.value = 1; c.dispatchEvent(new oa("change")) } }; dc.__onGamepadButtonUp = function (a, b) { a = dc.__getDevice(a); if (null != a && a.enabled) { if (!a.__button.h.hasOwnProperty(b)) { if (null == b) var c = "null"; else switch (b) { case 0: c = "A"; break; case 1: c = "B"; break; case 2: c = "X"; break; case 3: c = "Y"; break; case 4: c = "BACK"; break; case 5: c = "GUIDE"; break; case 6: c = "START"; break; case 7: c = "LEFT_STICK"; break; case 8: c = "RIGHT_STICK"; break; case 9: c = "LEFT_SHOULDER"; break; case 10: c = "RIGHT_SHOULDER"; break; case 11: c = "DPAD_UP"; break; case 12: c = "DPAD_DOWN"; break; case 13: c = "DPAD_LEFT"; break; case 14: c = "DPAD_RIGHT"; break; default: c = "UNKNOWN (" + b + ")" } c = new Df(a, "BUTTON_" + c, 0, 1); a.__button.h[b] = c; a.__controls.push(c) } c = a.__button.h[b]; c.value = 0; c.dispatchEvent(new oa("change")) } }; dc.__onGamepadConnect = function (a) { a = dc.__getDevice(a); if (null != a) for (var b = 0, c = dc.__instances; b < c.length;) { var d = c[b]; ++b; d.dispatchEvent(new Jg("deviceAdded", !0, !1, a)) } }; dc.__onGamepadDisconnect = function (a) { var b = dc.__devices.h[a.__id__]; if (null != b) { null != dc.__devices.h.__keys__[a.__id__] && (K.remove(dc.__deviceList, dc.__devices.h[a.__id__]), dc.__devices.remove(a)); dc.numDevices = dc.__deviceList.length; a = 0; for (var c = dc.__instances; a < c.length;) { var d = c[a]; ++a; d.dispatchEvent(new Jg("deviceRemoved", !0, !1, b)) } } }; dc.__super__ = jb; dc.prototype = u(jb.prototype, { addEventListener: function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); null == c && (c = !1); jb.prototype.addEventListener.call(this, a, b, c, d, e); if ("deviceAdded" == a) for (a = 0, b = dc.__deviceList; a < b.length;) c = b[a], ++a, this.dispatchEvent(new Jg("deviceAdded", !0, !1, c)) }, __class__: dc }); var Df = function (a, b, c, d, e) { null == e && (e = 0); jb.call(this); this.device = a; this.id = b; this.minValue = c; this.maxValue = d; this.value = e }; k["openfl.ui.GameInputControl"] = Df; Df.__name__ = "openfl.ui.GameInputControl"; Df.__super__ = jb; Df.prototype = u(jb.prototype, { device: null, id: null, maxValue: null, minValue: null, value: null, __class__: Df }); var mn = function (a, b) { this.__controls = []; this.__button = new eb; this.__axis = new eb; this.id = a; this.name = b; a = new Df(this, "AXIS_0", -1, 1); this.__axis.h[0] = a; this.__controls.push(a); a = new Df(this, "AXIS_1", -1, 1); this.__axis.h[1] = a; this.__controls.push(a); a = new Df(this, "AXIS_2", -1, 1); this.__axis.h[2] = a; this.__controls.push(a); a = new Df(this, "AXIS_3", -1, 1); this.__axis.h[3] = a; this.__controls.push(a); a = new Df(this, "AXIS_4", -1, 1); this.__axis.h[4] = a; this.__controls.push(a); a = new Df(this, "AXIS_5", -1, 1); this.__axis.h[5] = a; this.__controls.push(a); for (b = 0; 15 > b;) { var c = b++; a = new Df(this, "BUTTON_" + c, 0, 1); this.__button.h[c] = a; this.__controls.push(a) } }; k["openfl.ui.GameInputDevice"] = mn; mn.__name__ = "openfl.ui.GameInputDevice"; mn.prototype = { enabled: null, id: null, name: null, sampleInterval: null, __axis: null, __button: null, __controls: null, __gamepad: null, getCachedSamples: function (a, b) { return 0 }, getControlAt: function (a) { return 0 <= a && a < this.__controls.length ? this.__controls[a] : null }, startCachingSamples: function (a, b) { }, stopCachingSamples: function () { }, get_numControls: function () { return this.__controls.length }, __class__: mn, __properties__: {get_numControls: "get_numControls"} }; var Fa = function () { }; k["openfl.ui.Keyboard"] = Fa; Fa.__name__ = "openfl.ui.Keyboard"; Fa.isAccessible = function () { return !1 }; Fa.__convertKeyCode = function (a) { switch (a) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 33: return 49; case 34: return 222; case 35: return 51; case 36: return 52; case 37: return 53; case 38: return 55; case 39: return 222; case 40: return 57; case 41: return 48; case 42: return 56; case 44: return 188; case 45: return 189; case 46: return 190; case 47: return 191; case 48: return 48; case 49: return 49; case 50: return 50; case 51: return 51; case 52: return 52; case 53: return 53; case 54: return 54; case 55: return 55; case 56: return 56; case 57: return 57; case 58: return 186; case 59: return 186; case 60: return 60; case 61: return 187; case 62: return 190; case 63: return 191; case 64: return 50; case 91: return 219; case 92: return 220; case 93: return 221; case 94: return 54; case 95: return 189; case 96: return 192; case 97: return 65; case 98: return 66; case 99: return 67; case 100: return 68; case 101: return 69; case 102: return 70; case 103: return 71; case 104: return 72; case 105: return 73; case 106: return 74; case 107: return 75; case 108: return 76; case 109: return 77; case 110: return 78; case 111: return 79; case 112: return 80; case 113: return 81; case 114: return 82; case 115: return 83; case 116: return 84; case 117: return 85; case 118: return 86; case 119: return 87; case 120: return 88; case 121: return 89; case 122: return 90; case 127: return 46; case 1073741881: return 20; case 1073741882: return 112; case 1073741883: return 113; case 1073741884: return 114; case 1073741885: return 115; case 1073741886: return 116; case 1073741887: return 117; case 1073741888: return 118; case 1073741889: return 119; case 1073741890: return 120; case 1073741891: return 121; case 1073741892: return 122; case 1073741893: return 123; case 1073741894: return 301; case 1073741895: return 145; case 1073741896: return 19; case 1073741897: return 45; case 1073741898: return 36; case 1073741899: return 33; case 1073741901: return 35; case 1073741902: return 34; case 1073741903: return 39; case 1073741904: return 37; case 1073741905: return 40; case 1073741906: return 38; case 1073741907: return 144; case 1073741908: return 111; case 1073741909: return 106; case 1073741910: return 109; case 1073741911: return 107; case 1073741912: return 13; case 1073741913: return 97; case 1073741914: return 98; case 1073741915: return 99; case 1073741916: return 100; case 1073741917: return 101; case 1073741918: return 102; case 1073741919: return 103; case 1073741920: return 104; case 1073741921: return 105; case 1073741922: return 96; case 1073741923: return 110; case 1073741925: return 302; case 1073741928: return 124; case 1073741929: return 125; case 1073741930: return 126; case 1073741982: return 13; case 1073742044: return 110; case 1073742048: return 17; case 1073742049: return 16; case 1073742050: return 18; case 1073742051: return 15; case 1073742052: return 17; case 1073742053: return 16; case 1073742054: return 18; case 1073742055: return 15; default: return a } }; Fa.__getCharCode = function (a, b) { null == b && (b = !1); if (b) { switch (a) { case 48: return 41; case 49: return 33; case 50: return 64; case 51: return 35; case 52: return 36; case 53: return 37; case 54: return 94; case 55: return 38; case 56: return 42; case 57: return 40; case 186: return 58; case 187: return 43; case 188: return 60; case 189: return 95; case 190: return 62; case 191: return 63; case 192: return 126; case 219: return 123; case 220: return 124; case 221: return 125; case 222: return 34 } if (65 <= a && 90 >= a) return a - 65 + 65 } else { switch (a) { case 8: return 8; case 9: return 9; case 13: return 13; case 27: return 27; case 32: return 32; case 186: return 59; case 187: return 61; case 188: return 44; case 189: return 45; case 190: return 46; case 191: return 47; case 192: return 96; case 219: return 91; case 220: return 92; case 221: return 93; case 222: return 39 } if (48 <= a && 57 >= a) return a - 48 + 48; if (65 <= a && 90 >= a) return a - 65 + 97 } if (96 <= a && 105 >= a) return a - 96 + 48; switch (a) { case 8: return 8; case 13: return 13; case 46: return 127; case 106: return 42; case 107: return 43; case 108: return 44; case 110: return 45; case 111: return 46 } return 0 }; Fa.__getKeyLocation = function (a) { switch (a) { case 1073741908: case 1073741909: case 1073741910: case 1073741911: case 1073741912: case 1073741913: case 1073741914: case 1073741915: case 1073741916: case 1073741917: case 1073741918: case 1073741919: case 1073741920: case 1073741921: case 1073741922: case 1073741923: case 1073742044: return 3; case 1073742048: case 1073742049: case 1073742050: case 1073742051: return 1; case 1073742052: case 1073742053: case 1073742054: case 1073742055: return 2; default: return 0 } }; var ve = function () { }; k["openfl.ui.Mouse"] = ve; ve.__name__ = "openfl.ui.Mouse"; ve.__properties__ = {set_cursor: "set_cursor", get_cursor: "get_cursor"}; ve.hide = function () { ve.__hidden = !0; for (var a = 0, b = zd.current.__windows; a < b.length;) { var c = b[a]; ++a; c.set_cursor(null) } }; ve.show = function () { ve.__hidden = !1; var a = ve.__cursor; ve.__cursor = null; ve.set_cursor(a) }; ve.get_cursor = function () { return ve.__cursor }; ve.set_cursor = function (a) { null == a && (a = "auto"); var b = null; switch (a) { case "arrow": b = rc.ARROW; break; case "button": b = rc.POINTER; break; case "crosshair": b = rc.CROSSHAIR; break; case "custom": b = rc.CUSTOM; break; case "hand": b = rc.MOVE; break; case "ibeam": b = rc.TEXT; break; case "resize_nesw": b = rc.RESIZE_NESW; break; case "resize_ns": b = rc.RESIZE_NS; break; case "resize_nwse": b = rc.RESIZE_NWSE; break; case "resize_we": b = rc.RESIZE_WE; break; case "wait": b = rc.WAIT; break; case "waitarrow": b = rc.WAIT_ARROW } if (null != b && !ve.__hidden) for (var c = 0, d = zd.current.__windows; c < d.length;) { var e = d[c]; ++c; e.set_cursor(b) } return ve.__cursor = a }; var Bf = { fromLimeCursor: function (a) { switch (a._hx_index) { case 0: return "arrow"; case 1: return "crosshair"; case 2: return "auto"; case 3: return "hand"; case 4: return "button"; case 5: return "resize_nesw"; case 6: return "resize_ns"; case 7: return "resize_nwse"; case 8: return "resize_we"; case 9: return "ibeam"; case 10: return "wait"; case 11: return "waitarrow"; case 12: return "custom" } }, toLimeCursor: function (a) { switch (a) { case "arrow": return rc.ARROW; case "auto": return rc.DEFAULT; case "button": return rc.POINTER; case "crosshair": return rc.CROSSHAIR; case "custom": return rc.CUSTOM; case "hand": return rc.MOVE; case "ibeam": return rc.TEXT; case "resize_nesw": return rc.RESIZE_NESW; case "resize_ns": return rc.RESIZE_NS; case "resize_nwse": return rc.RESIZE_NWSE; case "resize_we": return rc.RESIZE_WE; case "wait": return rc.WAIT; case "waitarrow": return rc.WAIT_ARROW; default: return rc.DEFAULT } } }, Ce = function () { }; k["openfl.ui.Multitouch"] = Ce; Ce.__name__ = "openfl.ui.Multitouch"; Ce.__properties__ = {get_supportsTouchEvents: "get_supportsTouchEvents"}; Ce.get_supportsTouchEvents = function () { return "ontouchstart" in document.documentElement || window.DocumentTouch && document instanceof DocumentTouch ? !0 : !1 }; var W = function (a) { null == a && (a = !1); this.debugEnabled = a; W.initialized || W.init() }; k["openfl.utils.AGALMiniAssembler"] = W; W.__name__ = "openfl.utils.AGALMiniAssembler"; W.init = function () { W.initialized = !0; var a = W.OPMAP, b = new ec("mov", 2, 0, 0); a.h.mov = b; a = W.OPMAP; b = new ec("add", 3, 1, 0); a.h.add = b; a = W.OPMAP; b = new ec("sub", 3, 2, 0); a.h.sub = b; a = W.OPMAP; b = new ec("mul", 3, 3, 0); a.h.mul = b; a = W.OPMAP; b = new ec("div", 3, 4, 0); a.h.div = b; a = W.OPMAP; b = new ec("rcp", 2, 5, 0); a.h.rcp = b; a = W.OPMAP; b = new ec("min", 3, 6, 0); a.h.min = b; a = W.OPMAP; b = new ec("max", 3, 7, 0); a.h.max = b; a = W.OPMAP; b = new ec("frc", 2, 8, 0); a.h.frc = b; a = W.OPMAP; b = new ec("sqt", 2, 9, 0); a.h.sqt = b; a = W.OPMAP; b = new ec("rsq", 2, 10, 0); a.h.rsq = b; a = W.OPMAP; b = new ec("pow", 3, 11, 0); a.h.pow = b; a = W.OPMAP; b = new ec("log", 2, 12, 0); a.h.log = b; a = W.OPMAP; b = new ec("exp", 2, 13, 0); a.h.exp = b; a = W.OPMAP; b = new ec("nrm", 2, 14, 0); a.h.nrm = b; a = W.OPMAP; b = new ec("sin", 2, 15, 0); a.h.sin = b; a = W.OPMAP; b = new ec("cos", 2, 16, 0); a.h.cos = b; a = W.OPMAP; b = new ec("crs", 3, 17, 0); a.h.crs = b; a = W.OPMAP; b = new ec("dp3", 3, 18, 0); a.h.dp3 = b; a = W.OPMAP; b = new ec("dp4", 3, 19, 0); a.h.dp4 = b; a = W.OPMAP; b = new ec("abs", 2, 20, 0); a.h.abs = b; a = W.OPMAP; b = new ec("neg", 2, 21, 0); a.h.neg = b; a = W.OPMAP; b = new ec("sat", 2, 22, 0); a.h.sat = b; a = W.OPMAP; b = new ec("m33", 3, 23, 16); a.h.m33 = b; a = W.OPMAP; b = new ec("m44", 3, 24, 16); a.h.m44 = b; a = W.OPMAP; b = new ec("m34", 3, 25, 16); a.h.m34 = b; a = W.OPMAP; b = new ec("ddx", 2, 26, 288); a.h.ddx = b; a = W.OPMAP; b = new ec("ddy", 2, 27, 288); a.h.ddy = b; a = W.OPMAP; b = new ec("ife", 2, 28, 897); a.h.ife = b; a = W.OPMAP; b = new ec("ine", 2, 29, 897); a.h.ine = b; a = W.OPMAP; b = new ec("ifg", 2, 30, 897); a.h.ifg = b; a = W.OPMAP; b = new ec("ifl", 2, 31, 897); a.h.ifl = b; a = W.OPMAP; b = new ec("els", 0, 32, 1921); a.h.els = b; a = W.OPMAP; b = new ec("eif", 0, 33, 1409); a.h.eif = b; a = W.OPMAP; b = new ec("kil", 1, 39, 160); a.h.kil = b; a = W.OPMAP; b = new ec("tex", 3, 40, 40); a.h.tex = b; a = W.OPMAP; b = new ec("sge", 3, 41, 0); a.h.sge = b; a = W.OPMAP; b = new ec("slt", 3, 42, 0); a.h.slt = b; a = W.OPMAP; b = new ec("sgn", 2, 43, 0); a.h.sgn = b; a = W.OPMAP; b = new ec("seq", 3, 44, 0); a.h.seq = b; a = W.OPMAP; b = new ec("sne", 3, 45, 0); a.h.sne = b; a = W.SAMPLEMAP; b = new cd("rgba", 8, 0); a.h.rgba = b; a = W.SAMPLEMAP; b = new cd("compressed", 8, 1); a.h.compressed = b; a = W.SAMPLEMAP; b = new cd("compressedalpha", 8, 2); a.h.compressedalpha = b; a = W.SAMPLEMAP; b = new cd("dxt1", 8, 1); a.h.dxt1 = b; a = W.SAMPLEMAP; b = new cd("dxt5", 8, 2); a.h.dxt5 = b; a = W.SAMPLEMAP; b = new cd("video", 8, 3); a.h.video = b; a = W.SAMPLEMAP; b = new cd("2d", 12, 0); a.h["2d"] = b; a = W.SAMPLEMAP; b = new cd("3d", 12, 2); a.h["3d"] = b; a = W.SAMPLEMAP; b = new cd("cube", 12, 1); a.h.cube = b; a = W.SAMPLEMAP; b = new cd("mipnearest", 24, 1); a.h.mipnearest = b; a = W.SAMPLEMAP; b = new cd("miplinear", 24, 2); a.h.miplinear = b; a = W.SAMPLEMAP; b = new cd("mipnone", 24, 0); a.h.mipnone = b; a = W.SAMPLEMAP; b = new cd("nomip", 24, 0); a.h.nomip = b; a = W.SAMPLEMAP; b = new cd("nearest", 28, 0); a.h.nearest = b; a = W.SAMPLEMAP; b = new cd("linear", 28, 1); a.h.linear = b; a = W.SAMPLEMAP; b = new cd("anisotropic2x", 28, 2); a.h.anisotropic2x = b; a = W.SAMPLEMAP; b = new cd("anisotropic4x", 28, 3); a.h.anisotropic4x = b; a = W.SAMPLEMAP; b = new cd("anisotropic8x", 28, 4); a.h.anisotropic8x = b; a = W.SAMPLEMAP; b = new cd("anisotropic16x", 28, 5); a.h.anisotropic16x = b; a = W.SAMPLEMAP; b = new cd("centroid", 16, 1); a.h.centroid = b; a = W.SAMPLEMAP; b = new cd("single", 16, 2); a.h.single = b; a = W.SAMPLEMAP; b = new cd("ignoresampler", 16, 4); a.h.ignoresampler = b; a = W.SAMPLEMAP; b = new cd("repeat", 20, 1); a.h.repeat = b; a = W.SAMPLEMAP; b = new cd("wrap", 20, 1); a.h.wrap = b; a = W.SAMPLEMAP; b = new cd("clamp", 20, 0); a.h.clamp = b; a = W.SAMPLEMAP; b = new cd("clamp_u_repeat_v", 20, 2); a.h.clamp_u_repeat_v = b; a = W.SAMPLEMAP; b = new cd("repeat_u_clamp_v", 20, 3); a.h.repeat_u_clamp_v = b }; W.prototype = { agalcode: null, error: null, verbose: null, debugEnabled: null, assemble2: function (a, b, c, d) { c = this.assemble("vertex", c, b); b = this.assemble("fragment", d, b); a = a.createProgram(); a.upload(c, b); return a }, assemble: function (a, b, c, d) { null == d && (d = !1); null == c && (c = 1); var e = Oa.getTimer(); this.agalcode = new uc(0); this.error = ""; var f = !1; "fragment" == a ? f = !0 : "vertex" != a && (this.error = 'ERROR: mode needs to be "fragment" or "vertex" but is "' + a + '".'); this.agalcode.__endian = 1; this.agalcode.writeByte(160); this.agalcode.writeUnsignedInt(c); this.agalcode.writeByte(161); this.agalcode.writeByte(f ? 1 : 0); this.initregmap(c, d); a = T.replace(b, "\r", "\n").split("\n"); b = 0; d = a.length; for (var h = new fb("<.*>", "g"), l = new fb("([\\w\\.\\-\\+]+)", "gi"), p = new fb("^\\w{3}", "ig"), m = new fb("vc\\[([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw](\\+\\d{1,3})?)?\\](\\.[xyzw]{1,4})?|([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw]{1,4})?", "gi"), k = new fb("\\[.*\\]", "ig"), n = new fb("^\\b[A-Za-z]{1,3}", "ig"), t = new fb("\\d+", ""), q = new fb("(\\.[xyzw]{1,4})", ""), w = new fb("[A-Za-z]{1,3}", "ig"), u = new fb("(\\.[xyzw]{1,1})", ""), x = new fb("\\+\\d{1,3}", "ig"), A = 0; A < d && "" == this.error;) { var N = T.trim(a[A]), J = N.indexOf("//"); -1 != J && (N = K.substr(N, 0, J)); var B = h.match(N) ? h.matchedPos().pos : -1; J = null; -1 != B && (J = this.match(K.substr(N, B, null), l), N = K.substr(N, 0, B)); var ma = null; p.match(N) && (B = p.matched(0), ma = W.OPMAP.h[B]); if (null == ma) 3 <= N.length && Qa.warn("warning: bad line " + A + ": " + a[A], { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 262, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); else if (this.debugEnabled && Qa.info(ma, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 272, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }), null == ma) 3 <= N.length && Qa.warn("warning: bad line " + A + ": " + a[A], { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 279, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); else { N = K.substr(N, N.indexOf(ma.name) + ma.name.length, null); if (0 != (ma.flags & 256) && 2 > c) { this.error = "error: opcode requires version 2."; break } if (0 != (ma.flags & 64) && f) { this.error = "error: opcode is only allowed in vertex programs."; break } if (0 != (ma.flags & 32) && !f) { this.error = "error: opcode is only allowed in fragment programs."; break } this.verbose && Qa.info("emit opcode=" + z.string(ma), { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 308, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); this.agalcode.writeUnsignedInt(ma.emitCode); ++b; if (4096 < b) { this.error = "error: too many opcodes. maximum is 4096."; break } var C = this.match(N, m); if (C.length != ma.numRegister) { this.error = "error: wrong number of operands. found " + C.length + " but expected " + ma.numRegister + "."; break } var D = !1, F = 160; N = 0; for (B = C.length; N < B;) { var G = N++, I = !1, y = this.match(C[G], k); 0 < y.length && (C[G] = T.replace(C[G], y[0], "0"), this.verbose && Qa.info("IS REL", { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 344, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }), I = !0); var E = this.match(C[G], n); if (0 == E.length) { this.error = "error: could not parse operand " + G + " (" + C[G] + ")."; D = !0; break } var L = W.REGMAP.h[E[0]]; this.debugEnabled && Qa.info(L, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 363, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); if (null == L) { this.error = "error: could not find register name for operand " + G + " (" + C[G] + ")."; D = !0; break } if (f) { if (0 == (L.flags & 32)) { this.error = "error: register operand " + G + " (" + C[G] + ") only allowed in vertex programs."; D = !0; break } if (I) { this.error = "error: register operand " + G + " (" + C[G] + ") relative adressing not allowed in fragment programs."; D = !0; break } } else if (0 == (L.flags & 64)) { this.error = "error: register operand " + G + " (" + C[G] + ") only allowed in fragment programs."; D = !0; break } C[G] = K.substr(C[G], C[G].indexOf(L.name) + L.name.length, null); var M = I ? this.match(y[0], t) : this.match(C[G], t); E = 0; 0 < M.length && (E = z.parseInt(M[0])); if (Ba.gt(E, L.range)) { N = L.range + 1; this.error = "error: register operand " + G + " (" + C[G] + ") index exceeds limit of " + (null == N ? "null" : z.string(Ba.toFloat(N))) + "."; D = !0; break } var P = this.match(C[G], q), O = 0 == G && 0 == (ma.flags & 128), Aa = 2 == G && 0 != (ma.flags & 8), S = 0, za = 0, U = 0; if (O && I) { this.error = "error: relative can not be destination"; D = !0; break } if (0 < P.length) { for (var H = M = 0, Sa = P[0].length, Q = 1; Q < Sa;) H = K.cca(P[0], Q) - 120, Ba.gt(H, 2) && (H = 3), M = O ? M | 1 << H : M | H << (Q - 1 << 1), ++Q; if (!O) for (; 4 >= Q;) M |= H << (Q - 1 << 1), ++Q } else M = O ? 15 : 228; if (I) { P = this.match(y[0], w); S = W.REGMAP.h[P[0]]; if (null == S) { this.error = "error: bad index register"; D = !0; break } S = S.emitCode; H = this.match(y[0], u); if (0 == H.length) { this.error = "error: bad index register select"; D = !0; break } za = K.cca(H[0], 1) - 120; Ba.gt(za, 2) && (za = 3); y = this.match(y[0], x); 0 < y.length && (U = z.parseInt(y[0])); if (0 > U || 255 < U) { this.error = "error: index offset " + U + " out of bounds. [0..255]"; D = !0; break } this.verbose && Qa.info("RELATIVE: type=" + S + "==" + P[0] + " sel=" + (null == za ? "null" : z.string(Ba.toFloat(za))) + "==" + H[0] + " idx=" + (null == E ? "null" : z.string(Ba.toFloat(E))) + " offset=" + U, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 518, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }) } this.verbose && Qa.info(" emit argcode=" + z.string(L) + "[" + (null == E ? "null" : z.string(Ba.toFloat(E))) + "][" + M + "]", { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 525, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); if (O) this.agalcode.writeShort(E), this.agalcode.writeByte(M), this.agalcode.writeByte(L.emitCode), F -= 32; else { if (Aa) { this.verbose && Qa.info(" emit sampler", { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 541, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); G = 5; y = I = 0; for (L = null == J ? 0 : J.length; y < L;) M = y++, this.verbose && Qa.info(" opt: " + J[M], { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 552, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }), O = W.SAMPLEMAP.h[J[M]], null == O ? (I = parseFloat(J[M]), this.verbose && Qa.info(" bias: " + I, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 565, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" })) : (16 != O.flag && (G &= ~(15 << O.flag)), G |= O.mask << O.flag); this.agalcode.writeShort(E); this.agalcode.writeByte(8 * I | 0); this.agalcode.writeByte(0); this.agalcode.writeUnsignedInt(G); this.verbose && Qa.info(" bits: " + (G - 5), { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 586, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }) } else 0 == G && (this.agalcode.writeUnsignedInt(0), F -= 32), this.agalcode.writeShort(E), this.agalcode.writeByte(U), this.agalcode.writeByte(M), this.agalcode.writeByte(L.emitCode), this.agalcode.writeByte(S), this.agalcode.writeShort(I ? za | 32768 : 0); F -= 64 } } for (N = 0; N < F;) this.agalcode.writeByte(0), N += 8; if (D) break } ++A } "" != this.error && (this.error += "\n at line " + A + " " + a[A], Fb.set_length(this.agalcode, 0), Qa.info(this.error, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 631, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" })); if (this.debugEnabled) { c = "generated bytecode:"; f = Fb.get_length(this.agalcode); N = 0; for (B = f; N < B;) f = N++, 0 == f % 16 && (c += "\n"), 0 == f % 4 && (c += " "), f = T.hex(this.agalcode.b[f], 2), 2 > f.length && (f = "0" + f), c += f; Qa.info(c, { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 662, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }) } this.verbose && Qa.info("AGALMiniAssembler.assemble time: " + (Oa.getTimer() - e) / 1E3 + "s", { fileName: "openfl/utils/AGALMiniAssembler.hx", lineNumber: 667, className: "openfl.utils.AGALMiniAssembler", methodName: "assemble" }); return this.agalcode }, initregmap: function (a, b) { var c = W.REGMAP, d = new tf("va", "vertex attribute", 0, b ? 1024 : 1 == a || 2 == a ? 7 : 15, 66); c.h.va = d; c = W.REGMAP; d = new tf("vc", "vertex constant", 1, b ? 1024 : 1 == a ? 127 : 249, 66); c.h.vc = d; c = W.REGMAP; d = new tf("vt", "vertex temporary", 2, b ? 1024 : 1 == a ? 7 : 25, 67); c.h.vt = d; c = W.REGMAP; d = new tf("vo", "vertex output", 3, b ? 1024 : 0, 65); c.h.vo = d; c = W.REGMAP; d = new tf("vi", "varying", 4, b ? 1024 : 1 == a ? 7 : 9, 99); c.h.vi = d; c = W.REGMAP; d = new tf("fc", "fragment constant", 1, b ? 1024 : 1 == a ? 27 : 2 == a ? 63 : 199, 34); c.h.fc = d; c = W.REGMAP; d = new tf("ft", "fragment temporary", 2, b ? 1024 : 1 == a ? 7 : 25, 35); c.h.ft = d; c = W.REGMAP; d = new tf("fs", "texture sampler", 5, b ? 1024 : 7, 34); c.h.fs = d; c = W.REGMAP; d = new tf("fo", "fragment output", 3, b ? 1024 : 1 == a ? 0 : 3, 33); c.h.fo = d; c = W.REGMAP; d = new tf("fd", "fragment depth output", 6, b ? 1024 : 1 == a ? -1 : 0, 33); c.h.fd = d; c = W.REGMAP; d = new tf("iid", "instance id", 7, b ? 1024 : 0, 66); c.h.iid = d; d = W.REGMAP.h.vo; W.REGMAP.h.op = d; d = W.REGMAP.h.vi; W.REGMAP.h.i = d; d = W.REGMAP.h.vi; W.REGMAP.h.v = d; d = W.REGMAP.h.fo; W.REGMAP.h.oc = d; d = W.REGMAP.h.fd; W.REGMAP.h.od = d; d = W.REGMAP.h.vi; W.REGMAP.h.fi = d }, match: function (a, b) { for (var c = [], d = 0; b.matchSub(a, d);) d = b.matched(0), c.push(d), d = b.matchedPos().pos + d.length; return c }, __class__: W }; var ec = function (a, b, c, d) { this.name = a; this.numRegister = b; this.emitCode = c; this.flags = d }; k["openfl.utils._AGALMiniAssembler.OpCode"] = ec; ec.__name__ = "openfl.utils._AGALMiniAssembler.OpCode"; ec.prototype = { emitCode: null, flags: null, name: null, numRegister: null, toString: function () { return '[OpCode name="' + this.name + '", numRegister=' + this.numRegister + ", emitCode=" + this.emitCode + ", flags=" + this.flags + "]" }, __class__: ec }; var tf = function (a, b, c, d, e) { this.name = a; this.longName = b; this.emitCode = c; this.range = d; this.flags = e }; k["openfl.utils._AGALMiniAssembler.Register"] = tf; tf.__name__ = "openfl.utils._AGALMiniAssembler.Register"; tf.prototype = { emitCode: null, name: null, longName: null, flags: null, range: null, toString: function () { return '[Register name="' + this.name + '", longName="' + this.longName + '", emitCode=' + (null == this.emitCode ? "null" : z.string(Ba.toFloat(this.emitCode))) + ", range=" + (null == this.range ? "null" : z.string(Ba.toFloat(this.range))) + ", flags=" + (null == this.flags ? "null" : z.string(Ba.toFloat(this.flags))) + "]" }, __class__: tf }; var cd = function (a, b, c) { this.name = a; this.flag = b; this.mask = c }; k["openfl.utils._AGALMiniAssembler.Sampler"] = cd; cd.__name__ = "openfl.utils._AGALMiniAssembler.Sampler"; cd.prototype = { flag: null, mask: null, name: null, toString: function () { return '[Sampler name="' + this.name + '", flag="' + (null == this.flag ? "null" : z.string(Ba.toFloat(this.flag))) + '", mask=' + (null == this.mask ? "null" : z.string(Ba.toFloat(this.mask))) + "]" }, __class__: cd }; var nn = function () { }; k["openfl.utils.IAssetCache"] = nn; nn.__name__ = "openfl.utils.IAssetCache"; nn.__isInterface__ = !0; nn.prototype = { get_enabled: null, set_enabled: null, clear: null, getBitmapData: null, getFont: null, getSound: null, hasBitmapData: null, hasFont: null, hasSound: null, removeBitmapData: null, removeFont: null, removeSound: null, setBitmapData: null, setFont: null, setSound: null, __class__: nn, __properties__: {set_enabled: "set_enabled", get_enabled: "get_enabled"} }; var on = function () { this.__enabled = !0; this.bitmapData = new xa; this.font = new xa; this.sound = new xa }; k["openfl.utils.AssetCache"] = on; on.__name__ = "openfl.utils.AssetCache"; on.__interfaces__ = [nn]; on.prototype = { bitmapData: null, font: null, sound: null, __enabled: null, clear: function (a) { if (null == a) this.bitmapData = new xa, this.font = new xa, this.sound = new xa; else { var b = this.bitmapData.h; b = Object.keys(b); for (var c = b.length, d = 0; d < c;) { var e = b[d++]; T.startsWith(e, a) && this.removeBitmapData(e) } b = this.font.h; b = Object.keys(b); c = b.length; for (d = 0; d < c;) e = b[d++], T.startsWith(e, a) && this.removeFont(e); b = this.sound.h; b = Object.keys(b); c = b.length; for (d = 0; d < c;) e = b[d++], T.startsWith(e, a) && this.removeSound(e) } }, getBitmapData: function (a) { return this.bitmapData.h[a] }, getFont: function (a) { return this.font.h[a] }, getSound: function (a) { return this.sound.h[a] }, hasBitmapData: function (a) { return Object.prototype.hasOwnProperty.call(this.bitmapData.h, a) }, hasFont: function (a) { return Object.prototype.hasOwnProperty.call(this.font.h, a) }, hasSound: function (a) { return Object.prototype.hasOwnProperty.call(this.sound.h, a) }, removeBitmapData: function (a) { var b = ta.cache.image; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.bitmapData; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1 }, removeFont: function (a) { var b = ta.cache.font; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.font; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1 }, removeSound: function (a) { var b = ta.cache.audio; Object.prototype.hasOwnProperty.call(b.h, a) && delete b.h[a]; b = this.sound; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1 }, setBitmapData: function (a, b) { this.bitmapData.h[a] = b }, setFont: function (a, b) { this.font.h[a] = b }, setSound: function (a, b) { this.sound.h[a] = b }, get_enabled: function () { return this.__enabled }, set_enabled: function (a) { return this.__enabled = a }, __class__: on, __properties__: {set_enabled: "set_enabled", get_enabled: "get_enabled"} }; var qe = function () { Ab.call(this) }; k["openfl.utils.AssetLibrary"] = qe; qe.__name__ = "openfl.utils.AssetLibrary"; qe.fromBytes = function (a, b) { return qe.fromManifest(Nc.fromBytes(Fb.toLimeBytes(a), b)) }; qe.fromFile = function (a, b) { return qe.fromManifest(Nc.fromFile(a, b)) }; qe.fromManifest = function (a) { a = Ab.fromManifest(a); if (null != a) { if (a instanceof qe) return a; var b = new qe; b.__proxy = a; return b } return null }; qe.loadFromBytes = function (a, b) { return Nc.loadFromBytes(Fb.toLimeBytes(a), b).then(function (a) { return qe.loadFromManifest(a) }) }; qe.loadFromFile = function (a, b) { return Nc.loadFromFile(a, b).then(function (a) { return qe.loadFromManifest(a) }) }; qe.loadFromManifest = function (a) { a = qe.fromManifest(a); return null != a ? a.load().then(function (a) { return ob.withValue(a) }) : ob.withError("Could not load asset manifest") }; qe.__super__ = Ab; qe.prototype = u(Ab.prototype, { __proxy: null, exists: function (a, b) { return null != this.__proxy ? this.__proxy.exists(a, b) : Ab.prototype.exists.call(this, a, b) }, getAsset: function (a, b) { return null != this.__proxy ? this.__proxy.getAsset(a, b) : Ab.prototype.getAsset.call(this, a, b) }, getAudioBuffer: function (a) { return null != this.__proxy ? this.__proxy.getAudioBuffer(a) : Ab.prototype.getAudioBuffer.call(this, a) }, getBytes: function (a) { return null != this.__proxy ? this.__proxy.getBytes(a) : Ab.prototype.getBytes.call(this, a) }, getFont: function (a) { return null != this.__proxy ? this.__proxy.getFont(a) : Ab.prototype.getFont.call(this, a) }, getImage: function (a) { return null != this.__proxy ? this.__proxy.getImage(a) : Ab.prototype.getImage.call(this, a) }, getMovieClip: function (a) { return null }, getPath: function (a) { return null != this.__proxy ? this.__proxy.getPath(a) : Ab.prototype.getPath.call(this, a) }, getText: function (a) { return null != this.__proxy ? this.__proxy.getText(a) : Ab.prototype.getText.call(this, a) }, isLocal: function (a, b) { return null != this.__proxy ? this.__proxy.isLocal(a, b) : Ab.prototype.isLocal.call(this, a, b) }, list: function (a) { return null != this.__proxy ? this.__proxy.list(a) : Ab.prototype.list.call(this, a) }, loadAsset: function (a, b) { return null != this.__proxy ? this.__proxy.loadAsset(a, b) : Ab.prototype.loadAsset.call(this, a, b) }, load: function () { return null != this.__proxy ? this.__proxy.load() : Ab.prototype.load.call(this) }, loadAudioBuffer: function (a) { return null != this.__proxy ? this.__proxy.loadAudioBuffer(a) : Ab.prototype.loadAudioBuffer.call(this, a) }, loadBytes: function (a) { return null != this.__proxy ? this.__proxy.loadBytes(a) : Ab.prototype.loadBytes.call(this, a) }, loadFont: function (a) { return null != this.__proxy ? this.__proxy.loadFont(a) : Ab.prototype.loadFont.call(this, a) }, loadImage: function (a) { return null != this.__proxy ? this.__proxy.loadImage(a) : Ab.prototype.loadImage.call(this, a) }, loadMovieClip: function (a) { return ob.withValue(this.getMovieClip(a)) }, loadText: function (a) { return null != this.__proxy ? this.__proxy.loadText(a) : Ab.prototype.loadText.call(this, a) }, unload: function () { null != this.__proxy ? this.__proxy.unload() : Ab.prototype.unload.call(this) }, __class__: qe }); var Da = function () { }; k["openfl.utils.Assets"] = Da; Da.__name__ = "openfl.utils.Assets"; Da.addEventListener = function (a, b, c, d, e) { null == e && (e = !1); null == d && (d = 0); null == c && (c = !1); ta.onChange.has(Da.LimeAssets_onChange) || ta.onChange.add(Da.LimeAssets_onChange); Da.dispatcher.addEventListener(a, b, c, d, e) }; Da.dispatchEvent = function (a) { return Da.dispatcher.dispatchEvent(a) }; Da.exists = function (a, b) { return ta.exists(a, b) }; Da.getBitmapData = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasBitmapData(a)) { var c = Da.cache.getBitmapData(a); if (Da.isValidBitmapData(c)) return c } c = ta.getImage(a, !1); return null != c ? (c = ka.fromImage(c), b && Da.cache.get_enabled() && Da.cache.setBitmapData(a, c), c) : null }; Da.getBytes = function (a) { return Fb.fromLimeBytes(ta.getBytes(a)) }; Da.getFont = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasFont(a)) return Da.cache.getFont(a); var c = ta.getFont(a, !1); if (null != c) { var d = new Wc; d.__fromLimeFont(c); b && Da.cache.get_enabled() && Da.cache.setFont(a, d); return d } return new Wc }; Da.getLibrary = function (a) { return ta.getLibrary(a) }; Da.getMovieClip = function (a) { var b = a.substring(0, a.indexOf(":")), c = K.substr(a, a.indexOf(":") + 1, null), d = Da.getLibrary(b); if (null != d) { if (d instanceof qe && d.exists(c, "MOVIE_CLIP")) { if (d.isLocal(c, "MOVIE_CLIP")) return d.getMovieClip(c); Qa.error('MovieClip asset "' + a + '" exists, but only asynchronously', { fileName: "openfl/utils/Assets.hx", lineNumber: 207, className: "openfl.utils.Assets", methodName: "getMovieClip" }); return null } Qa.error('There is no MovieClip asset with an ID of "' + a + '"', { fileName: "openfl/utils/Assets.hx", lineNumber: 213, className: "openfl.utils.Assets", methodName: "getMovieClip" }) } else Qa.error('There is no asset library named "' + b + '"', { fileName: "openfl/utils/Assets.hx", lineNumber: 217, className: "openfl.utils.Assets", methodName: "getMovieClip" }); return null }; Da.getMusic = function (a, b) { null == b && (b = !0); return Da.getSound(a, b) }; Da.getPath = function (a) { return ta.getPath(a) }; Da.getSound = function (a, b) { null == b && (b = !0); if (b && Da.cache.get_enabled() && Da.cache.hasSound(a)) { var c = Da.cache.getSound(a); if (Da.isValidSound(c)) return c } c = ta.getAudioBuffer(a, !1); return null != c ? (c = Cf.fromAudioBuffer(c), b && Da.cache.get_enabled() && Da.cache.setSound(a, c), c) : null }; Da.getText = function (a) { return ta.getText(a) }; Da.hasEventListener = function (a) { return Da.dispatcher.hasEventListener(a) }; Da.hasLibrary = function (a) { return ta.hasLibrary(a) }; Da.isLocal = function (a, b, c) { null == c && (c = !0); if (c && Da.cache.get_enabled() && (("IMAGE" == b || null == b) && Da.cache.hasBitmapData(a) || ("FONT" == b || null == b) && Da.cache.hasFont(a) || ("SOUND" == b || "MUSIC" == b || null == b) && Da.cache.hasSound(a))) return !0; c = a.substring(0, a.indexOf(":")); a = K.substr(a, a.indexOf(":") + 1, null); c = Da.getLibrary(c); return null != c ? c.isLocal(a, b) : !1 }; Da.isValidBitmapData = function (a) { return null != a && null != a.image }; Da.isValidSound = function (a) { return !0 }; Da.list = function (a) { return ta.list(a) }; Da.loadBitmapData = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new fe; if (b && Da.cache.get_enabled() && Da.cache.hasBitmapData(a)) { var d = Da.cache.getBitmapData(a); if (Da.isValidBitmapData(d)) return c.complete(d), c.future } ta.loadImage(a, !1).onComplete(function (d) { null != d ? (d = ka.fromImage(d), b && Da.cache.get_enabled() && Da.cache.setBitmapData(a, d), c.complete(d)) : c.error('[Assets] Could not load Image "' + a + '"') }).onError(q(c, c.error)).onProgress(q(c, c.progress)); return c.future }; Da.loadBytes = function (a) { var b = new fe; a = ta.loadBytes(a); a.onComplete(function (a) { b.complete(Fb.fromLimeBytes(a)) }); a.onProgress(function (a, d) { b.progress(a, d) }); a.onError(function (a) { b.error(a) }); return b.future }; Da.loadFont = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new fe; if (b && Da.cache.get_enabled() && Da.cache.hasFont(a)) return c.complete(Da.cache.getFont(a)), c.future; ta.loadFont(a).onComplete(function (d) { var e = new Wc; e.__fromLimeFont(d); b && Da.cache.get_enabled() && Da.cache.setFont(a, e); c.complete(e) }).onError(q(c, c.error)).onProgress(q(c, c.progress)); return c.future }; Da.loadLibrary = function (a) { return ta.loadLibrary(a).then(function (b) { var c = null; null != b && (b instanceof qe ? c = b : (c = new qe, c.__proxy = b, ta.registerLibrary(a, c))); return ob.withValue(c) }) }; Da.loadMusic = function (a, b) { null == b && (b = !0); null == b && (b = !0); return new ob(function () { return Da.getMusic(a, b) }) }; Da.loadMovieClip = function (a) { var b = new fe, c = a.substring(0, a.indexOf(":")), d = K.substr(a, a.indexOf(":") + 1, null), e = Da.getLibrary(c); if (null != e) { if (e instanceof qe && e.exists(d, "MOVIE_CLIP")) return b.completeWith(e.loadMovieClip(d)), b.future; b.error('[Assets] There is no MovieClip asset with an ID of "' + a + '"') } else b.error('[Assets] There is no asset library named "' + c + '"'); return b.future }; Da.loadSound = function (a, b) { null == b && (b = !0); null == b && (b = !0); var c = new fe; ta.loadAudioBuffer(a, b).onComplete(function (d) { null != d ? (d = Cf.fromAudioBuffer(d), b && Da.cache.get_enabled() && Da.cache.setSound(a, d), c.complete(d)) : c.error('[Assets] Could not load Sound "' + a + '"') }).onError(q(c, c.error)).onProgress(q(c, c.progress)); return c.future }; Da.loadText = function (a) { return ta.loadText(a) }; Da.registerLibrary = function (a, b) { ta.registerLibrary(a, b) }; Da.removeEventListener = function (a, b, c) { null == c && (c = !1); Da.dispatcher.removeEventListener(a, b, c) }; Da.resolveClass = function (a) { return k[a] }; Da.resolveEnum = function (a) { return A[a] }; Da.unloadLibrary = function (a) { ta.unloadLibrary(a) }; Da.LimeAssets_onChange = function () { Da.dispatchEvent(new oa("change")) }; var Fb = { __properties__: { set_position: "set_position", get_position: "get_position", set_length: "set_length", get_length: "get_length", get_bytesAvailable: "get_bytesAvailable", set_defaultObjectEncoding: "set_defaultObjectEncoding", get_defaultObjectEncoding: "get_defaultObjectEncoding", set_defaultEndian: "set_defaultEndian", get_defaultEndian: "get_defaultEndian" }, _new: function (a) { null == a && (a = 0); return new uc(a) }, clear: function (a) { a.clear() }, compress: function (a, b) { a.compress(b) }, deflate: function (a) { a.deflate() }, fromArrayBuffer: function (a) { return null == a ? null : uc.fromBytes(lb.ofData(a)) }, fromBytes: function (a) { return null == a ? null : a instanceof uc ? a : uc.fromBytes(a) }, fromBytesData: function (a) { return null == a ? null : uc.fromBytes(lb.ofData(a)) }, fromFile: function (a) { return Fb.fromLimeBytes(oc.fromFile(a)) }, fromLimeBytes: function (a) { return Fb.fromBytes(a) }, get: function (a, b) { return a.b[b] }, inflate: function (a) { a.inflate() }, loadFromBytes: function (a) { return oc.loadFromBytes(a).then(function (a) { a = Fb.fromLimeBytes(a); return ob.withValue(a) }) }, loadFromFile: function (a) { return oc.loadFromFile(a).then(function (a) { a = Fb.fromLimeBytes(a); return ob.withValue(a) }) }, readBoolean: function (a) { return a.readBoolean() }, readByte: function (a) { return a.readByte() }, readBytes: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); a.readBytes(b, c, d) }, readDouble: function (a) { return a.readDouble() }, readFloat: function (a) { return a.readFloat() }, readInt: function (a) { return a.readInt() }, readMultiByte: function (a, b, c) { return a.readMultiByte(b, c) }, readObject: function (a) { return a.readObject() }, readShort: function (a) { return a.readShort() }, readUTF: function (a) { return a.readUTF() }, readUTFBytes: function (a, b) { return a.readUTFBytes(b) }, readUnsignedByte: function (a) { return a.readUnsignedByte() }, readUnsignedInt: function (a) { return a.readUnsignedInt() }, readUnsignedShort: function (a) { return a.readUnsignedShort() }, set: function (a, b, c) { a.__resize(b + 1); a.b[b] = c & 255; return c }, toArrayBuffer: function (a) { return a.b.bufferValue }, toBytePointer: function (a) { ss.set(Fb.__bytePointer, a, null, null, a.position); return Fb.__bytePointer }, toBytes: function (a) { return a }, toBytesData: function (a) { return a.b.bufferValue }, toLimeBytes: function (a) { return a }, toString: function (a) { return a.toString() }, uncompress: function (a, b) { a.uncompress(b) }, writeBoolean: function (a, b) { a.writeBoolean(b) }, writeByte: function (a, b) { a.writeByte(b) }, writeBytes: function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); a.writeBytes(b, c, d) }, writeDouble: function (a, b) { a.writeDouble(b) }, writeFloat: function (a, b) { a.writeFloat(b) }, writeInt: function (a, b) { a.writeInt(b) }, writeMultiByte: function (a, b, c) { a.writeMultiByte(b, c) }, writeObject: function (a, b) { a.writeObject(b) }, writeShort: function (a, b) { a.writeShort(b) }, writeUTF: function (a, b) { a.writeUTF(b) }, writeUTFBytes: function (a, b) { a.writeUTFBytes(b) }, writeUnsignedInt: function (a, b) { a.writeUnsignedInt(b) }, get_bytesAvailable: function (a) { return a.length - a.position }, get_defaultEndian: function () { null == uc.__defaultEndian && ($a.get_endianness() == Eg.LITTLE_ENDIAN ? uc.__defaultEndian = 1 : uc.__defaultEndian = 0); return uc.__defaultEndian }, set_defaultEndian: function (a) { return uc.__defaultEndian = a }, get_defaultObjectEncoding: function () { return uc.defaultObjectEncoding }, set_defaultObjectEncoding: function (a) { return uc.defaultObjectEncoding = a }, get_endian: function (a) { return a.__endian }, set_endian: function (a, b) { return a.__endian = b }, get_length: function (a) { return null == a ? 0 : a.length }, set_length: function (a, b) { 0 < b && (a.__resize(b), b < a.position && (a.position = b)); return a.length = b }, get_objectEncoding: function (a) { return a.objectEncoding }, set_objectEncoding: function (a, b) { return a.objectEncoding = b }, get_position: function (a) { return a.position }, set_position: function (a, b) { return a.position = b } }, pn = function () { }; k["openfl.utils.IDataOutput"] = pn; pn.__name__ = "openfl.utils.IDataOutput"; pn.__isInterface__ = !0; pn.prototype = { get_endian: null, set_endian: null, objectEncoding: null, writeBoolean: null, writeByte: null, writeBytes: null, writeDouble: null, writeFloat: null, writeInt: null, writeMultiByte: null, writeObject: null, writeShort: null, writeUnsignedInt: null, writeUTF: null, writeUTFBytes: null, __class__: pn, __properties__: {set_endian: "set_endian", get_endian: "get_endian"} }; var qn = function () { }; k["openfl.utils.IDataInput"] = qn; qn.__name__ = "openfl.utils.IDataInput"; qn.__isInterface__ = !0; qn.prototype = { get_bytesAvailable: null, get_endian: null, set_endian: null, objectEncoding: null, readBoolean: null, readByte: null, readBytes: null, readDouble: null, readFloat: null, readInt: null, readMultiByte: null, readObject: null, readShort: null, readUnsignedByte: null, readUnsignedInt: null, readUnsignedShort: null, readUTF: null, readUTFBytes: null, __class__: qn, __properties__: { set_endian: "set_endian", get_endian: "get_endian", get_bytesAvailable: "get_bytesAvailable" } }; var uc = function (a) { null == a && (a = 0); var b = new lb(new ArrayBuffer(a)); lb.call(this, b.b.buffer); this.__length = a; null == uc.__defaultEndian && ($a.get_endianness() == Eg.LITTLE_ENDIAN ? uc.__defaultEndian = 1 : uc.__defaultEndian = 0); this.__endian = uc.__defaultEndian; this.objectEncoding = uc.defaultObjectEncoding; this.position = 0 }; k["openfl.utils.ByteArrayData"] = uc; uc.__name__ = "openfl.utils.ByteArrayData"; uc.__interfaces__ = [pn, qn]; uc.__properties__ = {set_defaultEndian: "set_defaultEndian", get_defaultEndian: "get_defaultEndian"}; uc.fromBytes = function (a) { var b = new uc; b.__fromBytes(a); return b }; uc.get_defaultEndian = function () { null == uc.__defaultEndian && ($a.get_endianness() == Eg.LITTLE_ENDIAN ? uc.__defaultEndian = 1 : uc.__defaultEndian = 0); return uc.__defaultEndian }; uc.set_defaultEndian = function (a) { return uc.__defaultEndian = a }; uc.__super__ = lb; uc.prototype = u(lb.prototype, { objectEncoding: null, position: null, __endian: null, __length: null, clear: function () { this.position = this.length = 0 }, compress: function (a) { null == a && (a = 2); if (this.__length > this.length) { var b = this.length; this.length = this.__length; var c = new lb(new ArrayBuffer(b)); c.blit(0, this, 0, b); this.b = c.b; this.__length = c.length; this.data = c.data; this.length = b } switch (a) { case 0: a = oc.compress(this, ge.DEFLATE); break; case 1: a = oc.compress(this, ge.LZMA); break; default: a = oc.compress(this, ge.ZLIB) } null != a && (this.b = a.b, this.__length = a.length, this.data = a.data, this.position = this.length = this.__length) }, deflate: function () { this.compress(0) }, inflate: function () { this.uncompress(0) }, readBoolean: function () { if (this.position < this.length) return 0 != this.b[this.position++]; throw I.thrown(new hh); }, readByte: function () { var a = this.readUnsignedByte(); return 0 != (a & 128) ? a - 256 : a }, readBytes: function (a, b, c) { null == c && (c = 0); null == b && (b = 0); 0 == c && (c = this.length - this.position); if (this.position + c > this.length) throw I.thrown(new hh); a.length < b + c && a.__resize(b + c); a.blit(b, this, this.position, c); this.position += c }, readDouble: function () { if (1 == this.__endian) { if (this.position + 8 > this.length) throw I.thrown(new hh); this.position += 8; return this.getDouble(this.position - 8) } var a = this.readInt(), b = this.readInt(); return ee.i64ToDouble(b, a) }, readFloat: function () { if (1 == this.__endian) { if (this.position + 4 > this.length) throw I.thrown(new hh); this.position += 4; return this.getFloat(this.position - 4) } return ee.i32ToFloat(this.readInt()) }, readInt: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(), c = this.readUnsignedByte(), d = this.readUnsignedByte(); return 1 == this.__endian ? d << 24 | c << 16 | b << 8 | a : a << 24 | b << 16 | c << 8 | d }, readMultiByte: function (a, b) { return this.readUTFBytes(a) }, readObject: function () { switch (this.objectEncoding) { case 10: var a = this.readUTF(); return Oe.run(a); case 12: return a = this.readUTF(), JSON.parse(a); default: return null } }, readShort: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(); a = 1 == this.__endian ? b << 8 | a : a << 8 | b; return 0 != (a & 32768) ? a - 65536 : a }, readUnsignedByte: function () { if (this.position < this.length) return this.b[this.position++]; throw I.thrown(new hh); }, readUnsignedInt: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(), c = this.readUnsignedByte(), d = this.readUnsignedByte(); return 1 == this.__endian ? d << 24 | c << 16 | b << 8 | a : a << 24 | b << 16 | c << 8 | d }, readUnsignedShort: function () { var a = this.readUnsignedByte(), b = this.readUnsignedByte(); return 1 == this.__endian ? (b << 8) + a : a << 8 | b }, readUTF: function () { var a = this.readUnsignedShort(); return this.readUTFBytes(a) }, readUTFBytes: function (a) { if (this.position + a > this.length) throw I.thrown(new hh); this.position += a; return this.getString(this.position - a, a) }, uncompress: function (a) { null == a && (a = 2); if (this.__length > this.length) { var b = this.length; this.length = this.__length; var c = new lb(new ArrayBuffer(b)); c.blit(0, this, 0, b); this.b = c.b; this.__length = c.length; this.data = c.data; this.length = b } switch (a) { case 0: a = oc.decompress(this, ge.DEFLATE); break; case 1: a = oc.decompress(this, ge.LZMA); break; default: a = oc.decompress(this, ge.ZLIB) } null != a && (this.b = a.b, this.__length = a.length, this.data = a.data, this.length = this.__length); this.position = 0 }, writeBoolean: function (a) { this.writeByte(a ? 1 : 0) }, writeByte: function (a) { this.__resize(this.position + 1); this.b[this.position++] = a & 255 }, writeBytes: function (a, b, c) { null == c && (c = 0); null == b && (b = 0); 0 != Fb.get_length(a) && (0 == c && (c = Fb.get_length(a) - b), this.__resize(this.position + c), this.blit(this.position, a, b, c), this.position += c) }, writeDouble: function (a) { a = ee.doubleToI64(a); 1 == this.__endian ? (this.writeInt(a.low), this.writeInt(a.high)) : (this.writeInt(a.high), this.writeInt(a.low)) }, writeFloat: function (a) { 1 == this.__endian ? (this.__resize(this.position + 4), this.setFloat(this.position, a), this.position += 4) : (a = ee.floatToI32(a), this.writeInt(a)) }, writeInt: function (a) { this.__resize(this.position + 4); 1 == this.__endian ? (this.b[this.position++] = a & 255, this.b[this.position++] = a >> 8 & 255, this.b[this.position++] = a >> 16 & 255, this.b[this.position++] = a >> 24 & 255) : (this.b[this.position++] = a >> 24 & 255, this.b[this.position++] = a >> 16 & 255, this.b[this.position++] = a >> 8 & 255, this.b[this.position++] = a & 255) }, writeMultiByte: function (a, b) { this.writeUTFBytes(a) }, writeObject: function (a) { switch (this.objectEncoding) { case 10: a = Ge.run(a); this.writeUTF(a); break; case 12: a = JSON.stringify(a), this.writeUTF(a) } }, writeShort: function (a) { this.__resize(this.position + 2); 1 == this.__endian ? (this.b[this.position++] = a & 255, this.b[this.position++] = a >> 8 & 255) : (this.b[this.position++] = a >> 8 & 255, this.b[this.position++] = a & 255) }, writeUnsignedInt: function (a) { this.writeInt(a) }, writeUTF: function (a) { a = lb.ofString(a); this.writeShort(a.length); this.writeBytes(Fb.fromBytes(a)) }, writeUTFBytes: function (a) { a = lb.ofString(a); this.writeBytes(Fb.fromBytes(a)) }, __fromBytes: function (a) { this.b = a.b; this.__length = a.length; this.data = a.data; this.length = a.length }, __resize: function (a) { if (a > this.__length) { var b = new lb(new ArrayBuffer(3 * (a + 1) >> 1)); if (0 < this.__length) { var c = this.length; this.length = this.__length; b.blit(0, this, 0, this.__length); this.length = c } this.b = b.b; this.__length = b.length; this.data = b.data } this.length < a && (this.length = a) }, __setData: function (a) { this.b = a.b; this.__length = a.length; this.data = a.data }, get_bytesAvailable: function () { return this.length - this.position }, get_endian: function () { return this.__endian }, set_endian: function (a) { return this.__endian = a }, __class__: uc, __properties__: { set_endian: "set_endian", get_endian: "get_endian", get_bytesAvailable: "get_bytesAvailable" } }); var ts = { exists: function (a, b) { return a.exists(b) }, get: function (a, b) { return a.get(b) }, keyValueIterator: function (a) { return a.keyValueIterator() }, remove: function (a, b) { return a.remove(b) }, set: function (a, b, c) { a.set(b, c); return c }, iterator: function (a) { return a.keys() }, each: function (a) { return a.iterator() }, toStringMap: function (a, b) { return new xa }, toIntMap: function (a, b) { return new eb }, toFloatMap: function (a, b) { return new ej }, toEnumValueMapMap: function (a, b) { return new Mj }, toObjectMap: function (a, b) { return new Oc }, toUtilsObjectMap: function (a, b) { return new fj }, toClassMap: function (a, b) { return new gj }, fromStringMap: function (a) { return a }, fromIntMap: function (a) { return a }, fromFloatMap: function (a) { return a }, fromObjectMap: function (a) { return a }, fromUtilsObjectMap: function (a) { return a }, fromClassMap: function (a) { return a } }, gj = function () { this.types = new xa; this.values = new xa }; k["openfl.utils._Dictionary.ClassMap"] = gj; gj.__name__ = "openfl.utils._Dictionary.ClassMap"; gj.__interfaces__ = [jd]; gj.prototype = { types: null, values: null, clear: function () { this.types.h = Object.create(null); this.values.h = Object.create(null) }, copy: function () { for (var a = new gj, b = this.keys(); b.hasNext();) { var c = b.next(); a.set(c, this.get(c)) } return a }, exists: function (a) { return Object.prototype.hasOwnProperty.call(this.types.h, a.__name__) }, get: function (a) { return this.values.h[a.__name__] }, keyValueIterator: function () { return new kh(this) }, keys: function () { return new Bi(this.types.h) }, iterator: function () { return new Bi(this.values.h) }, remove: function (a) { a = a.__name__; var b = this.types; Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], b = !0) : b = !1; if (b) return !0; b = this.values; return Object.prototype.hasOwnProperty.call(b.h, a) ? (delete b.h[a], !0) : !1 }, set: function (a, b) { var c = a.__name__; this.types.h[c] = a; this.values.h[c] = b }, toString: function () { return xa.stringify(this.values.h) }, __class__: gj }; var ej = function () { this.floatKeys = []; this.values = [] }; k["openfl.utils._Dictionary.FloatMap"] = ej; ej.__name__ = "openfl.utils._Dictionary.FloatMap"; ej.__interfaces__ = [jd]; ej.prototype = { floatKeys: null, values: null, clear: function () { this.floatKeys = []; this.values = [] }, copy: function () { for (var a = new ej, b = this.keys(); b.hasNext();) { var c = b.next(); a.set(c, this.get(c)) } return a }, exists: function (a) { return -1 < this.indexOf(a) }, get: function (a) { a = this.indexOf(a); return -1 < a ? this.values[a] : null }, keyValueIterator: function () { return new kh(this) }, keys: function () { return new Qe(this.floatKeys.slice()) }, iterator: function () { return new Qe(this.values.slice()) }, remove: function (a) { a = this.indexOf(a); return -1 < a ? (this.floatKeys.splice(a, 1), this.values.splice(a, 1), !0) : !1 }, set: function (a, b) { this.insertSorted(a, b) }, indexOf: function (a) { var b = this.floatKeys.length, c = 0, d = b - 1; if (0 == b) return -1; for (; c < d;) { b = Math.floor((c + d) / 2); if (this.floatKeys[b] == a) return b; this.floatKeys[b] > a ? d = b - 1 : c = b + 1 } return this.floatKeys[c] == a ? c : -1 }, insertSorted: function (a, b) { var c = this.floatKeys.length, d = 0, e = c - 1; if (0 == c) this.floatKeys.push(a), this.values.push(b); else { for (; d < e;) { c = Math.floor((d + e) / 2); if (this.floatKeys[c] == a) { this.values[c] = b; return } this.floatKeys[c] > a ? e = c - 1 : d = c + 1 } this.floatKeys[d] > a ? (this.floatKeys.splice(d, 0, a), this.values.splice(d, 0, b)) : this.floatKeys[d] < a ? (this.floatKeys.splice(d + 1, 0, a), this.values.splice(d + 1, 0, b)) : this.values[d] = b } }, toString: function () { return this.values.toString() }, __class__: ej }; var fj = function () { this.map = new Oc }; k["openfl.utils._Dictionary.UtilsObjectMap"] = fj; fj.__name__ = "openfl.utils._Dictionary.UtilsObjectMap"; fj.__interfaces__ = [jd]; fj.prototype = { map: null, clear: function () { this.map.h = {__keys__: {}} }, copy: function () { for (var a = new fj, b = this.keys(); b.hasNext();) { var c = b.next(); a.set(c, this.get(c)) } return a }, exists: function (a) { return null != this.map.h.__keys__[a.__id__] }, get: function (a) { return this.map.h[a.__id__] }, keyValueIterator: function () { return new kh(this) }, keys: function () { return this.map.keys() }, iterator: function () { return this.map.iterator() }, remove: function (a) { return this.map.remove(a) }, set: function (a, b) { this.map.set(a, b) }, toString: function () { return this.map.toString() }, __class__: fj }; var Xr = { fromLimeEndian: function (a) { switch (a._hx_index) { case 0: return 1; case 1: return 0 } }, fromString: function (a) { switch (a) { case "bigEndian": return 0; case "littleEndian": return 1; default: return null } }, toLimeEndian: function (a) { switch (a) { case 0: return Eg.BIG_ENDIAN; case 1: return Eg.LITTLE_ENDIAN; default: return null } }, toString: function (a) { switch (a) { case 0: return "bigEndian"; case 1: return "littleEndian"; default: return null } } }, rn = function () { }; k["haxe.lang.Iterator"] = rn; rn.__name__ = "haxe.lang.Iterator"; rn.__isInterface__ = !0; rn.prototype = {hasNext: null, next: null, __class__: rn}; var sn = function () { }; k["haxe.lang.Iterable"] = sn; sn.__name__ = "haxe.lang.Iterable"; sn.__isInterface__ = !0; sn.prototype = {iterator: null, __class__: sn}; var Ic = function () { }; k["openfl.utils._internal.Lib"] = Ic; Ic.__name__ = "openfl.utils._internal.Lib"; Ic.notImplemented = function (a) { var b = a.className + "." + a.methodName; Object.prototype.hasOwnProperty.call(Ic.__sentWarnings.h, b) || (Ic.__sentWarnings.h[b] = !0, Qa.warn(a.methodName + " is not implemented", a)) }; var di = function () { this.rollOutStack = [] }; k["openfl.utils._internal.TouchData"] = di; di.__name__ = "openfl.utils._internal.TouchData"; di.prototype = { rollOutStack: null, touch: null, touchDownTarget: null, touchOverTarget: null, reset: function () { this.touchOverTarget = this.touchDownTarget = this.touch = null; this.rollOutStack.splice(0, this.rollOutStack.length) }, __class__: di }; var xn = function (a, b) { var c = this; this.bannerIsOnScreen = this.runningOnMobile = this.videoIsPlaying = !1; this._document = window.document; this._unsafeWindow = this._document.defaultView; this.loader = this._document.createElement("script"); this.loader.src = "./gamebridge-poki.js"; this._document.head.insertBefore(this.loader, this._document.head.getElementsByTagName("script")[0]); // this.tl = this._document.createElement("script"); // //this.tl.innerHTML = "const _0x1918 = ['top', 'indexOf', 'aHR0cHM6Ly9wb2tpLmNvbS9zaXRlbG9jaw==', 'hostname', 'length', 'location', 'LnBva2ktZ2RuLmNvbQ==', 'href']; (function (_0x4a02b5, _0x5c0c3d) { const _0x56a85d = function (_0x375c0e) { while (--_0x375c0e) { _0x4a02b5.push(_0x4a02b5.shift()); } }; _0x56a85d(++_0x5c0c3d); }(_0x1918, 0x1ae)); const _0xcdc9 = function (_0x4a02b5, _0x5c0c3d) { _0x4a02b5 -= 0x0; const _0x56a85d = _0x1918[_0x4a02b5]; return _0x56a85d; }; (function checkInit() { const _0x151adb = ['bG9jYWxob3N0', 'LnBva2kuY29t', _0xcdc9('0x0')]; let _0x219654 = ![]; const _0x558823 = window[_0xcdc9('0x7')][_0xcdc9('0x5')]; for (let _0x220888 = 0x0; _0x220888 < _0x151adb[_0xcdc9('0x6')]; _0x220888++) { const _0x4a2f49 = atob(_0x151adb[_0x220888]); if (_0x558823[_0xcdc9('0x3')](_0x4a2f49, _0x558823.length - _0x4a2f49.length) !== -0x1) { _0x219654 = !![]; break; } } if (!_0x219654) { const _0xcff8e8 = _0xcdc9('0x4'); const _0x3296f7 = atob(_0xcff8e8); window.location[_0xcdc9('0x1')] = _0x3296f7; window[_0xcdc9('0x2')][_0xcdc9('0x7')] !== window[_0xcdc9('0x7')] && (window[_0xcdc9('0x2')][_0xcdc9('0x7')] = window[_0xcdc9('0x7')]); } }());"; // this._document.body.appendChild(this.tl); this.adContainer = this._document.createElement("div"); this.secondContainer = this._document.createElement("div"); this.secondContainer.id = "secondContainer"; this.secondContainer.style.marginTop = "0"; this.secondContainer.style.marginBottom = "0"; this.secondContainer.style.marginLeft = "auto"; this.secondContainer.style.marginRight = "auto"; this.adContainer.id = "adContainer"; this.adContainer.style.display = "flex"; this.runningOnMobile = "ontouchstart" in document.documentElement || window.DocumentTouch && document instanceof DocumentTouch ? !0 : !1; this.canvas = this._document.getElementById("noncontent"); this.adContainer.appendChild(this.secondContainer); this.canvas.appendChild(this.adContainer); this.loader.addEventListener("load", function () { c._unsafeWindow.PokiSDK.init().then(function (a) { b(); c.runningOnMobile && (c.canvas.getBoundingClientRect(), c.canvas.getBoundingClientRect()) }).then(null, function (a) { ya.adBlocked = !0; b() }); c._unsafeWindow.PokiSDK.setDebug(a) }) }; k["poki.Poki"] = xn; xn.__name__ = "poki.Poki"; xn.prototype = { _document: null, _unsafeWindow: null, canvas: null, loader: null, adContainer: null, secondContainer: null, tl: null, runningOnMobile: null, bannerIsOnScreen: null, videoIsPlaying: null, isMobileGame: function () { return this.runningOnMobile }, IsVideoPlaying: function () { return this.videoIsPlaying }, showBanner: function (a, b, c, d) { null == d && (d = !1); if (0 == this.bannerIsOnScreen) { this.bannerIsOnScreen = !0; var e = this._document.getElementById("adContainer"); e.style.position = "relative"; e.style.transform = "translate(0px, -100vh)"; this.secondContainer.style.marginTop = "0"; this.secondContainer.style.marginBottom = "0"; this.secondContainer.style.marginLeft = "auto"; this.secondContainer.style.marginRight = "auto"; this.runningOnMobile ? (e.style.top = "" + b + "px", d && (a = this._unsafeWindow.innerWidth, this.secondContainer.style.marginRight = "" + ((a / 2 - 300) / 2 | 0) + "px"), this._unsafeWindow.PokiSDK.displayAd(this.secondContainer, "320x50")) : 728 == c ? (e.style.top = "" + a + "px", e.style.left = "0px", 1220 >= this._unsafeWindow.innerWidth ? (a = this._unsafeWindow.innerWidth, this.secondContainer.style.marginRight = "" + (a / 2 - 150 | 0) + "px", this._unsafeWindow.PokiSDK.displayAd(this.secondContainer, "320x50")) : this._unsafeWindow.PokiSDK.displayAd(this.secondContainer, "728x90")) : 300 == c ? (e.style.top = "" + a + "px", a = this._unsafeWindow.innerWidth, this.secondContainer.style.marginRight = "" + ((a / 2 - 300) / 2 | 0) + "px", this._unsafeWindow.PokiSDK.displayAd(this.secondContainer, "300x250")) : 320 == c && (e.style.top = "" + a + "px", this._unsafeWindow.PokiSDK.displayAd(this.secondContainer, "320x50")) } }, moveBanner: function (a) { if (this.bannerIsOnScreen) { this.secondContainer.getBoundingClientRect(); var b = this._document.getElementById("adContainer"); b.style.right = b.style.right + a + "px" } }, killBanner: function () { if (1 == this.bannerIsOnScreen) { this.bannerIsOnScreen = !1; var a = this._document.getElementById("secondContainer"); this._unsafeWindow.PokiSDK.destroyAd(a) } }, gameLoadingStart: function () { this._unsafeWindow.PokiSDK.gameLoadingStart() }, gameLoadingFinished: function () { this._unsafeWindow.PokiSDK.gameLoadingFinished() }, gameLoadingProgress: function (a) { this._unsafeWindow.PokiSDK.gameLoadingProgress(a) }, commercialBreak: function (a) { var b = this; this.videoIsPlaying = !0; this._unsafeWindow.PokiSDK.commercialBreak().then(function (c) { b.videoIsPlaying = !1; a() }) }, rewardedBreak: function (a) { var b = this; this.videoIsPlaying = !0; this._unsafeWindow.PokiSDK.rewardedBreak().then(function (c) { 1 == c && 0 == ya.adBlocked ? (b.videoIsPlaying = !1, a()) : b.videoIsPlaying = !1 }) }, sendHappyTime: function (a) { this._unsafeWindow.PokiSDK.happyTime(a) }, sendGameplayStart: function () { this._unsafeWindow.PokiSDK.gameplayStart() }, sendGameplayStop: function () { this._unsafeWindow.PokiSDK.gameplayStop() }, __class__: xn }; var tg = function () { }; k["polygonal.ds.Cloneable"] = tg; tg.__name__ = "polygonal.ds.Cloneable"; tg.__isInterface__ = !0; tg.prototype = {clone: null, __class__: tg}; var tn = function () { }; k["polygonal.ds.Hashable"] = tn; tn.__name__ = "polygonal.ds.Hashable"; tn.__isInterface__ = !0; tn.prototype = {key: null, __class__: tn}; var hj = function () { }; k["polygonal.ds.Collection"] = hj; hj.__name__ = "polygonal.ds.Collection"; hj.__isInterface__ = !0; hj.__interfaces__ = [tn]; hj.prototype = { get_size: null, free: null, contains: null, remove: null, clear: null, iterator: null, isEmpty: null, toArray: null, clone: null, __class__: hj, __properties__: {get_size: "get_size"} }; var ug = function () { }; k["polygonal.ds.HashKey"] = ug; ug.__name__ = "polygonal.ds.HashKey"; ug.next = function () { null == ug._counter && (ug._counter = 0); Ea._assert(ug._counter < ug._counter + 1, "_counter < _counter + 1", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashKey.hx", lineNumber: 44, className: "polygonal.ds.HashKey", methodName: "next" }); return ug._counter++ }; var ki = function () { }; k["polygonal.ds.Map"] = ki; ki.__name__ = "polygonal.ds.Map"; ki.__isInterface__ = !0; ki.__interfaces__ = [hj]; ki.prototype = { has: null, hasKey: null, get: null, set: null, unset: null, remap: null, toValSet: null, toKeySet: null, keys: null, __class__: ki }; var un = function (a, b) { null == b && (b = -1); this.mTmpKeyBuffer = []; this.mTmpIntBuffer = []; this.mIterator = null; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.key = ug.next(); Ea._assert(0 < a, "slotCount > 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 158, className: "polygonal.ds.HashTable", methodName: "new" }); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.mH = new vg(a, this.capacity); this.mKeys = Array(this.capacity); this.mVals = Array(this.capacity); a = this.mNext = Array(this.capacity); b = 0; for (var c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1 }; k["polygonal.ds.HashTable"] = un; un.__name__ = "polygonal.ds.HashTable"; un.__interfaces__ = [ki]; un.prototype = { key: null, capacity: null, get_loadFactor: function () { return this.mH.get_loadFactor() }, get_slotCount: function () { return this.mH.slotCount }, reuseIterator: null, get_growthRate: function () { return this.mH.growthRate }, set_growthRate: function (a) { return this.mH.growthRate = a }, mH: null, mKeys: null, mVals: null, mNext: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, mTmpIntBuffer: null, mTmpKeyBuffer: null, getCollisionCount: function () { return this.mH.getCollisionCount() }, getFront: function (a) { var b = this.mH; a = a.key; var c = 73856093 * a & b.mMask, d = b.mHash[c]; if (-1 == d) b = -2147483648; else { var e = b.mData; if (e[d] == a) b = e[d + 1]; else { var f = -2147483648, h = d, l = h; for (d = e[d + 2]; -1 != d;) { if (e[d] == a) { f = e[d + 1]; e[l + 2] = e[d + 2]; e[d + 2] = h; b.mHash[c] = d; break } l = d; d = e[l + 2] } b = f } } return -2147483648 == b ? null : this.mVals[b] }, setIfAbsent: function (a, b) { Ea._assert(null != a, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 210, className: "polygonal.ds.HashTable", methodName: "setIfAbsent" }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH, e = a.key; Ea._assert(-2147483648 != c, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 291, className: "polygonal.ds.IntIntHashTable", methodName: "setIfAbsent" }); var f = 73856093 * e & d.mMask, h = d.mData, l = d.mHash[f]; if (-1 == l) { d.mSize == d.capacity && (d.grow(), h = d.mData); var p = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; d.mHash[f] = p; h[p] = e; h[p + 1] = c; d.mSize++; d = !0 } else if (h[l] == e) d = !1; else { for (f = h[l + 2]; -1 != f;) { if (h[f] == e) { l = -1; break } l = f; f = h[l + 2] } -1 == l ? d = !1 : (d.mSize == d.capacity && (d.grow(), h = d.mData), p = 3 * d.mFree, d.mFree = d.mNext[d.mFree], h[l + 2] = p, h[p] = e, h[p + 1] = c, d.mSize++, d = !0) } return d ? (this.mVals[c] = b, this.mKeys[c] = a, this.mFree = this.mNext[c], this.mSize++, !0) : !1 }, rehash: function (a) { this.mH.rehash(a); return this }, remap: function (a, b) { Ea._assert(null != a, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 244, className: "polygonal.ds.HashTable", methodName: "remap" }); var c = this.mH; a = a.key; var d = c.mHash[73856093 * a & c.mMask]; if (-1 == d) a = -2147483648; else if (c = c.mData, c[d] == a) a = c[d + 1]; else { var e = -2147483648; for (d = c[d + 2]; -1 != d;) { if (c[d] == a) { e = c[d + 1]; break } d = c[d + 2] } a = e } return -2147483648 != a ? (this.mVals[a] = b, !0) : !1 }, toKeyArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c = this.mKeys, d, e = 0, f = this.capacity; e < f;) d = e++, d = c[d], null != d && (a[b++] = d); return a }, pack: function () { this.mH.pack(); if (this.mH.capacity == this.capacity) return this; this.capacity = this.mH.capacity; for (var a = this.mNext = Array(this.capacity), b = 0, c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1; this.mFree = 0; b = this.mKeys; a = Array(this.capacity); c = this.mVals; var e = Array(this.capacity), f = this.mFree; for (d = this.mH.iterator(); d.hasNext();) { var h = d.next(); a[f] = b[h]; e[f] = c[h]; f = this.mNext[f] } this.mFree = f; this.mKeys = a; this.mVals = e; b = 0; for (c = this.mSize; b < c;) if (d = b++, f = this.mH, e = a[d].key, h = f.mHash[73856093 * e & f.mMask], -1 != h) if (f = f.mData, f[h] == e) f[h + 1] = d; else for (h = f[h + 2]; -1 != h;) { if (f[h] == e) { f[h + 1] = d; break } h = f[h + 2] } return this }, iter: function (a) { Ea._assert(null != a, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 322, className: "polygonal.ds.HashTable", methodName: "iter" }); for (var b = this.mH.mData, c = this.mVals, d = this.mKeys, e, f = 0, h = this.mH.capacity; f < h;) e = f++, e = b[3 * e + 1], -2147483648 != e && a(d[e], c[e]); return this }, toString: function () { var a = "" + z.string(gb.format("[ HashTable size=" + this.mSize + " capacity=" + this.capacity + " load=%.2f", [this.get_loadFactor()])); if (0 == this.mSize) return a + " ]"; a += "\n"; for (var b = 0, c = this.keys(); c.hasNext();) { var d = c.next(), e = z.string(d).length; b <= e && (b = e) } e = []; b = " %- " + b + "s -> %s\n"; var f = []; for (c = this.keys(); c.hasNext();) d = c.next(), f.push(d); f.sort(function (a, b) { return a.key - b.key }); var h = 1, l = f.length; c = 0; for (d = 1; h < l;) { if (f[c] == f[h]) ++d; else { c = f[c]; e[0] = c; if (1 < d) d = [], this.getAll(c, d), e[1] = d.join(","); else { Ea._assert(null != c, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 449, className: "polygonal.ds.HashTable", methodName: "get" }); var p = this.mH; d = c.key; c = p.mHash[73856093 * d & p.mMask]; if (-1 == c) c = -2147483648; else if (p = p.mData, p[c] == d) c = p[c + 1]; else { var m = -2147483648; for (c = p[c + 2]; -1 != c;) { if (p[c] == d) { m = p[c + 1]; break } c = p[c + 2] } c = m } e[1] = z.string(-2147483648 == c ? null : this.mVals[c]) } a += z.string(gb.format(b, e)); c = h; d = 1 } ++h } c = f[c]; e[0] = c; if (1 < d) d = [], this.getAll(c, d), e[1] = d.join(","); else { Ea._assert(null != c, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 449, className: "polygonal.ds.HashTable", methodName: "get" }); p = this.mH; d = c.key; h = p.mHash[73856093 * d & p.mMask]; if (-1 == h) c = -2147483648; else if (p = p.mData, p[h] == d) c = p[h + 1]; else { m = -2147483648; for (h = p[h + 2]; -1 != h;) { if (p[h] == d) { m = p[h + 1]; break } h = p[h + 2] } c = m } e[1] = z.string(-2147483648 == c ? null : this.mVals[c]) } a += z.string(gb.format(b, e)); return a + "]" }, grow: function () { var a = this.capacity; this.capacity = Kg.compute(this.get_growthRate(), this.capacity); var b = Array(this.capacity); Pb.blit(this.mNext, 0, b, 0, a); b = this.mNext = b; for (var c = a - 1, d = this.capacity - 1; c < d;) { var e = c++; b[e] = e + 1 } b[this.capacity - 1] = -1; this.mFree = a; b = Array(this.capacity); Pb.blit(this.mVals, 0, b, 0, a); this.mVals = b; b = Array(this.capacity); Pb.blit(this.mKeys, 0, b, 0, a); this.mKeys = b }, has: function (a) { for (var b = this.mKeys, c = this.mVals, d = 0, e = this.capacity; d < e;) { var f = d++; if (null != b[f] && c[f] == a) return !0 } return !1 }, hasKey: function (a) { Ea._assert(null != a, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 439, className: "polygonal.ds.HashTable", methodName: "hasKey" }); var b = this.mH; a = a.key; var c = b.mHash[73856093 * a & b.mMask]; if (-1 == c) return !1; b = b.mData; if (b[c] == a) return !0; var d = !1; for (c = b[c + 2]; -1 != c;) { if (b[c] == a) { d = !0; break } c = b[c + 2] } return d }, get: function (a) { Ea._assert(null != a, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 449, className: "polygonal.ds.HashTable", methodName: "get" }); var b = this.mH; a = a.key; var c = b.mHash[73856093 * a & b.mMask]; if (-1 == c) a = -2147483648; else if (b = b.mData, b[c] == a) a = b[c + 1]; else { var d = -2147483648; for (c = b[c + 2]; -1 != c;) { if (b[c] == a) { d = b[c + 1]; break } c = b[c + 2] } a = d } return -2147483648 == a ? null : this.mVals[a] }, getAll: function (a, b) { var c = this.mH, d = a.key, e = c.mHash[73856093 * d & c.mMask]; if (-1 == e) c = -2147483648; else { var f = c.mData; if (f[e] == d) c = f[e + 1]; else for (c = -2147483648, e = f[e + 2]; -1 != e;) { if (f[e] == d) { c = f[e + 1]; break } e = f[e + 2] } } if (-2147483648 == c) return 0; d = this.mTmpIntBuffer; a = this.mH.getAll(a.key, d); c = this.mVals; for (e = 0; e < a;) f = e++, b[f] = c[d[f]]; return a }, set: function (a, b) { Ea._assert(null != a, "key != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 483, className: "polygonal.ds.HashTable", methodName: "set" }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH, e = a.key; Ea._assert(-2147483648 != c, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1046, className: "polygonal.ds.IntIntHashTable", methodName: "set" }); d.mSize == d.capacity && d.grow(); var f = d.mData, h = d.mHash, l = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; f[l] = e; f[l + 1] = c; var p = 73856093 * e & d.mMask, m = h[p]; if (-1 == m) h[p] = l, d.mSize++, d = !0; else { h = f[m] != e; for (p = f[m + 2]; -1 != p;) f[p] == e && (h = !1), m = p, p = f[p + 2]; f[m + 2] = l; d.mSize++; d = h } this.mVals[c] = b; this.mKeys[c] = a; this.mFree = this.mNext[c]; this.mSize++; return d }, unset: function (a) { var b = this.mH, c = a.key, d = b.mHash[73856093 * c & b.mMask]; if (-1 == d) d = -2147483648; else { var e = b.mData; if (e[d] == c) d = e[d + 1]; else { b = -2147483648; for (d = e[d + 2]; -1 != d;) { if (e[d] == c) { b = e[d + 1]; break } d = e[d + 2] } d = b } } if (-2147483648 == d) return !1; this.mKeys[d] = null; this.mNext[d] = this.mFree; this.mFree = d; b = this.mH; c = a.key; a = 73856093 * c & b.mMask; var f = b.mHash; d = f[a]; if (-1 != d) if (e = b.mData, c == e[d]) f[a] = -1 == e[d + 2] ? -1 : e[d + 2], c = d / 3 | 0, b.mNext[c] = b.mFree, b.mFree = c, e[d + 1] = -2147483648, e[d + 2] = -1, b.mSize--; else { a = !1; f = d; for (d = e[d + 2]; -1 != d;) { if (e[d] == c) { a = !0; break } f = d; d = e[f + 2] } a && (e[f + 2] = e[d + 2], c = d / 3 | 0, b.mNext[c] = b.mFree, b.mFree = c, e[d + 1] = -2147483648, e[d + 2] = -1, b.mSize--) } this.mSize--; return !0 }, toValSet: function () { for (var a = new li, b = this.mKeys, c = this.mVals, d = 0, e = this.capacity; d < e;) { var f = d++; null != b[f] && a.set(c[f]) } return a }, toKeySet: function () { for (var a = new li, b = this.mKeys, c, d = 0, e = this.capacity; d < e;) c = d++, c = b[c], null != c && a.set(c); return a }, keys: function () { return new vn(this) }, get_size: function () { return this.mSize }, free: function () { Pb.nullify(this.mVals); this.mVals = null; Pb.nullify(this.mKeys); this.mNext = this.mKeys = null; this.mH.free(); this.mH = null; null != this.mIterator && (this.mIterator.free(), this.mIterator = null); this.mTmpKeyBuffer = this.mTmpIntBuffer = null }, contains: function (a) { return this.has(a) }, remove: function (a) { for (var b = this.mTmpKeyBuffer, c = this.mKeys, d = this.mVals, e, f = 0, h = 0, l = this.capacity; h < l;) { var p = h++; e = c[p]; null != e && d[p] == a && (b[f++] = e) } h = 0; for (l = f; h < l;) p = h++, this.unset(b[p]), b[p] = null; return 0 < f }, clear: function (a) { null == a && (a = !1); this.mH.clear(a); Pb.init(this.mKeys, null, 0, this.capacity); Pb.init(this.mVals, null, 0, this.capacity); a = this.mNext; for (var b = 0, c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1; this.mSize = this.mFree = 0 }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? this.mIterator = new jk(this) : this.mIterator.reset(), this.mIterator) : new jk(this) }, isEmpty: function () { return 0 == this.mSize }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c = this.mKeys, d = this.mVals, e = 0, f = this.capacity; e < f;) { var h = e++; null != c[h] && (a[b++] = d[h]) } return a }, clone: function (a, b) { null == a && (a = !0); var c = new un(this.mH.slotCount, this.mSize); c.mH = this.mH.clone(); c.mSize = this.mSize; c.mFree = this.mFree; var d = this.mVals, e = c.mVals, f = this.mKeys; Pb.blit(f, 0, c.mKeys, 0, this.mSize); if (a) Pb.blit(d, 0, e, 0, this.mSize); else if (null != b) { a = 0; for (var h = this.mSize; a < h;) { var l = a++; e[l] = null != f[l] ? b(d[l]) : null } } else for (a = 0, h = this.mSize; a < h;) l = a++, null != f[l] ? (Ea._assert(w.__implements(d[l], tg), "element is not of type Cloneable(Std.isOfType(srcVals.get(i), Cloneable))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/HashTable.hx", lineNumber: 735, className: "polygonal.ds.HashTable", methodName: "clone" }), e[l] = w.__cast(d[l], tg).clone()) : e[l] = null; Pb.blit(this.mNext, 0, c.mNext, 0, this.mSize); return c }, __class__: un, __properties__: { get_size: "get_size", set_growthRate: "set_growthRate", get_growthRate: "get_growthRate", get_slotCount: "get_slotCount", get_loadFactor: "get_loadFactor" } }; var Lg = function () { }; k["polygonal.ds.Itr"] = Lg; Lg.__name__ = "polygonal.ds.Itr"; Lg.__isInterface__ = !0; Lg.prototype = {hasNext: null, next: null, remove: null, reset: null, __class__: Lg}; var vn = function (a) { this.mObject = a; this.reset() }; k["polygonal.ds.HashTableKeyIterator"] = vn; vn.__name__ = "polygonal.ds.HashTableKeyIterator"; vn.__interfaces__ = [Lg]; vn.prototype = { mObject: null, mKeys: null, mI: null, mS: null, free: function () { this.mKeys = this.mObject = null }, reset: function () { this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && null == this.mKeys[this.mI];) this.mI++; return this }, hasNext: function () { return this.mI < this.mS }, next: function () { for (var a = this.mKeys[this.mI]; ++this.mI < this.mS && null == this.mKeys[this.mI];) ; return a }, remove: function () { throw I.thrown("unsupported operation"); }, __class__: vn }; var jk = function (a) { this.mObject = a; this.reset() }; k["polygonal.ds.HashTableValIterator"] = jk; jk.__name__ = "polygonal.ds.HashTableValIterator"; jk.__interfaces__ = [Lg]; jk.prototype = { mObject: null, mKeys: null, mVals: null, mI: null, mS: null, free: function () { this.mVals = this.mKeys = this.mObject = null }, reset: function () { this.mVals = this.mObject.mVals; this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && null == this.mKeys[this.mI];) this.mI++; return this }, hasNext: function () { return this.mI < this.mS }, next: function () { for (var a = this.mVals[this.mI]; ++this.mI < this.mS && null == this.mKeys[this.mI];) ; return a }, remove: function () { throw I.thrown("unsupported operation"); }, __class__: jk }; var ij = function () { }; k["polygonal.ds.Set"] = ij; ij.__name__ = "polygonal.ds.Set"; ij.__isInterface__ = !0; ij.__interfaces__ = [hj]; ij.prototype = {has: null, set: null, unset: null, __class__: ij}; var Mg = function (a, b) { null == b && (b = -1); this.mFree = this.mSize = 0; this.reuseIterator = !1; this.growthRate = -3; this.key = ug.next(); Ea._assert(0 < a, "slotCount > 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 138, className: "polygonal.ds.IntHashSet", methodName: "new" }); Ea._assert(0 < a && 0 == (a & a - 1), "slotCount is not a power of 2(MathTools.isPow2(slotCount))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 139, className: "polygonal.ds.IntHashSet", methodName: "new" }); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.slotCount = a; this.mMask = a - 1; this.mHash = Pb.init(Array(a), -1); this.mData = Array(this.capacity << 1); this.mNext = Array(this.capacity); var c = 1; a = this.mData; b = 0; for (var d = this.capacity; b < d;) b++, a[c - 1] = -2147483648, a[c] = -1, c += 2; a = this.mNext; b = 0; for (d = this.capacity - 1; b < d;) c = b++, a[c] = c + 1; a[this.capacity - 1] = -1 }; k["polygonal.ds.IntHashSet"] = Mg; Mg.__name__ = "polygonal.ds.IntHashSet"; Mg.__interfaces__ = [ij]; Mg.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, get_loadFactor: function () { return this.mSize / this.slotCount }, slotCount: null, mHash: null, mData: null, mNext: null, mMask: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, getCollisionCount: function () { for (var a = 0, b, c = this.mData, d = this.mHash, e = 0, f = this.slotCount; e < f;) if (b = e++, b = d[b], -1 != b) for (b = c[b + 1]; -1 != b;) b = c[b + 1], ++a; return a }, hasFront: function (a) { Ea._assert(-2147483648 != a, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 203, className: "polygonal.ds.IntHashSet", methodName: "hasFront" }); var b = 73856093 * a & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (d[c] == a) return !0; var e = !1, f = c, h = f; for (c = d[c + 1]; -1 != c;) { if (d[c] == a) { d[h + 1] = d[c + 1]; d[c + 1] = f; d[b] = c; e = !0; break } h = c; c = d[h + 1] } return e }, rehash: function (a) { Ea._assert(0 < a && 0 == (a & a - 1), "slotCount is not a power of 2(MathTools.isPow2(slotCount))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 270, className: "polygonal.ds.IntHashSet", methodName: "rehash" }); if (this.slotCount == a) return this; for (var b = new Mg(a, this.capacity), c = this.mData, d = 0, e = this.capacity; d < e;) { var f = d++; f = c[f << 1]; if (-2147483648 != f) { Ea._assert(-2147483648 != f, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 521, className: "polygonal.ds.IntHashSet", methodName: "set" }); var h = 73856093 * f & b.mMask, l = b.mData, p = b.mHash[h]; if (-1 == p) b.mSize == b.capacity && (b.grow(), l = b.mData), p = b.mFree << 1, b.mFree = b.mNext[b.mFree], b.mHash[h] = p, l[p] = f, b.mSize++; else if (l[p] != f) { for (h = l[p + 1]; -1 != h;) { if (l[h] == f) { p = -1; break } p = h; h = l[h + 1] } -1 != p && (b.mSize == b.capacity && (b.grow(), l = b.mData), h = b.mFree << 1, b.mFree = b.mNext[b.mFree], l[h] = f, l[p + 1] = h, b.mSize++) } } } this.mHash = b.mHash; this.mData = b.mData; this.mNext = b.mNext; this.slotCount = a; this.mMask = b.mMask; this.mFree = b.mFree; return this }, pack: function () { if (this.capacity == this.mMinCapacity) return this; var a = this.mSize, b = this.mMinCapacity; this.capacity = a > b ? a : b; var c = this.mData, d = 0, e = this.mHash, f = Array(this.capacity << 1); a = 0; for (b = this.slotCount; a < b;) { var h = a++; var l = e[h]; if (-1 != l) for (e[h] = d, f[d++] = c[l], f[d++] = -1, l = c[l + 1]; -1 != l;) f[d - 1] = d, f[d++] = c[l], f[d++] = -1, l = c[l + 1] } this.mData = f; c = this.mNext = Array(this.capacity); a = 0; for (b = this.capacity - 1; a < b;) h = a++, c[h] = h + 1; this.mFree = c[this.capacity - 1] = -1; return this }, iter: function (a) { Ea._assert(null != a, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 384, className: "polygonal.ds.IntHashSet", methodName: "iter" }); for (var b = this.mData, c, d, e = 0, f = this.capacity; e < f;) c = e++ << 1, d = b[c], -2147483648 != d && a(b[c]); return this }, toString: function () { var a = "" + z.string(gb.format("[ IntHashSet size=" + this.mSize + " capacity=" + this.capacity + " load=%.2f", [this.get_loadFactor()])); if (0 == this.mSize) return a + " ]"; a += "\n"; for (var b = this.iterator(); b.hasNext();) { var c = b.next(); a += z.string(" " + c + "\n") } return a + "]" }, hashCode: function (a) { return 73856093 * a & this.mMask }, grow: function () { var a = this.capacity; this.capacity = Kg.compute(this.growthRate, this.capacity); var b = Array(this.capacity); Pb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(this.capacity << 1); Pb.blit(this.mData, 0, b, 0, a << 1); this.mData = b; b = this.mNext; for (var c = a - 1, d = this.capacity - 1; c < d;) { var e = c++; b[e] = e + 1 } b[this.capacity - 1] = -1; this.mFree = a; e = a << 1; b = this.mData; c = 0; for (d = this.capacity - a; c < d;) c++, b[e] = -2147483648, b[e + 1] = -1, e += 2 }, has: function (a) { Ea._assert(-2147483648 != a, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 467, className: "polygonal.ds.IntHashSet", methodName: "has" }); var b = this.mHash[73856093 * a & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 1]; -1 != b;) { if (c[b] == a) { d = !0; break } b = c[b + 1] } return d }, set: function (a) { Ea._assert(-2147483648 != a, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 521, className: "polygonal.ds.IntHashSet", methodName: "set" }); var b = 73856093 * a & this.mMask, c = this.mData, d = this.mHash[b]; if (-1 == d) return this.mSize == this.capacity && (this.grow(), c = this.mData), d = this.mFree << 1, this.mFree = this.mNext[this.mFree], this.mHash[b] = d, c[d] = a, this.mSize++, !0; if (c[d] == a) return !1; for (b = c[d + 1]; -1 != b;) { if (c[b] == a) { d = -1; break } d = b; b = c[b + 1] } if (-1 == d) return !1; this.mSize == this.capacity && (this.grow(), c = this.mData); b = this.mFree << 1; this.mFree = this.mNext[this.mFree]; c[b] = a; c[d + 1] = b; this.mSize++; return !0 }, unset: function (a) { var b = 73856093 * a & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (a == d[c]) return this.mHash[b] = -1 == d[c + 1] ? -1 : d[c + 1], a = c >> 1, this.mNext[a] = this.mFree, this.mFree = a, d[c] = -2147483648, d[c + 1] = -1, this.mSize--, !0; b = !1; var e = c; for (c = d[c + 1]; -1 != c;) { if (d[c] == a) { b = !0; break } e = c; c = d[e + 1] } return b ? (d[e + 1] = d[c + 1], a = c >> 1, this.mNext[a] = this.mFree, this.mFree = a, d[c] = -2147483648, d[c + 1] = -1, --this.mSize, !0) : !1 }, get_size: function () { return this.mSize }, free: function () { this.mNext = this.mData = this.mHash = null; null != this.mIterator && (this.mIterator.free(), this.mIterator = null) }, contains: function (a) { Ea._assert(-2147483648 != a, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 467, className: "polygonal.ds.IntHashSet", methodName: "has" }); var b = this.mHash[73856093 * a & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 1]; -1 != b;) { if (c[b] == a) { d = !0; break } b = c[b + 1] } return d }, remove: function (a) { var b = 73856093 * a & this.mMask, c = this.mHash[b]; if (-1 == c) return !1; var d = this.mData; if (a == d[c]) return this.mHash[b] = -1 == d[c + 1] ? -1 : d[c + 1], a = c >> 1, this.mNext[a] = this.mFree, this.mFree = a, d[c] = -2147483648, d[c + 1] = -1, this.mSize--, !0; b = !1; var e = c; for (c = d[c + 1]; -1 != c;) { if (d[c] == a) { b = !0; break } e = c; c = d[e + 1] } return b ? (d[e + 1] = d[c + 1], a = c >> 1, this.mNext[a] = this.mFree, this.mFree = a, d[c] = -2147483648, d[c + 1] = -1, --this.mSize, !0) : !1 }, clear: function (a) { var b = this.mHash; a = 0; for (var c = this.slotCount; a < c;) { var d = a++; b[d] = -1 } d = 1; b = this.mData; a = 0; for (c = this.capacity; a < c;) a++, b[d - 1] = -2147483648, b[d] = -1, d += 2; b = this.mNext; a = 0; for (c = this.capacity - 1; a < c;) d = a++, b[d] = d + 1; b[this.capacity - 1] = -1; this.mSize = this.mFree = 0 }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? this.mIterator = new kk(this) : this.mIterator.reset(), this.mIterator) : new kk(this) }, isEmpty: function () { return 0 == this.mSize }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c, d = this.mData, e = 0, f = this.capacity; e < f;) c = e++, c = d[c << 1], -2147483648 != c && (a[b++] = c); return a }, clone: function (a, b) { a = new Mg(this.slotCount, this.mSize); Pb.blit(this.mHash, 0, a.mHash, 0, this.slotCount); Pb.blit(this.mData, 0, a.mData, 0, this.mSize << 1); Pb.blit(this.mNext, 0, a.mNext, 0, this.mSize); a.mMask = this.mMask; a.slotCount = this.slotCount; a.capacity = this.capacity; a.mFree = this.mFree; a.mSize = this.mSize; return a }, __class__: Mg, __properties__: {get_size: "get_size", get_loadFactor: "get_loadFactor"} }; var kk = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan() }; k["polygonal.ds.IntHashSetIterator"] = kk; kk.__name__ = "polygonal.ds.IntHashSetIterator"; kk.__interfaces__ = [Lg]; kk.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this }, hasNext: function () { return this.mI < this.mS }, next: function () { var a = this.mData[this.mI++ << 1]; this.scan(); return a }, remove: function () { throw I.thrown("unsupported operation"); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[this.mI << 1];) this.mI++ }, __class__: kk }; var Fe = function (a, b) { null == b && (b = -1); this.mTmpKeyBuffer = []; this.mIterator = null; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.key = ug.next(); Ea._assert(0 < a, "slotCount > 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx", lineNumber: 158, className: "polygonal.ds.IntHashTable", methodName: "new" }); -1 == b && (b = a); 2 > b && (b = 2); this.mMinCapacity = this.capacity = b; this.mH = new vg(a, this.capacity); this.mVals = Array(this.capacity); this.mNext = Array(this.capacity); this.mKeys = Pb.init(Array(this.capacity), -2147483648, 0, this.capacity); a = this.mNext; b = 0; for (var c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1 }; k["polygonal.ds.IntHashTable"] = Fe; Fe.__name__ = "polygonal.ds.IntHashTable"; Fe.__interfaces__ = [ki]; Fe.prototype = { key: null, capacity: null, get_growthRate: function () { return this.mH.growthRate }, set_growthRate: function (a) { return this.mH.growthRate = a }, reuseIterator: null, get_loadFactor: function () { return this.mH.get_loadFactor() }, get_slotCount: function () { return this.mH.slotCount }, mH: null, mVals: null, mNext: null, mKeys: null, mFree: null, mSize: null, mMinCapacity: null, mShrinkSize: null, mIterator: null, mTmpKeyBuffer: null, getCollisionCount: function () { return this.mH.getCollisionCount() }, getFront: function (a) { var b = this.mH, c = 73856093 * a & b.mMask, d = b.mHash[c]; if (-1 == d) a = -2147483648; else { var e = b.mData; if (e[d] == a) a = e[d + 1]; else { var f = -2147483648, h = d, l = h; for (d = e[d + 2]; -1 != d;) { if (e[d] == a) { f = e[d + 1]; e[l + 2] = e[d + 2]; e[d + 2] = h; b.mHash[c] = d; break } l = d; d = e[l + 2] } a = f } } return -2147483648 == a ? null : this.mVals[a] }, setIfAbsent: function (a, b) { Ea._assert(-2147483648 != a, "key 0x80000000 is reserved(key != IntIntHashTable.KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx", lineNumber: 212, className: "polygonal.ds.IntHashTable", methodName: "setIfAbsent" }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH; Ea._assert(-2147483648 != c, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 291, className: "polygonal.ds.IntIntHashTable", methodName: "setIfAbsent" }); var e = 73856093 * a & d.mMask, f = d.mData, h = d.mHash[e]; if (-1 == h) { d.mSize == d.capacity && (d.grow(), f = d.mData); var l = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; d.mHash[e] = l; f[l] = a; f[l + 1] = c; d.mSize++; d = !0 } else if (f[h] == a) d = !1; else { for (e = f[h + 2]; -1 != e;) { if (f[e] == a) { h = -1; break } h = e; e = f[h + 2] } -1 == h ? d = !1 : (d.mSize == d.capacity && (d.grow(), f = d.mData), l = 3 * d.mFree, d.mFree = d.mNext[d.mFree], f[h + 2] = l, f[l] = a, f[l + 1] = c, d.mSize++, d = !0) } return d ? (this.mVals[c] = b, this.mKeys[c] = a, this.mFree = this.mNext[c], this.mSize++, !0) : !1 }, rehash: function (a) { this.mH.rehash(a); return this }, remap: function (a, b) { var c = this.mH, d = c.mHash[73856093 * a & c.mMask]; if (-1 == d) a = -2147483648; else if (c = c.mData, c[d] == a) a = c[d + 1]; else { var e = -2147483648; for (d = c[d + 2]; -1 != d;) { if (c[d] == a) { e = c[d + 1]; break } d = c[d + 2] } a = e } return -2147483648 != a ? (this.mVals[a] = b, !0) : !1 }, toKeyArray: function () { return this.mH.toKeyArray() }, toString: function () { var a = this; var b = "" + z.string(gb.format("[ IntHashTable size=" + this.mSize + " capacity=" + this.capacity + " load=%.2f", [this.get_loadFactor()])); if (0 == this.mSize) return b + " ]"; b += "\n"; for (var c = 0, d = this.keys(); d.hasNext();) { var e = d.next(); c = Math.max(c, e) } for (e = 1; 0 != c;) ++e, c = c / 10 | 0; c = []; var f = " %- " + e + "d -> %s\n", h = []; for (d = this.keys(); d.hasNext();) e = d.next(), h.push(e); h.sort(function (a, b) { return a - b }); e = 1; var l = h.length; d = 0; for (var p = 1; e < l;) { if (h[d] == h[e]) ++p; else { d = h[d]; c[0] = d; if (1 < p) p = [], a.getAll(d, p), c[1] = p.join(","); else { p = a.mVals; var m = a.mH, k = m.mHash[73856093 * d & m.mMask]; if (-1 == k) d = -2147483648; else if (m = m.mData, m[k] == d) d = m[k + 1]; else { var n = -2147483648; for (k = m[k + 2]; -1 != k;) { if (m[k] == d) { n = m[k + 1]; break } k = m[k + 2] } d = n } c[1] = z.string(p[d]) } b += z.string(gb.format(f, c)); d = e; p = 1 } ++e } d = h[d]; c[0] = d; if (1 < p) p = [], a.getAll(d, p), c[1] = p.join(","); else { p = a.mVals; m = a.mH; e = m.mHash[73856093 * d & m.mMask]; if (-1 == e) a = -2147483648; else if (m = m.mData, m[e] == d) a = m[e + 1]; else { n = -2147483648; for (e = m[e + 2]; -1 != e;) { if (m[e] == d) { n = m[e + 1]; break } e = m[e + 2] } a = n } c[1] = z.string(p[a]) } b += z.string(gb.format(f, c)); return b + "]" }, has: function (a) { for (var b = this.mKeys, c = this.mVals, d = 0, e = this.capacity; d < e;) { var f = d++; if (-2147483648 != b[f] && c[f] == a) return !0 } return !1 }, hasKey: function (a) { var b = this.mH, c = b.mHash[73856093 * a & b.mMask]; if (-1 == c) return !1; b = b.mData; if (b[c] == a) return !0; var d = !1; for (c = b[c + 2]; -1 != c;) { if (b[c] == a) { d = !0; break } c = b[c + 2] } return d }, count: function (a) { return this.mH.count(a) }, get: function (a) { var b = this.mH, c = b.mHash[73856093 * a & b.mMask]; if (-1 == c) a = -2147483648; else if (b = b.mData, b[c] == a) a = b[c + 1]; else { var d = -2147483648; for (c = b[c + 2]; -1 != c;) { if (b[c] == a) { d = b[c + 1]; break } c = b[c + 2] } a = d } return -2147483648 == a ? null : this.mVals[a] }, getAll: function (a, b) { var c = this.mH, d = c.mHash[73856093 * a & c.mMask]; if (-1 == d) c = -2147483648; else { var e = c.mData; if (e[d] == a) c = e[d + 1]; else for (c = -2147483648, d = e[d + 2]; -1 != d;) { if (e[d] == a) { c = e[d + 1]; break } d = e[d + 2] } } if (-2147483648 == c) return 0; d = this.mTmpKeyBuffer; a = this.mH.getAll(a, d); c = this.mVals; for (e = 0; e < a;) { var f = e++; b[f] = c[d[f]] } return a }, set: function (a, b) { Ea._assert(-2147483648 != a, "key 0x80000000 is reserved(key != IntIntHashTable.KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx", lineNumber: 397, className: "polygonal.ds.IntHashTable", methodName: "set" }); this.mSize == this.capacity && this.grow(); var c = this.mFree, d = this.mH; Ea._assert(-2147483648 != c, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1046, className: "polygonal.ds.IntIntHashTable", methodName: "set" }); d.mSize == d.capacity && d.grow(); var e = d.mData, f = d.mHash, h = 3 * d.mFree; d.mFree = d.mNext[d.mFree]; e[h] = a; e[h + 1] = c; var l = 73856093 * a & d.mMask, p = f[l]; if (-1 == p) f[l] = h, d.mSize++, d = !0; else { f = e[p] != a; for (l = e[p + 2]; -1 != l;) e[l] == a && (f = !1), p = l, l = e[l + 2]; e[p + 2] = h; d.mSize++; d = f } this.mVals[c] = b; this.mKeys[c] = a; this.mFree = this.mNext[c]; this.mSize++; return d }, unset: function (a) { var b = this.mH, c = b.mHash[73856093 * a & b.mMask]; if (-1 == c) c = -2147483648; else { var d = b.mData; if (d[c] == a) c = d[c + 1]; else { b = -2147483648; for (c = d[c + 2]; -1 != c;) { if (d[c] == a) { b = d[c + 1]; break } c = d[c + 2] } c = b } } if (-2147483648 == c) return !1; this.mVals[c] = null; this.mKeys[c] = -2147483648; this.mNext[c] = this.mFree; this.mFree = c; b = this.mH; var e = 73856093 * a & b.mMask, f = b.mHash; c = f[e]; if (-1 != c) if (d = b.mData, a == d[c]) f[e] = -1 == d[c + 2] ? -1 : d[c + 2], a = c / 3 | 0, b.mNext[a] = b.mFree, b.mFree = a, d[c + 1] = -2147483648, d[c + 2] = -1, b.mSize--; else { e = !1; f = c; for (c = d[c + 2]; -1 != c;) { if (d[c] == a) { e = !0; break } f = c; c = d[f + 2] } e && (d[f + 2] = d[c + 2], a = c / 3 | 0, b.mNext[a] = b.mFree, b.mFree = a, d[c + 1] = -2147483648, d[c + 2] = -1, b.mSize--) } this.mSize--; return !0 }, toValSet: function () { for (var a = new li, b = this.mKeys, c = this.mVals, d = 0, e = this.capacity; d < e;) { var f = d++; -2147483648 != b[f] && a.set(c[f]) } return a }, toKeySet: function () { return this.mH.toKeySet() }, keys: function () { return this.mH.keys() }, pack: function () { this.mH.pack(); if (this.mH.capacity == this.capacity) return this; this.capacity = this.mH.capacity; for (var a = this.mNext = Array(this.capacity), b = 0, c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1; this.mFree = 0; b = this.mKeys; a = Array(this.capacity); c = this.mVals; var e = Array(this.capacity), f = this.mFree; for (d = this.mH.iterator(); d.hasNext();) { var h = d.next(); a[f] = b[h]; e[f] = c[h]; f = this.mNext[f] } this.mFree = f; this.mKeys = a; this.mVals = e; b = 0; for (c = this.mSize; b < c;) if (d = b++, f = this.mH, e = a[d], h = f.mHash[73856093 * e & f.mMask], -1 != h) if (f = f.mData, f[h] == e) f[h + 1] = d; else for (h = f[h + 2]; -1 != h;) { if (f[h] == e) { f[h + 1] = d; break } h = f[h + 2] } return this }, iter: function (a) { Ea._assert(null != a, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx", lineNumber: 518, className: "polygonal.ds.IntHashTable", methodName: "iter" }); var b = this.mVals, c = this.mH; Ea._assert(!0, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1360, className: "polygonal.ds.IntIntHashTable", methodName: "iter" }); for (var d = c.mData, e, f = 0, h = c.capacity; f < h;) c = 3 * f++, e = d[c + 1], -2147483648 != e && a(d[c], b[e]); return this }, grow: function () { var a = this.capacity; this.capacity = Kg.compute(this.get_growthRate(), this.capacity); var b = Array(this.capacity); Pb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(this.capacity); Pb.blit(this.mKeys, 0, b, 0, a); b = this.mKeys = b; for (var c = a, d = this.capacity; c < d;) { var e = c++; b[e] = -2147483648 } b = this.mNext; c = a - 1; for (d = this.capacity - 1; c < d;) e = c++, b[e] = e + 1; b[this.capacity - 1] = -1; this.mFree = a; b = Array(this.capacity); Pb.blit(this.mVals, 0, b, 0, a); this.mVals = b }, get_size: function () { return this.mSize }, free: function () { Pb.nullify(this.mVals); this.mNext = this.mKeys = this.mVals = null; this.mH.free(); this.mH = null; null != this.mIterator && (this.mIterator.free(), this.mIterator = null); this.mTmpKeyBuffer = null }, contains: function (a) { return this.has(a) }, remove: function (a) { for (var b = this.mTmpKeyBuffer, c = 0, d = this.mKeys, e = this.mVals, f, h = 0, l = this.capacity; h < l;) { var p = h++; f = d[p]; -2147483648 != f && e[p] == a && (b[c++] = f) } h = 0; for (l = c; h < l;) p = h++, this.unset(b[p]); return 0 < c }, clear: function (a) { null == a && (a = !1); this.mH.clear(a); Pb.init(this.mKeys, -2147483648, 0, this.capacity); a = this.mNext; for (var b = 0, c = this.capacity - 1; b < c;) { var d = b++; a[d] = d + 1 } a[this.capacity - 1] = -1; this.mSize = this.mFree = 0 }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? this.mIterator = new lk(this) : this.mIterator.reset(), this.mIterator) : new lk(this) }, isEmpty: function () { return 0 == this.mSize }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c = this.mKeys, d = this.mVals, e = 0, f = this.capacity; e < f;) { var h = e++; -2147483648 != c[h] && (a[b++] = d[h]) } return a }, clone: function (a, b) { null == a && (a = !0); var c = new Fe(this.mH.slotCount, this.mSize); c.mH = this.mH.clone(!1); c.mSize = this.mSize; c.mFree = this.mFree; var d = this.mVals, e = c.mVals; if (a) Pb.blit(d, 0, e, 0, this.mSize); else if (a = this.mKeys, null != b) for (var f = 0, h = this.mSize; f < h;) { var l = f++; -2147483648 != a[l] && (e[l] = b(d[l])) } else for (f = 0, h = this.mSize; f < h;) l = f++, -2147483648 != a[l] && (Ea._assert(w.__implements(d[l], tg), "element is not of type Cloneable(Std.isOfType(src.get(i), Cloneable))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashTable.hx", lineNumber: 727, className: "polygonal.ds.IntHashTable", methodName: "clone" }), e[l] = w.__cast(d[l], tg).clone()); Pb.blit(this.mKeys, 0, c.mKeys, 0, this.mSize); Pb.blit(this.mNext, 0, c.mNext, 0, this.mSize); return c }, __class__: Fe, __properties__: { get_size: "get_size", get_slotCount: "get_slotCount", get_loadFactor: "get_loadFactor", set_growthRate: "set_growthRate", get_growthRate: "get_growthRate" } }; var lk = function (a) { this.mObject = a; this.reset() }; k["polygonal.ds.IntHashTableIterator"] = lk; lk.__name__ = "polygonal.ds.IntHashTableIterator"; lk.__interfaces__ = [Lg]; lk.prototype = { mObject: null, mVals: null, mKeys: null, mI: null, mS: null, free: function () { this.mKeys = this.mVals = this.mObject = null }, reset: function () { this.mVals = this.mObject.mVals; this.mKeys = this.mObject.mKeys; this.mS = this.mObject.mH.capacity; for (this.mI = 0; this.mI < this.mS && -2147483648 == this.mKeys[this.mI];) this.mI++; return this }, hasNext: function () { return this.mI < this.mS }, next: function () { for (var a = this.mVals[this.mI]; ++this.mI < this.mS && -2147483648 == this.mKeys[this.mI];) ; return a }, remove: function () { throw I.thrown("unsupported operation"); }, __class__: lk }; var vg = function (a, b) { null == b && (b = -1); this.mTmpBufferSize = 16; this.mFree = this.mSize = 0; this.reuseIterator = !1; this.growthRate = -3; this.key = ug.next(); Ea._assert(0 < a, "slotCount > 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 156, className: "polygonal.ds.IntIntHashTable", methodName: "new" }); Ea._assert(0 < a && 0 == (a & a - 1), "slotCount is not a power of 2(MathTools.isPow2(slotCount))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 157, className: "polygonal.ds.IntIntHashTable", methodName: "new" }); -1 == b ? b = a : (Ea._assert(2 <= b, "minimum capacity is 2(initialCapacity >= 2)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 163, className: "polygonal.ds.IntIntHashTable", methodName: "new" }), Ea._assert(0 < a && 0 == (a & a - 1), "capacity is not a power of 2(MathTools.isPow2(slotCount))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 164, className: "polygonal.ds.IntIntHashTable", methodName: "new" })); this.mMinCapacity = this.capacity = b; this.slotCount = a; this.mMask = a - 1; this.mHash = Pb.init(Array(a), -1); this.mData = Array(3 * this.capacity); this.mNext = Array(this.capacity); var c = 2; a = this.mData; b = 0; for (var d = this.capacity; b < d;) b++, a[c - 1] = -2147483648, a[c] = -1, c += 3; a = this.mNext; b = 0; for (d = this.capacity - 1; b < d;) c = b++, a[c] = c + 1; a[this.capacity - 1] = -1; this.mTmpBuffer = Array(this.mTmpBufferSize) }; k["polygonal.ds.IntIntHashTable"] = vg; vg.__name__ = "polygonal.ds.IntIntHashTable"; vg.__interfaces__ = [ki]; vg.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, get_loadFactor: function () { return this.mSize / this.slotCount }, slotCount: null, mHash: null, mData: null, mNext: null, mMask: null, mFree: null, mSize: null, mMinCapacity: null, mIterator: null, mTmpBuffer: null, mTmpBufferSize: null, getCollisionCount: function () { for (var a = 0, b, c = this.mData, d = this.mHash, e = 0, f = this.slotCount; e < f;) if (b = e++, b = d[b], -1 != b) for (b = c[b + 2]; -1 != b;) b = c[b + 2], ++a; return a }, getFront: function (a) { var b = 73856093 * a & this.mMask, c = this.mHash[b]; if (-1 == c) return -2147483648; var d = this.mData; if (d[c] == a) return d[c + 1]; var e = -2147483648, f = c, h = f; for (c = d[c + 2]; -1 != c;) { if (d[c] == a) { e = d[c + 1]; d[h + 2] = d[c + 2]; d[c + 2] = f; this.mHash[b] = c; break } h = c; c = d[h + 2] } return e }, setIfAbsent: function (a, b) { Ea._assert(-2147483648 != b, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 291, className: "polygonal.ds.IntIntHashTable", methodName: "setIfAbsent" }); var c = 73856093 * a & this.mMask, d = this.mData, e = this.mHash[c]; if (-1 == e) { this.mSize == this.capacity && (this.grow(), d = this.mData); var f = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; this.mHash[c] = f; d[f] = a; d[f + 1] = b; this.mSize++; return !0 } if (d[e] == a) return !1; for (c = d[e + 2]; -1 != c;) { if (d[c] == a) { e = -1; break } e = c; c = d[e + 2] } if (-1 == e) return !1; this.mSize == this.capacity && (this.grow(), d = this.mData); f = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; d[e + 2] = f; d[f] = a; d[f + 1] = b; this.mSize++; return !0 }, rehash: function (a) { Ea._assert(0 < a && 0 == (a & a - 1), "slotCount is not a power of 2(MathTools.isPow2(slotCount))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 403, className: "polygonal.ds.IntIntHashTable", methodName: "rehash" }); if (this.slotCount == a) return this; for (var b = new vg(a, this.capacity), c = this.mData, d = 0, e = this.capacity; d < e;) { var f = d++, h = c[3 * f + 1]; if (-2147483648 != h) { var l = c[3 * f]; Ea._assert(-2147483648 != h, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1046, className: "polygonal.ds.IntIntHashTable", methodName: "set" }); b.mSize == b.capacity && b.grow(); f = b.mData; var p = b.mHash, m = 3 * b.mFree; b.mFree = b.mNext[b.mFree]; f[m] = l; f[m + 1] = h; l = 73856093 * l & b.mMask; h = p[l]; if (-1 == h) p[l] = m; else { for (p = f[h + 2]; -1 != p;) h = p, p = f[p + 2]; f[h + 2] = m } b.mSize++ } } this.mHash = b.mHash; this.mData = b.mData; this.mNext = b.mNext; this.slotCount = a; this.mMask = b.mMask; this.mFree = b.mFree; return this }, remap: function (a, b) { var c = this.mHash[73856093 * a & this.mMask]; if (-1 == c) return !1; var d = this.mData; if (d[c] == a) return d[c + 1] = b, !0; for (c = d[c + 2]; -1 != c;) { if (d[c] == a) { d[c + 1] = b; break } c = d[c + 2] } return -1 != c }, extract: function (a) { var b = 73856093 * a & this.mMask, c = this.mHash, d = c[b]; if (-1 == d) return -2147483648; var e = this.mData; if (a == e[d]) { var f = e[d + 1]; c[b] = -1 == e[d + 2] ? -1 : e[d + 2]; a = d / 3 | 0; this.mNext[a] = this.mFree; this.mFree = a; e[d + 1] = -2147483648; e[d + 2] = -1; this.mSize--; return f } b = d; d = e[d + 2]; for (f = -2147483648; -1 != d;) { if (e[d] == a) { f = e[d + 1]; break } b = d; d = e[b + 2] } return -2147483648 != f ? (e[b + 2] = e[d + 2], a = d / 3 | 0, this.mNext[a] = this.mFree, this.mFree = a, e[d + 1] = -2147483648, e[d + 2] = -1, this.mSize--, f) : -2147483648 }, toKeyArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c = this.mData, d = 0, e = this.capacity; d < e;) { var f = d++; -2147483648 != c[3 * f + 1] && (a[b++] = c[3 * f]) } return a }, toString: function () { var a = "" + z.string(gb.format("[ IntIntHashTable size=" + this.mSize + " capacity=" + this.capacity + " load=%.2f", [this.get_loadFactor()])); if (0 == this.mSize) return a + " ]"; a += "\n"; for (var b = 0, c = this.keys(); c.hasNext();) { var d = c.next(); b = Math.max(b, d) } for (d = 1; 0 != b;) ++d, b = b / 10 | 0; b = []; var e = " %- " + d + "d -> %s\n", f = []; for (c = this.keys(); c.hasNext();) d = c.next(), f.push(d); f.sort(function (a, b) { return a - b }); d = 1; var h = f.length; c = 0; for (var l = 1; d < h;) { if (f[c] == f[d]) ++l; else { c = f[c]; b[0] = c; if (1 < l) l = [], this.getAll(c, l), b[1] = l.join(","); else { l = this.mHash[73856093 * c & this.mMask]; if (-1 == l) c = -2147483648; else { var p = this.mData; if (p[l] == c) c = p[l + 1]; else { var m = -2147483648; for (l = p[l + 2]; -1 != l;) { if (p[l] == c) { m = p[l + 1]; break } l = p[l + 2] } c = m } } b[1] = c } a += z.string(gb.format(e, b)); c = d; l = 1 } ++d } c = f[c]; b[0] = c; if (1 < l) l = [], this.getAll(c, l), b[1] = l.join(","); else { d = this.mHash[73856093 * c & this.mMask]; if (-1 == d) l = -2147483648; else if (p = this.mData, p[d] == c) l = p[d + 1]; else { m = -2147483648; for (d = p[d + 2]; -1 != d;) { if (p[d] == c) { m = p[d + 1]; break } d = p[d + 2] } l = m } b[1] = l } a += z.string(gb.format(e, b)); return a + "]" }, has: function (a) { Ea._assert(-2147483648 != a, "val 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 697, className: "polygonal.ds.IntIntHashTable", methodName: "has" }); for (var b = !1, c = this.mData, d = 0, e = this.capacity; d < e;) { var f = d++; if (c[3 * f + 1] == a) { b = !0; break } } return b }, hasKey: function (a) { var b = this.mHash[73856093 * a & this.mMask]; if (-1 == b) return !1; var c = this.mData; if (c[b] == a) return !0; var d = !1; for (b = c[b + 2]; -1 != b;) { if (c[b] == a) { d = !0; break } b = c[b + 2] } return d }, count: function (a) { var b = 0, c = this.mHash[73856093 * a & this.mMask]; if (-1 != c) for (var d = this.mData; -1 != c;) d[c] == a && ++b, c = d[c + 2]; return b }, get: function (a) { var b = this.mHash[73856093 * a & this.mMask]; if (-1 == b) return -2147483648; var c = this.mData; if (c[b] == a) return c[b + 1]; var d = -2147483648; for (b = c[b + 2]; -1 != b;) { if (c[b] == a) { d = c[b + 1]; break } b = c[b + 2] } return d }, getAll: function (a, b) { var c = this.mHash[73856093 * a & this.mMask]; if (-1 == c) return 0; var d = 0, e = this.mData; e[c] == a && (b[d++] = e[c + 1]); for (c = e[c + 2]; -1 != c;) e[c] == a && (b[d++] = e[c + 1]), c = e[c + 2]; return d }, hasPair: function (a, b) { Ea._assert(-2147483648 != b, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 891, className: "polygonal.ds.IntIntHashTable", methodName: "hasPair" }); var c = this.mHash[73856093 * a & this.mMask]; if (-1 != c) { var d = this.mData; if (d[c] == a && d[c + 1] == b) return !0; for (c = d[c + 2]; -1 != c;) { if (d[c] == a && d[c + 1] == b) return !0; c = d[c + 2] } } return !1 }, unsetPair: function (a, b) { Ea._assert(-2147483648 != b, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 939, className: "polygonal.ds.IntIntHashTable", methodName: "unsetPair" }); var c = 73856093 * a & this.mMask, d = this.mHash, e = d[c]; if (-1 == e) return !1; var f = this.mData; if (a == f[e] && b == f[e + 1]) return d[c] = -1 == f[e + 2] ? -1 : f[e + 2], a = e / 3 | 0, this.mNext[a] = this.mFree, this.mFree = a, f[e + 1] = -2147483648, f[e + 2] = -1, this.mSize--, !0; c = !1; d = e; for (e = f[e + 2]; -1 != e;) { if (f[e] == a && f[e + 1] == b) { c = !0; break } d = e; e = f[d + 2] } return c ? (f[d + 2] = f[e + 2], a = e / 3 | 0, this.mNext[a] = this.mFree, this.mFree = a, f[e + 1] = -2147483648, f[e + 2] = -1, --this.mSize, !0) : !1 }, set: function (a, b) { Ea._assert(-2147483648 != b, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1046, className: "polygonal.ds.IntIntHashTable", methodName: "set" }); this.mSize == this.capacity && this.grow(); var c = this.mData, d = this.mHash, e = 3 * this.mFree; this.mFree = this.mNext[this.mFree]; c[e] = a; c[e + 1] = b; var f = 73856093 * a & this.mMask; b = d[f]; if (-1 == b) return d[f] = e, this.mSize++, !0; d = c[b] != a; for (f = c[b + 2]; -1 != f;) c[f] == a && (d = !1), b = f, f = c[f + 2]; c[b + 2] = e; this.mSize++; return d }, unset: function (a) { var b = 73856093 * a & this.mMask, c = this.mHash, d = c[b]; if (-1 == d) return !1; var e = this.mData; if (a == e[d]) return c[b] = -1 == e[d + 2] ? -1 : e[d + 2], a = d / 3 | 0, this.mNext[a] = this.mFree, this.mFree = a, e[d + 1] = -2147483648, e[d + 2] = -1, this.mSize--, !0; b = !1; c = d; for (d = e[d + 2]; -1 != d;) { if (e[d] == a) { b = !0; break } c = d; d = e[c + 2] } return b ? (e[c + 2] = e[d + 2], a = d / 3 | 0, this.mNext[a] = this.mFree, this.mFree = a, e[d + 1] = -2147483648, e[d + 2] = -1, this.mSize--, !0) : !1 }, toValSet: function () { for (var a = new Mg(this.capacity), b = this.mData, c = 0, d = this.capacity; c < d;) { var e = c++; e = b[3 * e + 1]; if (-2147483648 != e) { Ea._assert(-2147483648 != e, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 521, className: "polygonal.ds.IntHashSet", methodName: "set" }); var f = 73856093 * e & a.mMask, h = a.mData, l = a.mHash[f]; if (-1 == l) a.mSize == a.capacity && (a.grow(), h = a.mData), l = a.mFree << 1, a.mFree = a.mNext[a.mFree], a.mHash[f] = l, h[l] = e, a.mSize++; else if (h[l] != e) { for (f = h[l + 1]; -1 != f;) { if (h[f] == e) { l = -1; break } l = f; f = h[f + 1] } -1 != l && (a.mSize == a.capacity && (a.grow(), h = a.mData), f = a.mFree << 1, a.mFree = a.mNext[a.mFree], h[f] = e, h[l + 1] = f, a.mSize++) } } } return a }, toKeySet: function () { for (var a = new Mg(this.capacity), b = this.mData, c = 0, d = this.capacity; c < d;) { var e = c++; if (-2147483648 != b[3 * e + 1]) { e = b[3 * e]; Ea._assert(-2147483648 != e, "value 0x80000000 is reserved(val != VAL_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntHashSet.hx", lineNumber: 521, className: "polygonal.ds.IntHashSet", methodName: "set" }); var f = 73856093 * e & a.mMask, h = a.mData, l = a.mHash[f]; if (-1 == l) a.mSize == a.capacity && (a.grow(), h = a.mData), l = a.mFree << 1, a.mFree = a.mNext[a.mFree], a.mHash[f] = l, h[l] = e, a.mSize++; else if (h[l] != e) { for (f = h[l + 1]; -1 != f;) { if (h[f] == e) { l = -1; break } l = f; f = h[f + 1] } -1 != l && (a.mSize == a.capacity && (a.grow(), h = a.mData), f = a.mFree << 1, a.mFree = a.mNext[a.mFree], h[f] = e, h[l + 1] = f, a.mSize++) } } } return a }, keys: function () { return new wn(this) }, pack: function () { if (this.capacity == this.mMinCapacity) return this; var a = this.mSize, b = this.mMinCapacity; this.capacity = a > b ? a : b; var c = this.mData, d = 0, e = this.mHash, f = Array(3 * this.capacity), h = 2; a = 0; for (b = this.capacity; a < b;) a++, f[h - 1] = -2147483648, f[h] = -1, h += 3; a = 0; for (b = this.slotCount; a < b;) { var l = a++; h = e[l]; if (-1 != h) for (e[l] = d, f[d] = c[h], f[d + 1] = c[h + 1], f[d + 2] = -1, d += 3, h = c[h + 2]; -1 != h;) f[d - 1] = d, f[d] = c[h], f[d + 1] = c[h + 1], f[d + 2] = -1, d += 3, h = c[h + 2] } this.mData = f; c = this.mNext = Array(this.capacity); a = 0; for (b = this.capacity - 1; a < b;) l = a++, c[l] = l + 1; this.mFree = c[this.capacity - 1] = -1; return this }, iter: function (a) { Ea._assert(null != a, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1360, className: "polygonal.ds.IntIntHashTable", methodName: "iter" }); for (var b = this.mData, c, d, e = 0, f = this.capacity; e < f;) c = 3 * e++, d = b[c + 1], -2147483648 != d && a(b[c], d); return this }, hashCode: function (a) { return 73856093 * a & this.mMask }, grow: function () { var a = this.capacity; this.capacity = Kg.compute(this.growthRate, this.capacity); var b = Array(this.capacity); Pb.blit(this.mNext, 0, b, 0, a); this.mNext = b; b = Array(3 * this.capacity); Pb.blit(this.mData, 0, b, 0, 3 * a); this.mData = b; b = this.mNext; for (var c = a - 1, d = this.capacity - 1; c < d;) { var e = c++; b[e] = e + 1 } b[this.capacity - 1] = -1; this.mFree = a; e = 3 * a + 2; b = this.mData; c = 0; for (d = this.capacity - a; c < d;) c++, b[e - 1] = -2147483648, b[e] = -1, e += 3 }, get_size: function () { return this.mSize }, free: function () { this.mNext = this.mData = this.mHash = null; null != this.mIterator && (this.mIterator.free(), this.mIterator = null); this.mTmpBuffer = null }, contains: function (a) { return this.has(a) }, remove: function (a) { Ea._assert(-2147483648 != a, "val 0x80000000 is reserved(val != KEY_ABSENT)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/IntIntHashTable.hx", lineNumber: 1465, className: "polygonal.ds.IntIntHashTable", methodName: "remove" }); for (var b = 0, c = this.mTmpBuffer, d = this.mTmpBufferSize, e = this.mData, f, h = 0, l = this.capacity; h < l;) f = h++, f *= 3, e[f + 1] == a && (b == d && (this.mTmpBufferSize = d <<= 1, c = Array(d), Pb.blit(this.mTmpBuffer, 0, c, 0, b), this.mTmpBuffer = c), c[b++] = e[f]); h = 0; for (l = b; h < l;) { f = h++; d = c[f]; f = 73856093 * d & this.mMask; var p = this.mHash; a = p[f]; if (-1 != a) if (e = this.mData, d == e[a]) p[f] = -1 == e[a + 2] ? -1 : e[a + 2], f = a / 3 | 0, this.mNext[f] = this.mFree, this.mFree = f, e[a + 1] = -2147483648, e[a + 2] = -1, this.mSize--; else { f = !1; p = a; for (a = e[a + 2]; -1 != a;) { if (e[a] == d) { f = !0; break } p = a; a = e[p + 2] } f && (e[p + 2] = e[a + 2], d = a / 3 | 0, this.mNext[d] = this.mFree, this.mFree = d, e[a + 1] = -2147483648, e[a + 2] = -1, this.mSize--) } } return 0 < b }, clear: function (a) { var b = this.mHash; a = 0; for (var c = this.slotCount; a < c;) { var d = a++; b[d] = -1 } d = 2; b = this.mData; a = 0; for (c = this.capacity; a < c;) a++, b[d - 1] = -2147483648, b[d] = -1, d += 3; b = this.mNext; a = 0; for (c = this.capacity - 1; a < c;) d = a++, b[d] = d + 1; b[this.capacity - 1] = -1; this.mSize = this.mFree = 0 }, iterator: function () { return this.reuseIterator ? (null == this.mIterator ? this.mIterator = new mk(this) : this.mIterator.reset(), this.mIterator) : new mk(this) }, isEmpty: function () { return 0 == this.mSize }, toArray: function () { if (0 == this.mSize) return []; var a = this.mSize; Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); a = Array(a); for (var b = 0, c, d = this.mData, e = 0, f = this.capacity; e < f;) c = e++, c = d[3 * c + 1], -2147483648 != c && (a[b++] = c); return a }, clone: function (a, b) { a = new vg(this.slotCount, this.capacity); Pb.blit(this.mHash, 0, a.mHash, 0, this.slotCount); Pb.blit(this.mData, 0, a.mData, 0, 3 * this.capacity); Pb.blit(this.mNext, 0, a.mNext, 0, this.capacity); a.mMask = this.mMask; a.slotCount = this.slotCount; a.capacity = this.capacity; a.mFree = this.mFree; a.mSize = this.mSize; return a }, __class__: vg, __properties__: {get_size: "get_size", get_loadFactor: "get_loadFactor"} }; var mk = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan() }; k["polygonal.ds.IntIntHashTableValIterator"] = mk; mk.__name__ = "polygonal.ds.IntIntHashTableValIterator"; mk.__interfaces__ = [Lg]; mk.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this }, hasNext: function () { return this.mI < this.mS }, next: function () { var a = this.mData[3 * this.mI++ + 1]; this.scan(); return a }, remove: function () { throw I.thrown("unsupported operation"); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[3 * this.mI + 1];) this.mI++ }, __class__: mk }; var wn = function (a) { this.mObject = a; this.mData = a.mData; this.mI = 0; this.mS = a.capacity; this.scan() }; k["polygonal.ds.IntIntHashTableKeyIterator"] = wn; wn.__name__ = "polygonal.ds.IntIntHashTableKeyIterator"; wn.__interfaces__ = [Lg]; wn.prototype = { mObject: null, mI: null, mS: null, mData: null, free: function () { this.mData = this.mObject = null }, reset: function () { this.mData = this.mObject.mData; this.mI = 0; this.mS = this.mObject.capacity; this.scan(); return this }, hasNext: function () { return this.mI < this.mS }, next: function () { var a = this.mData[3 * this.mI++]; this.scan(); return a }, remove: function () { throw I.thrown("unsupported operation"); }, scan: function () { for (; this.mI < this.mS && -2147483648 == this.mData[3 * this.mI + 1];) this.mI++ }, __class__: wn }; var li = function (a, b) { null == a && (a = 16); this.mIterator = null; this.mSize = 0; this.reuseIterator = !1; this.growthRate = -2; this.key = ug.next(); this.capacity = this.mInitialCapacity = 1 > a ? 1 : a; null != b && (this.capacity = b.length); this.mData = Array(this.capacity); if (null != b) for (a = 0; a < b.length;) { var c = b[a]; ++a; this.set(c) } }; k["polygonal.ds.ListSet"] = li; li.__name__ = "polygonal.ds.ListSet"; li.__interfaces__ = [ij]; li.prototype = { key: null, capacity: null, growthRate: null, reuseIterator: null, mData: null, mInitialCapacity: null, mSize: null, mIterator: null, reserve: function (a) { a > this.capacity && (this.capacity = a, this.resizeContainer(a)); return this }, pack: function () { if (this.capacity > this.mInitialCapacity) { var a = this.mInitialCapacity, b = this.mSize; this.capacity = a > b ? a : b; this.resizeContainer(this.capacity) } else { a = this.mData; b = this.mSize; for (var c = this.capacity; b < c;) { var d = b++; a[d] = null } } return this }, iter: function (a) { Ea._assert(null != a, "f != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx", lineNumber: 136, className: "polygonal.ds.ListSet", methodName: "iter" }); for (var b = this.mData, c = 0, d = this.mSize; c < d;) { var e = c++; a(b[e]) } return this }, toString: function () { var a = "" + z.string("[ ListSet size=" + this.mSize); if (this.isEmpty()) return a + " ]"; a += "\n"; for (var b = 0, c = this.mSize; b < c;) { var d = b++; a += " "; a += z.string(z.string(this.mData[d])); a += "\n" } return a + "]" }, has: function (a) { if (this.isEmpty()) return !1; for (var b = this.mData, c = 0, d = this.mSize; c < d;) { var e = c++; if (b[e] == a) return !0 } return !1 }, set: function (a) { for (var b = this.mData, c = 0, d = this.mSize; c < d;) { var e = c++; if (b[e] == a) return !1 } this.mSize == this.capacity && (this.grow(), b = this.mData); b[this.mSize++] = a; return !0 }, unset: function (a) { return this.remove(a) }, merge: function (a, b, c) { if (b) for (a = a.iterator(); a.hasNext();) b = a.next(), this.set(b); else if (null != c) for (a = a.iterator(); a.hasNext();) b = a.next(), this.set(c(b)); else for (a = a.iterator(); a.hasNext();) b = a.next(), Ea._assert(w.__implements(b, tg), "element is not of type Cloneable(Std.isOfType(val, Cloneable))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx", lineNumber: 230, className: "polygonal.ds.ListSet", methodName: "merge" }), this.set(w.__cast(b, tg).clone()) }, get_size: function () { return this.mSize }, free: function () { Pb.nullify(this.mData); this.mData = null; null != this.mIterator && (this.mIterator.free(), this.mIterator = null) }, contains: function (a) { return this.has(a) }, remove: function (a) { for (var b = this.mData, c = 0, d = this.mSize; c < d;) { var e = c++; if (b[e] == a) return b[e] = this.mData[--this.mSize], !0 } return !1 }, clear: function (a) { null == a && (a = !1); a && Pb.nullify(this.mData); this.mSize = 0 }, iterator: function () { if (this.reuseIterator) { if (null == this.mIterator) this.mIterator = new nk(this); else { var a = this.mIterator; a.mData = a.mObject.mData; a.mS = a.mObject.mSize; a.mI = 0 } return this.mIterator } return new nk(this) }, isEmpty: function () { return 0 == this.mSize }, toArray: function () { return Pb.toArray(this.mData, 0, this.mSize, []) }, clone: function (a, b) { null == a && (a = !0); var c = new li; c.capacity = this.mSize; c.mSize = this.mSize; c.mData = Array(this.mSize); var d = this.mData, e = c.mData; if (a) Pb.blit(d, 0, e, 0, this.mSize); else if (null == b) { a = 0; for (var f = this.mSize; a < f;) { var h = a++; Ea._assert(w.__implements(d[h], tg), "element is not of type Cloneable(Std.isOfType(src.get(i), Cloneable))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx", lineNumber: 359, className: "polygonal.ds.ListSet", methodName: "clone" }); e[h] = w.__cast(d[h], tg).clone() } } else for (a = 0, f = this.mSize; a < f;) h = a++, e[h] = b(d[h]); return c }, grow: function () { this.capacity = Kg.compute(this.growthRate, this.capacity); this.resizeContainer(this.capacity) }, resizeContainer: function (a) { a = Array(a); Pb.blit(this.mData, 0, a, 0, this.mSize); this.mData = a }, __class__: li, __properties__: {get_size: "get_size"} }; var nk = function (a) { this.mObject = a; this.mData = this.mObject.mData; this.mS = this.mObject.mSize; this.mI = 0 }; k["polygonal.ds.ListSetIterator"] = nk; nk.__name__ = "polygonal.ds.ListSetIterator"; nk.__interfaces__ = [Lg]; nk.prototype = { mObject: null, mData: null, mI: null, mS: null, free: function () { this.mData = this.mObject = null }, reset: function () { this.mData = this.mObject.mData; this.mS = this.mObject.mSize; this.mI = 0; return this }, hasNext: function () { return this.mI < this.mS }, next: function () { return this.mData[this.mI++] }, remove: function () { Ea._assert(0 < this.mI, "call next() before removing an element(mI > 0)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/ListSet.hx", lineNumber: 430, className: "polygonal.ds.ListSetIterator", methodName: "remove" }); this.mData[this.mI] = this.mData[--this.mS] }, __class__: nk }; var gb = function () { }; k["polygonal.ds.Printf"] = gb; gb.__name__ = "polygonal.ds.Printf"; gb.init = function () { var a = Array(40); gb._padChars = a; gb._padChars[0] = T.rpad("", "0", 0); gb._padChars[1] = T.rpad("", "0", 1); gb._padChars[2] = T.rpad("", "0", 2); gb._padChars[3] = T.rpad("", "0", 3); gb._padChars[4] = T.rpad("", "0", 4); gb._padChars[5] = T.rpad("", "0", 5); gb._padChars[6] = T.rpad("", "0", 6); gb._padChars[7] = T.rpad("", "0", 7); gb._padChars[8] = T.rpad("", "0", 8); gb._padChars[9] = T.rpad("", "0", 9); gb._padChars[10] = T.rpad("", "0", 10); gb._padChars[11] = T.rpad("", "0", 11); gb._padChars[12] = T.rpad("", "0", 12); gb._padChars[13] = T.rpad("", "0", 13); gb._padChars[14] = T.rpad("", "0", 14); gb._padChars[15] = T.rpad("", "0", 15); gb._padChars[16] = T.rpad("", "0", 16); gb._padChars[17] = T.rpad("", "0", 17); gb._padChars[18] = T.rpad("", "0", 18); gb._padChars[19] = T.rpad("", "0", 19); for (a = 0; 20 > a;) { var b = a++; gb._padChars[b + 20] = T.rpad("", " ", b) } a = Array(64); gb._tmp = a }; gb.format = function (a, b) { gb._initialized || (gb._initialized = !0, gb.init()); var c = new Sa, d = 0, e = [], f = 0; for (a = gb.tokenize(a, e); f < a;) { var h = f++, l = e[h]; switch (l._hx_index) { case 0: h = l.string; c.b += null == h ? "null" : "" + h; break; case 1: h = l.type; l = l.args; if (null == l.width) { if (!w.__instanceof(b[d], Ia)) throw I.thrown(new jh("invalid 'width' argument")); l.width = b[d++] } if (null == l.precision) { if (!w.__instanceof(b[d], Ia)) throw I.thrown(new jh("invalid 'precision' argument")); l.precision = b[d++] } if (-1 < l.pos) { if (l.pos > b.length - 1) throw I.thrown(new jh("argument index out of range")); var p = b[l.pos] } else p = b[d++]; null == p && (p = "null"); switch (h._hx_index) { case 0: switch (h.type._hx_index) { case 0: gb.formatCharacter(p, l, c); break; case 1: gb.formatSignedDecimal(p, l, c); break; case 2: gb.formatUnsignedDecimal(p, l, c); break; case 3: gb.formatOctal(p, l, c); break; case 4: gb.formatHexadecimal(p, l, c); break; case 5: gb.formatBinary(p, l, c) } break; case 1: switch (h.floatType._hx_index) { case 0: gb.formatFloat(p, l, c); break; case 1: gb.formatScientific(p, l, c); break; case 2: gb.formatNaturalFloat(p, l, c) } break; case 2: gb.formatString(p, l, c); break; case 3: throw I.thrown(new jh("specifier 'p' is not supported")); case 4: throw I.thrown(new jh("specifier 'n' is not supported")); } break; case 2: h = l.name; if (!Object.prototype.hasOwnProperty.call(b[0], h)) throw I.thrown(new jh('no field named "' + h + '" found')); c.b += z.string(z.string(V.field(b[0], h))); ++d; break; case 3: throw I.thrown(new jh("Invalid format specifier.")); } } return c.b }; gb.tokenize = function (a, b) { for (var c = 0, d, e = 0, f = new Sa, h = a.length; c < h;) if (d = a.charCodeAt(c++), 37 == d) if (d = a.charCodeAt(c++), 37 == d) f.b += String.fromCodePoint(d); else { 0 < f.b.length && (b[e++] = Ng.Raw(f.b), f = new Sa); if (40 == d) if (d = a.indexOf(")", c), -1 == d) d = Ng.Unknown("named parameter", c); else { var l = K.substr(a, c, d - c); c = d + 1; d = Ng.Property(l) } else { l = 0; null == l && (l = 0); l = new kp(l, -1, -1, -1); a:for (; 32 <= d && 48 >= d;) switch (d) { case 32: d = a.charCodeAt(c++); l.flags |= 1 << Za.Space._hx_index; break; case 35: d = a.charCodeAt(c++); l.flags |= 1 << Za.Sharp._hx_index; break; case 43: d = a.charCodeAt(c++); l.flags |= 1 << Za.Plus._hx_index; break; case 45: d = a.charCodeAt(c++); l.flags |= 1 << Za.Minus._hx_index; break; case 48: d = a.charCodeAt(c++); l.flags |= 1 << Za.Zero._hx_index; break; default: break a } 0 != (l.flags & 1 << Za.Minus._hx_index) && 0 != (l.flags & 1 << Za.Zero._hx_index) && (l.flags &= -1 - (1 << Za.Zero._hx_index)); 0 != (l.flags & 1 << Za.Space._hx_index) && 0 != (l.flags & 1 << Za.Plus._hx_index) && (l.flags &= -1 - (1 << Za.Space._hx_index)); if (42 == d) l.width = null, d = a.charCodeAt(c++); else if (48 <= d && 57 >= d) { for (var p = 0; 48 <= d && 57 >= d;) p = d - 48 + 10 * p, d = a.charCodeAt(c++); l.width = p; if (36 == d) if (l.pos = p - 1, l.width = -1, d = a.charCodeAt(c++), 42 == d) l.width = null, d = a.charCodeAt(c++); else if (48 <= d && 57 >= d) { for (p = 0; 48 <= d && 57 >= d;) p = d - 48 + 10 * p, d = a.charCodeAt(c++); l.width = p } } if (46 == d) if (d = a.charCodeAt(c++), 42 == d) l.precision = null, d = a.charCodeAt(c++); else { p = 0; if (48 <= d && 57 >= d) for (; 48 <= d && 57 >= d;) p = d - 48 + 10 * p, d = a.charCodeAt(c++); l.precision = p } a:for (; 76 <= d && 108 >= d;) switch (d) { case 76: d = a.charCodeAt(c++); l.flags |= 1 << Za.LengthUpperCaseL._hx_index; break; case 104: d = a.charCodeAt(c++); l.flags |= 1 << Za.LengthH._hx_index; break; case 108: d = a.charCodeAt(c++); l.flags |= 1 << Za.LengthLowerCaseL._hx_index; break; default: break a } if (69 <= d && 120 >= d) { switch (d) { case 69: l.flags |= 1 << Za.UpperCase._hx_index; p = we.FmtFloat(mi.FScientific); break; case 71: l.flags |= 1 << Za.UpperCase._hx_index; p = we.FmtFloat(mi.FNatural); break; case 88: l.flags |= 1 << Za.UpperCase._hx_index; p = we.FmtInt(Ef.IHex); break; case 98: p = we.FmtInt(Ef.IBin); break; case 99: p = we.FmtInt(Ef.ICharacter); break; case 100: p = we.FmtInt(Ef.ISignedDecimal); break; case 101: p = we.FmtFloat(mi.FScientific); break; case 102: p = we.FmtFloat(mi.FNormal); break; case 103: p = we.FmtFloat(mi.FNatural); break; case 105: p = we.FmtInt(Ef.ISignedDecimal); break; case 110: p = we.FmtNothing; break; case 111: p = we.FmtInt(Ef.IOctal); break; case 112: p = we.FmtPointer; break; case 115: p = we.FmtString; break; case 117: p = we.FmtInt(Ef.IUnsignedDecimal); break; case 120: p = we.FmtInt(Ef.IHex); break; default: p = null } d = null == p ? Ng.Unknown(String.fromCodePoint(d), c) : Ng.Tag(p, l) } else d = Ng.Unknown(String.fromCodePoint(d), c) } b[e++] = d } else f.b += String.fromCodePoint(d); 0 < f.b.length && (b[e++] = Ng.Raw(f.b)); return e }; gb.formatBinary = function (a, b, c) { var d = b.flags, e = b.precision; b = b.width; 0 != (d & 1 << Za.LengthH._hx_index) && (a &= 65535); if (0 == a) { if (0 == e) return; d &= -1 - (1 << Za.Sharp._hx_index) } -1 == e && (e = 1); for (var f = gb._tmp, h = 0; f[h++] = a & 1, a >>>= 1, 0 < a;) ; a = h; if (0 != (d & 1 << Za.Minus._hx_index)) { 0 != (d & 1 << Za.Sharp._hx_index) && (c.b += "0b"); if (e > h) for (var l = 0, p = e - h; l < p;) l++, c.b += "0"; for (; -1 < --a;) c.b += String.fromCodePoint(48 + f[a]); 0 != (d & 1 << Za.Sharp._hx_index) && (b -= 2); e > h && (h = e); if (b > h) for (l = 0, p = b - h; l < p;) l++, c.b += " " } else { p = h; e > p && (p = e); 0 != (d & 1 << Za.Sharp._hx_index) && (b -= 2); if (b > p) if (0 != (d & 1 << Za.Zero._hx_index) && 1 == e) for (l = 0, p = b - p; l < p;) l++, c.b += "0"; else for (l = 0, p = b - p; l < p;) l++, c.b += " "; 0 != (d & 1 << Za.Sharp._hx_index) && (c.b += "0b"); if (e > h) for (l = 0, p = e - h; l < p;) l++, c.b += "0"; for (; -1 < --a;) c.b += String.fromCodePoint(48 + f[a]) } }; gb.formatOctal = function (a, b, c) { var d = b.flags, e = b.precision; b = b.width; 0 != (d & 1 << Za.LengthH._hx_index) && (a &= 65535); if (0 == a) { if (0 == e) { c.b += z.string(0 != (d & 1 << Za.Sharp._hx_index) ? "0" : ""); return } d &= -1 - (1 << Za.Sharp._hx_index) } for (var f = gb._tmp, h = 0; f[h++] = a & 7, a >>>= 3, 0 < a;) ; a = h; -1 != e ? 0 != (d & 1 << Za.Zero._hx_index) && (d &= -1 - (1 << Za.Zero._hx_index), d |= 1 << Za.Space._hx_index) : e = 1; if (0 != (d & 1 << Za.Minus._hx_index)) { 0 != (d & 1 << Za.Sharp._hx_index) && (c.b += "0", ++h); if (e > h) for (var l = 0, p = e - h; l < p;) l++, c.b += "0"; for (; -1 < --a;) d = String.fromCodePoint(48 + f[a]), c.b += z.string(d); e > h && (h = e); if (b > h) for (l = 0, p = b - h; l < p;) l++, c.b += " " } else { 0 != (d & 1 << Za.Sharp._hx_index) && ++h; p = h; e > p && (p = e); if (b > p) if (0 != (d & 1 << Za.Zero._hx_index)) for (l = 0, p = b - p; l < p;) l++, c.b += "0"; else for (l = 0, p = b - p; l < p;) l++, c.b += " "; 0 != (d & 1 << Za.Sharp._hx_index) && (c.b += "0"); if (e > h) for (l = 0, p = e - h; l < p;) l++, c.b += "0"; for (; -1 < --a;) d = String.fromCodePoint(48 + f[a]), c.b += z.string(d) } }; gb.formatHexadecimal = function (a, b, c) { var d = b.flags, e = b.precision; b = b.width; 0 != (d & 1 << Za.LengthH._hx_index) && (a &= 65535); if (0 == a) { if (0 == e) return; d &= -1 - (1 << Za.Sharp._hx_index) } -1 == e && (e = 1); for (var f = gb._tmp, h = 0; f[h++] = a & 15, a >>>= 4, 0 < a;) ; a = h; if (0 != (d & 1 << Za.Minus._hx_index)) { 0 != (d & 1 << Za.Sharp._hx_index) && (c.b = 0 != (d & 1 << Za.UpperCase._hx_index) ? c.b + "0X" : c.b + "0x"); if (e > h) for (var l = 0, p = e - h; l < p;) l++, c.b += "0"; for (l = 0 != (d & 1 << Za.UpperCase._hx_index) ? 65 : 97; -1 < --a;) p = f[a], 10 > p ? (p = String.fromCodePoint(48 + p), c.b += z.string(p)) : (p = String.fromCodePoint(l + (p - 10)), c.b += z.string(p)); 0 != (d & 1 << Za.Sharp._hx_index) && (b -= 2); e > h && (h = e); if (b > h) for (l = 0, p = b - h; l < p;) l++, c.b += " " } else { p = h; e > p && (p = e); 0 != (d & 1 << Za.Sharp._hx_index) && (b -= 2); if (b > p) if (0 != (d & 1 << Za.Zero._hx_index) && 1 == e) for (l = 0, p = b - p; l < p;) l++, c.b += "0"; else for (l = 0, p = b - p; l < p;) l++, c.b += " "; 0 != (d & 1 << Za.Sharp._hx_index) && (c.b = 0 != (d & 1 << Za.UpperCase._hx_index) ? c.b + "0X" : c.b + "0x"); if (e > h) for (l = 0, p = e - h; l < p;) l++, c.b += "0"; for (l = 0 != (d & 1 << Za.UpperCase._hx_index) ? 65 : 97; -1 < --a;) p = f[a], 10 > p ? (p = String.fromCodePoint(48 + p), c.b += z.string(p)) : (p = String.fromCodePoint(l + (p - 10)), c.b += z.string(p)) } }; gb.formatSignedDecimal = function (a, b, c) { var d = b.flags, e = b.precision; b = b.width; if (0 != e || 0 != a) { 0 != (d & 1 << Za.LengthH._hx_index) && (a &= 65535); var f = z.string(0 > a ? -a : a), h = f.length; a = 0 > a ? "-" : 0 != (d & 1 << Za.Plus._hx_index) ? "+" : 0 != (d & 1 << Za.Space._hx_index) ? " " : null; var l = null != a; if (0 != (d & 1 << Za.Minus._hx_index)) { l && (c.b += null == a ? "null" : "" + a); if (e > h) for (var p = 0, m = e - h; p < m;) p++, c.b += "0"; c.b += z.string(f); e > h && (h = e); h += l ? 1 : 0; if (b > h) for (p = 0, m = b - h; p < m;) p++, c.b += " " } else { m = h + (l ? 1 : 0); e > m && (m = e); if (b > m) if (0 != (d & 1 << Za.Zero._hx_index)) for (l && (c.b += null == a ? "null" : "" + a), p = 0, m = b - m; p < m;) p++, c.b += "0"; else for (p = 0, m = b - m; p < m;) p++, c.b += " "; l && 0 == (d & 1 << Za.Zero._hx_index) && (c.b += null == a ? "null" : "" + a); if (e > h) for (p = 0, m = e - h; p < m;) p++, c.b += "0"; c.b += z.string(f) } } }; gb.formatUnsignedDecimal = function (a, b, c) { if (0 <= a) gb.formatSignedDecimal(a, b, c); else { a = new db(0, a); a = es.toString(a); var d = a.length, e = b.flags, f = b.precision; b = b.width; if (0 != (e & 1 << Za.Minus._hx_index)) { if (f > d) { e = 0; for (var h = f - d; e < h;) e++, c.b += "0" } c.b += null == a ? "null" : "" + a; f > d && (d = f); if (b > d) for (e = 0, h = b - d; e < h;) e++, c.b += " " } else { h = d; f > h && (h = f); if (b > h) if (0 != (e & 1 << Za.Zero._hx_index)) for (e = 0, h = b - h; e < h;) e++, c.b += "0"; else for (e = 0, h = b - h; e < h;) e++, c.b += " "; if (f > d) for (e = 0, h = f - d; e < h;) e++, c.b += "0"; c.b += null == a ? "null" : "" + a } } }; gb.formatNaturalFloat = function (a, b, c) { var d = new Sa; gb.formatFloat(a, b, d); var e = d.b; d = new Sa; gb.formatScientific(a, b, d); a = d.b; e = e.length <= a.length ? e : a; c.b += null == e ? "null" : "" + e }; gb.formatScientific = function (a, b, c) { var d = b.flags, e = b.precision; -1 == e && (e = gb.DEFAULT_PRECISION); var f, h = ""; if (0 == a) { var l = f = 0; h += "0"; if (0 < e) { h += "."; for (var p = 0, m = e; p < m;) p++, h += "0" } } else p = Math, f = 0 < a ? 1 : 0 > a ? -1 : 0, a = p.abs(a), l = p.floor(Math.log(a) / 2.302585092994046), a /= p.pow(10, l), p = p.pow(.1, e), a = Math.round(a / p) * p; 0 != a && (h += K.substr(null == a ? "null" : "" + a, 0, e + 2)); h += 0 != (d & 1 << Za.UpperCase._hx_index) ? "E" : "e"; h += 0 <= l ? "+" : "-"; a = z.string(0 > l ? -l : l); m = gb.DEFAULT_NUM_EXP_DIGITS - a.length; if (1 > m) p = a; else { if (30 < m) for (e = l = "0", p = 0, --m; p < m;) p++, e += l; else e = gb._padChars[m]; p = e + a } h += p; (a = -1 == f || 0 != (d & 1 << Za.Plus._hx_index) || 0 != (d & 1 << Za.Space._hx_index)) && 0 == (d & 1 << Za.Zero._hx_index) && (h = (-1 == f ? "-" : 0 != (d & 1 << Za.Plus._hx_index) ? "+" : " ") + h); if (0 < b.width && (p = b.width, a && 0 != (d & 1 << Za.Zero._hx_index) && --p, b = 0 != (d & 1 << Za.Zero._hx_index) ? 0 : 20, m = p - h.length, 1 <= m)) { if (30 < m) for (e = l = 0 == b ? "0" : " ", p = 0, --m; p < m;) p++, e += l; else e = gb._padChars[b + m]; h = e + h } a && 0 != (d & 1 << Za.Zero._hx_index) && (h = (-1 == f ? "-" : 0 != (d & 1 << Za.Plus._hx_index) ? "+" : " ") + h); c.b += null == h ? "null" : "" + h }; gb.formatFloat = function (a, b, c) { var d = b.flags, e = b.precision; -1 == e && (e = gb.DEFAULT_PRECISION); b = b.width; var f = 0 > a; 0 == e ? (a = z.string(Math.round(a)), 0 != (d & 1 << Za.Sharp._hx_index) && (a += ".")) : a = a.toFixed(e); var h = a.length; f && -1 < a.indexOf("-") && (a = K.substr(a, 1, null)); e = null; 0 == (d & 1 << Za.Plus._hx_index) || f ? 0 != (d & 1 << Za.Space._hx_index) ? (e = " ", ++h) : f && (e = "-") : (e = "+", ++h); f = null != e; if (0 != (d & 1 << Za.Minus._hx_index)) { if (f && (c.b += null == e ? "null" : "" + e), c.b += null == a ? "null" : "" + a, b > h) for (d = 0, b -= h; d < b;) d++, c.b += " " } else { if (b > h) if (0 != (d & 1 << Za.Zero._hx_index)) for (f && (c.b += null == e ? "null" : "" + e, f = !1), d = 0, b -= h; d < b;) d++, c.b += "0"; else for (d = 0, b -= h; d < b;) d++, c.b += " "; f && (c.b += null == e ? "null" : "" + e); c.b += null == a ? "null" : "" + a } }; gb.formatCharacter = function (a, b, c) { if (0 != (b.flags & 1 << Za.Minus._hx_index)) { a = String.fromCodePoint(a); c.b += z.string(a); var d = 0; for (b = b.width - 1; d < b;) d++, c.b += " " } else { d = 0; for (b = b.width - 1; d < b;) d++, c.b += " "; a = String.fromCodePoint(a); c.b += z.string(a) } }; gb.formatString = function (a, b, c) { var d = a.length, e = b.precision; if (0 != (b.flags & 1 << Za.Minus._hx_index)) { -1 != e ? (c.b += null == e ? K.substr(a, 0, null) : K.substr(a, 0, e), d = e) : c.b += null == a ? "null" : "" + a; var f = 0; for (b = b.width - d; f < b;) f++, c.b += " " } else { -1 != e && (d = e); f = 0; for (b = b.width - d; f < b;) f++, c.b += " "; c.b = -1 != e ? c.b + (null == e ? K.substr(a, 0, null) : K.substr(a, 0, e)) : c.b + (null == a ? "null" : "" + a) } }; gb.pad = function (a, b, c, d) { b -= a.length; if (1 > b) return a; if (30 < b) { var e = 0 == c ? "0" : " "; c = e; var f = 0; for (--b; f < b;) f++, c += e } else c = gb._padChars[c + b]; return 0 < d ? a + c : c + a }; var jh = function (a) { this.message = a }; k["polygonal.ds.PrintfError"] = jh; jh.__name__ = "polygonal.ds.PrintfError"; jh.prototype = { message: null, toString: function () { return this.message }, __class__: jh }; var kp = function (a, b, c, d) { this.flags = a; this.pos = b; this.width = c; this.precision = d }; k["polygonal.ds._Printf.FormatArgs"] = kp; kp.__name__ = "polygonal.ds._Printf.FormatArgs"; kp.prototype = {flags: null, pos: null, width: null, precision: null, __class__: kp}; var Za = A["polygonal.ds._Printf.FormatFlag"] = { __ename__: "polygonal.ds._Printf.FormatFlag", __constructs__: null, Minus: {_hx_name: "Minus", _hx_index: 0, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t}, Plus: { _hx_name: "Plus", _hx_index: 1, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t }, Space: {_hx_name: "Space", _hx_index: 2, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t}, Sharp: {_hx_name: "Sharp", _hx_index: 3, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t}, Zero: {_hx_name: "Zero", _hx_index: 4, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t}, LengthH: {_hx_name: "LengthH", _hx_index: 5, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t}, LengthUpperCaseL: { _hx_name: "LengthUpperCaseL", _hx_index: 6, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t }, LengthLowerCaseL: { _hx_name: "LengthLowerCaseL", _hx_index: 7, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t }, UpperCase: { _hx_name: "UpperCase", _hx_index: 8, __enum__: "polygonal.ds._Printf.FormatFlag", toString: t } }; Za.__constructs__ = [Za.Minus, Za.Plus, Za.Space, Za.Sharp, Za.Zero, Za.LengthH, Za.LengthUpperCaseL, Za.LengthLowerCaseL, Za.UpperCase]; var Ng = A["polygonal.ds._Printf.FormatToken"] = { __ename__: "polygonal.ds._Printf.FormatToken", __constructs__: null, Raw: (x = function (a) { return {_hx_index: 0, string: a, __enum__: "polygonal.ds._Printf.FormatToken", toString: t} }, x._hx_name = "Raw", x.__params__ = ["string"], x), Tag: (x = function (a, b) { return {_hx_index: 1, type: a, args: b, __enum__: "polygonal.ds._Printf.FormatToken", toString: t} }, x._hx_name = "Tag", x.__params__ = ["type", "args"], x), Property: (x = function (a) { return {_hx_index: 2, name: a, __enum__: "polygonal.ds._Printf.FormatToken", toString: t} }, x._hx_name = "Property", x.__params__ = ["name"], x), Unknown: (x = function (a, b) { return {_hx_index: 3, string: a, pos: b, __enum__: "polygonal.ds._Printf.FormatToken", toString: t} }, x._hx_name = "Unknown", x.__params__ = ["string", "pos"], x) }; Ng.__constructs__ = [Ng.Raw, Ng.Tag, Ng.Property, Ng.Unknown]; var we = A["polygonal.ds._Printf.FormatDataType"] = { __ename__: "polygonal.ds._Printf.FormatDataType", __constructs__: null, FmtInt: (x = function (a) { return {_hx_index: 0, type: a, __enum__: "polygonal.ds._Printf.FormatDataType", toString: t} }, x._hx_name = "FmtInt", x.__params__ = ["type"], x), FmtFloat: (x = function (a) { return {_hx_index: 1, floatType: a, __enum__: "polygonal.ds._Printf.FormatDataType", toString: t} }, x._hx_name = "FmtFloat", x.__params__ = ["floatType"], x), FmtString: { _hx_name: "FmtString", _hx_index: 2, __enum__: "polygonal.ds._Printf.FormatDataType", toString: t }, FmtPointer: { _hx_name: "FmtPointer", _hx_index: 3, __enum__: "polygonal.ds._Printf.FormatDataType", toString: t }, FmtNothing: { _hx_name: "FmtNothing", _hx_index: 4, __enum__: "polygonal.ds._Printf.FormatDataType", toString: t } }; we.__constructs__ = [we.FmtInt, we.FmtFloat, we.FmtString, we.FmtPointer, we.FmtNothing]; var Ef = A["polygonal.ds._Printf.IntType"] = { __ename__: "polygonal.ds._Printf.IntType", __constructs__: null, ICharacter: { _hx_name: "ICharacter", _hx_index: 0, __enum__: "polygonal.ds._Printf.IntType", toString: t }, ISignedDecimal: { _hx_name: "ISignedDecimal", _hx_index: 1, __enum__: "polygonal.ds._Printf.IntType", toString: t }, IUnsignedDecimal: { _hx_name: "IUnsignedDecimal", _hx_index: 2, __enum__: "polygonal.ds._Printf.IntType", toString: t }, IOctal: {_hx_name: "IOctal", _hx_index: 3, __enum__: "polygonal.ds._Printf.IntType", toString: t}, IHex: {_hx_name: "IHex", _hx_index: 4, __enum__: "polygonal.ds._Printf.IntType", toString: t}, IBin: { _hx_name: "IBin", _hx_index: 5, __enum__: "polygonal.ds._Printf.IntType", toString: t } }; Ef.__constructs__ = [Ef.ICharacter, Ef.ISignedDecimal, Ef.IUnsignedDecimal, Ef.IOctal, Ef.IHex, Ef.IBin]; var mi = A["polygonal.ds._Printf.FloatType"] = { __ename__: "polygonal.ds._Printf.FloatType", __constructs__: null, FNormal: {_hx_name: "FNormal", _hx_index: 0, __enum__: "polygonal.ds._Printf.FloatType", toString: t}, FScientific: { _hx_name: "FScientific", _hx_index: 1, __enum__: "polygonal.ds._Printf.FloatType", toString: t }, FNatural: { _hx_name: "FNatural", _hx_index: 2, __enum__: "polygonal.ds._Printf.FloatType", toString: t } }; mi.__constructs__ = [mi.FNormal, mi.FScientific, mi.FNatural]; var Zd = function () { }; k["polygonal.ds.tools.ArrayTools"] = Zd; Zd.__name__ = "polygonal.ds.tools.ArrayTools"; Zd.alloc = function (a) { Ea._assert(0 <= a, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); return Array(a) }; Zd.trim = function (a, b) { a.length > b && (a.length = b); return a }; Zd.swap = function (a, b, c) { Ea._assert(null != a, "array != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 94, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); Ea._assert(0 <= b && b < a.length, "0 <= a && a < array.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 95, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); Ea._assert(0 <= c && c < a.length, "0 <= b && b < array.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 96, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); if (b != c) { var d = a[b]; a[b] = a[c]; a[c] = d } }; Zd.getFront = function (a, b) { Ea._assert(null != a, "array != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 113, className: "polygonal.ds.tools.ArrayTools", methodName: "getFront" }); Ea._assert(0 <= b && b < a.length, "0 <= index && index < array.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 114, className: "polygonal.ds.tools.ArrayTools", methodName: "getFront" }); Ea._assert(null != a, "array != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 94, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); Ea._assert(0 <= b && b < a.length, "0 <= a && a < array.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 95, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); Ea._assert(0 < a.length, "0 <= b && b < array.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 96, className: "polygonal.ds.tools.ArrayTools", methodName: "swap" }); if (0 != b) { var c = a[b]; a[b] = a[0]; a[0] = c } return a[0] }; Zd.init = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); d = 0 >= d ? a.length : c + d; Ea._assert(0 <= c && c < a.length, "min >= 0 && min < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 129, className: "polygonal.ds.tools.ArrayTools", methodName: "init" }); for (Ea._assert(d <= a.length, "max <= a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 130, className: "polygonal.ds.tools.ArrayTools", methodName: "init" }); c < d;) a[c++] = b; return a }; Zd.blit = function (a, b, c, d, e) { if (0 < e) if (Ea._assert(b < a.length, "srcPos out of range(srcPos < src.length)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 145, className: "polygonal.ds.tools.ArrayTools", methodName: "blit" }), Ea._assert(d < c.length, "dstPos out of range(dstPos < dst.length)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 146, className: "polygonal.ds.tools.ArrayTools", methodName: "blit" }), Ea._assert(b + e <= a.length && d + e <= c.length, "n out of range(srcPos + n <= src.length && dstPos + n <= dst.length)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 147, className: "polygonal.ds.tools.ArrayTools", methodName: "blit" }), a == c) if (b < d) { var f = b + e; b = d + e; for (var h = 0; h < e;) h++, --f, --b, a[b] = a[f] } else { if (b > d) for (f = b, b = d, h = 0; h < e;) h++, a[b] = a[f], ++f, ++b } else if (0 == b && 0 == d) for (h = 0; h < e;) f = h++, c[f] = a[f]; else if (0 == b) for (h = 0; h < e;) f = h++, c[d + f] = a[f]; else if (0 == d) for (h = 0; h < e;) f = h++, c[f] = a[b + f]; else for (h = 0; h < e;) f = h++, c[d + f] = a[b + f] }; Zd.iter = function (a, b, c) { null == c && (c = 0); 0 == c && (c = a.length); for (var d = 0; d < c;) { var e = d++; b(a[e]) } }; Zd.forEach = function (a, b) { for (var c = 0, d = a.length; c < d;) { var e = c++; a[e] = b(a[e], e) } }; Zd.binarySearchCmp = function (a, b, c, d, e) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 236, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchCmp" }); Ea._assert(null != e, "comparator != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 237, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchCmp" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 238, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchCmp" }); Ea._assert(d < a.length, "max < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 239, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchCmp" }); for (var f, h = d + 1; c < h;) f = c + (h - c >> 1), 0 > e(a[f], b) ? c = f + 1 : h = f; return c <= d && 0 == e(a[c], b) ? c : ~c }; Zd.binarySearchf = function (a, b, c, d) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 265, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchf" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 266, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchf" }); Ea._assert(d < a.length, "max < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 267, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchf" }); for (var e, f = d + 1; c < f;) e = c + (f - c >> 1), a[e] < b ? c = e + 1 : f = e; return c <= d && a[c] == b ? c : ~c }; Zd.binarySearchi = function (a, b, c, d) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 293, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchi" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 294, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchi" }); Ea._assert(d < a.length, "max < a.length", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 295, className: "polygonal.ds.tools.ArrayTools", methodName: "binarySearchi" }); for (var e, f = d + 1; c < f;) e = c + (f - c >> 1), a[e] < b ? c = e + 1 : f = e; return c <= d && a[c] == b ? c : ~c }; Zd.shuffle = function (a, b) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 320, className: "polygonal.ds.tools.ArrayTools", methodName: "shuffle" }); var c = a.length; if (null == b) for (; 1 < --c;) { var d = ni.f() * c | 0, e = a[c]; a[c] = a[d]; a[d] = e } else { Ea._assert(b.length >= a.length, "insufficient random values(rvals.length >= a.length)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 335, className: "polygonal.ds.tools.ArrayTools", methodName: "shuffle" }); for (var f = 0; 1 < --c;) d = b[f++] * c | 0, e = a[c], a[c] = a[d], a[d] = e } }; Zd.random = function (a) { var b = a.length; return 2 > b ? a[0] : a[ni.f() * b | 0] }; Zd.sortRange = function (a, b, c, d, e) { var f = a.length; if (1 < f) if (Ea._assert(0 <= d && d <= f - 1 && d + e <= f, "first out of range(first >= 0 && first <= k - 1 && first + n <= k)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 370, className: "polygonal.ds.tools.ArrayTools", methodName: "sortRange" }), Ea._assert(0 <= e && e <= f, "n out of range(n >= 0 && n <= k)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 371, className: "polygonal.ds.tools.ArrayTools", methodName: "sortRange" }), c) for (c = d + 1, e = d + e; c < e;) { var h = c++; for (f = a[h]; h > d;) { var l = a[h - 1]; if (0 < b(l, f)) a[h] = l, --h; else break } a[h] = f } else Zd._quickSort(a, d, e, b) }; Zd.quickPerm = function (a) { for (var b = [], c = [], d = [], e, f, h = 0; h < a;) c[h] = h + 1, d[h] = 0, ++h; b.push(c.slice()); for (h = 1; h < a;) d[h] < h ? (e = h % 2 * d[h], f = c[e], c[e] = c[h], c[h] = f, b.push(c.slice()), d[h]++, h = 1) : (d[h] = 0, ++h); return b }; Zd.equals = function (a, b, c) { if (a.length != b.length) return !1; for (var d = 0, e = a.length; d < e;) { if (!c(a[d], b[d])) return !1; ++d } return !0 }; Zd.split = function (a, b, c) { Ea._assert(0 == b % c, "n is not a multiple of k(n % k == 0)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 464, className: "polygonal.ds.tools.ArrayTools", methodName: "split" }); for (var d = [], e = null, f = 0; f < b;) { var h = f++; 0 == h % c && (e = [], d[h / c | 0] = e); e.push(a[h]) } return d }; Zd.pairwise = function (a, b, c) { var d = 0; for (Ea._assert(0 == (c & 1), "max & 1 == 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 489, className: "polygonal.ds.tools.ArrayTools", methodName: "pairwise" }); d < c;) b(d, a[d], a[d + 1]), d += 2 }; Zd.bruteforce = function (a, b) { for (var c = 0, d, e = a.length, f = e - 1, h; c < f;) { h = a[c]; for (d = c + 1; d < e;) b(h, a[d]), ++d; ++c } }; Zd._quickSort = function (a, b, c, d) { var e = b + c - 1, f = b, h = e; if (1 < c) { var l = b + (c >> 1); c = b + c - 1; var p = a[b], m = a[l], k = a[c], n = d(p, k); l = 0 > n && 0 > d(p, m) ? 0 > d(m, k) ? l : c : 0 > d(m, p) && 0 > d(m, k) ? 0 > n ? b : c : 0 > d(k, p) ? l : b; c = a[l]; for (a[l] = a[b]; f < h;) { for (; 0 > d(c, a[h]) && f < h;) --h; h != f && (a[f] = a[h], ++f); for (; 0 < d(c, a[f]) && f < h;) ++f; h != f && (a[h] = a[f], --h) } a[f] = c; Zd._quickSort(a, b, f - b, d); Zd._quickSort(a, f + 1, e - f, d) } }; var Ea = function () { }; k["polygonal.ds.tools.Assert"] = Ea; Ea.__name__ = "polygonal.ds.tools.Assert"; Ea._assert = function (a, b, c) { if (!a) throw a = "in file " + c.fileName + ", line " + c.lineNumber, Error("Assertion failed" + (null != b ? ": " : " ") + (null == b ? a : "" + b + " (" + a + ")")); }; var Kg = function () { }; k["polygonal.ds.tools.GrowthRate"] = Kg; Kg.__name__ = "polygonal.ds.tools.GrowthRate"; Kg.compute = function (a, b) { Ea._assert(-3 <= a, "invalid growth rate(rate >= -3)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/GrowthRate.hx", lineNumber: 52, className: "polygonal.ds.tools.GrowthRate", methodName: "compute" }); if (0 < a) b += a; else switch (a) { case -3: b <<= 1; break; case -2: b = (3 * b >> 1) + 1; break; case -1: a = b + 1; b = (a >> 3) + (9 > a ? 3 : 6) + a; break; case 0: throw I.thrown("out of space"); } return b }; var Pb = function () { }; k["polygonal.ds.tools.NativeArrayTools"] = Pb; Pb.__name__ = "polygonal.ds.tools.NativeArrayTools"; Pb.alloc = function (a) { return Array(a) }; Pb.get = function (a, b) { return a[b] }; Pb.set = function (a, b, c) { a[b] = c }; Pb.size = function (a) { return a.length }; Pb.toArray = function (a, b, c, d) { Ea._assert(0 <= b && b < a.length, "first index out of range(first >= 0 && first < size(src))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 140, className: "polygonal.ds.tools.NativeArrayTools", methodName: "toArray" }); Ea._assert(0 <= c && b + c <= a.length, "len out of range(len >= 0 && first + len <= size(src))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 141, className: "polygonal.ds.tools.NativeArrayTools", methodName: "toArray" }); if (0 == c) return []; Ea._assert(0 <= c, "len >= 0", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/ArrayTools.hx", lineNumber: 37, className: "polygonal.ds.tools.ArrayTools", methodName: "alloc" }); d = Array(c); if (0 == b) for (var e = 0; e < c;) { var f = e++; d[f] = a[f] } else for (e = b, c = b + c; e < c;) f = e++, d[f - b] = a[f]; return d }; Pb.ofArray = function (a) { return a.slice(0, a.length) }; Pb.blit = function (a, b, c, d, e) { if (0 < e) if (Ea._assert(b < a.length, "srcPos out of range(srcPos < size(src))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 197, className: "polygonal.ds.tools.NativeArrayTools", methodName: "blit" }), Ea._assert(d < c.length, "dstPos out of range(dstPos < size(dst))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 198, className: "polygonal.ds.tools.NativeArrayTools", methodName: "blit" }), Ea._assert(b + e <= a.length && d + e <= c.length, "n out of range(srcPos + n <= size(src) && dstPos + n <= size(dst))", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 199, className: "polygonal.ds.tools.NativeArrayTools", methodName: "blit" }), a == c) if (b < d) { var f = b + e; b = d + e; for (var h = 0; h < e;) h++, --f, --b, a[b] = a[f] } else { if (b > d) for (f = b, b = d, h = 0; h < e;) h++, a[b] = a[f], ++f, ++b } else if (0 == b && 0 == d) for (h = 0; h < e;) f = h++, c[f] = a[f]; else if (0 == b) for (h = 0; h < e;) f = h++, c[d + f] = a[f]; else if (0 == d) for (h = 0; h < e;) f = h++, c[f] = a[b + f]; else for (h = 0; h < e;) f = h++, c[d + f] = a[b + f] }; Pb.copy = function (a) { return a.slice(0) }; Pb.zero = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); c = 0 >= c ? a.length : b + c; Ea._assert(0 <= b && b < a.length, "min >= 0 && min < size(dst)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 293, className: "polygonal.ds.tools.NativeArrayTools", methodName: "zero" }); for (Ea._assert(c <= a.length, "max <= size(dst)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 294, className: "polygonal.ds.tools.NativeArrayTools", methodName: "zero" }); b < c;) a[b++] = 0; return a }; Pb.init = function (a, b, c, d) { null == d && (d = 0); null == c && (c = 0); d = 0 >= d ? a.length : c + d; Ea._assert(0 <= c && c < a.length, "min >= 0 && min < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 315, className: "polygonal.ds.tools.NativeArrayTools", methodName: "init" }); for (Ea._assert(d <= a.length, "max <= size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 316, className: "polygonal.ds.tools.NativeArrayTools", methodName: "init" }); c < d;) a[c++] = b; return a }; Pb.nullify = function (a, b, c) { null == c && (c = 0); null == b && (b = 0); c = 0 >= c ? a.length : b + c; Ea._assert(0 <= b && b < a.length, "min >= 0 && min < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 331, className: "polygonal.ds.tools.NativeArrayTools", methodName: "nullify" }); for (Ea._assert(c <= a.length, "max <= size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 332, className: "polygonal.ds.tools.NativeArrayTools", methodName: "nullify" }); b < c;) a[b++] = null; return a }; Pb.binarySearchCmp = function (a, b, c, d, e) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 351, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchCmp" }); Ea._assert(null != e, "cmp != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 352, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchCmp" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 353, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchCmp" }); Ea._assert(d < a.length, "max < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 354, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchCmp" }); for (var f, h = d + 1; c < h;) f = c + (h - c >> 1), 0 > e(a[f], b) ? c = f + 1 : h = f; return c <= d && 0 == e(a[c], b) ? c : ~c }; Pb.binarySearchf = function (a, b, c, d) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 379, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchf" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 380, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchf" }); Ea._assert(d < a.length, "max < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 381, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchf" }); for (var e, f = d + 1; c < f;) e = c + (f - c >> 1), a[e] < b ? c = e + 1 : f = e; return c <= d && a[c] == b ? c : ~c }; Pb.binarySearchi = function (a, b, c, d) { Ea._assert(null != a, "a != null", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 406, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchi" }); Ea._assert(0 <= c && c < a.length, "min >= 0 && min < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 407, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchi" }); Ea._assert(d < a.length, "max < size(a)", { fileName: "C:/Users/Vasile/AppData/Local/Stencyl/libs/haxelib/Stencyl/ds/2.1.1-1d23c8a6f8/src/polygonal/ds/tools/NativeArrayTools.hx", lineNumber: 408, className: "polygonal.ds.tools.NativeArrayTools", methodName: "binarySearchi" }); for (var e, f = d + 1; c < f;) e = c + (f - c >> 1), a[e] < b ? c = e + 1 : f = e; return c <= d && a[c] == b ? c : ~c }; var ni = function () { }; k["polygonal.ds.tools.Shuffle"] = ni; ni.__name__ = "polygonal.ds.tools.Shuffle"; ni.f = function () { return Math.random() }; ni.setRandom = function (a) { ni.f = a }; ni.frand = function () { return ni.f() }; var lp = function (a, b, c) { P.call(this, b); this.nameMap.h.My_Boss = "_MyBoss"; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Death_Delay_Timer = "_DeathDelayTimer"; this._DeathDelayTimer = 0 }; k["scripts.ActorEvents_101"] = lp; lp.__name__ = "scripts.ActorEvents_101"; lp.__super__ = P; lp.prototype = u(P.prototype, { _MyBoss: null, _Activated: null, _DeathDelayTimer: null, _event_SetupMyBoss: function (a) { if (this.wrapper.enabled) { var b = f.getActorGroup(8); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; b && (b = this._MyBoss, f.isPrimitive(b) || ("string" == typeof b ? "" != w.__cast(b, String) : null != b) || this._Activated || (this._Activated = !0, this._MyBoss = a.otherActor)) }, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this._Activated && !this._MyBoss.isAlive() && (this._Activated = !1, f.runLater(1E3 * this._DeathDelayTimer, function (a) { b.actor.shout("_customEvent_die") }, this.actor)), "1" == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame() && f.recycleActor(this.actor)) }, init: function () { var a = this, b = h.engine, c = h.engine.getGameAttribute("Enemies_Live") - 1; b.gameAttributes.h.Enemies_Live = c; f.runPeriodically(500, function (b) { a._DeathDelayTimer += .1 }, this.actor); f.runLater(1750, function (b) { a.actor.setAnimation("1") }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_SetupMyBoss)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: lp }); var mp = function (a, b, c) { P.call(this, b); this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Facing = "_Facing"; this._Facing = ""; this.nameMap.h.Speed_X = "_SpeedX"; this._SpeedX = 0; this.nameMap.h.Speed_Y = "_SpeedY"; this._SpeedY = 0; this.nameMap.h.Pos_X = "_PosX"; this._PosX = 0; this.nameMap.h.Pos_Y = "_PosY"; this._PosY = 0; this.nameMap.h.Firing = "_Firing"; this._Firing = !1; this.nameMap.h.Stopped_To_Fire = "_StoppedToFire"; this._StoppedToFire = !1; this.nameMap.h.Limit_Bottom = "_LimitBottom"; this._LimitBottom = 0; this.nameMap.h.Limit_Left = "_LimitLeft"; this._LimitLeft = 0; this.nameMap.h.Limit_Right = "_LimitRight"; this._LimitRight = 0; this.nameMap.h.Limit_Top = "_LimitTop"; this._LimitTop = 0 }; k["scripts.ActorEvents_103"] = mp; mp.__name__ = "scripts.ActorEvents_103"; mp.__super__ = P; mp.prototype = u(P.prototype, { _Hero: null, _MaxSpeed: null, _Activated: null, _CurrentDirection: null, _Facing: null, _SpeedX: null, _SpeedY: null, _PosX: null, _PosY: null, _Firing: null, _StoppedToFire: null, _LimitBottom: null, _LimitLeft: null, _LimitRight: null, _LimitTop: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (!this._Activated && ("Up" == this._Facing && this.actor.push(0, 1, 10), "Down" == this._Facing && this.actor.push(0, -1, 10), this.actor.getY() <= this._LimitTop || this.actor.getY() >= this._LimitBottom) && (this._Activated = !0), this._Activated && (a = this._Hero, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._Hero.isAlive() && this.actor.getX() > this._LimitLeft && this.actor.getX() < this._LimitRight && 2 > Math.abs(this.actor.getXCenter() - this._Hero.getXCenter()) && !this._Firing && (this._StoppedToFire = this._Firing = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setAnimation(this._Facing + "_B"), f.runLater(100, function (a) { "Down" == b._Facing ? (f.createRecycledActor(f.getActorType(105), b.actor.getX() + 2, b.actor.getY() + 2, 0), f.getLastCreatedActor().setVelocity(90, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX() - 4, b.actor.getY(), 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")) : "Up" == b._Facing && (f.createRecycledActor(f.getActorType(105), b.actor.getX() + 2, b.actor.getY() + 2, 0), f.getLastCreatedActor().setVelocity(-90, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX() - 6, b.actor.getY() - 8, 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")); f.playSoundOnChannel(f.getSound(136), h.engine.getGameAttribute("Sound_Channel") | 0); a = h.engine; var c = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = c; b._StoppedToFire = !1 }, this.actor), f.runLater(1E3, function (a) { b.actor.setAnimation(b._Facing + "_A"); b._Firing = !1 }, this.actor)), this.actor.getX() <= this._LimitLeft && "Up" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setX(this._LimitLeft), this._Facing = "Right"), this.actor.getX() >= this._LimitRight && "Down" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setX(this._LimitRight), this._Facing = "Left"), this.actor.getY() <= this._LimitTop && "Right" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setY(this._LimitTop), this._Facing = "Down"), this.actor.getY() >= this._LimitBottom && "Left" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setY(this._LimitBottom), this._Facing = "Up"), this.actor.setAnimation(this._Facing + "_A"), this._StoppedToFire || ("Up" == this._Facing && (this.actor.getY() != this._LimitBottom && (this.actor.setY(this._LimitBottom), this.actor.setYVelocity(0)), this.actor.push(-1, 0, 6)), "Down" == this._Facing && (this.actor.getY() != this._LimitTop && (this.actor.setY(this._LimitTop), this.actor.setYVelocity(0)), this.actor.push(1, 0, 6)), "Left" == this._Facing && (this.actor.getX() != this._LimitRight && (this.actor.setX(this._LimitRight), this.actor.setXVelocity(0)), this.actor.push(0, 1, 6)), "Right" == this._Facing && (this.actor.getX() != this._LimitLeft && (this.actor.setX(this._LimitLeft), this.actor.setXVelocity(0)), this.actor.push(0, -1, 6))), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed))) }, init: function () { var a = this; this._LimitTop = 32; this._LimitBottom = 211; this._LimitLeft = 38; this._LimitRight = 378; for (var b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = 6; this.actor.getY() <= f.getScreenHeight() / 2 ? this._Facing = "Down" : this.actor.getY() >= f.getScreenHeight() / 2 && (this._Facing = "Up"); this.actor.setAnimation(this._Facing + "_A"); f.runLater(2E3, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: mp }); var np = function (a, b, c) { P.call(this, b); this.nameMap.h.Hit = "_Hit"; this._Hit = !1 }; k["scripts.ActorEvents_105"] = np; np.__name__ = "scripts.ActorEvents_105"; np.__super__ = P; np.prototype = u(P.prototype, { _Hit: null, _event_HitsTile: function (a) { if (this.wrapper.enabled) { var b = f.getActorGroup(1); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a } else b = !1; b && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()) }, _customEvent_got_hit: function () { f.createRecycledActor(f.getActorType(67), this.actor.getX() - 8, this.actor.getY() - 8, 2); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.playSoundOnChannel(f.getSound(135), h.engine.getGameAttribute("Sound_Channel") | 0); var a = h.engine, b = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = b; a = h.engine; b = h.engine.getGameAttribute("Enemies_Live") - 1; a.gameAttributes.h.Enemies_Live = b; a = h.engine; b = h.engine.getGameAttribute("Enemies_Killed") + 1; a.gameAttributes.h.Enemies_Killed = b; f.recycleActor(this.actor) }, init: function () { var a = this; this.actor.setValue("Enemy_Manager", "_Activated", !0); f.runLater(100, function (b) { a.actor.set_alpha(1) }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsTile)) }, forwardMessage: function (a) { }, __class__: np }); var op = function (a, b, c) { P.call(this, b); this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Facing = "_Facing"; this._Facing = ""; this.nameMap.h.Speed_X = "_SpeedX"; this._SpeedX = 0; this.nameMap.h.Speed_Y = "_SpeedY"; this._SpeedY = 0; this.nameMap.h.Pos_X = "_PosX"; this._PosX = 0; this.nameMap.h.Pos_Y = "_PosY"; this._PosY = 0; this.nameMap.h.Firing = "_Firing"; this._Firing = !1; this.nameMap.h.Stopped_To_Fire = "_StoppedToFire"; this._StoppedToFire = !1; this.nameMap.h.Hit_Points = "_HitPoints"; this._HitPoints = 0; this.nameMap.h.Limit_Top = "_LimitTop"; this._LimitTop = 0; this.nameMap.h.Limit_Bottom = "_LimitBottom"; this._LimitBottom = 0; this.nameMap.h.Limit_Left = "_LimitLeft"; this._LimitLeft = 0; this.nameMap.h.Limit_Right = "_LimitRight"; this._LimitRight = 0 }; k["scripts.ActorEvents_107"] = op; op.__name__ = "scripts.ActorEvents_107"; op.__super__ = P; op.prototype = u(P.prototype, { _Hero: null, _MaxSpeed: null, _Activated: null, _CurrentDirection: null, _Facing: null, _SpeedX: null, _SpeedY: null, _PosX: null, _PosY: null, _Firing: null, _StoppedToFire: null, _HitPoints: null, _LimitTop: null, _LimitBottom: null, _LimitLeft: null, _LimitRight: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && ("3" == this.actor.getAnimation() && (this._HitPoints = 3, this.actor.setAnimation(this._Facing + ("_" + this._HitPoints))), "2" == this.actor.getAnimation() && (this._HitPoints = 2, this.actor.setAnimation(this._Facing + ("_" + this._HitPoints))), "1" == this.actor.getAnimation() && (this._HitPoints = 1, this.actor.setAnimation(this._Facing + ("_" + this._HitPoints))), !this._Activated && ("Up" == this._Facing && this.actor.push(0, 1, 10), "Down" == this._Facing && this.actor.push(0, -1, 10), this.actor.getY() <= this._LimitTop || this.actor.getY() >= this._LimitBottom) && (this._Activated = !0), this._Activated && (a = this._Hero, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._Hero.isAlive() && (this.actor.getX() > this._LimitLeft && this.actor.getX() < this._LimitRight && 2 > Math.abs(this.actor.getXCenter() - this._Hero.getXCenter()) && !this._Firing && (this._StoppedToFire = this._Firing = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), f.runLater(100, function (a) { "Down" == b._Facing ? (f.createRecycledActor(f.getActorType(105), b.actor.getX() + 8, b.actor.getY() + 16, 0), f.getLastCreatedActor().setVelocity(90, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX() + 4, b.actor.getY() + 12, 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")) : "Up" == b._Facing && (f.createRecycledActor(f.getActorType(105), b.actor.getX() + 8, b.actor.getY() - 8, 0), f.getLastCreatedActor().setVelocity(-90, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX() + 4, b.actor.getY() - 4, 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")); f.playSoundOnChannel(f.getSound(136), h.engine.getGameAttribute("Sound_Channel") | 0); a = h.engine; var c = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = c; b._StoppedToFire = !1 }, this.actor), f.runLater(1E3, function (a) { b._Firing = !1 }, this.actor)), this.actor.getY() > this._LimitLeft && this.actor.getY() < this._LimitRight && 2 > Math.abs(this.actor.getYCenter() - this._Hero.getYCenter()) && !this._Firing && (this._StoppedToFire = this._Firing = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), f.runLater(100, function (a) { "Left" == b._Facing ? (f.createRecycledActor(f.getActorType(105), b.actor.getX(), b.actor.getY() + 6, 0), f.getLastCreatedActor().setVelocity(180, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX(), b.actor.getY() + 4, 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")) : "Right" == b._Facing && (f.createRecycledActor(f.getActorType(105), b.actor.getX() + 16, b.actor.getY() + 6, 0), f.getLastCreatedActor().setVelocity(0, 5), f.createRecycledActor(f.getActorType(67), b.actor.getX(), b.actor.getY() + 4, 0), f.getLastCreatedActor().shout("_customEvent_splosion_bullet")); f.playSoundOnChannel(f.getSound(136), h.engine.getGameAttribute("Sound_Channel") | 0); a = h.engine; var c = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = c; b._StoppedToFire = !1 }, this.actor), f.runLater(1E3, function (a) { b._Firing = !1 }, this.actor))), this.actor.getX() <= this._LimitLeft && "Up" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setX(this._LimitLeft), this._Facing = "Right"), this.actor.getX() >= this._LimitRight && "Down" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setX(this._LimitRight), this._Facing = "Left"), this.actor.getY() <= this._LimitTop && "Right" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setY(this._LimitTop), this._Facing = "Down"), this.actor.getY() >= this._LimitBottom && "Left" == this._Facing && (this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setY(this._LimitBottom), this._Facing = "Up"), this.actor.setAnimation(this._Facing + ("_" + this._HitPoints)), this._StoppedToFire || ("Up" == this._Facing && (this.actor.getY() != this._LimitBottom && (this.actor.setY(this._LimitBottom), this.actor.setYVelocity(0)), this.actor.push(-1, 0, 6)), "Down" == this._Facing && (this.actor.getY() != this._LimitTop && (this.actor.setY(this._LimitTop), this.actor.setYVelocity(0)), this.actor.push(1, 0, 6)), "Left" == this._Facing && (this.actor.getX() != this._LimitRight && (this.actor.setX(this._LimitRight), this.actor.setXVelocity(0)), this.actor.push(0, 1, 6)), "Right" == this._Facing && (this.actor.getX() != this._LimitLeft && (this.actor.setX(this._LimitLeft), this.actor.setXVelocity(0)), this.actor.push(0, -1, 6))), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed))) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = 6; this._HitPoints = 3; this._LimitTop = 24; this._LimitBottom = 200; this._LimitLeft = 30; this._LimitRight = 370; this.actor.getY() <= f.getScreenHeight() / 2 ? this._Facing = "Down" : this.actor.getY() >= f.getScreenHeight() / 2 && (this._Facing = "Up"); this.actor.setAnimation(this._Facing + "_A"); f.runLater(2E3, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: op }); var pp = function (a, b, c) { P.call(this, b); this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Opened = "_Opened"; this._Opened = !1; this.nameMap.h.Unlocked = "_Unlocked"; this._Unlocked = !1; this.nameMap.h.My_Level = "_MyLevel"; this._MyLevel = 0; this.nameMap.h.Hit_Hero = "_HitHero"; this._HitHero = !1 }; k["scripts.ActorEvents_128"] = pp; pp.__name__ = "scripts.ActorEvents_128"; pp.__super__ = P; pp.prototype = u(P.prototype, { _Hero: null, _Opened: null, _Unlocked: null, _MyLevel: null, _HitHero: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (40 > Math.abs(this._Hero.getXCenter() - this.actor.getXCenter()) && 48 > Math.abs(this._Hero.getYCenter() - this.actor.getYCenter()) && !this._Opened && this._Unlocked && (this._Opened = !0, this.actor.setAnimation("Open"), f.playSoundOnChannel(f.getSound(139), 4)), (39 < Math.abs(this._Hero.getXCenter() - this.actor.getXCenter()) || 47 < Math.abs(this._Hero.getYCenter() - this.actor.getYCenter())) && this._Opened && (this._Opened = !1, this.actor.setAnimation("6"), f.playSoundOnChannel(f.getSound(140), 5), f.runLater(100, function (a) { f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0) }, this.actor))) }, _event_HitsHero: function (a) { if (this.wrapper.enabled) { var b = f.getActorType(18); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; b && !this._HitHero && this._Unlocked && (ya.sendGameplayStop(), this._HitHero = !0, a.otherActor.disableBehavior("8 Way Movement"), a.otherActor.growTo(.5, .5, .5, Wa.linear), a.otherActor.fadeTo(0, .5, Wa.linear), a.otherActor.moveTo(this.actor.getXCenter() - 5, this.actor.getYCenter() + 24, .5, Wa.linear), f.engine.pause(), ya.commercialBreak(function () { f.engine.unpause(); var a = zb.get().scenes.h[14].getID(), b = 204, c = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var h = f.createFadeOut(.5, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, h, f.createFadeIn(.5, b << 16 | c << 8 | d)); f.playSoundOnChannel(f.getSound(143), 4) })) }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Hero = c) } this._Unlocked = !0; this.actor.setAnimation("6"); this.actor.setCurrentFrame(2); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: pp }); var qp = function (a, b, c) { P.call(this, b); this.nameMap.h.Moving_Left = "_MovingLeft"; this._MovingLeft = !1 }; k["scripts.ActorEvents_132"] = qp; qp.__name__ = "scripts.ActorEvents_132"; qp.__super__ = P; qp.prototype = u(P.prototype, { _MovingLeft: null, _event_Updating: function (a) { this.wrapper.enabled && (this.actor.setXVelocity(.92 * this.actor.getXVelocity()), this.actor.setYVelocity(.92 * this.actor.getYVelocity()), 0 > this.actor.getXVelocity() && !this._MovingLeft && (this._MovingLeft = !0, this.actor.growTo(-1, 1, .01, Wa.linear))) }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: qp }); var rp = function (a, b, c) { P.call(this, b); this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Opened = "_Opened"; this._Opened = !1; this.nameMap.h.Hit_Hero = "_HitHero"; this._HitHero = !1 }; k["scripts.ActorEvents_146"] = rp; rp.__name__ = "scripts.ActorEvents_146"; rp.__super__ = P; rp.prototype = u(P.prototype, { _Hero: null, _Opened: null, _HitHero: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (56 > Math.abs(this._Hero.getXCenter() - this.actor.getXCenter()) && 64 > Math.abs(this._Hero.getYCenter() - this.actor.getYCenter()) && !this._Opened && (this._Opened = !0, this.actor.setAnimation("Open"), f.playSoundOnChannel(f.getSound(139), 4)), (55 < Math.abs(this._Hero.getXCenter() - this.actor.getXCenter()) || 63 < Math.abs(this._Hero.getYCenter() - this.actor.getYCenter())) && this._Opened && (this._Opened = !1, this.actor.setAnimation("0"), f.playSoundOnChannel(f.getSound(140), 5), f.runLater(100, function (a) { f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), b.actor.getXCenter() + f.randomInt(-2, 2), b.actor.getY() + f.randomInt(0, b.actor.getHeight() | 0), 0) }, this.actor))) }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._Opened) { b = f.getFont(252); null != b && b != a.font && (a.font = b); a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = this.actor.getXCenter() - a.font.getTextWidth("Tutorial") / h.SCALE / 2; c = this.actor.getY() + 28; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + c * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "Tutorial:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { g = a.font.font.getTextWidth("Tutorial", a.font.fontScale); var l = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "Tutorial", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } }, _event_HitsHero: function (a) { if (this.wrapper.enabled) { var b = f.getActorType(18); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; b && !this._HitHero && (ya.sendGameplayStop(), this._HitHero = !0, a.otherActor.disableBehavior("8 Way Movement"), a.otherActor.growTo(.5, .5, .5, Wa.linear), a.otherActor.fadeTo(0, .5, Wa.linear), a.otherActor.moveTo(this.actor.getXCenter() - 5, this.actor.getYCenter() + 6, .5, Wa.linear), f.engine.pause(), ya.commercialBreak(function () { f.engine.unpause(); var a = zb.get().scenes.h[17].getID(), b = 204, c = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var h = f.createFadeOut(.5, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, h, f.createFadeIn(.5, b << 16 | c << 8 | d)); f.playSoundOnChannel(f.getSound(143), 4) })) }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Hero = c) } this.actor.setCurrentFrame(1); this.actor.moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: rp }); var sp = function (a, b, c) { P.call(this, b); this.nameMap.h.Animation_1 = "_Animation1"; this._Animation1 = ""; this.nameMap.h.Img = "_Img"; this.nameMap.h.Get_Pixel = "_GetPixel"; this.nameMap.h.xSpawn = "_xSpawn"; this._xSpawn = 0; this.nameMap.h.ySpawn = "_ySpawn"; this._ySpawn = 0; this.nameMap.h.Animation_2 = "_Animation2"; this._Animation2 = ""; this.nameMap.h.Enemy_Chooser = "_EnemyChooser"; this._EnemyChooser = 0; this.nameMap.h.Spawn_Delay = "_SpawnDelay"; this._SpawnDelay = 0 }; k["scripts.ActorEvents_150"] = sp; sp.__name__ = "scripts.ActorEvents_150"; sp.__super__ = P; sp.prototype = u(P.prototype, { _Animation1: null, _Img: null, _GetPixel: null, _xSpawn: null, _ySpawn: null, _Animation2: null, _EnemyChooser: null, _SpawnDelay: null, _customEvent_spawn_bosses: function () { var a = this; 0 == h.engine.getGameAttribute("Score") % 5 ? this._SpawnDelay = 2 : 5 >= h.engine.getGameAttribute("Score") ? this._SpawnDelay = 5 : 6 <= h.engine.getGameAttribute("Score") && 10 >= h.engine.getGameAttribute("Score") ? this._SpawnDelay = 5.5 : 11 <= h.engine.getGameAttribute("Score") && 15 >= h.engine.getGameAttribute("Score") ? this._SpawnDelay = 6 : 16 <= h.engine.getGameAttribute("Score") && 20 >= h.engine.getGameAttribute("Score") ? this._SpawnDelay = 6.5 : 21 <= h.engine.getGameAttribute("Score") && (this._SpawnDelay = 7); f.runLater(1E3 * this._SpawnDelay, function (b) { 5 > h.engine.getGameAttribute("Score") ? a._EnemyChooser = f.randomInt(1, 3) : a._EnemyChooser = f.randomInt(1, 6); var c = h.engine.getGameAttribute("Score"), d = h.engine.getGameAttribute("Big_Boss_Order").charAt(0); c == 5 * (null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d))) ? a._EnemyChooser = 1 : (c = h.engine.getGameAttribute("Score"), d = h.engine.getGameAttribute("Big_Boss_Order").charAt(1), c == 5 * (null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d))) ? a._EnemyChooser = 2 : (c = h.engine.getGameAttribute("Score"), d = h.engine.getGameAttribute("Big_Boss_Order").charAt(2), c == 5 * (null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d))) ? a._EnemyChooser = 3 : (c = h.engine.getGameAttribute("Score"), d = h.engine.getGameAttribute("Big_Boss_Order").charAt(3), c == 5 * (null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d))) && (a._EnemyChooser = 4)))); a.actor.setAnimation("" + f.randomInt(0, 5)); if (2 == a._EnemyChooser) for (; "2" == a.actor.getAnimation();) a.actor.setAnimation("" + f.randomInt(0, 5)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var e = a.actor.getWidth() | 0; b < e;) { var g = b++; a._xSpawn = g; g = 0; for (var l = a.actor.getHeight() | 0; g < l;) c = g++, a._ySpawn = c, c = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0), a._GetPixel = "" + c, d = a._GetPixel, !f.isPrimitive(d) && ("string" == typeof d ? "" == w.__cast(d, String) : null == d) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Boss_Endless")) } f.setValueForScene("Scene_Manager", "_EndlessBossesSpawned", 1); f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(142), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, init: function () { this.actor.disableActorDrawing() }, forwardMessage: function (a) { }, __class__: sp }); var tp = function (a, b, c) { P.call(this, b); this.nameMap.h.Unlocked = "_Unlocked"; this._Unlocked = !1; this.nameMap.h.Unlocked_Y = "_UnlockedY"; this._UnlockedY = 0; this.nameMap.h.Keys_Collected = "_KeysCollected"; this._KeysCollected = 0; this.nameMap.h.Big_Boss_Level = "_BigBossLevel"; this._BigBossLevel = !1; this.nameMap.h.End_Level = "_EndLevel"; this._EndLevel = !1 }; k["scripts.ActorEvents_152"] = tp; tp.__name__ = "scripts.ActorEvents_152"; tp.__super__ = P; tp.prototype = u(P.prototype, { _Unlocked: null, _UnlockedY: null, _KeysCollected: null, _BigBossLevel: null, _EndLevel: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._Unlocked && 224 > this._UnlockedY) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; c = b = 255; var d = 0; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); b = b << 16 | c << 8 | d; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .3; c = this._UnlockedY; b = 20 * a.scaleX; c *= a.scaleY; d = 394 * a.scaleX; var e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, _event_Updating: function (a) { this.wrapper.enabled && 0 != this.actor.getZIndex() && this.actor.setZIndex(0) }, _customEvent_key_collected: function () { var a = this; this._KeysCollected += 1; if (!this._BigBossLevel && !this._EndLevel) { var b = this.actor, c = this.actor.getAnimation(); b.setAnimation("" + ((null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))) + 1)) } this._BigBossLevel && ("Boss_0" == this.actor.getAnimation() ? this.actor.setAnimation("Boss_1") : "Boss_1" == this.actor.getAnimation() ? this.actor.setAnimation("Boss_2") : "Boss_2" == this.actor.getAnimation() ? this.actor.setAnimation("Boss_3") : "Boss_3" == this.actor.getAnimation() && this.actor.setAnimation("Boss_4")); c = b = 255; var d = 51; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); this.actor.setFilter([f.createTintFilter(b << 16 | c << 8 | d, 1)]); f.runLater(200, function (b) { a.actor.clearFilters() }, this.actor); if (1 == this._KeysCollected && this._EndLevel) { ya.sendHappyTime(.1); this.actor.setAnimation("End_1"); f.shoutToScene("_customEvent_unlocked_door"); this._customEvent_unlocked_event(); b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.shout("_customEvent_weapon_inactive"); f.saveGame("mySave", function (a) { }) } if (4 == this._KeysCollected && !this._BigBossLevel) { ya.sendHappyTime(.3); f.shoutToScene("_customEvent_unlocked_door"); this._customEvent_unlocked_event(); b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.shout("_customEvent_weapon_inactive"); f.saveGame("mySave", function (a) { }) } if (5 == this._KeysCollected && this._BigBossLevel) { ya.sendHappyTime(.7); f.shoutToScene("_customEvent_spawn_upgrades"); f.shoutToScene("_customEvent_unlocked_door"); this._customEvent_unlocked_event(); b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.shout("_customEvent_weapon_inactive"); f.saveGame("mySave", function (a) { }) } }, _customEvent_big_boss_key_collected: function () { var a = this; this._KeysCollected += 1; if (this._BigBossLevel) for (var b = 0, c = f.getActorsOfType(f.getActorType(197)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || d.setAnimation(T.replace(d.getAnimation(), "0", "1")) } c = b = 255; d = 51; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); this.actor.setFilter([f.createTintFilter(b << 16 | c << 8 | d, 1)]); f.runLater(200, function (b) { a.actor.clearFilters() }, this.actor); if (4 == this._KeysCollected && !this._BigBossLevel) { ya.sendHappyTime(.3); f.shoutToScene("_customEvent_unlocked_door"); this._customEvent_unlocked_event(); b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.shout("_customEvent_weapon_inactive"); f.saveGame("mySave", function (a) { }) } if (5 == this._KeysCollected && this._BigBossLevel) { ya.sendHappyTime(.7); f.shoutToScene("_customEvent_spawn_upgrades"); f.shoutToScene("_customEvent_unlocked_door"); this._customEvent_unlocked_event(); b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.shout("_customEvent_weapon_inactive"); f.saveGame("mySave", function (a) { }) } }, _customEvent_unlocked_event: function () { var a = this; this._Unlocked || (this._Unlocked = !0, this._UnlockedY = 32, f.playSoundOnChannel(f.getSound(178), 5), f.runPeriodically(50, function (b) { if (a._UnlockedY < f.getSceneHeight()) { a._UnlockedY += 16; b = 0; for (var c = f.getActorsOfType(f.getActorType(154)); b < c.length;) { var d = c[b]; ++b; null != d && !d.dead && !d.recycled && d.getY() < a._UnlockedY + 16 && (d.setAnimation("2"), 4 == h.engine.getGameAttribute("Score") || 9 == h.engine.getGameAttribute("Score") || 14 == h.engine.getGameAttribute("Score") || 19 == h.engine.getGameAttribute("Score") || 24 == h.engine.getGameAttribute("Score")) && (f.createRecycledActor(f.getActorType(67), d.getX() + 4, d.getY() + 3, 0), f.getLastCreatedActor().say("ActorEvents_67", "_customEvent_splosion_door_skull")) } if (25 == h.engine.getGameAttribute("Score")) for (b = 0, c = f.getActorsOfType(f.getActorType(218)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._UnlockedY + 16 && d.setAnimation("2"); b = 0; for (c = w.__cast(f.getActorGroup(5), df).list; b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._UnlockedY + 16 && d.shout("_customEvent_die"); b = 0; for (c = w.__cast(f.getActorGroup(8), df).list; b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._UnlockedY + 16 && d.shout("_customEvent_die") } }, this.actor)) }, init: function () { 0 == h.engine.getGameAttribute("Score") % 5 && 0 != h.engine.getGameAttribute("Score") && 25 != h.engine.getGameAttribute("Score") && (this._BigBossLevel = !0, this.actor.setAnimation("Boss_0"), f.createRecycledActor(f.getActorType(197), this.actor.getX() + 14, this.actor.getY() + 8, 0)); 25 == h.engine.getGameAttribute("Score") && (this._EndLevel = !0, this.actor.setAnimation("End_0")); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: tp }); var up = function (a, b, c) { P.call(this, b); this.nameMap.h.Passed_Level = "_PassedLevel"; this._PassedLevel = !1; this.nameMap.h.Moving_To_Next_Scene = "_MovingToNextScene"; this._MovingToNextScene = !1 }; k["scripts.ActorEvents_154"] = up; up.__name__ = "scripts.ActorEvents_154"; up.__super__ = P; up.prototype = u(P.prototype, { _PassedLevel: null, _MovingToNextScene: null, _event_HitsHero: function (a) { if (this.wrapper.enabled) { var b = f.getActorType(18); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; b && this._PassedLevel && !this._MovingToNextScene && (ya.sendGameplayStop(), this._MovingToNextScene = !0, a.otherActor.disableBehavior("8 Way Movement"), a.otherActor.growTo(.5, .5, .5, Wa.linear), a.otherActor.fadeTo(0, .5, Wa.linear), a.otherActor.moveTo(this.actor.getXCenter() - 5, this.actor.getYCenter() + 3, .5, Wa.linear), f.shoutToScene("_customEvent_entered_door"), f.playSoundOnChannel(f.getSound(143), 4)) }, _customEvent_open_door: function () { this.actor.setAnimation("3"); f.playSoundOnChannel(f.getSound(139), 4); f.createRecycledActor(f.getActorType(180), this.actor.getXCenter() + f.randomInt(-2, 2), this.actor.getY() + f.randomInt(0, this.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), this.actor.getXCenter() + f.randomInt(-2, 2), this.actor.getY() + f.randomInt(0, this.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), this.actor.getXCenter() + f.randomInt(-2, 2), this.actor.getY() + f.randomInt(0, this.actor.getHeight() | 0), 0); f.createRecycledActor(f.getActorType(180), this.actor.getXCenter() + f.randomInt(-2, 2), this.actor.getY() + f.randomInt(0, this.actor.getHeight() | 0), 0) }, init: function () { var a = this; this.actor.setCurrentFrame(1); this.actor.moveToBottom(); f.runLater(50, function (b) { 4 != h.engine.getGameAttribute("Score") && 9 != h.engine.getGameAttribute("Score") && 14 != h.engine.getGameAttribute("Score") && 19 != h.engine.getGameAttribute("Score") && 24 != h.engine.getGameAttribute("Score") || a.actor.setAnimation("Skull") }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: up }); var vp = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_156"] = vp; vp.__name__ = "scripts.ActorEvents_156"; vp.__super__ = P; vp.prototype = u(P.prototype, { init: function () { "Title" == f.getCurrentSceneName() ? this.actor.setAnimation("7") : (5 >= h.engine.getGameAttribute("Score") && this.actor.setAnimation("1"), 6 <= h.engine.getGameAttribute("Score") && 10 >= h.engine.getGameAttribute("Score") && this.actor.setAnimation("2"), 11 <= h.engine.getGameAttribute("Score") && 15 >= h.engine.getGameAttribute("Score") && this.actor.setAnimation("3"), 16 <= h.engine.getGameAttribute("Score") && 20 >= h.engine.getGameAttribute("Score") && this.actor.setAnimation("4"), 21 <= h.engine.getGameAttribute("Score") && 24 >= h.engine.getGameAttribute("Score") && this.actor.setAnimation("5"), 25 == h.engine.getGameAttribute("Score") && this.actor.setAnimation("6")) }, forwardMessage: function (a) { }, __class__: vp }); var wp = function (a, b, c) { P.call(this, b); this.nameMap.h.Animation_1 = "_Animation1"; this._Animation1 = ""; this.nameMap.h.Img = "_Img"; this.nameMap.h.xSpawn = "_xSpawn"; this._xSpawn = 0; this.nameMap.h.ySpawn = "_ySpawn"; this._ySpawn = 0; this.nameMap.h.Get_Pixel = "_GetPixel"; this.nameMap.h["1_Offset"] = "_1Offset"; this._1Offset = 0 }; k["scripts.ActorEvents_158"] = wp; wp.__name__ = "scripts.ActorEvents_158"; wp.__super__ = P; wp.prototype = u(P.prototype, { _Animation1: null, _Img: null, _xSpawn: null, _ySpawn: null, _GetPixel: null, _1Offset: null, _customEvent_draw_score: function () { if (10 > h.engine.getGameAttribute("Score")) { this._Animation1 = "0"; this._Img = f.getImageForActor(this.actor); for (var a = 0, b = this.actor.getWidth() | 0; a < b;) { var c = a++; this._xSpawn = c; c = 0; for (var d = this.actor.getHeight() | 0; c < d;) { var e = c++; this._ySpawn = e; e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0); !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)) } } this.actor.setAnimation(("" + h.engine.getGameAttribute("Score")).charAt(0)); this._Animation1 = this.actor.getAnimation(); this._Img = f.getImageForActor(this.actor); a = 0; for (b = this.actor.getWidth() | 0; a < b;) for (this._xSpawn = c = a++, c = 0, d = this.actor.getHeight() | 0; c < d;) this._ySpawn = e = c++, e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0), !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)) } else if (10 <= h.engine.getGameAttribute("Score")) { this.actor.setAnimation(("" + h.engine.getGameAttribute("Score")).charAt(0)); this._Animation1 = this.actor.getAnimation(); "1" == this.actor.getAnimation() ? this._1Offset = 1 : this._1Offset = 0; this._Img = f.getImageForActor(this.actor); a = 0; for (b = this.actor.getWidth() | 0; a < b;) for (this._xSpawn = c = a++, c = 0, d = this.actor.getHeight() | 0; c < d;) this._ySpawn = e = c++, e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0), !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 8 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)); this.actor.setAnimation(("" + h.engine.getGameAttribute("Score")).charAt(1)); this._Animation1 = this.actor.getAnimation(); this._Img = f.getImageForActor(this.actor); a = 0; for (b = this.actor.getWidth() | 0; a < b;) for (this._xSpawn = c = a++, c = 0, d = this.actor.getHeight() | 0; c < d;) this._ySpawn = e = c++, e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0), !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 15) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)) } }, _customEvent_draw_25_score: function () { this.actor.setAnimation(("" + h.engine.getGameAttribute("Score")).charAt(0)); this._Animation1 = this.actor.getAnimation(); this._Img = f.getImageForActor(this.actor); for (var a = 0, b = this.actor.getWidth() | 0; a < b;) { var c = a++; this._xSpawn = c; c = 0; for (var d = this.actor.getHeight() | 0; c < d;) { var e = c++; this._ySpawn = e; e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0); !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 7 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 7 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 7 + this._1Offset) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)) } } this.actor.setAnimation(("" + h.engine.getGameAttribute("Score")).charAt(1)); this._Animation1 = this.actor.getAnimation(); this._Img = f.getImageForActor(this.actor); a = 0; for (b = this.actor.getWidth() | 0; a < b;) for (this._xSpawn = c = a++, c = 0, d = this.actor.getHeight() | 0; c < d;) this._ySpawn = e = c++, e = this._GetPixel = "" + f.imageGetPixel(this._Img, this._xSpawn | 0, this._ySpawn | 0), !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "5197647" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "16777215" != "" + z.string(this._GetPixel) ? (e = this._GetPixel, !f.isPrimitive(e) && ("string" == typeof e ? "" == w.__cast(e, String) : null == e) || "7960953" != "" + z.string(this._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 16) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 2))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 16) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 1))) : (f.createRecycledActorOnLayer(f.getActorType(161), (this._xSpawn + 16) * f.getTileWidth(), (this._ySpawn + 6) * f.getTileHeight(), f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_161", "_TileID", 0)) }, init: function () { var a = this; this.actor.disableActorDrawing(); f.runLater(0, function (b) { 25 != h.engine.getGameAttribute("Score") ? a._customEvent_draw_score() : a._customEvent_draw_25_score() }, this.actor) }, forwardMessage: function (a) { }, __class__: wp }); var xp = function (a, b, c) { P.call(this, b); this.nameMap.h.Tile_ID = "_TileID"; this._TileID = 0 }; k["scripts.ActorEvents_161"] = xp; xp.__name__ = "scripts.ActorEvents_161"; xp.__super__ = P; xp.prototype = u(P.prototype, { _TileID: null, init: function () { var a = this; this.actor.disableActorDrawing(); f.runLater(1E3 * f.randomFloatBetween(.5, .8), function (b) { 1 != a._TileID && a.actor.enableActorDrawing(); a.actor.setAnimation("1"); f.runLater(1E3 * f.randomFloatBetween(.2, .4), function (b) { a.actor.setAnimation("0"); f.runLater(100, function (b) { f.setTileAt(f.getTilePosition(1, a.actor.getY() + 2), f.getTilePosition(0, a.actor.getX()), f.engine.getLayerById(0), 160, a._TileID | 0); f.recycleActor(a.actor) }, a.actor) }, a.actor) }, this.actor) }, forwardMessage: function (a) { }, __class__: xp }); var yp = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_163"] = yp; yp.__name__ = "scripts.ActorEvents_163"; yp.__super__ = P; yp.prototype = u(P.prototype, { init: function () { var a = this; this.actor.setAnimation("" + f.randomInt(0, 3)); f.runLater(1E3 * f.randomFloatBetween(3, 4), function (b) { a.actor.setAnimation("" + f.randomInt(4, 5)) }, this.actor); f.runLater(1E3 * f.randomFloatBetween(4.5, 5), function (b) { f.recycleActor(a.actor) }, this.actor) }, forwardMessage: function (a) { }, __class__: yp }); var zp = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_165"] = zp; zp.__name__ = "scripts.ActorEvents_165"; zp.__super__ = P; zp.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: zp }); var Ap = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_167"] = Ap; Ap.__name__ = "scripts.ActorEvents_167"; Ap.__super__ = P; Ap.prototype = u(P.prototype, { _event_Updating: function (a) { var b = this; if (this.wrapper.enabled) { a = 0; for (var c = f.getActorsOfType(f.getActorType(18)); a < c.length;) { var d = [c[a]]; ++a; null != d[0] && !d[0].dead && !d[0].recycled && this.actor.getY() >= d[0].getY() && 0 < this.actor.getYVelocity() && (this.actor.setYVelocity(0), this.actor.setAnimation("1"), f.playSoundOnChannel(f.getSound(137), 4), f.startShakingScreen(.005, .25), f.createRecycledActor(f.getActorType(180), this.actor.getX() + f.randomInt(-2, 16), this.actor.getY() + f.randomInt(12, 14), 0), f.createRecycledActor(f.getActorType(180), this.actor.getX() + f.randomInt(-2, 16), this.actor.getY() + f.randomInt(12, 14), 0), f.createRecycledActor(f.getActorType(180), this.actor.getX() + f.randomInt(-2, 16), this.actor.getY() + f.randomInt(12, 14), 0), f.createRecycledActor(f.getActorType(180), this.actor.getX() + f.randomInt(-2, 16), this.actor.getY() + f.randomInt(12, 14), 0), f.runLater(1E3, function (a) { return function (c) { "End" != f.getCurrentSceneName() && ya.sendGameplayStart(); f.isKeyDown("up") && (f.simulateKeyRelease("up"), f.simulateKeyPress("up")); f.isKeyDown("down") && (f.simulateKeyRelease("down"), f.simulateKeyPress("down")); f.isKeyDown("left") && (f.simulateKeyRelease("left"), f.simulateKeyPress("left")); f.isKeyDown("right") && (f.simulateKeyRelease("right"), f.simulateKeyPress("right")); a[0].enableActorDrawing(); a[0].enableBehavior("8 Way Movement Custom"); f.setValueForScene("Scene_Manager", "_HeroReady", 1); f.setValueForScene("Tutorial_Manager", "_HeroReady", 1); f.recycleActor(b.actor) } }(d), this.actor)) } } }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); f.runLater(1E3, function (b) { a.actor.setYVelocity(25); f.playSoundOnChannel(f.getSound(143), 4) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Ap }); var Bp = function (a, b, c) { P.call(this, b); this.nameMap.h.Pause_Message = "_PauseMessage"; this.nameMap.h.Game_Paused = "_GamePaused"; this._GamePaused = !1; this.nameMap.h.Game_Over = "_GameOver"; this._GameOver = !1 }; k["scripts.ActorEvents_170"] = Bp; Bp.__name__ = "scripts.ActorEvents_170"; Bp.__super__ = P; Bp.prototype = u(P.prototype, { _PauseMessage: null, _GamePaused: null, _GameOver: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._GamePaused) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = f.getFont(172); null != b && b != a.font && (a.font = b); b = (f.getSceneWidth() - a.font.getTextWidth("PAUSED") / h.SCALE) / 2; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 55 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "PAUSED:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { g = a.font.font.getTextWidth("PAUSED", a.font.fontScale); var l = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "PAUSED", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } }, _event_OnActor: function (a) { this.wrapper.enabled && 3 == a && (this._GameOver || this._customEvent_pause_unpause()) }, _event_Esc: function (a, b) { this.wrapper.enabled && a && (this._GameOver || this._customEvent_pause_unpause()) }, _customEvent_pause_unpause: function () { if (f.engine.isPaused()) { h.engine.gameAttributes.h.adIsPlaying = !0; h.engine.gameAttributes.h.adIsPlaying = !1; f.engine.unpause(); ya.sendGameplayStart(); this._GamePaused = !1; this.actor.setAnimation("0"); for (var a = 0, b = f.getActorsOfType(f.getActorType(174)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } a = 0; for (b = f.getActorsOfType(f.getActorType(205)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || f.recycleActor(c) } else f.engine.isPaused() || (ya.sendGameplayStop(), this._GamePaused = !0, this.actor.setAnimation("1"), f.createRecycledActor(f.getActorType(174), 74, 188, 0), f.createRecycledActor(f.getActorType(205), 294, 188, 0), f.engine.pause()) }, init: function () { this._PauseMessage = []; this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenMousedOver, q(this, this._event_OnActor)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("esc"), q(this, this._event_Esc)) }, forwardMessage: function (a) { }, __class__: Bp }); var Cp = function (a, b, c) { P.call(this, b); this.nameMap.h.Active = "_Active"; this._Active = !1 }; k["scripts.ActorEvents_174"] = Cp; Cp.__name__ = "scripts.ActorEvents_174"; Cp.__super__ = P; Cp.prototype = u(P.prototype, { _Active: null, _event_Keyboard: function (a, b) { this.wrapper.enabled && a && !this._Active && (this._Active = !0, this.actor.setAnimation("1")) }, _event_Keyboard2: function (a, b) { this.wrapper.enabled && a && this._Active && (this._Active = !1, this.actor.setAnimation("0")) }, _event_Keyboard3: function (a, b) { if (this.wrapper.enabled && a && this._Active && !h.engine.getGameAttribute("adIsPlaying")) { this.actor.setAnimation("2"); h.engine.gameAttributes.h.Score = 0; h.engine.gameAttributes.h.Speedrun_Timer = 0; a = zb.get().scenes.h[15].getID(); var c = b = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, e, f.createFadeIn(.3, b << 16 | c << 8 | d)) } }, _event_MouseOver: function (a) { this.wrapper.enabled && 1 == a && "1" != this.actor.getAnimation() && this.actor.setAnimation("1") }, _event_MouseExit: function (a) { this.wrapper.enabled && -1 == a && (this._Active || "0" == this.actor.getAnimation() || this.actor.setAnimation("0")) }, _event_MouseClick: function (a) { if (this.wrapper.enabled && 3 == a && !h.engine.getGameAttribute("adIsPlaying")) { this.actor.setAnimation("2"); h.engine.gameAttributes.h.Score = 0; a = zb.get().scenes.h[15].getID(); var b = 204, c = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, e, f.createFadeIn(.3, b << 16 | c << 8 | d)) } }, init: function () { this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("left"), q(this, this._event_Keyboard)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("right"), q(this, this._event_Keyboard2)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("enter"), q(this, this._event_Keyboard3)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseOver)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseExit)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseClick)) }, forwardMessage: function (a) { }, __class__: Cp }); var Dp = function (a, b, c) { P.call(this, b); this.nameMap.h.Active = "_Active"; this._Active = !1 }; k["scripts.ActorEvents_176"] = Dp; Dp.__name__ = "scripts.ActorEvents_176"; Dp.__super__ = P; Dp.prototype = u(P.prototype, { _Active: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Active ? this.actor.setAnimation("1") : this.actor.setAnimation("0")) }, _event_Left: function (a, b) { if (this.wrapper.enabled && a) for (a = 0, b = f.getActorsOfType(f.getActorType(250)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Active = !this._Active) } }, _event_Right: function (a, b) { if (this.wrapper.enabled && a) for (a = 0, b = f.getActorsOfType(f.getActorType(250)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Active = !this._Active) } }, _event_Enter: function (a, b) { if (this.wrapper.enabled && a && !f.engine.isPaused() && this._Active && !h.engine.getGameAttribute("adIsPlaying")) { ya.killBanner(); this.actor.setAnimation("2"); h.engine.gameAttributes.h.Speedrun_Timer = 0; h.engine.getGameAttribute("Score") > h.engine.getGameAttribute("High_Score") && (a = h.engine, b = h.engine.getGameAttribute("Score"), a.gameAttributes.h.High_Score = b); h.engine.gameAttributes.h.Score = 0; h.engine.gameAttributes.h.Big_Boss_Order = "asdf"; h.engine.gameAttributes.h.Upgrade_Homing = !1; h.engine.gameAttributes.h.Upgrade_Machinegun = !1; h.engine.gameAttributes.h.Upgrade_Mines = !1; h.engine.gameAttributes.h.Upgrade_Minetrail = !1; h.engine.gameAttributes.h.Upgrade_Orbit = !1; h.engine.gameAttributes.h.Upgrade_Quad = !1; h.engine.gameAttributes.h.Upgrade_Shotgun = !1; h.engine.gameAttributes.h.Upgrade_Spread = !1; a = zb.get().scenes.h[15].getID(); var c = b = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, e, f.createFadeIn(.3, b << 16 | c << 8 | d)) } }, _event_MouseOver: function (a) { if (this.wrapper.enabled && 1 == a) { this._Active = !0; a = 0; for (var b = f.getActorsOfType(f.getActorType(250)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setValue("ActorEvents_250", "_Active", !1) } } }, _event_MouseClick: function (a) { if (this.wrapper.enabled && 3 == a && !f.engine.isPaused()) { ya.killBanner(); this.actor.setAnimation("2"); h.engine.gameAttributes.h.Speedrun_Timer = 0; if (h.engine.getGameAttribute("Score") > h.engine.getGameAttribute("High_Score")) { a = h.engine; var b = h.engine.getGameAttribute("Score"); a.gameAttributes.h.High_Score = b } h.engine.gameAttributes.h.Score = 0; h.engine.gameAttributes.h.Big_Boss_Order = "asdf"; h.engine.gameAttributes.h.Upgrade_Homing = !1; h.engine.gameAttributes.h.Upgrade_Machinegun = !1; h.engine.gameAttributes.h.Upgrade_Mines = !1; h.engine.gameAttributes.h.Upgrade_Minetrail = !1; h.engine.gameAttributes.h.Upgrade_Orbit = !1; h.engine.gameAttributes.h.Upgrade_Quad = !1; h.engine.gameAttributes.h.Upgrade_Shotgun = !1; h.engine.gameAttributes.h.Upgrade_Spread = !1; a = zb.get().scenes.h[15].getID(); var c = b = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, e, f.createFadeIn(.3, b << 16 | c << 8 | d)) } }, init: function () { this._Active = !1; this.actor.setAnimation("0"); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("left"), q(this, this._event_Left)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("right"), q(this, this._event_Right)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("enter"), q(this, this._event_Enter)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseOver)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseClick)) }, forwardMessage: function (a) { }, __class__: Dp }); var Ep = function (a, b, c) { P.call(this, b); this.nameMap.h.Played_Footstep = "_PlayedFootstep"; this._PlayedFootstep = !1; this.nameMap.h.Lives = "_Lives"; this._Lives = 0; this.nameMap.h.Got_Hit_Direction = "_GotHitDirection"; this._GotHitDirection = 0; this.nameMap.h.Death_Screen_Flash = "_DeathScreenFlash"; this._DeathScreenFlash = 0; this.nameMap.h.Hit_Screen_Flash = "_HitScreenFlash"; this._HitScreenFlash = 0; this.nameMap.h.Got_Hit = "_GotHit"; this._GotHit = !1; this.nameMap.h.Hit_Blink = "_HitBlink"; this._HitBlink = !1; this.nameMap.h.Hit_Blink_B = "_HitBlinkB"; this._HitBlinkB = !1 }; k["scripts.ActorEvents_18"] = Ep; Ep.__name__ = "scripts.ActorEvents_18"; Ep.__super__ = P; Ep.prototype = u(P.prototype, { _PlayedFootstep: null, _Lives: null, _GotHitDirection: null, _DeathScreenFlash: null, _HitScreenFlash: null, _GotHit: null, _HitBlink: null, _HitBlinkB: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && 0 < this._HitScreenFlash) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = 208; c = 90; var d = 94; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); b = b << 16 | c << 8 | d; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = this._HitScreenFlash / 100; c = b = 0; d = f.getScreenWidth(); var e = f.getScreenHeight(); b *= a.scaleX; c *= a.scaleY; d *= a.scaleX; e *= a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this.actor.isBehaviorEnabled("8 Way Movement Custom") && (f.isKeyDown("up") || f.isKeyDown("down") || f.isKeyDown("left") || f.isKeyDown("right")) && !this._PlayedFootstep && (this._PlayedFootstep = !0, f.playSoundOnChannel(f.getSound(112), 1), f.createRecycledActorOnLayer(f.getActorType(180), this.actor.getX() + f.randomInt(3, 6), this.actor.getY() + f.randomInt(9, 14), f.engine.getLayerById(0)), f.runLater(250, function (a) { b._PlayedFootstep = !1 }, this.actor)), this._GotHit && (this._HitBlink || this._HitBlinkB || (this._HitBlink = !0, this.actor.disableActorDrawing(), f.runLater(50, function (a) { b._HitBlinkB = !0 }, this.actor)), this._HitBlink && this._HitBlinkB && (this._HitBlink = !1, this.actor.enableActorDrawing(), f.runLater(50, function (a) { b._HitBlinkB = !1 }, this.actor)))) }, _customEvent_got_hit: function () { var a = this; if (!this._GotHit) { var b = h.engine, c = h.engine.getGameAttribute("Lives") - 1; b.gameAttributes.h.Lives = c; this._GotHit = !0; f.runLater(1700, function (b) { a._GotHit = !1; a.actor.enableActorDrawing() }, this.actor); this.actor.applyImpulseInDirection(this._GotHitDirection, 300); b = 0; for (c = f.getActorsOfType(f.getActorType(188)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || d.shout("_customEvent_got_hit") } f.playSoundOnChannel(f.getSound(190), 1); 0 == h.engine.getGameAttribute("Lives") && (ya.sendGameplayStop(), f.createRecycledActor(f.getActorType(67), this.actor.getX(), this.actor.getY(), 0), f.getLastCreatedActor().shout("_customEvent_splosion_hero"), f.runLater(50, function (b) { f.shoutToScene("_customEvent_game_over"); f.createRecycledActor(f.getActorType(132), a.actor.getX() - 2, a.actor.getY() + 3, 0); f.getLastCreatedActor().applyImpulseInDirection(a._GotHitDirection, 20); a.actor.disableActorDrawing(); f.runLater(100, function (b) { f.recycleActor(a.actor) }, a.actor) }, this.actor)); f.runLater(10, function (a) { f.startShakingScreen(.02, .5) }, this.actor) } }, init: function () { this.actor.disableActorDrawing(); this.actor.disableBehavior("8 Way Movement Custom"); window.navigator.maxTouchPoints || "ontouchstart" in document ? (this.actor.enableBehavior("Joystick_Manager_Actor"), this.actor.say("Joystick_Manager_Actor", "_customEvent_setup")) : this.actor.disableBehavior("Joystick_Manager_Actor"); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Ep }); var Fp = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_180"] = Fp; Fp.__name__ = "scripts.ActorEvents_180"; Fp.__super__ = P; Fp.prototype = u(P.prototype, { init: function () { var a = this; f.runLater(1E3 * f.randomFloatBetween(.3, .4), function (b) { a.actor.setCurrentFrame(f.randomInt(1, 6)) }, this.actor); f.runLater(1E3 * f.randomFloatBetween(.7, .8), function (b) { a.actor.setCurrentFrame(f.randomInt(7, 10)) }, this.actor); f.runLater(1E3, function (b) { f.recycleActor(a.actor) }, this.actor) }, forwardMessage: function (a) { }, __class__: Fp }); var Gp = function (a, b, c) { P.call(this, b); this.nameMap.h.Level_Assignment = "_LevelAssignment"; this._LevelAssignment = 0; this.nameMap.h.Level_Size = "_LevelSize"; this._LevelSize = ""; this.nameMap.h.Level_Status = "_LevelStatus"; this._LevelStatus = "" }; k["scripts.ActorEvents_182"] = Gp; Gp.__name__ = "scripts.ActorEvents_182"; Gp.__super__ = P; Gp.prototype = u(P.prototype, { _LevelAssignment: null, _LevelSize: null, _LevelStatus: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && "Map_Top" == this.actor.getAnimation()) { b = f.getFont(255); null != b && b != a.font && (a.font = b); a.alpha = .5; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -1 * a.scaleX, c = a.y + -9 * a.scaleY) : (b = a.x + -1 * a.scaleX - h.cameraX, c = a.y + -9 * a.scaleY - h.cameraY) : (b = a.x + -1 * a.scaleX, c = a.y + -9 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "MAP:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { g = a.font.font.getTextWidth("MAP", a.font.fontScale); var l = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "MAP", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } }, init: function () { var a = this; this._LevelSize = "Sm_"; this._LevelStatus = "Default"; f.runLater(10, function (b) { 0 == a._LevelAssignment && (a.actor.setAnimation("Map_Top"), f.createRecycledActor(f.getActorType(182), a.actor.getX(), a.actor.getY() + 7, 0), f.getLastCreatedActor().setValue("ActorEvents_182", "_LevelAssignment", a._LevelAssignment + 1)); 25 != a._LevelAssignment && 0 != a._LevelAssignment && (f.createRecycledActor(f.getActorType(182), a.actor.getX(), a.actor.getY() + 7, 0), f.getLastCreatedActor().setValue("ActorEvents_182", "_LevelAssignment", a._LevelAssignment + 1), 0 == a._LevelAssignment % 5 && (a._LevelSize = "Med_", f.getLastCreatedActor().setY(f.getLastCreatedActor().getY() + 3))); 25 == a._LevelAssignment && (a._LevelSize = "Lrg_"); 0 != a._LevelAssignment && (a._LevelAssignment == h.engine.getGameAttribute("High_Score") - 1 && (a._LevelStatus = "Best", f.createRecycledActor(f.getActorType(186), a.actor.getX() - 6, a.actor.getY() + 4, 0)), a._LevelAssignment < h.engine.getGameAttribute("Score") ? a._LevelStatus = "Passed" : a._LevelAssignment == h.engine.getGameAttribute("Score") && (a._LevelStatus = "Active", f.createRecycledActor(f.getActorType(184), a.actor.getX() + 15, a.actor.getY() + 2, 0)), 26 == h.engine.getGameAttribute("Score") && (a._LevelStatus = "Passed"), a.actor.setAnimation(a._LevelSize + a._LevelStatus)) }, this.actor); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: Gp }); var Hp = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_184"] = Hp; Hp.__name__ = "scripts.ActorEvents_184"; Hp.__super__ = P; Hp.prototype = u(P.prototype, { init: function () { var a = this; f.runPeriodically(500, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") && "1" != a.actor.getAnimation() && a.actor.setAnimation("1") }, this.actor) }, forwardMessage: function (a) { }, __class__: Hp }); var Ip = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_186"] = Ip; Ip.__name__ = "scripts.ActorEvents_186"; Ip.__super__ = P; Ip.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: Ip }); var Jp = function (a, b, c) { P.call(this, b); this.nameMap.h.Life_Assignment = "_LifeAssignment"; this._LifeAssignment = 0; this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Timer_Mark = "_TimerMark"; this._TimerMark = 0; this.nameMap.h.Hero_Got_Hit = "_HeroGotHit"; this._HeroGotHit = !1 }; k["scripts.ActorEvents_188"] = Jp; Jp.__name__ = "scripts.ActorEvents_188"; Jp.__super__ = P; Jp.prototype = u(P.prototype, { _LifeAssignment: null, _Timer: null, _TimerMark: null, _HeroGotHit: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), this._HeroGotHit && 1E3 <= this._Timer && "Flash" == this.actor.getAnimation() && (this.actor.setAnimation("0"), this._HeroGotHit = !1)) }, _customEvent_got_hit: function () { this._LifeAssignment == h.engine.getGameAttribute("Lives") + 1 && (this._HeroGotHit = !0, this._Timer = 0, this.actor.setAnimation("Flash")) }, init: function () { var a = this; f.runLater(10, function (b) { 0 == a._LifeAssignment && (a._LifeAssignment = 1, a.actor.setAnimation("1"), f.createRecycledActor(f.getActorType(188), a.actor.getX() + (a.actor.getWidth() + 1), a.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_188", "_LifeAssignment", 2), f.createRecycledActor(f.getActorType(188), f.getLastCreatedActor().getX() + (f.getLastCreatedActor().getWidth() + 1), a.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_188", "_LifeAssignment", 3)); a._LifeAssignment <= h.engine.getGameAttribute("Lives") && a.actor.setAnimation("1") }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Jp }); var Kp = function (a, b, c) { P.call(this, b); this.nameMap.h.Shooting = "_Shooting"; this._Shooting = !1; this.nameMap.h.Shooting_Direction = "_ShootingDirection"; this._ShootingDirection = 0; this.nameMap.h.Shooting_Ready = "_ShootingReady"; this._ShootingReady = !1; this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Might_Be_Stuck = "_MightBeStuck"; this._MightBeStuck = !1 }; k["scripts.ActorEvents_191"] = Kp; Kp.__name__ = "scripts.ActorEvents_191"; Kp.__super__ = P; Kp.prototype = u(P.prototype, { _Shooting: null, _ShootingDirection: null, _ShootingReady: null, _Timer: null, _MightBeStuck: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this._Timer += f.getStepSize(), this._ShootingReady && !this._Shooting && 48 < this.actor.getX() && this.actor.getX() < f.getSceneWidth() - (48 + this.actor.getWidth()) && 48 < this.actor.getY() && this.actor.getY() < f.getSceneHeight() - (40 + this.actor.getHeight()) && (this._Timer = 0, this._ShootingReady = !1, this._Shooting = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this._Shooting && 10 == this._Timer && (f.createRecycledActor(f.getActorType(81), this.actor.getXCenter() - 16, this.actor.getY() - 24, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getXCenter() - 16, this.actor.getY() + (this.actor.getHeight() - 8), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() - 24, this.actor.getYCenter() - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() + (this.actor.getWidth() - 8), this.actor.getYCenter() - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), this._Shooting && 3E3 == this._Timer && (this._Shooting = !1, 0 == this.actor.getXVelocity() && 0 == this.actor.getYVelocity() && this.actor.setVelocity(f.randomInt(0, 360), 6)), 6E3 == this._Timer && (this._ShootingReady = !0), 48 > this.actor.getX() && !this._MightBeStuck && (this._MightBeStuck = !0, f.runLater(2E3, function (a) { b._MightBeStuck = !0; 48 > b.actor.getX() && b.actor.setVelocity(f.randomInt(320, 400), 6) }, this.actor)), this.actor.getX() > f.getSceneWidth() - (48 + this.actor.getWidth()) && (this._MightBeStuck = !0, f.runLater(2E3, function (a) { b._MightBeStuck = !0; b.actor.getX() > f.getSceneWidth() - (48 + b.actor.getWidth()) && b.actor.setVelocity(f.randomInt(140, 220), 6) }, this.actor)), 48 > this.actor.getY() && (this._MightBeStuck = !0, f.runLater(2E3, function (a) { b._MightBeStuck = !0; 48 > b.actor.getY() && b.actor.setVelocity(f.randomInt(410, 490), 6) }, this.actor)), this.actor.getY() > f.getSceneHeight() - (40 + this.actor.getHeight()) && (this._MightBeStuck = !0, f.runLater(2E3, function (a) { b._MightBeStuck = !0; b.actor.getY() > f.getSceneHeight() - (40 + b.actor.getHeight()) && b.actor.setVelocity(f.randomInt(230, 310), 6) }, this.actor))) }, init: function () { var a = this; this.actor.setValue("Enemy_Manager", "_HitPoints", 12); this.actor.set_alpha(.5); this.actor.setX((f.getSceneWidth() - this.actor.getWidth()) / 2); f.runLater(500, function (b) { a.actor.set_alpha(1); a.actor.setVelocity(f.randomInt(0, 360), 6) }, this.actor); f.runLater(6E3, function (b) { a._ShootingReady = !0 }, this.actor); f.runPeriodically(2E3, function (b) { a._ShootingReady || a._Shooting || 0 == a.actor.getYVelocity() && a.actor.setVelocity(f.randomInt(0, 360), 6) }, this.actor); h.engine.gameAttributes.h.BG_Pattern_Bounce = !0; f.createRecycledActorOnLayer(f.getActorType(258), 0, 0, f.engine.getLayerById(6)); f.getLastCreatedActor().moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Kp }); var Lp = function (a, b, c) { P.call(this, b); this.nameMap.h.Stopped = "_Stopped"; this._Stopped = !1; this.nameMap.h.Spawn = "_Spawn"; this.nameMap.h.Dying = "_Dying"; this._Dying = !1; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0 }; k["scripts.ActorEvents_193"] = Lp; Lp.__name__ = "scripts.ActorEvents_193"; Lp.__super__ = P; Lp.prototype = u(P.prototype, { _Stopped: null, _Spawn: null, _Dying: null, _MyDirection: null, init: function () { var a = this; f.runPeriodically(400, function (b) { f.createRecycledActor(f.getActorType(195), a.actor.getX(), a.actor.getY(), 0) }, this.actor) }, forwardMessage: function (a) { }, __class__: Lp }); var Mp = function (a, b, c) { P.call(this, b); this.nameMap.h.My_Boss = "_MyBoss"; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Death_Delay_Timer = "_DeathDelayTimer"; this._DeathDelayTimer = 0 }; k["scripts.ActorEvents_195"] = Mp; Mp.__name__ = "scripts.ActorEvents_195"; Mp.__super__ = P; Mp.prototype = u(P.prototype, { _MyBoss: null, _Activated: null, _DeathDelayTimer: null, _event_SetupBoss: function (a) { if (this.wrapper.enabled) { var b = f.getActorGroup(5); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; !b || a.otherActor.getType() != f.getActorType(77) && a.otherActor.getType() != f.getActorType(193) || (b = this._MyBoss, f.isPrimitive(b) || ("string" == typeof b ? "" != w.__cast(b, String) : null != b) || this._Activated || (this._Activated = !0, this._MyBoss = a.otherActor)) }, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this._Activated && !this._MyBoss.isAlive() && (this._Activated = !1, f.runLater(1E3 * this._DeathDelayTimer, function (a) { b.actor.shout("_customEvent_die") }, this.actor)), "1" == this.actor.getAnimation() && 3 == this.actor.getCurrentFrame() && f.recycleActor(this.actor)) }, init: function () { var a = this, b = h.engine, c = h.engine.getGameAttribute("Enemies_Live") - 1; b.gameAttributes.h.Enemies_Live = c; f.runPeriodically(400, function (b) { a._DeathDelayTimer += .1 }, this.actor); f.runLater(1100, function (b) { a.actor.setAnimation("1") }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_SetupBoss)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Mp }); var Np = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_197"] = Np; Np.__name__ = "scripts.ActorEvents_197"; Np.__super__ = P; Np.prototype = u(P.prototype, { init: function () { var a = h.engine.getGameAttribute("Score"), b = h.engine.getGameAttribute("Big_Boss_Order").charAt(0); a == 5 * (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) ? this.actor.setAnimation("Big_Bounce_0") : (a = h.engine.getGameAttribute("Score"), b = h.engine.getGameAttribute("Big_Boss_Order").charAt(1), a == 5 * (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) ? this.actor.setAnimation("Big_Grid_0") : (a = h.engine.getGameAttribute("Score"), b = h.engine.getGameAttribute("Big_Boss_Order").charAt(2), a == 5 * (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) ? this.actor.setAnimation("Big_Diag_0") : (a = h.engine.getGameAttribute("Score"), b = h.engine.getGameAttribute("Big_Boss_Order").charAt(3), a == 5 * (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) && this.actor.setAnimation("Big_Follow_0")))) }, forwardMessage: function (a) { }, __class__: Np }); var Op = function (a, b, c) { P.call(this, b); this.nameMap.h.Change_Directions = "_ChangeDirections"; this._ChangeDirections = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Starting_Direction = "_StartingDirection"; this._StartingDirection = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Shooting_Ready = "_ShootingReady"; this._ShootingReady = !1; this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Shooting = "_Shooting"; this._Shooting = !1; this.nameMap.h.Ypos = "_Ypos"; this._Ypos = 0 }; k["scripts.ActorEvents_199"] = Op; Op.__name__ = "scripts.ActorEvents_199"; Op.__super__ = P; Op.prototype = u(P.prototype, { _ChangeDirections: null, _Hero: null, _Speed: null, _CurrentDirection: null, _MaxSpeed: null, _StartingDirection: null, _Activated: null, _ShootingReady: null, _Timer: null, _Shooting: null, _Ypos: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), this._ShootingReady && !this._Shooting && 80 < this.actor.getX() && this.actor.getX() < f.getSceneWidth() - (80 + this.actor.getWidth()) && (this._Timer = 0, this._ShootingReady = !1, this._Shooting = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this._Shooting && 10 == this._Timer && (f.createRecycledActor(f.getActorType(81), this.actor.getX() - 12, this.actor.getY() - 24, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 3), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() - 12, this.actor.getY() + (this.actor.getHeight() - 8), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 3), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() + (this.actor.getWidth() - 20), this.actor.getY() - 24, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 3), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() + (this.actor.getWidth() - 20), this.actor.getY() + (this.actor.getHeight() - 8), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 3), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), this._Shooting && 3E3 == this._Timer && (this._Shooting = !1), 6E3 == this._Timer && (this._ShootingReady = !0), 64 >= this.actor.getX() && (this._CurrentDirection = "Right"), 332 <= this.actor.getX() && (this._CurrentDirection = "Left"), this._Activated && !this._Shooting && ("Up" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, -1, 1)) : "Down" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, 1, 1)) : "Left" == this._CurrentDirection ? (this.actor.setYVelocity(0), this.actor.applyImpulse(-1, 0, 1)) : "Right" == this._CurrentDirection && (this.actor.setYVelocity(0), this.actor.applyImpulse(1, 0, 1))), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed), this.actor.getY() != this._Ypos && this.actor.setY(this._Ypos)) }, init: function () { var a = this; this._Ypos = this.actor.getY(); for (var b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = this._Speed = 4; this._StartingDirection = f.randomInt(1, 2); 1 == this._StartingDirection ? this._CurrentDirection = "Left" : 2 == this._StartingDirection && (this._CurrentDirection = "Right"); f.runLater(500, function (b) { a._Activated = !0 }, this.actor); f.runLater(5E3, function (b) { a._ShootingReady = !0 }, this.actor); h.engine.gameAttributes.h.BG_Pattern_Grid = !0; f.createRecycledActorOnLayer(f.getActorType(260), 0, 0, f.engine.getLayerById(6)); f.getLastCreatedActor().moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Op }); var Pp = function (a, b, c) { P.call(this, b); this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Shooting_Ready = "_ShootingReady"; this._ShootingReady = !1; this.nameMap.h.Shooting = "_Shooting"; this._Shooting = !1 }; k["scripts.ActorEvents_201"] = Pp; Pp.__name__ = "scripts.ActorEvents_201"; Pp.__super__ = P; Pp.prototype = u(P.prototype, { _Timer: null, _ShootingReady: null, _Shooting: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), this._ShootingReady && !this._Shooting && (this.actor.disableBehavior("Follow Target CUSTOM"), this._Timer = 0, this._ShootingReady = !1, this._Shooting = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this._Shooting && 10 == this._Timer && (f.createRecycledActor(f.getActorType(81), 48, 32, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 8), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), 368, 32, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 8), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), 48, 208, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 8), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), 368, 208, 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 8), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), this._Shooting && 3E3 == this._Timer && (this._Shooting = !1, this.actor.enableBehavior("Follow Target CUSTOM")), 7E3 == this._Timer && (this._ShootingReady = !0), this._Shooting && (this.actor.setXVelocity(0), this.actor.setYVelocity(0))) }, init: function () { this.actor.setX((f.getSceneWidth() - this.actor.getWidth()) / 2); h.engine.gameAttributes.h.BG_Pattern_Follow = !0; f.createRecycledActorOnLayer(f.getActorType(264), 0, 0, f.engine.getLayerById(6)); f.getLastCreatedActor().moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Pp }); var Qp = function (a, b, c) { P.call(this, b); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0; this.nameMap.h.Warping = "_Warping"; this._Warping = !1; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Shooting_Ready = "_ShootingReady"; this._ShootingReady = !1; this.nameMap.h.Shooting = "_Shooting"; this._Shooting = !1 }; k["scripts.ActorEvents_203"] = Qp; Qp.__name__ = "scripts.ActorEvents_203"; Qp.__super__ = P; Qp.prototype = u(P.prototype, { _RNG: null, _MyDirection: null, _Warping: null, _Speed: null, _Timer: null, _ShootingReady: null, _Shooting: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && (this._Warping || (31 == this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setY(208), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 209 == this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setY(32), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 31 == this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setX(352), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 353 == this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setX(32), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor))), this._Timer += f.getStepSize(), this._ShootingReady && !this._Shooting && 64 < this.actor.getX() && this.actor.getX() < f.getSceneWidth() - (64 + this.actor.getWidth()) && (this._Timer = 0, this._ShootingReady = !1, this._Shooting = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this._Shooting && 10 == this._Timer && (f.createRecycledActor(f.getActorType(81), this.actor.getX() - 24, this.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 5), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() - 40, this.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 5), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() + this.actor.getWidth() - 8, this.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 5), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless"), f.createRecycledActor(f.getActorType(81), this.actor.getX() + this.actor.getWidth() + 8, this.actor.getY(), 0), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 5), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), this._Shooting && 3E3 == this._Timer && (this._Shooting = !1, this.actor.setVelocity(this._MyDirection, this._Speed)), 6E3 == this._Timer && (this._ShootingReady = !0), this._Shooting && (this.actor.setXVelocity(0), this.actor.setYVelocity(0))) }, _customEvent_play_sound: function () { f.playSoundOnChannel(f.getSound(144), h.engine.getGameAttribute("Sound_Channel") | 0); var a = h.engine, b = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = b }, init: function () { var a = this; this.actor.setX((f.getSceneWidth() - this.actor.getWidth()) / 2); this._RNG = f.randomInt(1, 4); this._MyDirection = 90 * this._RNG + 45; this._Speed = 5; 2 != this._RNG && 4 != this._RNG || this.actor.growTo(-1, 1, .01, Wa.linear); f.runLater(500, function (b) { a.actor.setVelocity(a._MyDirection, a._Speed) }, this.actor); h.engine.gameAttributes.h.BG_Pattern_Diagonal = !0; f.createRecycledActorOnLayer(f.getActorType(262), 0, 0, f.engine.getLayerById(6)); f.getLastCreatedActor().moveToBottom(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Qp }); var Rp = function (a, b, c) { P.call(this, b); this.nameMap.h.Active = "_Active"; this._Active = !1 }; k["scripts.ActorEvents_205"] = Rp; Rp.__name__ = "scripts.ActorEvents_205"; Rp.__super__ = P; Rp.prototype = u(P.prototype, { _Active: null, _event_Keyboard: function (a, b) { this.wrapper.enabled && a && this._Active && (this._Active = !1, this.actor.setAnimation("0")) }, _event_Keyboard2: function (a, b) { this.wrapper.enabled && a && !this._Active && (this._Active = !0, this.actor.setAnimation("1")) }, _event_Keyboard3: function (a, b) { if (this.wrapper.enabled && a && this._Active && !h.engine.getGameAttribute("adIsPlaying")) for (this.actor.setAnimation("2"), a = 0, b = f.getActorsOfType(f.getActorType(170)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.shout("_customEvent_pause_unpause") } }, _event_MouseOver: function (a) { this.wrapper.enabled && 1 == a && "1" != this.actor.getAnimation() && this.actor.setAnimation("1") }, _event_MouseExit: function (a) { this.wrapper.enabled && -1 == a && (this._Active || "0" == this.actor.getAnimation() || this.actor.setAnimation("0")) }, _event_MouseClick: function (a) { if (this.wrapper.enabled && 3 == a && !h.engine.getGameAttribute("adIsPlaying")) { this.actor.setAnimation("2"); a = 0; for (var b = f.getActorsOfType(f.getActorType(170)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.shout("_customEvent_pause_unpause") } } }, init: function () { this._Active = !0; this.actor.setAnimation("1"); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("left"), q(this, this._event_Keyboard)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("right"), q(this, this._event_Keyboard2)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("enter"), q(this, this._event_Keyboard3)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseOver)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseExit)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseClick)) }, forwardMessage: function (a) { }, __class__: Rp }); var Sp = function (a, b, c) { P.call(this, b); this.nameMap.h.Animation_1 = "_Animation1"; this._Animation1 = ""; this.nameMap.h.Img = "_Img"; this.nameMap.h.Get_Pixel = "_GetPixel"; this.nameMap.h.xSpawn = "_xSpawn"; this._xSpawn = 0; this.nameMap.h.ySpawn = "_ySpawn"; this._ySpawn = 0; this.nameMap.h.Animation_2 = "_Animation2"; this._Animation2 = ""; this.nameMap.h.Enemy_Chooser = "_EnemyChooser"; this._EnemyChooser = 0; this.nameMap.h.Enemy_Chooser_Top_Limit = "_EnemyChooserTopLimit"; this._EnemyChooserTopLimit = 0; this.nameMap.h.spawn_end_animation_cycle = "_spawnendanimationcycle"; this._spawnendanimationcycle = 0; this.nameMap.h.spawn_end_enemy_cycle = "_spawnendenemycycle"; this._spawnendenemycycle = 0 }; k["scripts.ActorEvents_207"] = Sp; Sp.__name__ = "scripts.ActorEvents_207"; Sp.__super__ = P; Sp.prototype = u(P.prototype, { _Animation1: null, _Img: null, _GetPixel: null, _xSpawn: null, _ySpawn: null, _Animation2: null, _EnemyChooser: null, _EnemyChooserTopLimit: null, _spawnendanimationcycle: null, _spawnendenemycycle: null, init: function () { }, forwardMessage: function (a) { }, __class__: Sp }); var Tp = function (a, b, c) { P.call(this, b); this.nameMap.h.Death_Bar_Left = "_DeathBarLeft"; this._DeathBarLeft = 0; this.nameMap.h.Death_Bar_Right = "_DeathBarRight"; this._DeathBarRight = 0; this.nameMap.h.Death_Event = "_DeathEvent"; this._DeathEvent = !1 }; k["scripts.ActorEvents_210"] = Tp; Tp.__name__ = "scripts.ActorEvents_210"; Tp.__super__ = P; Tp.prototype = u(P.prototype, { _DeathBarLeft: null, _DeathBarRight: null, _DeathEvent: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._DeathEvent) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = 254; c = 55; var d = 147; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); b = b << 16 | c << 8 | d; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .3; b = this._DeathBarLeft; b *= a.scaleX; c = 32 * a.scaleY; d = 16 * a.scaleX; var e = 196 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle(); b = this._DeathBarRight; b *= a.scaleX; c = 32 * a.scaleY; d = 16 * a.scaleX; e = 196 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, _customEvent_death_event: function () { var a = this; this._DeathEvent || (this._DeathEvent = !0, this._DeathBarRight = this._DeathBarLeft = 208, f.runPeriodically(50, function (b) { a._DeathBarLeft = 48 <= a._DeathBarLeft ? a._DeathBarLeft - 16 : 208; a._DeathBarRight < f.getSceneWidth() - 48 ? a._DeathBarRight += 16 : a._DeathBarRight = 208; b = 0; for (var c = w.__cast(f.getActorGroup(5), df).list; b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (d.getX() < a.actor.getXCenter() && d.getX() < a._DeathBarLeft && d.shout("_customEvent_die"), d.getX() > a.actor.getXCenter() && d.getX() > a._DeathBarRight && d.shout("_customEvent_die")) } }, this.actor), f.runPeriodically(100, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getXCenter() - f.randomInt(8, 24), a.actor.getYCenter() - f.randomInt(8, 24), 0); f.getLastCreatedActor().shout("_customEvent_splosion_enemy") }, this.actor), f.runLater(3E3, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getXCenter() - 16, a.actor.getYCenter() - 16, 0); f.getLastCreatedActor().shout("_customEvent_splosion_big_end_boss"); f.createRecycledActor(f.getActorType(220), a.actor.getXCenter() - 10, a.actor.getYCenter() - 12, 0); f.recycleActor(a.actor) }, this.actor)) }, init: function () { var a = this; f.runLater(100, function (a) { f.createRecycledActor(f.getActorType(207), 0, 0, 0); a = 0; for (var b = f.getActorsOfType(f.getActorType(207)); a < b.length;) { var d = b[a]; ++a; null == d || d.dead || d.recycled || d.shout("_customEvent_spawn_end") } }, this.actor); f.runPeriodically(4500, function (b) { if (!a._DeathEvent) { b = 0; for (var c = f.getActorsOfType(f.getActorType(207)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || d.shout("_customEvent_spawn_end") } } }, this.actor); f.runLater(1250, function (b) { a.actor.setAnimation("45") }, this.actor); f.playSoundOnChannel(f.getSound(240), f.randomInt(6, 29)); f.runLater(250, function (a) { f.playSoundOnChannel(f.getSound(240), f.randomInt(6, 29)) }, this.actor); f.runLater(500, function (a) { f.playSoundOnChannel(f.getSound(240), f.randomInt(6, 29)) }, this.actor); f.runLater(750, function (a) { f.playSoundOnChannel(f.getSound(240), f.randomInt(6, 29)) }, this.actor); f.runLater(1E3, function (a) { f.playSoundOnChannel(f.getSound(240), f.randomInt(6, 29)) }, this.actor); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: Tp }); var Up = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_215"] = Up; Up.__name__ = "scripts.ActorEvents_215"; Up.__super__ = P; Up.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: Up }); var Vp = function (a, b, c) { P.call(this, b); this.nameMap.h.Passed_Level = "_PassedLevel"; this._PassedLevel = !1; this.nameMap.h.Moving_To_Next_Scene = "_MovingToNextScene"; this._MovingToNextScene = !1 }; k["scripts.ActorEvents_218"] = Vp; Vp.__name__ = "scripts.ActorEvents_218"; Vp.__super__ = P; Vp.prototype = u(P.prototype, { _PassedLevel: null, _MovingToNextScene: null, _event_HitsHero: function (a) { if (this.wrapper.enabled) { var b = f.getActorType(18); var c = a.otherActor.getType(), d = a.otherActor.getGroup(); b = b == c || b == d } else b = !1; b && this._PassedLevel && !this._MovingToNextScene && (this._MovingToNextScene = !0, a.otherActor.disableBehavior("8 Way Movement"), a.otherActor.growTo(.5, .5, .5, Wa.linear), a.otherActor.fadeTo(0, .5, Wa.linear), a.otherActor.moveTo(this.actor.getXCenter() - 5, this.actor.getYCenter() + 3, .5, Wa.linear), f.shoutToScene("_customEvent_entered_door"), f.playSoundOnChannel(f.getSound(143), 4)) }, _customEvent_open_door: function () { this.actor.setAnimation("3"); f.playSoundOnChannel(f.getSound(139), 4); for (var a = 0; 10 > a;) a++, f.createRecycledActor(f.getActorType(180), this.actor.getXCenter() + f.randomInt(-3, 3), this.actor.getY() + f.randomInt(0, this.actor.getHeight() | 0), 0) }, init: function () { this.actor.setCurrentFrame(1); this.actor.moveToBottom(); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Vp }); var Wp = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.Screen_Flash = "_ScreenFlash"; this._ScreenFlash = 0 }; k["scripts.ActorEvents_220"] = Wp; Wp.__name__ = "scripts.ActorEvents_220"; Wp.__super__ = P; Wp.prototype = u(P.prototype, { _PickedUp: null, _ScreenFlash: null, _event_Updating: function (a) { if (this.wrapper.enabled && (this.actor.setXVelocity(.98 * this.actor.getXVelocity()), this.actor.setYVelocity(.98 * this.actor.getYVelocity()), this._PickedUp)) { this.actor.disableBehavior("Bounce With Full Speed"); 32 <= this.actor.getY() ? this.actor.setYVelocity(-20) : (this.actor.setYVelocity(0), this.actor.getXCenter() < f.getSceneWidth() / 2 ? this.actor.setXVelocity(20) : this.actor.setXVelocity(-20)); a = 0; for (var b = f.getActorsOfType(f.getActorType(152)); a < b.length;) { var c = b[a]; ++a; if (null != c && !c.dead && !c.recycled) { var d = this.actor.getXCenter(); d = null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d)); var e = this.actor.getYCenter(); e = null == e ? 0 : "number" == typeof e ? w.__cast(e, Ka) : "number" == typeof e && (e | 0) === e ? w.__cast(e, Ia) : "boolean" == typeof e ? w.__cast(e, La) ? 1 : 0 : "string" == typeof e ? parseFloat(e) : parseFloat(z.string(e)); var g = c.getXCenter(); g = null == g ? 0 : "number" == typeof g ? w.__cast(g, Ka) : "number" == typeof g && (g | 0) === g ? w.__cast(g, Ia) : "boolean" == typeof g ? w.__cast(g, La) ? 1 : 0 : "string" == typeof g ? parseFloat(g) : parseFloat(z.string(g)); var h = c.getYCenter(); 25 > za.distance_between_points(d, e, g, null == h ? 0 : "number" == typeof h ? w.__cast(h, Ka) : "number" == typeof h && (h | 0) === h ? w.__cast(h, Ia) : "boolean" == typeof h ? w.__cast(h, La) ? 1 : 0 : "string" == typeof h ? parseFloat(h) : parseFloat(z.string(h))) && (c.shout("_customEvent_key_collected"), f.recycleActor(this.actor)) } } } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._PickedUp) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; var d = b = 255, e = 0; null == e && (e = 0); null == d && (d = 0); null == b && (b = 0); b = b << 16 | d << 8 | e; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .6; b = 16 * Math.floor(this.actor.getXCenter() / f.getTileWidth()); c = 16 * Math.floor(this.actor.getYCenter() / f.getTileWidth()); b *= a.scaleX; c *= a.scaleY; d = 16 * a.scaleX; e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } if ("Tutorial" == f.getCurrentSceneName() && !this._PickedUp) { d = this.actor; a.drawActor = !0; a.actor = d; d.smoothMove ? (b = d.drawX - Math.floor(d.cacheWidth / 2) - d.currOffset.x, c = d.drawY - Math.floor(d.cacheHeight / 2) - d.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = d.colX * a.scaleX, a.y = d.colY * a.scaleY); b = f.getFont(217); null != b && b != a.font && (a.font = b); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -4 * a.scaleX, c = a.y + -8 * a.scaleY) : (b = a.x + -4 * a.scaleX - h.cameraX, c = a.y + -8 * a.scaleY - h.cameraY) : (b = a.x + -4 * a.scaleX, c = a.y + -8 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "Key:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("Key", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "Key", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } 0 < this._ScreenFlash && (a.drawActor = !1, a.actor = null, a.x = 0, a.y = 0, d = b = 255, e = 0, null == e && (e = 0), null == d && (d = 0), null == b && (b = 0), b = b << 16 | d << 8 | e, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = this._ScreenFlash / 100, c = b = 0, d = f.getScreenWidth(), e = f.getScreenHeight(), b *= a.scaleX, c *= a.scaleY, d *= a.scaleX, e *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, d, e), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()) } }, _event_HitsHero: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorType(18); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; if (c && !this._PickedUp) { this.actor.disableBehavior("Follow Target CUSTOM"); this._PickedUp = !0; this.actor.setXVelocity(0); this.actor.setYVelocity(0); this.actor.setAnimation("Picked_Up"); f.playSoundOnChannel(f.getSound(141), 5); this.actor.disableActorDrawing(); this._ScreenFlash = 95; var e = this.attributeTweens.h._ScreenFlash; null == e && (e = new ce, e.doOnUpdate(function () { b._ScreenFlash = e.value }), this.attributeTweens.h._ScreenFlash = e); e.tween(this._ScreenFlash, 0, Wa.linear, 300) } }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || this.actor.applyImpulseInDirection(za.angle_to_target("degrees", this.actor, c), 19) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Wp }); var Xp = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.Increase_Lives = "_IncreaseLives"; this._IncreaseLives = !1; this.nameMap.h.Screen_Flash = "_ScreenFlash"; this._ScreenFlash = 0; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Display_Text = "_DisplayText"; this._DisplayText = !1 }; k["scripts.ActorEvents_226"] = Xp; Xp.__name__ = "scripts.ActorEvents_226"; Xp.__super__ = P; Xp.prototype = u(P.prototype, { _PickedUp: null, _IncreaseLives: null, _ScreenFlash: null, _Hero: null, _DisplayText: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled) { if (!this._PickedUp) { if (this._DisplayText) a = !1; else { a = this.actor.getXCenter(); var c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); var d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); var e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); a = 40 > za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) } a && (this._DisplayText = !0); this._DisplayText ? (a = this.actor.getXCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 40 < za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))) : a = !1; a && (this._DisplayText = !1) } if (this._PickedUp) if (this.actor.disableActorDrawing(), 0 < this.actor.getY()) this.actor.setYVelocity(-15); else if (!this._IncreaseLives) for (this._IncreaseLives = !0, this.actor.setYVelocity(0), a = h.engine, c = h.engine.getGameAttribute("Lives") + 1, a.gameAttributes.h.Lives = c, f.playSoundOnChannel(f.getSound(178), 5), a = 0, c = f.getActorsOfType(f.getActorType(188)); a < c.length;) d = [c[a]], ++a, null == d[0] || d[0].dead || d[0].recycled || d[0].getValue("ActorEvents_188", "_LifeAssignment") != h.engine.getGameAttribute("Lives") || (d[0].setAnimation("Flash"), f.runLater(500, function (a) { return function (c) { a[0].setAnimation("1"); f.recycleActor(b.actor) } }(d), this.actor)) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._PickedUp && !this._IncreaseLives) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = 208; var d = 90, e = 94; null == e && (e = 0); null == d && (d = 0); null == b && (b = 0); b = b << 16 | d << 8 | e; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .6; b = 16 * Math.floor(this.actor.getXCenter() / f.getTileWidth()); c = 16 * Math.floor(this.actor.getYCenter() / f.getTileWidth()); b *= a.scaleX; c *= a.scaleY; d = 16 * a.scaleX; e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } 0 < this._ScreenFlash && (a.drawActor = !1, a.actor = null, a.x = 0, a.y = 0, e = d = b = 255, null == e && (e = 0), null == d && (d = 0), null == b && (b = 0), b = b << 16 | d << 8 | e, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = this._ScreenFlash / 100, c = b = 0, d = f.getScreenWidth(), e = f.getScreenHeight(), b *= a.scaleX, c *= a.scaleY, d *= a.scaleX, e *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, d, e), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()); if (this._DisplayText && !this._PickedUp) { d = this.actor; a.drawActor = !0; a.actor = d; d.smoothMove ? (b = d.drawX - Math.floor(d.cacheWidth / 2) - d.currOffset.x, c = d.drawY - Math.floor(d.cacheHeight / 2) - d.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = d.colX * a.scaleX, a.y = d.colY * a.scaleY); b = f.getFont(252); null != b && b != a.font && (a.font = b); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -9 * a.scaleX, c = a.y + -3 * a.scaleY) : (b = a.x + -9 * a.scaleX - h.cameraX, c = a.y + -3 * a.scaleY - h.cameraY) : (b = a.x + -9 * a.scaleX, c = a.y + -3 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "HEALTH!:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("HEALTH!", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "HEALTH!", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } } }, _event_HitsHero: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorType(18); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; if (c && !this._PickedUp) { this._PickedUp = !0; this._ScreenFlash = 95; var e = this.attributeTweens.h._ScreenFlash; null == e && (e = new ce, e.doOnUpdate(function () { b._ScreenFlash = e.value }), this.attributeTweens.h._ScreenFlash = e); e.tween(this._ScreenFlash, 0, Wa.linear, 300); this.actor.disableActorDrawing(); c = 0; for (d = f.getActorsOfType(f.getActorType(228)); c < d.length;) a = d[c], ++c, null == a || a.dead || a.recycled || f.recycleActor(a); c = 0; for (d = f.getActorsOfType(f.getActorType(154)); c < d.length;) a = d[c], ++c, null == a || a.dead || a.recycled || (a.setValue("ActorEvents_154", "_PassedLevel", !0), a.shout("_customEvent_open_door")) } }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Hero = c) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Xp }); var Yp = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.Screen_Flash = "_ScreenFlash"; this._ScreenFlash = 0; this.nameMap.h.Upgrade_Type = "_UpgradeType"; this._UpgradeType = 0; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Display_Text = "_DisplayText"; this._DisplayText = !1; this.nameMap.h.Order_RNG = "_OrderRNG"; this._OrderRNG = 0; this.nameMap.h.Upgrade_Machinegun = "_UpgradeMachinegun"; this._UpgradeMachinegun = !1; this.nameMap.h.Upgrade_Spread = "_UpgradeSpread"; this._UpgradeSpread = !1; this.nameMap.h.Upgrade_Quad = "_UpgradeQuad"; this._UpgradeQuad = !1; this.nameMap.h.Upgrade_Homing = "_UpgradeHoming"; this._UpgradeHoming = !1; this.nameMap.h.Upgrade_Minetrail = "_UpgradeMinetrail"; this._UpgradeMinetrail = !1; this.nameMap.h.Upgrade_Mines = "_UpgradeMines"; this._UpgradeMines = !1; this.nameMap.h.Upgrade_Orbit = "_UpgradeOrbit"; this._UpgradeOrbit = !1; this.nameMap.h.Upgrade_Shotgun = "_UpgradeShotgun"; this._UpgradeShotgun = !1; this.nameMap.h.Right_Side_Upgrade = "_RightSideUpgrade"; this.nameMap.h.Left_Side_Upgrade = "_LeftSideUpgrade"; this._LeftSideUpgrade = !1 }; k["scripts.ActorEvents_228"] = Yp; Yp.__name__ = "scripts.ActorEvents_228"; Yp.__super__ = P; Yp.prototype = u(P.prototype, { _PickedUp: null, _ScreenFlash: null, _UpgradeType: null, _Hero: null, _DisplayText: null, _OrderRNG: null, _UpgradeMachinegun: null, _UpgradeSpread: null, _UpgradeQuad: null, _UpgradeHoming: null, _UpgradeMinetrail: null, _UpgradeMines: null, _UpgradeOrbit: null, _UpgradeShotgun: null, _RightSideUpgrade: null, _LeftSideUpgrade: null, _event_Updating: function (a) { if (this.wrapper.enabled) { this._PickedUp && this.actor.disableActorDrawing(); if (this._DisplayText) a = !1; else { a = this.actor.getXCenter(); var b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); var c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); var d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); a = 76 > za.distance_between_points(b, c, d, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) } a && (this._DisplayText = !0); this._DisplayText ? (a = this.actor.getXCenter(), b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 76 < za.distance_between_points(b, c, d, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))) : a = !1; a && (this._DisplayText = !1) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) if (0 < this._ScreenFlash) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = 68; var d = 209, e = 255; null == e && (e = 0); null == d && (d = 0); null == b && (b = 0); b = b << 16 | d << 8 | e; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = this._ScreenFlash / 100; c = b = 0; d = f.getScreenWidth(); e = f.getScreenHeight(); b *= a.scaleX; c *= a.scaleY; d *= a.scaleX; e *= a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } else if (this._DisplayText) { d = this.actor; a.drawActor = !0; a.actor = d; d.smoothMove ? (b = d.drawX - Math.floor(d.cacheWidth / 2) - d.currOffset.x, c = d.drawY - Math.floor(d.cacheHeight / 2) - d.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = d.colX * a.scaleX, a.y = d.colY * a.scaleY); b = f.getFont(252); null != b && b != a.font && (a.font = b); if ("Title" == f.getCurrentSceneName()) { null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -49 * a.scaleX, c = a.y + 32 * a.scaleY) : (b = a.x + -49 * a.scaleX - h.cameraX, c = a.y + 32 * a.scaleY - h.cameraY) : (b = a.x + -49 * a.scaleX, c = a.y + 32 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "WATCH VIDEO FOR:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("WATCH VIDEO FOR", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "WATCH VIDEO FOR", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -52 * a.scaleX, c = a.y + 40 * a.scaleY) : (b = a.x + -52 * a.scaleX - h.cameraX, c = a.y + 40 * a.scaleY - h.cameraY) : (b = a.x + -52 * a.scaleX, c = a.y + 40 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); g = null; d = a.font; l = "WEAPON UPGRADE!:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("WEAPON UPGRADE!", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "WEAPON UPGRADE!", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))) } else null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -12 * a.scaleX, c = a.y + -7 * a.scaleY) : (b = a.x + -12 * a.scaleX - h.cameraX, c = a.y + -7 * a.scaleY - h.cameraY) : (b = a.x + -12 * a.scaleX, c = a.y + -7 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), g = null, d = a.font, l = "UPGRADE!:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("UPGRADE!", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "UPGRADE!", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } }, _event_HitsHero: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorType(18); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; if (c && !this._PickedUp) { this._PickedUp = !0; this._ScreenFlash = 95; var e = this.attributeTweens.h._ScreenFlash; null == e && (e = new ce, e.doOnUpdate(function () { b._ScreenFlash = e.value }), this.attributeTweens.h._ScreenFlash = e); e.tween(this._ScreenFlash, 0, Wa.linear, 300); ya.adBlocked || (f.engine.pause(), ya.sendGameplayStop(), ya.rewardedBreak(function () { f.engine.unpause(); f.runLater(500, function (a) { b._customEvent_upgrade(); ya.sendGameplayStart() }, b.actor) })) } }, _customEvent_choose_upgrade: function () { this._LeftSideUpgrade && (this._UpgradeMachinegun = h.engine.getGameAttribute("Upgrade_Machinegun"), this._UpgradeSpread = h.engine.getGameAttribute("Upgrade_Spread"), this._UpgradeQuad = h.engine.getGameAttribute("Upgrade_Quad"), this._UpgradeHoming = h.engine.getGameAttribute("Upgrade_Homing"), this._UpgradeMines = h.engine.getGameAttribute("Upgrade_Mines"), this._UpgradeMinetrail = h.engine.getGameAttribute("Upgrade_Minetrail"), this._UpgradeOrbit = h.engine.getGameAttribute("Upgrade_Orbit"), this._UpgradeShotgun = h.engine.getGameAttribute("Upgrade_Shotgun")); this._LeftSideUpgrade && (this._OrderRNG = f.randomInt(1, 5)); 1 == this._OrderRNG ? this._customEvent_order_1() : 2 == this._OrderRNG ? this._customEvent_order_2() : 3 == this._OrderRNG ? this._customEvent_order_3() : 4 == this._OrderRNG ? this._customEvent_order_4() : 5 == this._OrderRNG && this._customEvent_order_5() }, _customEvent_order_1: function () { this._UpgradeMachinegun ? this._UpgradeSpread ? this._UpgradeQuad ? this._UpgradeHoming ? this._UpgradeMines ? this._UpgradeMinetrail ? this._UpgradeOrbit ? this._UpgradeShotgun || (this._UpgradeType = 7) : this._UpgradeType = 6 : this._UpgradeType = 5 : this._UpgradeType = 4 : this._UpgradeType = 3 : this._UpgradeType = 2 : this._UpgradeType = 1 : this._UpgradeType = 0; this.actor.setAnimation("" + this._UpgradeType); this._LeftSideUpgrade && "Title" != f.getCurrentSceneName() && this._customEvent_spawn_right_upgrade() }, _customEvent_order_2: function () { this._UpgradeHoming ? this._UpgradeMines ? this._UpgradeQuad ? this._UpgradeMinetrail ? this._UpgradeSpread ? this._UpgradeOrbit ? this._UpgradeMachinegun ? this._UpgradeShotgun || (this._UpgradeType = 7) : this._UpgradeType = 0 : this._UpgradeType = 6 : this._UpgradeType = 1 : this._UpgradeType = 5 : this._UpgradeType = 2 : this._UpgradeType = 4 : this._UpgradeType = 3; this.actor.setAnimation("" + this._UpgradeType); this._LeftSideUpgrade && "Title" != f.getCurrentSceneName() && this._customEvent_spawn_right_upgrade() }, _customEvent_order_3: function () { this._UpgradeShotgun ? this._UpgradeOrbit ? this._UpgradeMinetrail ? this._UpgradeMines ? this._UpgradeHoming ? this._UpgradeQuad ? this._UpgradeSpread ? this._UpgradeMachinegun || (this._UpgradeType = 0) : this._UpgradeType = 1 : this._UpgradeType = 2 : this._UpgradeType = 3 : this._UpgradeType = 4 : this._UpgradeType = 5 : this._UpgradeType = 6 : this._UpgradeType = 7; this.actor.setAnimation("" + this._UpgradeType); this._LeftSideUpgrade && "Title" != f.getCurrentSceneName() && this._customEvent_spawn_right_upgrade() }, _customEvent_order_4: function () { this._UpgradeSpread ? this._UpgradeHoming ? this._UpgradeMinetrail ? this._UpgradeShotgun ? this._UpgradeMachinegun ? this._UpgradeQuad ? this._UpgradeMines ? this._UpgradeOrbit || (this._UpgradeType = 6) : this._UpgradeType = 4 : this._UpgradeType = 2 : this._UpgradeType = 0 : this._UpgradeType = 7 : this._UpgradeType = 5 : this._UpgradeType = 3 : this._UpgradeType = 1; this.actor.setAnimation("" + this._UpgradeType); this._LeftSideUpgrade && "Title" != f.getCurrentSceneName() && this._customEvent_spawn_right_upgrade() }, _customEvent_order_5: function () { this._UpgradeOrbit ? this._UpgradeMines ? this._UpgradeQuad ? this._UpgradeMachinegun ? this._UpgradeShotgun ? this._UpgradeMinetrail ? this._UpgradeHoming ? this._UpgradeSpread || (this._UpgradeType = 1) : this._UpgradeType = 3 : this._UpgradeType = 5 : this._UpgradeType = 7 : this._UpgradeType = 0 : this._UpgradeType = 2 : this._UpgradeType = 4 : this._UpgradeType = 6; this.actor.setAnimation("" + this._UpgradeType); this._LeftSideUpgrade && "Title" != f.getCurrentSceneName() && this._customEvent_spawn_right_upgrade() }, _customEvent_spawn_right_upgrade: function () { if (3 > h.engine.getGameAttribute("Lives")) f.createRecycledActor(f.getActorType(226), 335, 117, 0); else { f.createRecycledActor(f.getActorType(228), 335, 117, 0); f.getLastCreatedActor().setValue("ActorEvents_228", "_UpgradeType", f.randomInt(1, 7)); this._RightSideUpgrade = f.getLastCreatedActor(); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeMachinegun", this._UpgradeMachinegun); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeSpread", this._UpgradeSpread); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeQuad", this._UpgradeQuad); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeHoming", this._UpgradeHoming); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeMines", this._UpgradeMines); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeMinetrail", this._UpgradeMinetrail); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeOrbit", this._UpgradeOrbit); this._RightSideUpgrade.setValue("ActorEvents_228", "_UpgradeShotgun", this._UpgradeShotgun); for (this._RightSideUpgrade.setValue("ActorEvents_228", "_OrderRNG", f.randomInt(1, 5)); this._OrderRNG == this._RightSideUpgrade.getValue("ActorEvents_228", "_OrderRNG");) this._RightSideUpgrade.setValue("ActorEvents_228", "_OrderRNG", f.randomInt(1, 5)); this._RightSideUpgrade.shout("_customEvent_choose_upgrade") } }, _customEvent_upgrade: function () { var a = this; 0 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Machinegun = !0 : 1 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Spread = !0 : 2 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Quad = !0 : 3 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Homing = !0 : 4 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Mines = !0 : 5 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Minetrail = !0 : 6 == this._UpgradeType ? h.engine.gameAttributes.h.Upgrade_Orbit = !0 : 7 == this._UpgradeType && (h.engine.gameAttributes.h.Upgrade_Shotgun = !0); for (var b = 0, c = f.getActorsOfType(f.getActorType(154)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (d.setValue("ActorEvents_154", "_PassedLevel", !0), d.shout("_customEvent_open_door")) } b = 0; for (c = f.getActorsOfType(f.getActorType(228)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || 32 < Math.abs(za.distance_to_target(d, this.actor)) && f.recycleActor(d); f.playSoundOnChannel(f.getSound(266), f.randomInt(6, 29)); b = 0; for (c = f.getActorsOfType(f.getActorType(226)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || f.recycleActor(d); b = 0; for (c = f.getActorsOfType(f.getActorType(256)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || f.recycleActor(d); f.startShakingScreen(.003, .3); f.runLater(300, function (b) { f.recycleActor(a.actor) }, this.actor) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._UpgradeType = f.randomInt(1, 7); f.runLater(50, function (b) { a._LeftSideUpgrade && a._customEvent_choose_upgrade() }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Yp }); var Zp = function (a, b, c) { P.call(this, b); this.nameMap.h.Hit = "_Hit"; this._Hit = !1 }; k["scripts.ActorEvents_23"] = Zp; Zp.__name__ = "scripts.ActorEvents_23"; Zp.__super__ = P; Zp.prototype = u(P.prototype, { _Hit: null, _event_Updating: function (a) { this.wrapper.enabled && ((16 > this.actor.getY() || this.actor.getY() > f.getSceneHeight() - 32) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()), (26 > this.actor.getX() || this.actor.getX() > f.getSceneWidth() - 36) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit())) }, _customEvent_got_hit: function () { f.createRecycledActor(f.getActorType(67), this.actor.getX() - 8, this.actor.getY() - 8, 2); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.recycleActor(this.actor) }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Zp }); var $p = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_230"] = $p; $p.__name__ = "scripts.ActorEvents_230"; $p.__super__ = P; $p.prototype = u(P.prototype, { _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = 68; c = 209; var d = 255; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); b = b << 16 | c << 8 | d; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .6; c = b = 8; d = this.actor.getWidth() / 2; var e = this.actor.getHeight() / 2; b *= a.scaleX; c *= a.scaleY; d *= a.scaleX; e *= a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, init: function () { this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: $p }); var aq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_232"] = aq; aq.__name__ = "scripts.ActorEvents_232"; aq.__super__ = P; aq.prototype = u(P.prototype, { init: function () { var a = this; f.runLater(700, function (b) { f.recycleActor(a.actor) }, this.actor) }, forwardMessage: function (a) { }, __class__: aq }); var bq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_234"] = bq; bq.__name__ = "scripts.ActorEvents_234"; bq.__super__ = P; bq.prototype = u(P.prototype, { init: function () { this.actor.moveToBottom() }, forwardMessage: function (a) { }, __class__: bq }); var cq = function (a, b, c) { P.call(this, b); this.nameMap.h.Talking_To_Hero = "_TalkingToHero"; this._TalkingToHero = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Phrase = "_Phrase"; this._Phrase = "" }; k["scripts.ActorEvents_241"] = cq; cq.__name__ = "scripts.ActorEvents_241"; cq.__super__ = P; cq.prototype = u(P.prototype, { _TalkingToHero: null, _Hero: null, _Phrase: null, _event_Updating: function (a) { if (this.wrapper.enabled) { a = this.actor.getXCenter(); var b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); var c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); var d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); 16 > za.distance_between_points(b, c, d, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) && !this._TalkingToHero && (this._TalkingToHero = !0, this._Phrase = "" + z.string(f.getValueForScene("SceneEvents_18", "_ClonePhrases")[f.randomInt(0, 21)])); a = this.actor.getXCenter(); b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); 16 < za.distance_between_points(b, c, d, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) && this._TalkingToHero && (this._TalkingToHero = !1) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._TalkingToHero) { c = f.getFont(252); null != c && c != a.font && (a.font = c); if (this.actor.getX() < f.getScreenWidth() / 2) { c = this._Phrase; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); if (a.drawActor) if (null != a.actor && a.actor.isHUD) { b = a.x + 0 * a.scaleX; var d = a.y + -8 * a.scaleY } else b = a.x + 0 * a.scaleX - h.cameraX, d = a.y + -8 * a.scaleY - h.cameraY; else b = a.x + 0 * a.scaleX, d = a.y + -8 * a.scaleY; a.mtx.identity(); a.mtx.translate(b, d); var e = null, g = a.font; g = c + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g)) c = ca.drawnStringCache.h[g], c.lifetime = 5, e = c.img; else { var l = a.font.font.getTextWidth(c, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < l && 0 < k && (e = new ka(l, k, !0, 0), a.font.font.renderToImg(e, c, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), c = new vc, c.img = e, c.lifetime = 5, ca.drawnStringCache.h[g] = c, ca.drawnStringCacheKeys.push(g)) } } else c = this._Phrase, b = -(f.getFont(217).getTextWidth(this._Phrase) / h.SCALE) + 10, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, d = a.y + -8 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, d = a.y + -8 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, d = a.y + -8 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, d), e = null, g = a.font, g = c + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g) ? (c = ca.drawnStringCache.h[g], c.lifetime = 5, e = c.img) : (l = a.font.font.getTextWidth(c, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (e = new ka(l, k, !0, 0), a.font.font.renderToImg(e, c, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), c = new vc, c.img = e, c.lifetime = 5, ca.drawnStringCache.h[g] = c, ca.drawnStringCacheKeys.push(g))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, d, e.width, e.height), a.graphics.endFill()) } }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Hero = c) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: cq }); var dq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_245"] = dq; dq.__name__ = "scripts.ActorEvents_245"; dq.__super__ = P; dq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: dq }); var eq = function (a, b, c) { P.call(this, b); this.nameMap.h.Game_Paused = "_GamePaused"; this._GamePaused = !1 }; k["scripts.ActorEvents_247"] = eq; eq.__name__ = "scripts.ActorEvents_247"; eq.__super__ = P; eq.prototype = u(P.prototype, { _GamePaused: null, _event_OnActor: function (a) { this.wrapper.enabled && 3 == a && (50 == h.engine.getGameAttribute("Volume") ? (h.engine.gameAttributes.h.Volume = 0, this.actor.setAnimation("1")) : (h.engine.gameAttributes.h.Volume = 50, this.actor.setAnimation("0")), f.setVolumeForAllSounds(h.engine.getGameAttribute("Volume") / 100), f.setVolumeForChannel(h.engine.getGameAttribute("Volume") / 2 / 100, 0)) }, _event_Msound: function (a, b) { this.wrapper.enabled && a && (50 == h.engine.getGameAttribute("Volume") ? (h.engine.gameAttributes.h.Volume = 0, this.actor.setAnimation("1")) : (h.engine.gameAttributes.h.Volume = 50, this.actor.setAnimation("0")), f.setVolumeForAllSounds(h.engine.getGameAttribute("Volume") / 100), f.setVolumeForChannel(h.engine.getGameAttribute("Volume") / 2 / 100, 0)) }, init: function () { 50 == h.engine.getGameAttribute("Volume") && this.actor.setAnimation("0"); 0 == h.engine.getGameAttribute("Volume") && this.actor.setAnimation("1"); this.addListener(this.actor.whenMousedOver, q(this, this._event_OnActor)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("M"), q(this, this._event_Msound)) }, forwardMessage: function (a) { }, __class__: eq }); var fq = function (a, b, c) { P.call(this, b); this.nameMap.h.Active = "_Active"; this._Active = !1; this.nameMap.h.Countdown = "_Countdown"; this._Countdown = 8; this.nameMap.h.Countdown_Ended = "_CountdownEnded"; this._CountdownEnded = !1; this.nameMap.h.buttonWasClicked = "_buttonWasClicked"; this._buttonWasClicked = !1 }; k["scripts.ActorEvents_250"] = fq; fq.__name__ = "scripts.ActorEvents_250"; fq.__super__ = P; fq.prototype = u(P.prototype, { _Active: null, _Countdown: null, _CountdownEnded: null, _buttonWasClicked: null, _event_Updating: function (a) { this.wrapper.enabled && (ya.adBlocked || (this._Active ? this.actor.setAnimation("1") : this.actor.setAnimation("0"))) }, _event_left: function (a, b) { this.wrapper.enabled && a && !ya.adBlocked && (this._Active = !this._Active) }, _event_right: function (a, b) { this.wrapper.enabled && a && !ya.adBlocked && (this._Active = !this._Active) }, _event_enter: function (a, b) { this.wrapper.enabled && a && !ya.adBlocked && this._Active && !h.engine.getGameAttribute("adIsPlaying") && (this._buttonWasClicked = !0, this._customEvent_rewardToContinue()) }, _event_MouseOver: function (a) { if (this.wrapper.enabled && 1 == a && !ya.adBlocked) { this._Active = !0; a = 0; for (var b = f.getActorsOfType(f.getActorType(176)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.setValue("ActorEvents_176", "_Active", !1) } } }, _event_MouseClick: function (a) { this.wrapper.enabled && 3 == a && (ya.adBlocked || this._customEvent_rewardToContinue()) }, _customEvent_rewardToContinue: function () { var a = this; this._Active && (h.engine.gameAttributes.h.Can_Continue = !1, h.engine.gameAttributes.h.adIsPlaying = !0, f.engine.pause(), ya.rewardedBreak(function () { f.engine.unpause(); h.engine.gameAttributes.h.adIsPlaying = !1; a._buttonWasClicked = !1; a.actor.setAnimation("2"); var b = 204, c = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.reloadCurrentScene(e, f.createFadeIn(.3, b << 16 | c << 8 | d)) })) }, init: function () { var a = this; this._Active = !0; ya.adBlocked ? this.actor.setAnimation("0") : (this.actor.setAnimation("1"), this._Countdown = 8, this._buttonWasClicked = !1, f.runPeriodically(800, function (b) { --a._Countdown }, this.actor)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("left"), q(this, this._event_left)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("right"), q(this, this._event_right)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("enter"), q(this, this._event_enter)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseOver)); this.addListener(this.actor.whenMousedOver, q(this, this._event_MouseClick)) }, forwardMessage: function (a) { }, __class__: fq }); var gq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_253"] = gq; gq.__name__ = "scripts.ActorEvents_253"; gq.__super__ = P; gq.prototype = u(P.prototype, { _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { c = this.actor; a.drawActor = !0; a.actor = c; c.smoothMove ? (b = c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x, c = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = c.colX * a.scaleX, a.y = c.colY * a.scaleY); b = f.getFont(255); null != b && b != a.font && (a.font = b); if ("Title" == f.getCurrentSceneName()) { null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 2 * a.scaleX, c = a.y + -8 * a.scaleY) : (b = a.x + 2 * a.scaleX - h.cameraX, c = a.y + -8 * a.scaleY - h.cameraY) : (b = a.x + 2 * a.scaleX, c = a.y + -8 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "BEST TIME:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { var l = a.font.font.getTextWidth("BEST TIME", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "BEST TIME", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()); 1 <= h.engine.getGameAttribute("Speedrun_Best") ? (g = "" + Math.floor(h.engine.getGameAttribute("Speedrun_Best") / 1E3 / 60) + ":" + ("" + h.engine.getGameAttribute("Speedrun_Best") / 1E3 % 60).substring(0, 4), null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 6 * a.scaleX, c = a.y + 3 * a.scaleY) : (b = a.x + 6 * a.scaleX - h.cameraX, c = a.y + 3 * a.scaleY - h.cameraY) : (b = a.x + 6 * a.scaleX, c = a.y + 3 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = g + ":" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth(g, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, g, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))) : (null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 8 * a.scaleX, c = a.y + 3 * a.scaleY) : (b = a.x + 8 * a.scaleX - h.cameraX, c = a.y + 3 * a.scaleY - h.cameraY) : (b = a.x + 8 * a.scaleX, c = a.y + 3 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = "- - - -:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth("- - - -", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "- - - -", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))); null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } "1" == f.getCurrentSceneName() && (null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + a.scaleX, c = a.y + -8 * a.scaleY) : (b = a.x + a.scaleX - h.cameraX, c = a.y + -8 * a.scaleY - h.cameraY) : (b = a.x + a.scaleX, c = a.y + -8 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = "YOUR TIME:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth("YOUR TIME", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "YOUR TIME", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e))), null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill())) } }, init: function () { this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: gq }); var hq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_256"] = hq; hq.__name__ = "scripts.ActorEvents_256"; hq.__super__ = P; hq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: hq }); var iq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_258"] = iq; iq.__name__ = "scripts.ActorEvents_258"; iq.__super__ = P; iq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: iq }); var jq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_260"] = jq; jq.__name__ = "scripts.ActorEvents_260"; jq.__super__ = P; jq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: jq }); var kq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_262"] = kq; kq.__name__ = "scripts.ActorEvents_262"; kq.__super__ = P; kq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: kq }); var lq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_264"] = lq; lq.__name__ = "scripts.ActorEvents_264"; lq.__super__ = P; lq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: lq }); var mq = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.Increase_Lives = "_IncreaseLives"; this._IncreaseLives = !1; this.nameMap.h.Screen_Flash = "_ScreenFlash"; this._ScreenFlash = 0; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Display_Text = "_DisplayText"; this._DisplayText = !1 }; k["scripts.ActorEvents_267"] = mq; mq.__name__ = "scripts.ActorEvents_267"; mq.__super__ = P; mq.prototype = u(P.prototype, { _PickedUp: null, _IncreaseLives: null, _ScreenFlash: null, _Hero: null, _DisplayText: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled && this.actor.isAlive()) { if (!this._PickedUp) { if (this._DisplayText) a = !1; else { a = this.actor.getXCenter(); var c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); var d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); var e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); a = 40 > za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) } a && (this._DisplayText = !0); this._DisplayText ? (a = this.actor.getXCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 40 < za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))) : a = !1; a && (this._DisplayText = !1) } if (this._PickedUp) if (this.actor.disableActorDrawing(), 0 < this.actor.getY()) this.actor.setYVelocity(-15); else if (!this._IncreaseLives) for (this._IncreaseLives = !0, this.actor.setYVelocity(0), a = h.engine, c = h.engine.getGameAttribute("Lives") + 1, a.gameAttributes.h.Lives = c, a = 0, c = f.getActorsOfType(f.getActorType(188)); a < c.length;) d = [c[a]], ++a, null == d[0] || d[0].dead || d[0].recycled || d[0].getValue("ActorEvents_188", "_LifeAssignment") != h.engine.getGameAttribute("Lives") || (d[0].setAnimation("Flash"), f.runLater(500, function (a) { return function (c) { a[0].setAnimation("1"); f.recycleActor(b.actor) } }(d), this.actor)) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._PickedUp && !this._IncreaseLives) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = 208; var d = 90, e = 94; null == e && (e = 0); null == d && (d = 0); null == b && (b = 0); b = b << 16 | d << 8 | e; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .6; b = 16 * Math.floor(this.actor.getXCenter() / f.getTileWidth()); c = 16 * Math.floor(this.actor.getYCenter() / f.getTileWidth()); b *= a.scaleX; c *= a.scaleY; d = 16 * a.scaleX; e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } 0 < this._ScreenFlash && (a.drawActor = !1, a.actor = null, a.x = 0, a.y = 0, e = d = b = 255, null == e && (e = 0), null == d && (d = 0), null == b && (b = 0), b = b << 16 | d << 8 | e, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = this._ScreenFlash / 100, c = b = 0, d = f.getScreenWidth(), e = f.getScreenHeight(), b *= a.scaleX, c *= a.scaleY, d *= a.scaleX, e *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, d, e), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()); if (this._DisplayText && !this._PickedUp) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; b = f.getFont(252); null != b && b != a.font && (a.font = b); if (ya.adBlocked) b = this.actor.getX() - f.getFont(252).getTextWidth("Remove your adblocker to gain a life!") / h.SCALE / 2, c = this.actor.getY() - 10, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + c * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), g = null, d = a.font, l = "Remove your adblocker to gain a life!:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("Remove your adblocker to gain a life!", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "Remove your adblocker to gain a life!", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); else { b = this.actor.getX() - f.getFont(252).getTextWidth("Extra Life!") / h.SCALE / 2; c = this.actor.getY() - 10; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + c * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "Extra Life!:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("Extra Life!", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "Extra Life!", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))) } null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } } }, _event_HitsHero: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorType(18); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; !c || ya.adBlocked || ya.IsVideoPlaying() || this._PickedUp || (f.engine.pause(), ya.rewardedBreak(function () { f.engine.unpause(); b._PickedUp = !0; b._ScreenFlash = 95; var a = b.attributeTweens.h._ScreenFlash; null == a && (a = new ce, a.doOnUpdate(function () { b._ScreenFlash = a.value }), b.attributeTweens.h._ScreenFlash = a); a.tween(b._ScreenFlash, 0, Wa.linear, 300); f.runLater(1E3, function (a) { f.playSoundOnChannel(f.getSound(178), 5) }, b.actor) })) }, init: function () { ya.adBlocked && this.actor.setFilter([f.createGrayscaleFilter()]); for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._Hero = c) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: mq }); var nq = function (a, b, c) { P.call(this, b); this.nameMap.h.Timer = "_Timer"; this._Timer = 0 }; k["scripts.ActorEvents_27"] = nq; nq.__name__ = "scripts.ActorEvents_27"; nq.__super__ = P; nq.prototype = u(P.prototype, { _Timer: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), 0 == this._Timer % 500 && 0 == this.actor.getXVelocity() && 0 == this.actor.getYVelocity() && this.actor.setVelocity(f.randomInt(0, 360), 6), 10 < this.actor.getXVelocity() && this.actor.setXVelocity(10), 10 < this.actor.getYVelocity() && this.actor.setYVelocity(10), -10 > this.actor.getXVelocity() && this.actor.setXVelocity(-10), -10 > this.actor.getYVelocity() && this.actor.setYVelocity(-10)) }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: nq }); var oq = function (a, b, c) { P.call(this, b); this.nameMap.h["Screen Diagonal"] = "_ScreenDiagonal"; this._ScreenDiagonal = 0; this.nameMap.h.Enemy_Radar = "_EnemyRadar"; this._EnemyRadar = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Pinging_Radar = "_PingingRadar"; this._PingingRadar = !1; this.nameMap.h.Target_Actor = "_TargetActor"; this.nameMap.h["Distance X"] = "_DistanceX"; this._DistanceX = 0; this.nameMap.h["Distance Y"] = "_DistanceY"; this._DistanceY = 0; this.nameMap.h.Distance = "_Distance"; this._Distance = 0; this.nameMap.h.Direction = "_Direction"; this._Direction = 0; this.nameMap.h["Minimum Easing Speed"] = "_MinimumEasingSpeed"; this._MinimumEasingSpeed = 5; this.nameMap.h.Speed = "_Speed"; this._Speed = 20; this.nameMap.h.Margin = "_Margin"; this._Margin = 0; this.nameMap.h.Easing = "_Easing"; this._Easing = !1; this.nameMap.h["Stop when Colliding"] = "_StopwhenColliding"; this._StopwhenColliding = !0; this.nameMap.h.Collided = "_Collided"; this._Collided = !1; this.nameMap.h.Hit = "_Hit"; this._Hit = !1 }; k["scripts.ActorEvents_35"] = oq; oq.__name__ = "scripts.ActorEvents_35"; oq.__super__ = P; oq.prototype = u(P.prototype, { _ScreenDiagonal: null, _EnemyRadar: null, _Activated: null, _PingingRadar: null, _TargetActor: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Direction: null, _MinimumEasingSpeed: null, _Speed: null, _Margin: null, _Easing: null, _StopwhenColliding: null, _Collided: null, _Hit: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled && ((16 > this.actor.getY() || this.actor.getY() > f.getSceneHeight() - 36) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()), (16 > this.actor.getX() || this.actor.getX() > f.getSceneWidth() - 24) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()), this._Activated)) { a = this._TargetActor; if (!f.isPrimitive(a) && ("string" == typeof a ? "" == w.__cast(a, String) : null == a) || !this._TargetActor.isAlive()) if (this.actor.setXVelocity(.9 * this.actor.getXVelocity()), this.actor.setYVelocity(.9 * this.actor.getYVelocity()), !this._PingingRadar) { this._PingingRadar = !0; f.engine.allActors.reuseIterator = !1; for (a = f.engine.allActors.iterator(); a.hasNext();) { var c = a.next(); null != c && !c.dead && !c.recycled && c.isOnScreenCache && (c.getGroup() == f.getActorGroup(5) || c.getGroup() == f.getActorGroup(8) || c.getGroup() == f.getActorGroup(10) || c.getGroup() == f.getActorGroup(11)) && za.distance_to_target(this.actor, c) < this._EnemyRadar && 1 != this.actor.getActorValue("Targeted") && (this._TargetActor = c, c.setActorValue("Targeted", !0), this._EnemyRadar = 4) } f.engine.allActors.reuseIterator = !0; f.runLater(50, function (a) { 320 >= b._EnemyRadar && (b._EnemyRadar += 8, b._PingingRadar = !1) }, this.actor) } a = this._TargetActor; (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._TargetActor.isAlive() && (this._DistanceX = this._TargetActor.getXCenter() - this.actor.getXCenter(), this._DistanceY = this._TargetActor.getYCenter() - this.actor.getYCenter(), this._Distance = Math.sqrt(Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2)), this._Direction = 57.29577951308402 * Math.atan2(this._DistanceY, this._DistanceX), !(this._Distance > this._Margin) || this._StopwhenColliding && this._Collided ? this.actor.setVelocity(0, 0) : this._Easing ? this.actor.setVelocity(this._Direction, this._MinimumEasingSpeed + (this._Distance - this._Margin) / this._ScreenDiagonal * this._Speed) : this.actor.setVelocity(this._Direction, this._Speed), this._Collided = !1) } }, _customEvent_got_hit: function () { f.createRecycledActor(f.getActorType(67), this.actor.getX() - 8, this.actor.getY() - 8, 2); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.startShakingScreen(.001, .1); f.recycleActor(this.actor) }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); this._ScreenDiagonal = Math.sqrt(Math.pow(f.getScreenWidth(), 2) + Math.pow(f.getScreenHeight(), 2)); this._EnemyRadar = 8; f.runLater(200, function (b) { a._Activated = !0; a.actor.moveToTop() }, this.actor); f.runLater(2250, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getX() - 8, a.actor.getY() - 8, 0); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.recycleActor(a.actor) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: oq }); var pq = function (a, b, c) { P.call(this, b); this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Hit = "_Hit"; this._Hit = !1 }; k["scripts.ActorEvents_37"] = pq; pq.__name__ = "scripts.ActorEvents_37"; pq.__super__ = P; pq.prototype = u(P.prototype, { _Activated: null, _Hit: null, _event_Updating: function (a) { this.wrapper.enabled && ((16 > this.actor.getY() || this.actor.getY() > f.getSceneHeight() - 36) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()), (16 > this.actor.getX() || this.actor.getX() > f.getSceneWidth() - 24) && !this._Hit && (this._Hit = !0, this._customEvent_got_hit()), this.actor.setXVelocity(.93 * this.actor.getXVelocity()), this.actor.setYVelocity(.93 * this.actor.getYVelocity())) }, _customEvent_got_hit: function () { f.createRecycledActor(f.getActorType(67), this.actor.getX() - 8, this.actor.getY() - 8, 2); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.startShakingScreen(.001, .1); f.recycleActor(this.actor) }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); f.runLater(100, function (b) { a._Activated = !0 }, this.actor); f.runLater(2E3, function (b) { 0 == a.actor.getActorValue("Mine_ID") && f.runLater(800, function (b) { f.recycleActor(a.actor) }, a.actor); 4 == a.actor.getActorValue("Mine_ID") && f.runLater(800, function (b) { f.recycleActor(a.actor) }, a.actor) }, this.actor); f.runLater(1E3 * (f.randomInt(28, 32) / 10), function (b) { f.playSoundOnChannel(f.getSound(112), 6); a._customEvent_got_hit() }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: pq }); var qq = function (a, b, c) { P.call(this, b); this.nameMap.h.Change_Directions = "_ChangeDirections"; this._ChangeDirections = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Starting_Direction = "_StartingDirection"; this._StartingDirection = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.ActorEvents_41"] = qq; qq.__name__ = "scripts.ActorEvents_41"; qq.__super__ = P; qq.prototype = u(P.prototype, { _ChangeDirections: null, _Hero: null, _Speed: null, _CurrentDirection: null, _MaxSpeed: null, _StartingDirection: null, _Activated: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && this._Activated && (a = this._Hero, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._Hero.isAlive() && (4 > Math.abs(this.actor.getXCenter() - this._Hero.getXCenter()) && !this._ChangeDirections && (this._ChangeDirections = !0, this.actor.getYCenter() < this._Hero.getYCenter() ? this._CurrentDirection = "Down" : this._CurrentDirection = "Up", f.runLater(1E3 * f.randomFloatBetween(.9, .99), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor)), 4 > Math.abs(this.actor.getYCenter() - this._Hero.getYCenter()) && !this._ChangeDirections && (this._ChangeDirections = !0, this.actor.getXCenter() < this._Hero.getXCenter() ? this._CurrentDirection = "Right" : this._CurrentDirection = "Left", f.runLater(1E3 * f.randomFloatBetween(1.3, 2), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor))), this._ChangeDirections ? ("Up" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, -1, 1)) : "Down" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, 1, 1)) : "Left" == this._CurrentDirection ? (this.actor.setYVelocity(0), this.actor.applyImpulse(-1, 0, 1)) : "Right" == this._CurrentDirection && (this.actor.setYVelocity(0), this.actor.applyImpulse(1, 0, 1)), this.actor.setAnimation(this._CurrentDirection)) : (this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed)) }, _event_HitsSomething: function (a) { this.wrapper.enabled && (this._ChangeDirections = !1, "Up" == this._CurrentDirection ? this._CurrentDirection = "Down" : "Down" == this._CurrentDirection && (this._CurrentDirection = "Up"), "Left" == this._CurrentDirection ? this._CurrentDirection = "Right" : "Right" == this._CurrentDirection && (this._CurrentDirection = "Left")) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = this._Speed = 5; f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsSomething)) }, forwardMessage: function (a) { }, __class__: qq }); var rq = function (a, b, c) { P.call(this, b); this.nameMap.h.Change_Directions = "_ChangeDirections"; this._ChangeDirections = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Starting_Direction = "_StartingDirection"; this._StartingDirection = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.ActorEvents_45"] = rq; rq.__name__ = "scripts.ActorEvents_45"; rq.__super__ = P; rq.prototype = u(P.prototype, { _ChangeDirections: null, _Hero: null, _Speed: null, _CurrentDirection: null, _MaxSpeed: null, _StartingDirection: null, _Activated: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Activated && ("Up" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, -1, 1)) : "Down" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, 1, 1)) : "Left" == this._CurrentDirection ? (this.actor.setYVelocity(0), this.actor.applyImpulse(-1, 0, 1)) : "Right" == this._CurrentDirection && (this.actor.setYVelocity(0), this.actor.applyImpulse(1, 0, 1))), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed)) }, _event_HitsSomething: function (a) { this.wrapper.enabled && ("Up" == this._CurrentDirection ? this._CurrentDirection = "Down" : "Down" == this._CurrentDirection && (this._CurrentDirection = "Up"), "Left" == this._CurrentDirection ? this._CurrentDirection = "Right" : "Right" == this._CurrentDirection && (this._CurrentDirection = "Left")) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = this._Speed = 4.5; this._StartingDirection = f.randomInt(1, 4); 1 == this._StartingDirection ? this._CurrentDirection = "Up" : 2 == this._StartingDirection ? this._CurrentDirection = "Down" : 3 == this._StartingDirection ? (this._CurrentDirection = "Left", this.actor.setAnimation("1b")) : 4 == this._StartingDirection && (this._CurrentDirection = "Right", this.actor.setAnimation("1b")); f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsSomething)) }, forwardMessage: function (a) { }, __class__: rq }); var sq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_47"] = sq; sq.__name__ = "scripts.ActorEvents_47"; sq.__super__ = P; sq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: sq }); var tq = function (a, b, c) { P.call(this, b); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0; this.nameMap.h.Warping = "_Warping"; this._Warping = !1; this.nameMap.h.Speed = "_Speed"; this._Speed = 0 }; k["scripts.ActorEvents_53"] = tq; tq.__name__ = "scripts.ActorEvents_53"; tq.__super__ = P; tq.prototype = u(P.prototype, { _RNG: null, _MyDirection: null, _Warping: null, _Speed: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && !this._Warping && (31 >= this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this._RNG + "b"), this.actor.setY(216), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation("" + b._RNG); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 217 <= this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this._RNG + "b"), this.actor.setY(32), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation("" + b._RNG); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 31 >= this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this._RNG + "b"), this.actor.setX(376), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation("" + b._RNG); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 377 <= this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this._RNG + "b"), this.actor.setX(32), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation("" + b._RNG); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor))) }, _customEvent_play_sound: function () { f.playSoundOnChannel(f.getSound(144), h.engine.getGameAttribute("Sound_Channel") | 0); var a = h.engine, b = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = b }, init: function () { var a = this; this._RNG = f.randomInt(1, 4); this._MyDirection = 90 * this._RNG + 45; this.actor.setAnimation("" + this._RNG); this._Speed = 5; f.runLater(500, function (b) { a.actor.setVelocity(a._MyDirection, a._Speed) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: tq }); var uq = function (a, b, c) { P.call(this, b); this.nameMap.h.Moving = "_Moving"; this._Moving = !1; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.ActorEvents_57"] = uq; uq.__name__ = "scripts.ActorEvents_57"; uq.__super__ = P; uq.prototype = u(P.prototype, { _Moving: null, _Activated: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && this._Activated && (this._Moving || (this._Moving = !0, this.actor.applyImpulseInDirection(f.randomInt(0, 360), 5), f.runLater(1500, function (a) { b._Moving = !1; b.actor.setXVelocity(0); b.actor.setYVelocity(0) }, this.actor)), this.actor.setXVelocity(.99 * this.actor.getXVelocity()), this.actor.setYVelocity(.99 * this.actor.getYVelocity())) }, init: function () { var a = this; f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: uq }); var vq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_59"] = vq; vq.__name__ = "scripts.ActorEvents_59"; vq.__super__ = P; vq.prototype = u(P.prototype, { _customEvent_got_hit: function () { for (var a = 0, b = f.randomInt(1, 2); a < b;) a++, f.createRecycledActor(f.getActorType(67), this.actor.getX(), this.actor.getY(), 2); f.getLastCreatedActor().shout("_customEvent_splosion_bullet"); f.startShakingScreen(.01, .1); f.recycleActor(this.actor) }, init: function () { var a = this; this.actor.makeAlwaysSimulate(); f.runLater(3E3, function (b) { a._customEvent_got_hit() }, this.actor) }, forwardMessage: function (a) { }, __class__: vq }); var wq = function (a, b, c) { P.call(this, b); this.nameMap.h.Splosion_Angle = "_SplosionAngle"; this._SplosionAngle = 0 }; k["scripts.ActorEvents_67"] = wq; wq.__name__ = "scripts.ActorEvents_67"; wq.__super__ = P; wq.prototype = u(P.prototype, { _SplosionAngle: null, _customEvent_splosion_enemy: function () { var a = this; f.createRecycledActorOnLayer(f.getActorType(163), this.actor.getX(), this.actor.getY(), f.engine.getLayerById(0)); f.startShakingScreen(.002, .1); f.playSoundOnChannel(f.getSound(110), f.randomInt(6, 29)); f.runLater(100, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor) }, _customEvent_splosion_small: function () { var a = this; f.playSoundOnChannel(f.getSound(138), f.randomInt(6, 29)); f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor) }, _customEvent_splosion_bullet: function () { var a = this; f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().moveDown() }, this.actor) }, _customEvent_splosion_hero: function () { var a = this; f.playSoundOnChannel(f.getSound(110), 2); f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown() }, this.actor); f.runLater(200, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), 2); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), 2); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown() }, this.actor) }, _customEvent_splosion_bosses: function () { var a = this; f.createRecycledActorOnLayer(f.getActorType(163), this.actor.getX(), this.actor.getY(), f.engine.getLayerById(0)); f.startShakingScreen(.003, .1); f.playSoundOnChannel(f.getSound(110), f.randomInt(6, 29)); f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(150, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-6, 6), a.actor.getYCenter() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(200, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActor(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-9, 9), a.actor.getYCenter() + f.randomInt(-9, 9), 2); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-9, 9), a.actor.getYCenter() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor) }, _customEvent_splosion_big_bosses: function () { var a = this; f.createRecycledActorOnLayer(f.getActorType(163), this.actor.getX(), this.actor.getY(), f.engine.getLayerById(0)); f.startShakingScreen(.004, .1); f.playSoundOnChannel(f.getSound(110), f.randomInt(6, 29)); f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(125, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-6, 6), a.actor.getYCenter() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(150, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-9, 9), a.actor.getYCenter() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(175, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-12, 12), a.actor.getYCenter() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(200, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-15, 15), a.actor.getYCenter() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle + f.randomInt(-45, 45)); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor) }, _customEvent_splosion_big_end_boss: function () { var a = this; f.createRecycledActorOnLayer(f.getActorType(163), this.actor.getX(), this.actor.getY(), f.engine.getLayerById(0)); f.startShakingScreen(.0075, .3); f.playSoundOnChannel(f.getSound(110), f.randomInt(6, 29)); f.runLater(100, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-3, 3), a.actor.getYCenter() + f.randomInt(-3, 3), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(125, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-6, 6), a.actor.getY() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-6, 6), a.actor.getYCenter() + f.randomInt(-6, 6), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(150, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-9, 9), a.actor.getY() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-9, 9), a.actor.getYCenter() + f.randomInt(-9, 9), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(175, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-12, 12), a.actor.getY() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-12, 12), a.actor.getYCenter() + f.randomInt(-12, 12), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(200, function (b) { f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("2"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("3"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("4"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(67), a.actor.getX() + f.randomInt(-15, 15), a.actor.getY() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setAnimation("5"); f.getLastCreatedActor().moveDown(); f.createRecycledActorOnLayer(f.getActorType(69), a.actor.getXCenter() + f.randomInt(-15, 15), a.actor.getYCenter() + f.randomInt(-15, 15), f.engine.getLayerById(0)); f.getLastCreatedActor().setValue("ActorEvents_69", "_MyDirection", a._SplosionAngle); f.getLastCreatedActor().setAnimation("" + f.randomInt(0, 11)) }, this.actor); f.runLater(290, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getXCenter() - 16, a.actor.getYCenter() - 16, 0); f.getLastCreatedActor().shout("_customEvent_splosion_big_bosses") }, this.actor) }, _customEvent_splosion_door_skull: function () { var a = this; f.startShakingScreen(.002, .1); f.runLater(0, function (b) { f.createRecycledActor(f.getActorType(67), a.actor.getX() + f.randomInt(-3, 3), a.actor.getY() + f.randomInt(-3, 3), 0); f.getLastCreatedActor().setAnimation("1"); f.getLastCreatedActor().moveDown() }, this.actor) }, init: function () { var a = this; f.runLater(300, function (b) { f.recycleActor(a.actor) }, this.actor); 0 == this._SplosionAngle && (this._SplosionAngle = f.randomInt(0, 360)) }, forwardMessage: function (a) { }, __class__: wq }); var xq = function (a, b, c) { P.call(this, b); this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0 }; k["scripts.ActorEvents_69"] = xq; xq.__name__ = "scripts.ActorEvents_69"; xq.__super__ = P; xq.prototype = u(P.prototype, { _MyDirection: null, _event_Updating: function (a) { this.wrapper.enabled && (2 < Math.abs(this.actor.getXVelocity()) ? this.actor.setXVelocity(.95 * this.actor.getXVelocity()) : this.actor.setXVelocity(0), 2 < Math.abs(this.actor.getYVelocity()) ? this.actor.setYVelocity(.95 * this.actor.getYVelocity()) : this.actor.setYVelocity(0), (32 > this.actor.getY() || 224 < this.actor.getY()) && this.actor.setYVelocity(0), (37 > this.actor.getX() || 393 < this.actor.getX()) && this.actor.setXVelocity(0)) }, init: function () { var a = this; this.actor.moveToBottom(); f.runLater(10, function (b) { 0 != a._MyDirection && (a._MyDirection = f.randomInt(0, 360)); a.actor.applyImpulseInDirection(a._MyDirection, f.randomInt(10, 20)) }, this.actor); f.runLater(1E3 * f.randomFloatBetween(1.2, 1.5), function (b) { f.recycleActor(a.actor) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: xq }); var yq = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1 }; k["scripts.ActorEvents_73"] = yq; yq.__name__ = "scripts.ActorEvents_73"; yq.__super__ = P; yq.prototype = u(P.prototype, { _PickedUp: null, init: function () { }, forwardMessage: function (a) { }, __class__: yq }); var zq = function (a, b, c) { P.call(this, b); this.nameMap.h.Stopped = "_Stopped"; this._Stopped = !1; this.nameMap.h.Spawn = "_Spawn"; this.nameMap.h.Dying = "_Dying"; this._Dying = !1; this.nameMap.h.Target_Actor = "_TargetActor"; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0; this.nameMap.h.Wander_Left = "_WanderLeft"; this._WanderLeft = !1; this.nameMap.h.Hit_Tile = "_HitTile"; this._HitTile = !1; this.nameMap.h.Speed = "_Speed"; this._Speed = 0 }; k["scripts.ActorEvents_77"] = zq; zq.__name__ = "scripts.ActorEvents_77"; zq.__super__ = P; zq.prototype = u(P.prototype, { _Stopped: null, _Spawn: null, _Dying: null, _TargetActor: null, _MyDirection: null, _WanderLeft: null, _HitTile: null, _Speed: null, _event_HitsTiles: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorGroup(1); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; c && !this._HitTile && (this._HitTile = !0, 1 == f.randomInt(0, 1) ? this._MyDirection += f.randomInt(90, 1220) : this._MyDirection -= f.randomInt(-90, -100), f.runLater(200, function (a) { b._HitTile = !1 }, this.actor)) }, init: function () { var a = this; this.actor.setValue("Enemy_Manager", "_Activated", !0); this._Speed = 2.5; f.runLater(10, function (b) { a.actor.applyImpulseInDirection(a._MyDirection, a._Speed) }, this.actor); f.runLater(500, function (b) { a.actor.set_alpha(1) }, this.actor); f.runPeriodically(400, function (b) { f.createRecycledActor(f.getActorType(195), a.actor.getX(), a.actor.getY(), 0); a.actor.setXVelocity(.003 * a.actor.getXVelocity()); a.actor.setYVelocity(.003 * a.actor.getYVelocity()); a._WanderLeft ? a.actor.applyImpulseInDirection(a._MyDirection + f.randomInt(-6, -10), a._Speed) : a.actor.applyImpulseInDirection(a._MyDirection + f.randomInt(6, 10), a._Speed) }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsTiles)) }, forwardMessage: function (a) { }, __class__: zq }); var Aq = function (a, b, c) { P.call(this, b); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Spawn_ID = "_SpawnID"; this._SpawnID = ""; this.nameMap.h.Timer = "_Timer"; this._Timer = 0 }; k["scripts.ActorEvents_81"] = Aq; Aq.__name__ = "scripts.ActorEvents_81"; Aq.__super__ = P; Aq.prototype = u(P.prototype, { _RNG: null, _SpawnID: null, _Timer: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), 20 == this._Timer && ("Big_Boss" == this._SpawnID && this.actor.shout("_customEvent_spawn_big_boss"), "Big_End_Boss" == this._SpawnID && this.actor.shout("_customEvent_spawn_big_end_boss")), 2E3 == this._Timer && (a = this._SpawnID, f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a) ? "Boss" == this._SpawnID ? this.actor.shout("_customEvent_spawn_boss") : "Endless" == this._SpawnID ? this.actor.shout("_customEvent_spawn_endless") : "Boss_Endless" == this._SpawnID && this.actor.shout("_customEvent_spawn_boss_endless") : (this._SpawnID = "Normal", this.actor.shout("_customEvent_spawn_normal")))) }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { c = this.actor; a.drawActor = !0; a.actor = c; c.smoothMove ? (b = c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x, c = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = c.colX * a.scaleX, a.y = c.colY * a.scaleY); if ("Tutorial" == f.getCurrentSceneName()) if (b = f.getFont(252), null != b && b != a.font && (a.font = b), "Endless" == this._SpawnID) { null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 2 * a.scaleX, c = a.y + -4 * a.scaleY) : (b = a.x + 2 * a.scaleX - h.cameraX, c = a.y + -4 * a.scaleY - h.cameraY) : (b = a.x + 2 * a.scaleX, c = a.y + -4 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font, g = "Enemy:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g)) e = ca.drawnStringCache.h[g], e.lifetime = 5, d = e.img; else { e = a.font.font.getTextWidth("Enemy", a.font.fontScale); var l = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < e && 0 < l && (d = new ka(e, l, !0, 0), a.font.font.renderToImg(d, "Enemy", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), e = new vc, e.img = d, e.lifetime = 5, ca.drawnStringCache.h[g] = e, ca.drawnStringCacheKeys.push(g)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } else "Boss_Endless" == this._SpawnID && (null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + -9 * a.scaleX, c = a.y + -14 * a.scaleY) : (b = a.x + -9 * a.scaleX - h.cameraX, c = a.y + -14 * a.scaleY - h.cameraY) : (b = a.x + -9 * a.scaleX, c = a.y + -14 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, g = "Key Boss:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g) ? (e = ca.drawnStringCache.h[g], e.lifetime = 5, d = e.img) : (e = a.font.font.getTextWidth("Key Boss", a.font.fontScale), l = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < e && 0 < l && (d = new ka(e, l, !0, 0), a.font.font.renderToImg(d, "Key Boss", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), e = new vc, e.img = d, e.lifetime = 5, ca.drawnStringCache.h[g] = e, ca.drawnStringCacheKeys.push(g))), null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill())); "Endless" == this._SpawnID ? (b = 255, c = 153, d = 204, null == d && (d = 0), null == c && (c = 0), null == b && (b = 0), b = b << 16 | c << 8 | d, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = .2, c = b = 8, e = this.actor.getWidth() / 2, l = this.actor.getHeight() / 2, b *= a.scaleX, c *= a.scaleY, e *= a.scaleX, l *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, e, l), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()) : "Boss_Endless" == this._SpawnID ? (b = 255, c = 102, d = 255, null == d && (d = 0), null == c && (c = 0), null == b && (b = 0), b = b << 16 | c << 8 | d, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = .2, c = b = 0, e = this.actor.getWidth(), l = this.actor.getWidth(), b *= a.scaleX, c *= a.scaleY, e *= a.scaleX, l *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, e, l), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()) : "Big_Boss" == this._SpawnID ? (b = 255, c = 102, d = 255, null == d && (d = 0), null == c && (c = 0), null == b && (b = 0), b = b << 16 | c << 8 | d, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = .2, c = b = -4, e = this.actor.getWidth() + 8, l = this.actor.getWidth() + 8, b *= a.scaleX, c *= a.scaleY, e *= a.scaleX, l *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, e, l), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()) : "Big_End_Boss" == this._SpawnID && (b = 255, c = 102, d = 255, null == d && (d = 0), null == c && (c = 0), null == b && (b = 0), b = b << 16 | c << 8 | d, a.fillColor = 0 > b ? b + 16777216 : b, a.alpha = .2, c = b = -20, e = this.actor.getWidth() + 40, l = this.actor.getWidth() + 40, b *= a.scaleX, c *= a.scaleY, e *= a.scaleX, l *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, e, l), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()) } }, _customEvent_spawn_endless: function () { 1 == this._RNG ? f.createRecycledActor(f.getActorType(27), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 2 == this._RNG ? f.createRecycledActor(f.getActorType(57), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 3 == this._RNG ? f.createRecycledActor(f.getActorType(45), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 4 == this._RNG ? f.createRecycledActor(f.getActorType(41), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 5 == this._RNG ? f.createRecycledActor(f.getActorType(53), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 6 == this._RNG ? f.createRecycledActor(f.getActorType(95), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 7 == this._RNG ? (f.createRecycledActor(f.getActorType(77), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0), f.getLastCreatedActor().setValue("ActorEvents_77", "_MyDirection", f.randomInt(0, 360)), 0 == f.randomInt(0, 1) && f.getLastCreatedActor().setValue("ActorEvents_77", "_WanderLeft", !0)) : 8 == this._RNG ? f.createRecycledActor(f.getActorType(47), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 9 == this._RNG ? f.createRecycledActor(f.getActorType(193), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0) : 10 == this._RNG && f.createRecycledActor(f.getActorType(103), this.actor.getXCenter() - 8, this.actor.getYCenter() - 8, 0); f.recycleActor(this.actor) }, _customEvent_spawn_boss_endless: function () { var a = this; f.runLater(0, function (b) { 1 == a._RNG ? f.createRecycledActor(f.getActorType(87), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0) : 2 == a._RNG ? f.createRecycledActor(f.getActorType(89), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0) : 3 == a._RNG ? f.createRecycledActor(f.getActorType(91), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0) : 4 == a._RNG ? f.createRecycledActor(f.getActorType(97), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0) : 5 == a._RNG ? (f.createRecycledActor(f.getActorType(99), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0), f.getLastCreatedActor().setValue("ActorEvents_99", "_MyDirection", f.randomInt(0, 360)), 0 == f.randomInt(0, 1) && f.getLastCreatedActor().setValue("ActorEvents_99", "_WanderLeft", !0)) : 6 == a._RNG && f.createRecycledActor(f.getActorType(107), a.actor.getXCenter() - 13, a.actor.getYCenter() - 12, 0); f.recycleActor(a.actor) }, this.actor) }, _customEvent_spawn_big_boss: function () { var a = this, b = h.engine.getGameAttribute("Score"), c = h.engine.getGameAttribute("Big_Boss_Order").charAt(0); b == 5 * (null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))) ? (this.actor.setX(201), this.actor.setY(164), f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(191), a.actor.getX() - 6, a.actor.getY(), 0); f.recycleActor(a.actor) }, this.actor)) : (b = h.engine.getGameAttribute("Score"), c = h.engine.getGameAttribute("Big_Boss_Order").charAt(1), b == 5 * (null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))) ? 1 == f.randomInt(0, 1) ? (this.actor.setX(104), this.actor.setY(112), f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(199), a.actor.getX(), a.actor.getY(), 0); f.recycleActor(a.actor) }, this.actor)) : (this.actor.setX(312), this.actor.setY(112), f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(199), a.actor.getX() - 8, a.actor.getY(), 0); f.recycleActor(a.actor) }, this.actor)) : (b = h.engine.getGameAttribute("Score"), c = h.engine.getGameAttribute("Big_Boss_Order").charAt(2), b == 5 * (null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))) ? (this.actor.setX(201), this.actor.setY(164), f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(203), a.actor.getX() - 8, a.actor.getY(), 0); f.recycleActor(a.actor) }, this.actor)) : (b = h.engine.getGameAttribute("Score"), c = h.engine.getGameAttribute("Big_Boss_Order").charAt(3), b == 5 * (null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))) && (this.actor.setX(201), this.actor.setY(164), f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(201), a.actor.getX() - 8, a.actor.getY(), 0); f.recycleActor(a.actor) }, this.actor))))); f.runLater(1750, function (a) { f.playSoundOnChannel(f.getSound(209), f.randomInt(6, 29)) }, this.actor) }, _customEvent_spawn_big_end_boss: function () { var a = this; this.actor.setX(200); this.actor.setY(117); f.runLater(1800, function (b) { f.createRecycledActor(f.getActorType(210), a.actor.getX() - 20, a.actor.getY() - 20, 0); f.startShakingScreen(.01, 1); f.recycleActor(a.actor) }, this.actor) }, init: function () { var a = this; f.getValueForScene("Scene_Manager", "_GameOver") && f.recycleActor(this.actor); this.actor.bringToFront(); this.actor.disableActorDrawing(); f.runLater(200, function (b) { a.actor.enableActorDrawing() }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: Aq }); var Bq = function (a, b, c) { P.call(this, b); this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.Big_Boss_Key = "_BigBossKey"; this._BigBossKey = !1 }; k["scripts.ActorEvents_85"] = Bq; Bq.__name__ = "scripts.ActorEvents_85"; Bq.__super__ = P; Bq.prototype = u(P.prototype, { _PickedUp: null, _BigBossKey: null, _event_Updating: function (a) { if (this.wrapper.enabled) { 224 < this.actor.getY() && this.actor.setY(224); if (this._PickedUp) { this.actor.disableBehavior("Bounce With Full Speed"); 32 <= this.actor.getY() ? this.actor.setYVelocity(-20) : (this.actor.setYVelocity(0), this.actor.getXCenter() < f.getSceneWidth() / 2 ? this.actor.setXVelocity(20) : this.actor.setXVelocity(-20)); a = 0; for (var b = f.getActorsOfType(f.getActorType(152)); a < b.length;) { var c = b[a]; ++a; if (null != c && !c.dead && !c.recycled) { var d = this.actor.getXCenter(); d = null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d)); var e = this.actor.getYCenter(); e = null == e ? 0 : "number" == typeof e ? w.__cast(e, Ka) : "number" == typeof e && (e | 0) === e ? w.__cast(e, Ia) : "boolean" == typeof e ? w.__cast(e, La) ? 1 : 0 : "string" == typeof e ? parseFloat(e) : parseFloat(z.string(e)); var g = c.getXCenter(); g = null == g ? 0 : "number" == typeof g ? w.__cast(g, Ka) : "number" == typeof g && (g | 0) === g ? w.__cast(g, Ia) : "boolean" == typeof g ? w.__cast(g, La) ? 1 : 0 : "string" == typeof g ? parseFloat(g) : parseFloat(z.string(g)); var h = c.getYCenter(); 25 > za.distance_between_points(d, e, g, null == h ? 0 : "number" == typeof h ? w.__cast(h, Ka) : "number" == typeof h && (h | 0) === h ? w.__cast(h, Ia) : "boolean" == typeof h ? w.__cast(h, La) ? 1 : 0 : "string" == typeof h ? parseFloat(h) : parseFloat(z.string(h))) && (this._BigBossKey ? c.shout("_customEvent_big_boss_key_collected") : c.shout("_customEvent_key_collected"), f.recycleActor(this.actor)) } } } "Tutorial" != f.getCurrentSceneName() || this._PickedUp || (5 < this.actor.getXVelocity() && this.actor.setXVelocity(5), -5 > this.actor.getXVelocity() && this.actor.setXVelocity(-5), 5 < this.actor.getYVelocity() && this.actor.setYVelocity(5), -5 > this.actor.getYVelocity() && this.actor.setYVelocity(-5)); this._PickedUp || (20 < this.actor.getXVelocity() && this.actor.setXVelocity(20), -20 > this.actor.getXVelocity() && this.actor.setXVelocity(-20), 20 < this.actor.getYVelocity() && this.actor.setYVelocity(20), -20 > this.actor.getYVelocity() && this.actor.setYVelocity(-20)) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._PickedUp) { a.drawActor = !1; a.actor = null; a.x = 0; a.y = 0; var d = b = 255, e = 0; null == e && (e = 0); null == d && (d = 0); null == b && (b = 0); b = b << 16 | d << 8 | e; a.fillColor = 0 > b ? b + 16777216 : b; a.alpha = .6; b = 16 * Math.floor(this.actor.getXCenter() / f.getTileWidth()); c = 16 * Math.floor(this.actor.getYCenter() / f.getTileWidth()); b *= a.scaleX; c *= a.scaleY; d = 16 * a.scaleX; e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } if ("Tutorial" == f.getCurrentSceneName() && !this._PickedUp) { d = this.actor; a.drawActor = !0; a.actor = d; d.smoothMove ? (b = d.drawX - Math.floor(d.cacheWidth / 2) - d.currOffset.x, c = d.drawY - Math.floor(d.cacheHeight / 2) - d.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = d.colX * a.scaleX, a.y = d.colY * a.scaleY); b = f.getFont(252); null != b && b != a.font && (a.font = b); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 0 * a.scaleX, c = a.y + -7 * a.scaleY) : (b = a.x + 0 * a.scaleX - h.cameraX, c = a.y + -7 * a.scaleY - h.cameraY) : (b = a.x + 0 * a.scaleX, c = a.y + -7 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "Key:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("Key", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "Key", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } } }, _event_HitsHero: function (a) { if (this.wrapper.enabled) { var b = f.getActorType(18); var c = a.otherActor.getType(); a = a.otherActor.getGroup(); b = b == c || b == a } else b = !1; b && !this._PickedUp && (this.actor.disableBehavior("Follow Target CUSTOM"), this._PickedUp = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.setAnimation("Picked_Up"), f.playSoundOnChannel(f.getSound(141), 5), this.actor.disableActorDrawing()) }, init: function () { 25 == h.engine.getGameAttribute("Score") && this.actor.disableBehavior("Follow Target CUSTOM"); var a = f.getValueForScene("Scene_Manager", "_PassedLevel"); 1 != a && "true" != a || f.recycleActor(this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Bq }); var Cq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_87"] = Cq; Cq.__name__ = "scripts.ActorEvents_87"; Cq.__super__ = P; Cq.prototype = u(P.prototype, { init: function () { var a = this; this.actor.set_alpha(.5); f.runLater(500, function (b) { a.actor.set_alpha(1); a.actor.setAnimation("3"); a.actor.setVelocity(f.randomInt(0, 360), 5) }, this.actor); f.runPeriodically(2E3, function (b) { 0 == a.actor.getXVelocity() && 0 == a.actor.getYVelocity() && a.actor.setVelocity(f.randomInt(0, 360), 5) }, this.actor) }, forwardMessage: function (a) { }, __class__: Cq }); var Dq = function (a, b, c) { P.call(this, b); this.nameMap.h.Change_Directions = "_ChangeDirections"; this._ChangeDirections = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Starting_Direction = "_StartingDirection"; this._StartingDirection = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.ActorEvents_89"] = Dq; Dq.__name__ = "scripts.ActorEvents_89"; Dq.__super__ = P; Dq.prototype = u(P.prototype, { _ChangeDirections: null, _Hero: null, _Speed: null, _CurrentDirection: null, _MaxSpeed: null, _StartingDirection: null, _Activated: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Activated && ("Up" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, -1, 1)) : "Down" == this._CurrentDirection ? (this.actor.setXVelocity(0), this.actor.applyImpulse(0, 1, 1)) : "Left" == this._CurrentDirection ? (this.actor.setYVelocity(0), this.actor.applyImpulse(-1, 0, 1)) : "Right" == this._CurrentDirection && (this.actor.setYVelocity(0), this.actor.applyImpulse(1, 0, 1))), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed)) }, _event_HitsSomething: function (a) { this.wrapper.enabled && a.otherActor.getGroup() != f.getActorGroup(6) && ("Up" == this._CurrentDirection ? this._CurrentDirection = "Down" : "Down" == this._CurrentDirection && (this._CurrentDirection = "Up"), "Left" == this._CurrentDirection ? this._CurrentDirection = "Right" : "Right" == this._CurrentDirection && (this._CurrentDirection = "Left")) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = this._Speed = 5; this._StartingDirection = f.randomInt(1, 2); 1 == this._StartingDirection ? this._CurrentDirection = "Left" : 2 == this._StartingDirection && (this._CurrentDirection = "Right"); f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsSomething)) }, forwardMessage: function (a) { }, __class__: Dq }); var Eq = function (a, b, c) { P.call(this, b); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0; this.nameMap.h.Warping = "_Warping"; this._Warping = !1; this.nameMap.h.Speed = "_Speed"; this._Speed = 0 }; k["scripts.ActorEvents_91"] = Eq; Eq.__name__ = "scripts.ActorEvents_91"; Eq.__super__ = P; Eq.prototype = u(P.prototype, { _RNG: null, _MyDirection: null, _Warping: null, _Speed: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && !this._Warping && (31 == this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setY(208), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 209 == this.actor.getY() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setY(32), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 33 == this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setX(352), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor)), 353 == this.actor.getX() && (this._Warping = !0, this.actor.setXVelocity(0), this.actor.setYVelocity(0), this.actor.set_alpha(.5), this.actor.setAnimation("" + this.actor.getAnimation() + "b"), this.actor.setX(34), f.runLater(1E3, function (a) { b._Warping = !1; b.actor.set_alpha(1); b.actor.setAnimation(("" + b.actor.getAnimation()).charAt(0)); b.actor.setVelocity(b._MyDirection, b._Speed); b._customEvent_play_sound() }, this.actor))) }, _customEvent_play_sound: function () { f.playSoundOnChannel(f.getSound(144), h.engine.getGameAttribute("Sound_Channel") | 0); var a = h.engine, b = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = b }, init: function () { var a = this; this._RNG = f.randomInt(1, 4); this._MyDirection = 90 * this._RNG + 45; this._Speed = 5; 2 != this._RNG && 4 != this._RNG || this.actor.growTo(-1, 1, .01, Wa.linear); f.runLater(500, function (b) { a.actor.setVelocity(a._MyDirection, a._Speed) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Eq }); var Fq = function (a, b, c) { P.call(this, b); this.nameMap.h.Change_Directions = "_ChangeDirections"; this._ChangeDirections = !1; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Current_Direction = "_CurrentDirection"; this._CurrentDirection = ""; this.nameMap.h.Max_Speed = "_MaxSpeed"; this._MaxSpeed = 0; this.nameMap.h.Starting_Direction = "_StartingDirection"; this._StartingDirection = 0; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.ActorEvents_95"] = Fq; Fq.__name__ = "scripts.ActorEvents_95"; Fq.__super__ = P; Fq.prototype = u(P.prototype, { _ChangeDirections: null, _Hero: null, _Speed: null, _CurrentDirection: null, _MaxSpeed: null, _StartingDirection: null, _Activated: null, _event_Updating: function (a) { var b = this; this.wrapper.enabled && this._Activated && (a = this._Hero, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._Hero.isAlive() && (-134 > za.angle_to_target("degrees", this._Hero, this.actor) && -136 < za.angle_to_target("degrees", this._Hero, this.actor) && !this._ChangeDirections && (this._ChangeDirections = !0, this._CurrentDirection = "NW", f.runLater(1E3 * f.randomFloatBetween(.9, .99), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor)), -44 > za.angle_to_target("degrees", this._Hero, this.actor) && -46 < za.angle_to_target("degrees", this._Hero, this.actor) && !this._ChangeDirections && (this._ChangeDirections = !0, this._CurrentDirection = "NE", f.runLater(1E3 * f.randomFloatBetween(.9, .99), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor)), 46 > za.angle_to_target("degrees", this._Hero, this.actor) && 44 < za.angle_to_target("degrees", this._Hero, this.actor) && !this._ChangeDirections && (this._ChangeDirections = !0, this._CurrentDirection = "SE", f.runLater(1E3 * f.randomFloatBetween(.9, .99), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor)), 136 > za.angle_to_target("degrees", this._Hero, this.actor) && 134 < za.angle_to_target("degrees", this._Hero, this.actor) && !this._ChangeDirections && (this._ChangeDirections = !0, this._CurrentDirection = "SW", f.runLater(1E3 * f.randomFloatBetween(.9, .99), function (a) { b._ChangeDirections = !1; b.actor.setAnimation("Idle") }, this.actor))), this._ChangeDirections ? ("NW" == this._CurrentDirection ? this.actor.applyImpulseInDirection(-135, 1) : "NE" == this._CurrentDirection ? this.actor.applyImpulseInDirection(-45, 1) : "SE" == this._CurrentDirection ? this.actor.applyImpulseInDirection(45, 1) : "SW" == this._CurrentDirection && this.actor.applyImpulseInDirection(135, 1), this.actor.setAnimation(this._CurrentDirection)) : (this.actor.setXVelocity(0), this.actor.setYVelocity(0)), this.actor.getXVelocity() > this._MaxSpeed && this.actor.setXVelocity(this._MaxSpeed), this.actor.getYVelocity() > this._MaxSpeed && this.actor.setYVelocity(this._MaxSpeed), this.actor.getXVelocity() < -this._MaxSpeed && this.actor.setXVelocity(-this._MaxSpeed), this.actor.getYVelocity() < -this._MaxSpeed && this.actor.setYVelocity(-this._MaxSpeed)) }, _event_HitsSomething: function (a) { this.wrapper.enabled && (this._ChangeDirections = !1, "Up" == this._CurrentDirection ? this._CurrentDirection = "Down" : "Down" == this._CurrentDirection && (this._CurrentDirection = "Up"), "Left" == this._CurrentDirection ? this._CurrentDirection = "Right" : "Right" == this._CurrentDirection && (this._CurrentDirection = "Left")) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } this._MaxSpeed = this._Speed = 4; f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsSomething)) }, forwardMessage: function (a) { }, __class__: Fq }); var Gq = function (a, b, c) { P.call(this, b) }; k["scripts.ActorEvents_97"] = Gq; Gq.__name__ = "scripts.ActorEvents_97"; Gq.__super__ = P; Gq.prototype = u(P.prototype, { init: function () { }, forwardMessage: function (a) { }, __class__: Gq }); var Hq = function (a, b, c) { P.call(this, b); this.nameMap.h.Stopped = "_Stopped"; this._Stopped = !1; this.nameMap.h.Spawn = "_Spawn"; this.nameMap.h.Dying = "_Dying"; this._Dying = !1; this.nameMap.h.Target_Actor = "_TargetActor"; this.nameMap.h.My_Direction = "_MyDirection"; this._MyDirection = 0; this.nameMap.h.Wander_Left = "_WanderLeft"; this._WanderLeft = !1; this.nameMap.h.Hit_Tile = "_HitTile"; this._HitTile = !1; this.nameMap.h.Speed = "_Speed"; this._Speed = 0 }; k["scripts.ActorEvents_99"] = Hq; Hq.__name__ = "scripts.ActorEvents_99"; Hq.__super__ = P; Hq.prototype = u(P.prototype, { _Stopped: null, _Spawn: null, _Dying: null, _TargetActor: null, _MyDirection: null, _WanderLeft: null, _HitTile: null, _Speed: null, _event_HitsTiles: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorGroup(1); var d = a.otherActor.getType(); a = a.otherActor.getGroup(); c = c == d || c == a } else c = !1; c && !this._HitTile && (this._HitTile = !0, 1 == f.randomInt(0, 1) ? this._MyDirection += f.randomInt(90, 120) : this._MyDirection -= f.randomInt(-90, -100), f.runLater(200, function (a) { b._HitTile = !1 }, this.actor)) }, init: function () { var a = this; this._Speed = 2.5; f.runLater(10, function (b) { a.actor.applyImpulseInDirection(a._MyDirection, a._Speed) }, this.actor); f.runPeriodically(500, function (b) { f.createRecycledActor(f.getActorType(101), a.actor.getXCenter() - 8, a.actor.getYCenter() - 8, 0); a.actor.setXVelocity(0); a.actor.setYVelocity(0); a._MyDirection = a._WanderLeft ? a._MyDirection - 3 : a._MyDirection + 3; a.actor.applyImpulseInDirection(a._MyDirection, a._Speed) }, this.actor); this.addListener(this.actor.whenCollided, q(this, this._event_HitsTiles)) }, forwardMessage: function (a) { }, __class__: Hq }); var Iq = function (a, b) { f.call(this); this.nameMap.h.x_Death = "_xDeath"; this._xDeath = 0; this.nameMap.h.y_Death = "_yDeath"; this._yDeath = 0; this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Pickups_Live = "_PickupsLive"; this._PickupsLive = 0; this.nameMap.h.Enemies_Live = "_EnemiesLive"; this._EnemiesLive = 0; this.nameMap.h.Passed_Level = "_PassedLevel"; this._PassedLevel = !1; this.nameMap.h.Started = "_Started"; this._Started = !1; this.nameMap.h.Enemy_Spawner_Counter = "_EnemySpawnerCounter"; this._EnemySpawnerCounter = 0; this.nameMap.h.Death_Screen_Flash = "_DeathScreenFlash"; this._DeathScreenFlash = 0; this.nameMap.h.Endless_Bosses_Spawned = "_EndlessBossesSpawned"; this._EndlessBossesSpawned = !1; this.nameMap.h.Game_Over = "_GameOver"; this._GameOver = !1; this.nameMap.h.Game_Over_UI = "_GameOverUI"; this._GameOverUI = !1; this.nameMap.h.Game_Over_Scan = "_GameOverScan"; this._GameOverScan = 0; this.nameMap.h.Hero_Ready = "_HeroReady"; this._HeroReady = !1; this.nameMap.h.Big_Boss_Level = "_BigBossLevel"; this._BigBossLevel = !1; this.nameMap.h.Entered_Door = "_EnteredDoor"; this._EnteredDoor = !1; this.nameMap.h.Weapon_Pickups_Live = "_WeaponPickupsLive"; this._WeaponPickupsLive = 0; this.nameMap.h.Timer = "_Timer"; this._Timer = 0 }; k["scripts.Design_130_130"] = Iq; Iq.__name__ = "scripts.Design_130_130"; Iq.__super__ = Md; Iq.prototype = u(Md.prototype, { _xDeath: null, _yDeath: null, _RNG: null, _PickupsLive: null, _EnemiesLive: null, _PassedLevel: null, _Started: null, _EnemySpawnerCounter: null, _DeathScreenFlash: null, _EndlessBossesSpawned: null, _GameOver: null, _GameOverUI: null, _GameOverScan: null, _HeroReady: null, _BigBossLevel: null, _EnteredDoor: null, _WeaponPickupsLive: null, _Timer: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { if (this._GameOver && 224 > this._GameOverScan && 0 < this._GameOverScan) { var d = 254, e = 55; b = 147; null == b && (b = 0); null == e && (e = 0); null == d && (d = 0); d = d << 16 | e << 8 | b; a.fillColor = 0 > d ? d + 16777216 : d; a.alpha = .3; c = this._GameOverScan; b = 20 * a.scaleX; c *= a.scaleY; d = 394 * a.scaleX; e = 16 * a.scaleY; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawRect(a.x + b, a.y + c, d, e); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } 0 < this._DeathScreenFlash && (b = e = d = 255, null == b && (b = 0), null == e && (e = 0), null == d && (d = 0), d = d << 16 | e << 8 | b, a.fillColor = 0 > d ? d + 16777216 : d, a.alpha = this._DeathScreenFlash / 100, c = b = 0, d = f.getScreenWidth(), e = f.getScreenHeight(), b *= a.scaleX, c *= a.scaleY, d *= a.scaleX, e *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, d, e), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()); if (this._GameOverUI) { d = f.getFont(172); null != d && d != a.font && (a.font = d); b = (f.getSceneWidth() - a.font.getTextWidth("GAME OVER") / h.SCALE) / 2; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 55 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var g = null; d = a.font; var l = "GAME OVER:" + d.ID + ":" + a.alpha + ":" + h.SCALE + ":" + d.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, g = d.img) : (d = a.font.font.getTextWidth("GAME OVER", a.font.fontScale), e = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < d && 0 < e && (g = new ka(d, e, !0, 0), a.font.font.renderToImg(g, "GAME OVER", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = g, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))); null != g && (a.graphics.beginBitmapFill(g, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, g.width, g.height), a.graphics.endFill()) } } }, _event_Updating: function (a) { this.wrapper.enabled && (25 <= h.engine.getGameAttribute("Sound_Channel") && (h.engine.gameAttributes.h.Sound_Channel = 6), !this._Started && this._HeroReady && (f.isKeyPressed("up") || f.isKeyPressed("down") || f.isKeyPressed("left") || f.isKeyPressed("right") || f.isKeyPressed("W") || f.isKeyPressed("S") || f.isKeyPressed("A") || f.isKeyPressed("D")) && (this._Started = !0, this._Timer = 0), !this._Started || this._PassedLevel || this._GameOver || (this._Timer += f.getStepSize(), 2500 == this._Timer && (f.createRecycledActorOnLayer(f.getActorType(81), 136, 116, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), 5E3 == this._Timer && (f.createRecycledActorOnLayer(f.getActorType(81), 136, 116, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), 7500 == this._Timer && (f.createRecycledActorOnLayer(f.getActorType(81), 136, 116, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")), 1E4 == this._Timer && (f.createRecycledActorOnLayer(f.getActorType(81), 272, 116, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", 1), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Boss_Endless"), this._Timer = 0))) }, _customEvent_unlocked_door: function () { this._PassedLevel = !0; for (var a = 0, b = f.getActorsOfType(f.getActorType(81)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } f.runLater(1E3, function (a) { a = 0; for (var b = f.getActorsOfType(f.getActorType(85)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } a = 0; for (b = f.getActorsOfType(f.getActorType(154)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || (c.setValue("ActorEvents_154", "_PassedLevel", !0), c.shout("_customEvent_open_door")) }, null) }, _customEvent_entered_door: function () { if (!this._EnteredDoor) { this._EnteredDoor = !0; h.engine.gameAttributes.h.Tutorial_Complete = !0; var a = zb.get().scenes.h[15].getID(), b = 204, c = 204, d = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); var e = f.createFadeOut(.3, b << 16 | c << 8 | d); d = c = b = 204; null == d && (d = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, e, f.createFadeIn(.3, b << 16 | c << 8 | d)); f.saveGame("mySave", function (a) { }) } }, _customEvent_game_over: function () { var a = this; this._GameOver || (this._GameOver = !0, f.runLater(1E3, function (b) { a._GameOverScan = 32; f.runPeriodically(50, function (b) { if (a._GameOverScan < f.getSceneHeight()) { a._GameOverScan += 16; b = 0; for (var c = w.__cast(f.getActorGroup(5), df).list; b < c.length;) { var e = c[b]; ++b; null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && e.shout("_customEvent_die") } b = 0; for (c = w.__cast(f.getActorGroup(8), df).list; b < c.length;) e = c[b], ++b, null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && e.shout("_customEvent_die"); b = 0; for (c = w.__cast(f.getActorGroup(10), df).list; b < c.length;) e = c[b], ++b, null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && e.shout("_customEvent_die"); b = 0; for (c = f.getActorsOfType(f.getActorType(81)); b < c.length;) e = c[b], ++b, null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && f.recycleActor(e); b = 0; for (c = f.getActorsOfType(f.getActorType(73)); b < c.length;) e = c[b], ++b, null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && f.recycleActor(e); b = 0; for (c = f.getActorsOfType(f.getActorType(85)); b < c.length;) e = c[b], ++b, null == e || e.dead || e.recycled || e.getY() < a._GameOverScan + 16 && f.recycleActor(e) } }, null) }, null), f.runLater(2E3, function (b) { a._GameOverUI = !0; f.playSoundOnChannel(f.getSound(179), 5); f.createRecycledActor(f.getActorType(174), 74, 188, 0); f.createRecycledActor(f.getActorType(176), 294, 188, 0) }, null), h.engine.gameAttributes.h.Score = 0, h.engine.gameAttributes.h.Big_Boss_Order = "asdf", f.runLater(50, function (b) { a._DeathScreenFlash = 95; f.runLater(100, function (b) { a._DeathScreenFlash = 0; f.startShakingScreen(.02, .5) }, null) }, null), f.saveGame("mySave", function (a) { })) }, _customEvent_enemy_type_killed: function () { }, init: function () { 0 == h.engine.getGameAttribute("Lives") && (h.engine.gameAttributes.h.Lives = 3); 0 == h.engine.getGameAttribute("High_Score") && (h.engine.gameAttributes.h.High_Score = 1); 0 == h.engine.getGameAttribute("Score") && (h.engine.gameAttributes.h.Score = 1); f.createRecycledActor(f.getActorType(182), 10, 17, 0); f.createRecycledActor(f.getActorType(188), 276, 5, 0); h.engine.gameAttributes.h.Enemies_Live = 0; ya.isMobileGame() || f.disableBehaviorForScene("MyJoystick"); this.addListener(f.engine.whenDrawing, q(this, this._event_Drawing)); this.addListener(f.engine.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Iq }); var Jq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Weapon_Name = "_WeaponName"; this._WeaponName = ""; this.nameMap.h.Display_Weapon_Name = "_DisplayWeaponName"; this._DisplayWeaponName = !1; this.nameMap.h.Weapon_RNG = "_WeaponRNG"; this._WeaponRNG = 0; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1 }; k["scripts.Design_132_132_TutorialWeaponManager"] = Jq; Jq.__name__ = "scripts.Design_132_132_TutorialWeaponManager"; Jq.__super__ = P; Jq.prototype = u(P.prototype, { _WeaponName: null, _DisplayWeaponName: null, _WeaponRNG: null, _Hero: null, _PickedUp: null, _event_Updating: function (a) { var b = this; if (this.wrapper.enabled && (a = this._Hero, f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a))) { if (this._DisplayWeaponName) a = !1; else { a = this.actor.getXCenter(); var c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this.actor.getYCenter(); var d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getXCenter(); var e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = this._Hero.getYCenter(); a = 32 > za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) } a && (this._DisplayWeaponName = !0); this._DisplayWeaponName ? (a = this.actor.getXCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 32 < za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))) : a = !1; a && (this._DisplayWeaponName = !1); this._PickedUp ? a = !1 : (a = this.actor.getXCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 14 > za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))); a && (this._PickedUp = !0); this._PickedUp ? (a = this.actor.getXCenter(), c = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this.actor.getYCenter(), d = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getXCenter(), e = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = this._Hero.getYCenter(), a = 14 < za.distance_between_points(c, d, e, null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))) : a = !1; a && (this._PickedUp = !1, f.runLater(1E3, function (a) { f.createRecycledActor(f.getActorType(73), b.actor.getX(), b.actor.getY(), 0); f.getLastCreatedActor().setValue("Pickup_Manager", "_WeaponRNG", b._WeaponRNG) }, this.actor)) } }, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled && this._DisplayWeaponName) { b = f.getFont(252); null != b && b != a.font && (a.font = b); c = this.actor; a.drawActor = !0; a.actor = c; c.smoothMove ? (b = c.drawX - Math.floor(c.cacheWidth / 2) - c.currOffset.x, c = c.drawY - Math.floor(c.cacheHeight / 2) - c.currOffset.y, a.x = b * a.scaleX, a.y = c * a.scaleY) : (a.x = c.colX * a.scaleX, a.y = c.colY * a.scaleY); if (this.actor.getX() < f.getSceneWidth() / 2) { var d = this._WeaponName; b = this.actor.getWidth() + 4; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 4 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 4 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 4 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var e = null, g = a.font; g = d + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g)) d = ca.drawnStringCache.h[g], d.lifetime = 5, e = d.img; else { var l = a.font.font.getTextWidth(d, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < l && 0 < k && (e = new ka(l, k, !0, 0), a.font.font.renderToImg(e, d, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[g] = d, ca.drawnStringCacheKeys.push(g)) } } else d = this._WeaponName, b = -(f.getFont(217).getTextWidth(this._WeaponName) / h.SCALE + -4), null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 4 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 4 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 4 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), e = null, g = a.font, g = d + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, g) ? (d = ca.drawnStringCache.h[g], d.lifetime = 5, e = d.img) : (l = a.font.font.getTextWidth(d, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (e = new ka(l, k, !0, 0), a.font.font.renderToImg(e, d, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[g] = d, ca.drawnStringCacheKeys.push(g))); null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()) } }, init: function () { var a = this; this.actor.disableActorDrawing(); for (var b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._Hero = d) } f.runLater(1E3 * f.randomFloatBetween(.1, .4), function (b) { f.createRecycledActor(f.getActorType(73), a.actor.getX(), a.actor.getY(), 0); f.getLastCreatedActor().setValue("Pickup_Manager", "_WeaponRNG", a._WeaponRNG) }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: Jq }); var Kq = function (a, b) { f.call(this); this.nameMap.h.x_Death = "_xDeath"; this._xDeath = 0; this.nameMap.h.y_Death = "_yDeath"; this._yDeath = 0; this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Pickups_Live = "_PickupsLive"; this._PickupsLive = 0; this.nameMap.h.Enemies_Live = "_EnemiesLive"; this._EnemiesLive = 0; this.nameMap.h.Passed_Level = "_PassedLevel"; this._PassedLevel = !1; this.nameMap.h.Started = "_Started"; this._Started = !1; this.nameMap.h.Enemy_Spawner_Counter = "_EnemySpawnerCounter"; this._EnemySpawnerCounter = 0; this.nameMap.h.Death_Screen_Flash = "_DeathScreenFlash"; this._DeathScreenFlash = 0; this.nameMap.h.Endless_Bosses_Spawned = "_EndlessBossesSpawned"; this._EndlessBossesSpawned = !1; this.nameMap.h.Game_Over = "_GameOver"; this._GameOver = !1; this.nameMap.h.Game_Over_UI = "_GameOverUI"; this._GameOverUI = !1; this.nameMap.h.Game_Over_Scan = "_GameOverScan"; this._GameOverScan = 0; this.nameMap.h.Hero_Ready = "_HeroReady"; this._HeroReady = !1; this.nameMap.h.Big_Boss_Level = "_BigBossLevel"; this._BigBossLevel = !1; this.nameMap.h.Enemy_Type_Killed = "_EnemyTypeKilled"; this.nameMap.h.Speedrun_Timer = "_SpeedrunTimer"; this._SpeedrunTimer = 0; this.nameMap.h.Entered_Door = "_EnteredDoor"; this._EnteredDoor = !1; this.nameMap.h.Big_Boss_Slot_1 = "_BigBossSlot1"; this._BigBossSlot1 = 0; this.nameMap.h.Big_Boss_Slot_2 = "_BigBossSlot2"; this._BigBossSlot2 = 0; this.nameMap.h.Big_Boss_Slot_3 = "_BigBossSlot3"; this._BigBossSlot3 = 0; this.nameMap.h.Big_Boss_Slot_4 = "_BigBossSlot4"; this._BigBossSlot4 = 0; this.nameMap.h.RNG_2 = "_RNG2"; this._RNG2 = 0; this.nameMap.h.End_Boss_Level = "_EndBossLevel"; this._EndBossLevel = !1; this.nameMap.h.Timer_X = "_TimerX"; this._TimerX = 0; this.nameMap.h.Timer_Y = "_TimerY"; this._TimerY = 0; this.nameMap.h.bannerTime = "_bannerTime"; this._bannerTime = 0 }; k["scripts.Design_14_14_SceneManager"] = Kq; Kq.__name__ = "scripts.Design_14_14_SceneManager"; Kq.__super__ = Md; Kq.prototype = u(Md.prototype, { _xDeath: null, _yDeath: null, _RNG: null, _PickupsLive: null, _EnemiesLive: null, _PassedLevel: null, _Started: null, _EnemySpawnerCounter: null, _DeathScreenFlash: null, _EndlessBossesSpawned: null, _GameOver: null, _GameOverUI: null, _GameOverScan: null, _HeroReady: null, _BigBossLevel: null, _EnemyTypeKilled: null, _SpeedrunTimer: null, _EnteredDoor: null, _BigBossSlot1: null, _BigBossSlot2: null, _BigBossSlot3: null, _BigBossSlot4: null, _RNG2: null, _EndBossLevel: null, _TimerX: null, _TimerY: null, _bannerTime: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { var d = f.getFont(252); null != d && d != a.font && (a.font = d); d = f.getFont(255); null != d && d != a.font && (a.font = d); d = "" + Math.floor(this._SpeedrunTimer / 1E3 / 60) + ":" + ("" + this._SpeedrunTimer / 1E3 % 60).substring(0, 4); b = this._TimerX; c = this._TimerY; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + c * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + c * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var e = null, g = a.font, l = d + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l)) d = ca.drawnStringCache.h[l], d.lifetime = 5, e = d.img; else { g = a.font.font.getTextWidth(d, a.font.fontScale); var k = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < g && 0 < k && (e = new ka(g, k, !0, 0), a.font.font.renderToImg(e, d, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l)) } null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); if (!this._Started) { d = f.getFont(172); null != d && d != a.font && (a.font = d); if (5 == h.engine.getGameAttribute("Score") || 10 == h.engine.getGameAttribute("Score") || 15 == h.engine.getGameAttribute("Score") || 20 == h.engine.getGameAttribute("Score")) b = (f.getSceneWidth() - a.font.getTextWidth("BOSS") / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 184 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 184 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 184 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), e = null, g = a.font, l = "BOSS:" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, e = d.img) : (g = a.font.font.getTextWidth("BOSS", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < k && (e = new ka(g, k, !0, 0), a.font.font.renderToImg(e, "BOSS", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()); 25 == h.engine.getGameAttribute("Score") && (b = (f.getSceneWidth() - a.font.getTextWidth("END BOSS") / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 184 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 184 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 184 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), e = null, g = a.font, l = "END BOSS:" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, e = d.img) : (g = a.font.font.getTextWidth("END BOSS", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < k && (e = new ka(g, k, !0, 0), a.font.font.renderToImg(e, "END BOSS", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill())) } this._GameOver && 224 > this._GameOverScan && 0 < this._GameOverScan && (d = 254, b = 55, c = 147, null == c && (c = 0), null == b && (b = 0), null == d && (d = 0), d = d << 16 | b << 8 | c, a.fillColor = 0 > d ? d + 16777216 : d, a.alpha = .3, c = this._GameOverScan, b = 20 * a.scaleX, c *= a.scaleY, g = 394 * a.scaleX, k = 16 * a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, g, k), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()); 0 < this._DeathScreenFlash && (c = b = d = 255, null == c && (c = 0), null == b && (b = 0), null == d && (d = 0), d = d << 16 | b << 8 | c, a.fillColor = 0 > d ? d + 16777216 : d, a.alpha = this._DeathScreenFlash / 100, c = b = 0, g = f.getScreenWidth(), k = f.getScreenHeight(), b *= a.scaleX, c *= a.scaleY, g *= a.scaleX, k *= a.scaleY, !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY), 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha), a.graphics.beginFill(a.fillColor, a.alpha), a.graphics.drawRect(a.x + b, a.y + c, g, k), a.graphics.endFill(), a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY), a.graphics.lineStyle()); this._GameOverUI && (d = f.getFont(172), null != d && d != a.font && (a.font = d), b = (f.getSceneWidth() - a.font.getTextWidth("GAME OVER") / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 55 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 55 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), e = null, g = a.font, l = "GAME OVER:" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, e = d.img) : (g = a.font.font.getTextWidth("GAME OVER", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < k && (e = new ka(g, k, !0, 0), a.font.font.renderToImg(e, "GAME OVER", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill()), d = f.getFont(173), null != d && d != a.font && (a.font = d), d = "LEVEL: " + h.engine.getGameAttribute("Score"), b = (f.getSceneWidth() - a.font.getTextWidth("LEVEL: " + h.engine.getGameAttribute("Score")) / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 200 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 200 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 200 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), e = null, g = a.font, l = d + ":" + g.ID + ":" + a.alpha + ":" + h.SCALE + ":" + g.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, l) ? (d = ca.drawnStringCache.h[l], d.lifetime = 5, e = d.img) : (g = a.font.font.getTextWidth(d, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < k && (e = new ka(g, k, !0, 0), a.font.font.renderToImg(e, d, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), d = new vc, d.img = e, d.lifetime = 5, ca.drawnStringCache.h[l] = d, ca.drawnStringCacheKeys.push(l))), null != e && (a.graphics.beginBitmapFill(e, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, e.width, e.height), a.graphics.endFill())) } }, _event_Updating: function (a) { if (this.wrapper.enabled) { !this._Started || this._EnteredDoor || this._GameOver || f.engine.isPaused() || (this._SpeedrunTimer += f.getStepSize()); 25 <= h.engine.getGameAttribute("Sound_Channel") && (h.engine.gameAttributes.h.Sound_Channel = 6); if (!this._Started && this._HeroReady && (f.isKeyPressed("up") || f.isKeyPressed("down") || f.isKeyPressed("left") || f.isKeyPressed("right") || f.isKeyPressed("W") || f.isKeyPressed("S") || f.isKeyPressed("A") || f.isKeyPressed("D") || f.isMousePressed())) { this._Started = !0; a = 0; for (var b = f.getActorsOfType(f.getActorType(207)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || c.shout("_customEvent_spawn") } a = 0; for (b = f.getActorsOfType(f.getActorType(150)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || c.shout("_customEvent_spawn_bosses"); 0 == h.engine.getGameAttribute("Score") % 5 && (f.createRecycledActorOnLayer(f.getActorType(81), 128, 128, f.engine.getLayerById(0)), 25 != h.engine.getGameAttribute("Score") ? f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Big_Boss") : 25 == h.engine.getGameAttribute("Score") && f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Big_End_Boss")) } this._PassedLevel || 2 == this._PickupsLive || (this._PickupsLive += 1, this._RNG = f.randomInt(0, 7), f.createRecycledActorOnLayer(f.getActorType(73), 16 * f.randomInt(4, 21), 16 * f.randomInt(4, 11), f.engine.getLayerById(0)), this._EndlessBossesSpawned && 3 > h.engine.getGameAttribute("Enemies_Live") && 4 <= this._RNG && (this._RNG = f.randomInt(0, 3)), f.getLastCreatedActor().setValue("Pickup_Manager", "_WeaponRNG", this._RNG)) } }, _customEvent_setup_big_boss_order: function () { this._BigBossSlot1 = f.randomInt(1, 4); for (this._BigBossSlot2 = f.randomInt(1, 4); this._BigBossSlot2 == this._BigBossSlot1;) this._BigBossSlot2 = f.randomInt(1, 4); for (this._BigBossSlot3 = f.randomInt(1, 4); this._BigBossSlot3 == this._BigBossSlot1 || this._BigBossSlot3 == this._BigBossSlot2;) this._BigBossSlot3 = f.randomInt(1, 4); for (this._BigBossSlot4 = f.randomInt(1, 4); this._BigBossSlot4 == this._BigBossSlot1 || this._BigBossSlot4 == this._BigBossSlot2 || this._BigBossSlot4 == this._BigBossSlot3;) this._BigBossSlot4 = f.randomInt(1, 4); h.engine.gameAttributes.h.Big_Boss_Order = "" + this._BigBossSlot1 + ("" + this._BigBossSlot2 + ("" + this._BigBossSlot3 + ("" + this._BigBossSlot4))) }, _customEvent_unlocked_door: function () { 3 > h.engine.getGameAttribute("Lives") && f.runLater(500, function (a) { a = 0; for (var b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || 0 == h.engine.getGameAttribute("Score") % 5 || (c.getX() > f.getScreenWidth() / 2 ? f.createRecycledActor(f.getActorType(267), 79, 117, 0) : f.createRecycledActor(f.getActorType(267), 335, 117, 0), f.getLastCreatedActor().sendBackward()) } }, null); this._PassedLevel = !0; for (var a = 0, b = f.getActorsOfType(f.getActorType(81)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } a = 0; for (b = f.getActorsOfType(f.getActorType(73)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || c.getValue("ActorEvents_73", "_PickedUp") || f.recycleActor(c); f.runLater(1E3, function (a) { if (0 != h.engine.getGameAttribute("Score") % 5) { a = 0; for (var b = f.getActorsOfType(f.getActorType(154)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (c.setValue("ActorEvents_154", "_PassedLevel", !0), c.shout("_customEvent_open_door")) } } if (25 == h.engine.getGameAttribute("Score")) for (f.startShakingScreen(.005, 1.5), a = 0, b = f.getActorsOfType(f.getActorType(218)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || (c.setValue("ActorEvents_218", "_PassedLevel", !0), c.shout("_customEvent_open_door")) }, null) }, _customEvent_entered_door: function () { if (!this._EnteredDoor) { this._EnteredDoor = !0; for (var a = 0, b = f.getActorsOfType(f.getActorType(256)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } a = 0; for (b = f.getActorsOfType(f.getActorType(267)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || f.recycleActor(c); 26 != h.engine.getGameAttribute("Score") && (a = h.engine, b = h.engine.getGameAttribute("Score") + 1, a.gameAttributes.h.Score = b); h.engine.getGameAttribute("Score") > h.engine.getGameAttribute("High_Score") && (a = h.engine, b = h.engine.getGameAttribute("Score"), a.gameAttributes.h.High_Score = b); h.engine.gameAttributes.h.Speedrun_Timer = this._SpeedrunTimer; 25 > h.engine.getGameAttribute("Score") ? (f.engine.pause(), ya.commercialBreak(function () { f.engine.unpause(); f.saveGame("mySave", function (a) { }); var a = 0, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); var h = f.createFadeOut(.75, a << 16 | b << 8 | c); c = b = a = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); f.reloadCurrentScene(h, f.createFadeIn(.09, a << 16 | b << 8 | c)) })) : 25 != h.engine.getGameAttribute("Score") || this._EndBossLevel ? 26 == h.engine.getGameAttribute("Score") && (f.engine.pause(), ya.commercialBreak(function () { f.engine.unpause(); var a = h.engine, b = h.engine.getGameAttribute("Speedrun_Timer"); a.gameAttributes.h.Speedrun_Best = b; f.saveGame("mySave", function (a) { }); a = zb.get().scenes.h[18].getID(); var c = b = 0, l = 0; null == l && (l = 0); null == c && (c = 0); null == b && (b = 0); var k = f.createFadeOut(1.5, b << 16 | c << 8 | l); l = c = b = 0; null == l && (l = 0); null == c && (c = 0); null == b && (b = 0); f.switchScene(a, k, f.createFadeIn(1.5, b << 16 | c << 8 | l)) })) : (f.engine.pause(), ya.commercialBreak(function () { f.engine.unpause(); f.saveGame("mySave", function (a) { }); var a = 0, b = 0, c = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); var h = f.createFadeOut(.75, a << 16 | b << 8 | c); c = b = a = 0; null == c && (c = 0); null == b && (b = 0); null == a && (a = 0); f.reloadCurrentScene(h, f.createFadeIn(.09, a << 16 | b << 8 | c)) })) } }, _customEvent_game_over: function () { var a = this; if (!this._GameOver) { this._GameOver = !0; f.runLater(1E3, function (b) { a._GameOverScan = 32; f.runPeriodically(50, function (b) { if (a._GameOverScan < f.getSceneHeight()) { a._GameOverScan += 16; b = 0; for (var c = w.__cast(f.getActorGroup(5), df).list; b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || d.getY() < a._GameOverScan + 16 && d.shout("_customEvent_die") } b = 0; for (c = w.__cast(f.getActorGroup(8), df).list; b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._GameOverScan + 16 && d.shout("_customEvent_die"); b = 0; for (c = w.__cast(f.getActorGroup(10), df).list; b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._GameOverScan + 16 && d.shout("_customEvent_die"); b = 0; for (c = f.getActorsOfType(f.getActorType(81)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._GameOverScan + 16 && f.recycleActor(d); b = 0; for (c = f.getActorsOfType(f.getActorType(73)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || d.getY() < a._GameOverScan + 16 && f.recycleActor(d) } }, null) }, null); for (var b = 0, c = f.getActorsOfType(f.getActorType(170)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || d.setValue("ActorEvents_170", "_GameOver", 1) } h.engine.getGameAttribute("Can_Continue") ? this._bannerTime = 2 : this._bannerTime = 4; f.runLater(1E3 * this._bannerTime, function (b) { a._GameOverUI = !0; f.playSoundOnChannel(f.getSound(179), 5); h.engine.getGameAttribute("Can_Continue") ? (h.engine.gameAttributes.h.Can_Continue = !1, f.createRecycledActor(f.getActorType(250), 96, 110, 0), f.createRecycledActor(f.getActorType(176), 242, 118, 0)) : (f.createRecycledActor(f.getActorType(176), 172, 118, 0), f.getLastCreatedActor().setValue("ActorEvents_176", "_Active", !0)) }, null); f.runLater(50, function (b) { a._DeathScreenFlash = 95; f.runLater(100, function (b) { a._DeathScreenFlash = 0; f.startShakingScreen(.02, .5) }, null) }, null); f.saveGame("mySave", function (a) { }) } }, _customEvent_enemy_type_killed: function () { var a = this; f.runLater(150, function (b) { b = a._EnemyTypeKilled; (f.isPrimitive(b) || ("string" == typeof b ? "" != w.__cast(b, String) : null != b)) && f.createRecycledActor(a._EnemyTypeKilled, 0, 0, 0) }, null) }, _customEvent_spawn_upgrades: function () { f.createRecycledActor(f.getActorType(230), 71, 119, 0); f.createRecycledActor(f.getActorType(230), 327, 119, 0); f.runLater(1250, function (a) { a = 0; for (var b = f.getActorsOfType(f.getActorType(230)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || f.recycleActor(c) } f.createRecycledActor(f.getActorType(228), 79, 117, 0); f.getLastCreatedActor().setValue("ActorEvents_228", "_LeftSideUpgrade", 1) }, null) }, init: function () { this._SpeedrunTimer = h.engine.getGameAttribute("Speedrun_Timer"); 0 == h.engine.getGameAttribute("Lives") && (h.engine.gameAttributes.h.Lives = 3); 0 == h.engine.getGameAttribute("High_Score") && (h.engine.gameAttributes.h.High_Score = 1); 0 == h.engine.getGameAttribute("Score") && (h.engine.gameAttributes.h.Score = 1); "asdf" == h.engine.getGameAttribute("Big_Boss_Order") && this._customEvent_setup_big_boss_order(); f.createRecycledActor(f.getActorType(207), 0, 0, 0); f.createRecycledActor(f.getActorType(150), 0, 0, 0); f.createRecycledActor(f.getActorType(158), 0, 0, 0); f.createRecycledActor(f.getActorType(182), 10, 17, 0); f.createRecycledActor(f.getActorType(188), 276, 5, 0); for (var a = 0, b = f.getActorsOfType(f.getActorType(253)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._TimerX = c.getX() + 6, this._TimerY = c.getY() + 2) } if (0 == h.engine.getGameAttribute("Score") % 5) { this._BigBossLevel = !0; a = 0; for (b = f.getActorsOfType(f.getActorType(207)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || f.recycleActor(c); 25 != h.engine.getGameAttribute("Score") && (f.createRecycledActorOnLayer(f.getActorType(234), 75, 123, f.engine.getLayerById(6)), f.createRecycledActorOnLayer(f.getActorType(234), 331, 123, f.engine.getLayerById(6))); if (25 == h.engine.getGameAttribute("Score")) { this._EndBossLevel = !0; f.createRecycledActorOnLayer(f.getActorType(218), 185, 105, f.engine.getLayerById(0)); a = 0; for (b = f.getActorsOfType(f.getActorType(150)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || f.recycleActor(c); a = 0; for (b = f.getActorsOfType(f.getActorType(18)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || c.setY(c.getY() - 32); a = 0; for (b = f.getActorsOfType(f.getActorType(167)); a < b.length;) c = b[a], ++a, null == c || c.dead || c.recycled || c.setY(c.getY() - 32) } } h.engine.getGameAttribute("BG_Pattern_Bounce") && (f.createRecycledActorOnLayer(f.getActorType(258), 0, 0, f.engine.getLayerById(6)), f.getLastCreatedActor().moveToBottom()); h.engine.getGameAttribute("BG_Pattern_Grid") && (f.createRecycledActorOnLayer(f.getActorType(260), 0, 0, f.engine.getLayerById(6)), f.getLastCreatedActor().moveToBottom()); h.engine.getGameAttribute("BG_Pattern_Diagonal") && (f.createRecycledActorOnLayer(f.getActorType(262), 0, 0, f.engine.getLayerById(6)), f.getLastCreatedActor().moveToBottom()); h.engine.getGameAttribute("BG_Pattern_Follow") && (f.createRecycledActorOnLayer(f.getActorType(264), 0, 0, f.engine.getLayerById(6)), f.getLastCreatedActor().moveToBottom()); h.engine.gameAttributes.h.Enemies_Live = 0; ya.isMobileGame() || f.disableBehaviorForScene("MyJoystick"); this.addListener(f.engine.whenDrawing, q(this, this._event_Drawing)); this.addListener(f.engine.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Kq }); var Lq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Joystick_Active = "_JoystickActive"; this._JoystickActive = !1; this.nameMap.h["Up Animation (Idle)"] = "_UpAnimationIdle"; this._UpAnimationIdle = ""; this.nameMap.h["Up Animation"] = "_UpAnimation"; this._UpAnimation = ""; this.nameMap.h["Down Animation (Idle)"] = "_DownAnimationIdle"; this._DownAnimationIdle = ""; this.nameMap.h["Down Animation"] = "_DownAnimation"; this._DownAnimation = ""; this.nameMap.h["Left Animation (Idle)"] = "_LeftAnimationIdle"; this._LeftAnimationIdle = ""; this.nameMap.h["Left Animation"] = "_LeftAnimation"; this._LeftAnimation = ""; this.nameMap.h["Right Animation (Idle)"] = "_RightAnimationIdle"; this._RightAnimationIdle = ""; this.nameMap.h["Right Animation"] = "_RightAnimation"; this._RightAnimation = ""; this.nameMap.h["Prefer Vertical Animtations"] = "_PreferVerticalAnimtations"; this._PreferVerticalAnimtations = !1; this.nameMap.h["Use Animations"] = "_UseAnimations"; this._UseAnimations = !0; this.nameMap.h.Active_Weapons = "_ActiveWeapons"; this._ActiveWeapons = 0; this.nameMap.h.allowedToStart = "_allowedToStart"; this._allowedToStart = !1 }; k["scripts.Design_150_150_JoystickManagerActor"] = Lq; Lq.__name__ = "scripts.Design_150_150_JoystickManagerActor"; Lq.__super__ = P; Lq.prototype = u(P.prototype, { _JoystickActive: null, _UpAnimationIdle: null, _UpAnimation: null, _DownAnimationIdle: null, _DownAnimation: null, _LeftAnimationIdle: null, _LeftAnimation: null, _RightAnimationIdle: null, _RightAnimation: null, _PreferVerticalAnimtations: null, _UseAnimations: null, _ActiveWeapons: null, _allowedToStart: null, init: function () { }, forwardMessage: function (a) { }, __class__: Lq }); var Mq = function (a, b) { f.call(this); this.addWhenUpdatedListener(null, q(this, this.onUpdate)); this.addWhenDrawingListener(null, q(this, this.onDraw)); h.stage.addEventListener("mouseDown", q(this, this.onMouseDown)); h.stage.addEventListener("mouseMove", q(this, this.onMouseMove)); h.stage.addEventListener("mouseUp", q(this, this.onMouseUp)) }; k["scripts.Design_157_157_MyJoystick"] = Mq; Mq.__name__ = "scripts.Design_157_157_MyJoystick"; Mq.__super__ = Md; Mq.prototype = u(Md.prototype, { XClick: null, YClick: null, joystickDistance: null, joystickDirection: null, outerRadius: null, innerRadius: null, canDraw: null, viewOffsetX: null, viewOffsetY: null, center: null, innerImage: null, outerImage: null, myActor: null, UpAnimationIdle: null, UpAnimation: null, DownAnimationIdle: null, DownAnimation: null, LeftAnimationIdle: null, LeftAnimation: null, RightAnimationIdle: null, RightAnimation: null, ActiveWeapons: null, init: function () { if (ya.isMobileGame()) { this.UpAnimationIdle = "Stand_Left"; this.UpAnimation = "Run_Left"; this.DownAnimationIdle = "Stand_Right"; this.DownAnimation = "Run_Right"; this.LeftAnimationIdle = "Stand_Left"; this.LeftAnimation = "Run_Left"; this.RightAnimationIdle = "Stand_Right"; this.RightAnimation = "Run_Right"; this.joystickDistance = this.joystickDirection = 0; this.outerRadius = 8; this.innerRadius = 4; this.center = new na; this.innerImage = new ba(0, 0, this.innerRadius, this.innerRadius); this.outerImage = new ba(0, 0, this.outerRadius, this.outerRadius); this.viewOffsetX = h.screenOffsetX; this.viewOffsetY = h.screenOffsetY; for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; this.myActor = c } } }, update: function (a) { if (ya.isMobileGame()) { a = 0; for (var b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; c.isAlive() && (0 == this.joystickDirection ? c.setVelocity(0, 0) : c.setVelocity(Math.round(this.joystickDirection), 10), 0 == c.getXVelocity() && 0 == c.getYVelocity() ? c.getAnimation() == this.UpAnimation ? c.setAnimation(this.UpAnimationIdle) : c.getAnimation() == this.DownAnimation ? c.setAnimation(this.DownAnimationIdle) : c.getAnimation() == this.LeftAnimation ? c.setAnimation(this.LeftAnimationIdle) : c.getAnimation() == this.RightAnimation && c.setAnimation(this.RightAnimationIdle) : 0 > c.getYVelocity() && 0 == c.getXVelocity() ? c.setAnimation(this.UpAnimation) : 0 < c.getYVelocity() && 0 == c.getXVelocity() ? c.setAnimation(this.DownAnimation) : 0 > c.getXVelocity() ? c.setAnimation(this.LeftAnimation) : 0 < c.getXVelocity() && c.setAnimation(this.RightAnimation)) } } }, draw: function (a) { if (ya.isMobileGame() && this.canDraw) { var b = (this.outerImage.x + .5 * this.outerImage.width) / h.SCALE, c = (this.outerImage.y + .5 * this.outerImage.width) / h.SCALE, d = (this.innerImage.x + .5 * this.innerImage.width) / h.SCALE, e = (this.innerImage.y + .5 * this.innerImage.width) / h.SCALE; a.alpha = .5; var f = 255, l = 204, k = 0; null == k && (k = 0); null == l && (l = 0); null == f && (f = 0); f = f << 16 | l << 8 | k; a.fillColor = 0 > f ? f + 16777216 : f; f = this.outerImage.width / h.SCALE; b *= a.scaleX; c *= a.scaleY; f *= a.scaleX; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawCircle(a.x + b, a.y + c, f); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle(); l = f = 153; k = 255; null == k && (k = 0); null == l && (l = 0); null == f && (f = 0); f = f << 16 | l << 8 | k; a.fillColor = 0 > f ? f + 16777216 : f; f = this.innerImage.height / h.SCALE; b = d * a.scaleX; c = e * a.scaleY; f *= a.scaleX; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawCircle(a.x + b, a.y + c, f); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, onMousePress: function (a, b) { if (ya.isMobileGame()) { f.engine.allActors.reuseIterator = !1; for (var c = f.engine.allActors.iterator(); c.hasNext();) { var d = c.next(); if (null != d && !d.dead && !d.recycled && d.isOnScreenCache && d.isMouseDown()) return } f.engine.allActors.reuseIterator = !0; c = 0; for (d = f.getActorsOfType(f.getActorType(18)); c < d.length;) { var e = d[c]; ++c; if (!e.isAlive()) return } a /= h.screenScaleX; b /= h.screenScaleY; this.center.x = a - this.viewOffsetX; this.center.y = b - this.viewOffsetY; this.outerImage.x = this.center.x - .5 * this.outerImage.width; this.outerImage.y = this.center.y - .5 * this.outerImage.height; this.innerImage.x = this.center.x - .5 * this.innerImage.width; this.innerImage.y = this.center.y - .5 * this.innerImage.height; this.joystickDistance = this.joystickDirection = 0; this.canDraw = !0 } }, onMouseReleased: function (a, b) { ya.isMobileGame() && (this.joystickDistance = this.joystickDirection = 0, this.canDraw = !1) }, onDragg: function (a, b) { if (ya.isMobileGame() && (this.center.x = f.getMouseX(), this.center.y = f.getMouseY(), this.canDraw)) { a /= h.screenScaleX; b /= h.screenScaleY; var c = Math.sqrt(Math.pow(this.center.x + this.viewOffsetX - a, 2) + Math.pow(this.center.y + this.viewOffsetY - b, 2)), d = Math.atan2(this.center.y + this.viewOffsetY - b, this.center.x + this.viewOffsetX - a), e = Math.sqrt(Math.pow(f.getMousePressedX() + this.viewOffsetX - a, 2) + Math.pow(f.getMousePressedY() + this.viewOffsetY - b, 2)), g = Math.atan2(f.getMousePressedY() + this.viewOffsetY - b, f.getMousePressedX() + this.viewOffsetX - a); c > this.outerRadius - this.innerRadius && (c = this.outerRadius - this.innerRadius); e > this.outerRadius - this.innerRadius ? (a = f.getMousePressedX(), this.innerImage.x = a - Math.cos(g) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.width, a = f.getMousePressedY(), this.innerImage.y = a - Math.sin(g) * (this.outerRadius - this.innerRadius) - .5 * this.innerImage.height) : (this.innerImage.x = a - this.viewOffsetX - .5 * this.innerImage.width, this.innerImage.y = b - this.viewOffsetY - .5 * this.innerImage.height); this.joystickDistance = c / (this.outerRadius - this.innerRadius); this.joystickDirection = 180 * d / 3.1415926535 + 180 } }, onMouseDown: function (a) { this.onMousePress(a.stageX, a.stageY) }, onMouseMove: function (a) { this.onDragg(a.stageX, a.stageY) }, onMouseUp: function (a) { this.onMouseReleased(a.stageX, a.stageY) }, onUpdate: function (a, b) { if (this.wrapper.enabled && ya.isMobileGame()) for (a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; c.isAlive() && (0 == this.joystickDirection ? c.setVelocity(0, 0) : c.setVelocity(Math.round(this.joystickDirection), 10), 0 == c.getXVelocity() && 0 == c.getYVelocity() ? c.getAnimation() == this.UpAnimation ? c.setAnimation(this.UpAnimationIdle) : c.getAnimation() == this.DownAnimation ? c.setAnimation(this.DownAnimationIdle) : c.getAnimation() == this.LeftAnimation ? c.setAnimation(this.LeftAnimationIdle) : c.getAnimation() == this.RightAnimation && c.setAnimation(this.RightAnimationIdle) : 0 > c.getYVelocity() && 0 == c.getXVelocity() ? c.setAnimation(this.UpAnimation) : 0 < c.getYVelocity() && 0 == c.getXVelocity() ? c.setAnimation(this.DownAnimation) : 0 > c.getXVelocity() ? c.setAnimation(this.LeftAnimation) : 0 < c.getXVelocity() && c.setAnimation(this.RightAnimation)) } }, onDraw: function (a, b, c, d) { if (this.wrapper.enabled && ya.isMobileGame() && this.canDraw) { b = (this.outerImage.x + .5 * this.outerImage.width) / h.SCALE; c = (this.outerImage.y + .5 * this.outerImage.width) / h.SCALE; d = (this.innerImage.x + .5 * this.innerImage.width) / h.SCALE; var e = (this.innerImage.y + .5 * this.innerImage.width) / h.SCALE; a.alpha = .5; var f = 255, l = 204, k = 0; null == k && (k = 0); null == l && (l = 0); null == f && (f = 0); f = f << 16 | l << 8 | k; a.fillColor = 0 > f ? f + 16777216 : f; f = this.outerImage.width / h.SCALE; b *= a.scaleX; c *= a.scaleY; f *= a.scaleX; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawCircle(a.x + b, a.y + c, f); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle(); l = f = 153; k = 255; null == k && (k = 0); null == l && (l = 0); null == f && (f = 0); f = f << 16 | l << 8 | k; a.fillColor = 0 > f ? f + 16777216 : f; f = this.innerImage.height / h.SCALE; b = d * a.scaleX; c = e * a.scaleY; f *= a.scaleX; !a.drawActor || null != a.actor && a.actor.isHUD || (a.x -= h.cameraX, a.y -= h.cameraY); 0 == a.strokeSize ? a.graphics.lineStyle() : a.graphics.lineStyle(a.strokeSize * h.SCALE, a.strokeColor, a.alpha); a.graphics.beginFill(a.fillColor, a.alpha); a.graphics.drawCircle(a.x + b, a.y + c, f); a.graphics.endFill(); a.drawActor && !a.actor.isHUD && (a.x += h.cameraX, a.y += h.cameraY); a.graphics.lineStyle() } }, __class__: Mq }); var Nq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Enemy_Chooser_Top_Limit = "_EnemyChooserTopLimit"; this._EnemyChooserTopLimit = 0; this.nameMap.h.Get_Pixel = "_GetPixel"; this.nameMap.h.Enemy_Chooser = "_EnemyChooser"; this._EnemyChooser = 0; this.nameMap.h.Animation_1 = "_Animation1"; this._Animation1 = ""; this.nameMap.h.Img = "_Img"; this.nameMap.h.xSpawn = "_xSpawn"; this._xSpawn = 0; this.nameMap.h.ySpawn = "_ySpawn"; this._ySpawn = 0; this.nameMap.h.Animation_2 = "_Animation2"; this._Animation2 = ""; this.nameMap.h.spawn_end_animation_cycle = "_spawnendanimationcycle"; this._spawnendanimationcycle = 0; this.nameMap.h.spawn_end_enemy_cycle = "_spawnendenemycycle"; this._spawnendenemycycle = 0 }; k["scripts.Design_158_158_PatternSpnEnemiesManager"] = Nq; Nq.__name__ = "scripts.Design_158_158_PatternSpnEnemiesManager"; Nq.__super__ = P; Nq.prototype = u(P.prototype, { _EnemyChooserTopLimit: null, _GetPixel: null, _EnemyChooser: null, _Animation1: null, _Img: null, _xSpawn: null, _ySpawn: null, _Animation2: null, _spawnendanimationcycle: null, _spawnendenemycycle: null, _customEvent_spawn: function () { 2 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_1_2() : 3 <= h.engine.getGameAttribute("Score") && 5 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_3_5() : 6 <= h.engine.getGameAttribute("Score") && 7 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_6_7() : 8 <= h.engine.getGameAttribute("Score") && 10 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_8_10() : 11 <= h.engine.getGameAttribute("Score") && 12 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_11_12() : 13 <= h.engine.getGameAttribute("Score") && 15 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_13_15() : 16 <= h.engine.getGameAttribute("Score") && 17 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_16_17() : 18 <= h.engine.getGameAttribute("Score") && 20 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_18_20() : 21 <= h.engine.getGameAttribute("Score") && 22 >= h.engine.getGameAttribute("Score") ? this._customEvent_spawn_21_22() : 23 <= h.engine.getGameAttribute("Score") && this._customEvent_spawn_23_25() }, _customEvent_spawn_1_2: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(1, 12)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_3_5: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_6_7: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(1, 12)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(1, 12)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(1, 12)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_8_10: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(1, 12)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(13, 24)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_11_12: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(13, 24)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_13_15: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(13, 24)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_16_17: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(13, 24)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_18_20: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(13, 24)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(13, 24)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_21_22: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(24, 36)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_23_25: function () { var a = this; f.runLater(100, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(2E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(25, 36)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(24, 36)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor); f.runLater(4E3, function (b) { a._EnemyChooser = f.randomInt(1, a._EnemyChooserTopLimit | 0); a.actor.setAnimation("" + f.randomInt(1, 12)); for (a._Animation2 = a.actor.getAnimation(); "" + a._Animation2 == "" + a._Animation1;) a.actor.setAnimation("" + f.randomInt(1, 12)), a._Animation2 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (b) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)); f.recycleActor(a.actor) }, a.actor) }, this.actor) }, _customEvent_spawn_end: function () { var a = this; f.runLater(100, function (b) { 0 == a._spawnendanimationcycle ? a._spawnendanimationcycle = 1 : (a._spawnendanimationcycle += 1, 9 == a._spawnendanimationcycle && (a._spawnendanimationcycle = 1)); 0 == a._spawnendenemycycle ? a._spawnendenemycycle = 1 : (a._spawnendenemycycle += 1, 11 == a._spawnendenemycycle && (a._spawnendenemycycle = 1)); a._EnemyChooser = a._spawnendenemycycle; a.actor.setAnimation("" + a._spawnendanimationcycle); a._Animation1 = a.actor.getAnimation(); a._Img = f.getImageForActor(a.actor); b = 0; for (var c = a.actor.getWidth() | 0; b < c;) { var d = b++; a._xSpawn = d; d = 0; for (var e = a.actor.getHeight() | 0; d < e;) { var g = d++; a._ySpawn = g; g = f.imageGetPixel(a._Img, a._xSpawn | 0, a._ySpawn | 0); a._GetPixel = "" + g; g = a._GetPixel; !f.isPrimitive(g) && ("string" == typeof g ? "" == w.__cast(g, String) : null == g) || "0" == "" + z.string(a._GetPixel) || (f.createRecycledActorOnLayer(f.getActorType(81), a.actor.getX() + a._xSpawn * f.getTileWidth() - 8, a.actor.getY() + a._ySpawn * f.getTileHeight() - 8 + 16, f.engine.getLayerById(0)), f.getLastCreatedActor().setValue("ActorEvents_81", "_RNG", a._EnemyChooser), f.getLastCreatedActor().setValue("ActorEvents_81", "_SpawnID", "Endless")) } } f.runLater(2E3, function (a) { f.getValueForScene("Scene_Manager", "_GameOver") || f.playSoundOnChannel(f.getSound(134), f.randomInt(6, 29)) }, a.actor) }, this.actor) }, init: function () { this.actor.disableActorDrawing(); 4 >= h.engine.getGameAttribute("Score") ? this._EnemyChooserTopLimit = 7 : 5 <= h.engine.getGameAttribute("Score") && 9 >= h.engine.getGameAttribute("Score") ? this._EnemyChooserTopLimit = 8 : 10 <= h.engine.getGameAttribute("Score") && 14 >= h.engine.getGameAttribute("Score") ? this._EnemyChooserTopLimit = 9 : 15 <= h.engine.getGameAttribute("Score") && (this._EnemyChooserTopLimit = 10) }, forwardMessage: function (a) { }, __class__: Nq }); var Oq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Hit_Points = "_HitPoints"; this._HitPoints = 0; this.nameMap.h.Got_Hit = "_GotHit"; this._GotHit = !1; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Splosion_Angle = "_SplosionAngle"; this._SplosionAngle = 0; this.nameMap.h.Timer = "_Timer"; this._Timer = 0; this.nameMap.h.Hit_X = "_HitX"; this._HitX = 0; this.nameMap.h.Hit_Y = "_HitY"; this._HitY = 0 }; k["scripts.Design_15_15_EnemyManager"] = Oq; Oq.__name__ = "scripts.Design_15_15_EnemyManager"; Oq.__super__ = P; Oq.prototype = u(P.prototype, { _HitPoints: null, _GotHit: null, _Activated: null, _SplosionAngle: null, _Timer: null, _HitX: null, _HitY: null, _event_Updating: function (a) { this.wrapper.enabled && (this._Timer += f.getStepSize(), 500 <= this._Timer && !this._Activated && (this.actor.set_alpha(1), this._Activated = !0), 50 == this._Timer && this._GotHit && (this._GotHit = !1)) }, _event_Drawing: function (a, b, c) { }, _event_HITSBULLETS: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorGroup(6); var d = a.otherActor.getType(); var e = a.otherActor.getGroup(); d = c == d || c == e } else d = !1; if (d && this._Activated && !this._GotHit) { this._GotHit = !0; this._Timer = 0; c = this.actor.getXCenter(); d = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = this.actor.getYCenter(); e = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = a.otherActor.getXCenter(); var g = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = a.otherActor.getYCenter(); this._SplosionAngle = za.angle_between_points("degrees", d, e, g, null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))); this._HitX = a.otherActor.getXCenter(); this._HitY = a.otherActor.getYCenter(); f.recycleActor(a.otherActor); --this._HitPoints; this.actor.getGroup() == f.getActorGroup(8) && (this.actor.setAnimation("" + this._HitPoints), f.createRecycledActor(f.getActorType(67), this._HitX - 16, this._HitY - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle), f.getLastCreatedActor().shout("_customEvent_splosion_enemy")); this.actor.getGroup() == f.getActorGroup(10) && (f.createRecycledActor(f.getActorType(67), this._HitX - 16, this._HitY - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle), f.getLastCreatedActor().shout("_customEvent_splosion_enemy"), this.actor.setAnimation("Flash"), f.runLater(100, function (a) { b.actor.setAnimation("" + Math.ceil(b._HitPoints / 3)) }, this.actor)); this.actor.getGroup() == f.getActorGroup(11) && (f.createRecycledActor(f.getActorType(67), this._HitX - 16, this._HitY - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle), f.getLastCreatedActor().shout("_customEvent_splosion_enemy"), 39 <= this._HitPoints ? this.actor.setAnimation("5_Flash") : 30 <= this._HitPoints && 38 >= this._HitPoints ? this.actor.setAnimation("4_Flash") : 21 <= this._HitPoints && 29 >= this._HitPoints ? this.actor.setAnimation("3_Flash") : 12 <= this._HitPoints && 20 >= this._HitPoints ? this.actor.setAnimation("2_Flash") : 1 <= this._HitPoints && 11 >= this._HitPoints && this.actor.setAnimation("1_Flash"), f.runLater(100, function (a) { b.actor.setAnimation("" + 3 * Math.floor((b._HitPoints + 2) / 3)) }, this.actor)); 0 == this._HitPoints && this._customEvent_die() } }, _event_HITSHERO: function (a) { var b = this; if (this.wrapper.enabled) { var c = f.getActorType(18); var d = a.otherActor.getType(); var e = a.otherActor.getGroup(); d = c == d || c == e } else d = !1; if (d && this._Activated && !this._GotHit && !a.otherActor.getValue("ActorEvents_18", "_GotHit")) { this._GotHit = !0; this._Timer = 0; this.actor.getGroup() == f.getActorGroup(5) && (f.setValueForScene("Scene_Manager", "_EnemyTypeKilled", a.thisActor.getType()), f.shoutToScene("_customEvent_enemy_type_killed")); f.setValueForScene("Scene_Manager", "_xDeath", a.otherActor.getX()); f.setValueForScene("Scene_Manager", "_yDeath", a.otherActor.getY()); e = a.otherActor; c = a.otherActor.getXCenter(); d = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = a.otherActor.getYCenter(); var g = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = this.actor.getXCenter(); var h = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = this.actor.getYCenter(); e.setValue("ActorEvents_18", "_GotHitDirection", za.angle_between_points("degrees", d, g, h, null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)))); a.otherActor.shout("_customEvent_got_hit"); c = this.actor.getXCenter(); d = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = this.actor.getYCenter(); g = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = a.otherActor.getXCenter(); h = null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)); c = a.otherActor.getYCenter(); this._SplosionAngle = za.angle_between_points("degrees", d, g, h, null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c))); --this._HitPoints; this.actor.getGroup() == f.getActorGroup(8) && (this.actor.setAnimation("" + this._HitPoints), f.createRecycledActor(f.getActorType(67), this.actor.getXCenter() - 16, this.actor.getYCenter() - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle), f.getLastCreatedActor().shout("_customEvent_splosion_enemy")); this.actor.getGroup() == f.getActorGroup(10) && (f.createRecycledActor(f.getActorType(67), this.actor.getXCenter() - 16, this.actor.getYCenter() - 16, 0), f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle), f.getLastCreatedActor().shout("_customEvent_splosion_enemy"), this.actor.setAnimation("Flash"), f.runLater(100, function (a) { b.actor.setAnimation("" + Math.ceil(b._HitPoints / 3)) }, this.actor)); 0 == this._HitPoints && this._customEvent_die() } }, _customEvent_die: function () { f.createRecycledActor(f.getActorType(67), this.actor.getXCenter() - 16, this.actor.getYCenter() - 16, 0); f.getLastCreatedActor().setValue("ActorEvents_67", "_SplosionAngle", this._SplosionAngle); this.actor.getGroup() == f.getActorGroup(5) ? f.getLastCreatedActor().shout("_customEvent_splosion_enemy") : this.actor.getGroup() == f.getActorGroup(8) ? f.getLastCreatedActor().shout("_customEvent_splosion_bosses") : this.actor.getGroup() == f.getActorGroup(10) ? f.getLastCreatedActor().shout("_customEvent_splosion_big_bosses") : this.actor.getGroup() == f.getActorGroup(11) && (this.actor.shout("_customEvent_death_event"), f.getLastCreatedActor().shout("_customEvent_splosion_bosses")); if (this.actor.getGroup() == f.getActorGroup(8) || this.actor.getGroup() == f.getActorGroup(10)) f.createRecycledActor(f.getActorType(85), this.actor.getXCenter() - 4, this.actor.getYCenter() - 4, 0), this.actor.getType() == f.getActorType(89) ? f.getLastCreatedActor().setAnimation("2") : this.actor.getType() == f.getActorType(91) ? f.getLastCreatedActor().setAnimation("3") : this.actor.getType() == f.getActorType(97) ? f.getLastCreatedActor().setAnimation("4") : this.actor.getType() == f.getActorType(99) ? f.getLastCreatedActor().setAnimation("5") : this.actor.getType() == f.getActorType(107) && f.getLastCreatedActor().setAnimation("6"), this.actor.getGroup() == f.getActorGroup(10) && (f.getLastCreatedActor().setX(this.actor.getX() + 7), f.getLastCreatedActor().setY(this.actor.getY() + 5), f.getLastCreatedActor().setValue("ActorEvents_85", "_BigBossKey", 1)), this.actor.getType() == f.getActorType(191) ? f.getLastCreatedActor().setAnimation("Big_Bounce") : this.actor.getType() == f.getActorType(199) ? f.getLastCreatedActor().setAnimation("Big_Grid") : this.actor.getType() == f.getActorType(203) ? f.getLastCreatedActor().setAnimation("Big_Diag") : this.actor.getType() == f.getActorType(201) && f.getLastCreatedActor().setAnimation("Big_Follow"); if (this.actor.getType() != f.getActorType(101) && this.actor.getType() != f.getActorType(195)) { var a = h.engine, b = h.engine.getGameAttribute("Enemies_Live") - 1; a.gameAttributes.h.Enemies_Live = b; a = h.engine; b = h.engine.getGameAttribute("Enemies_Killed") + 1; a.gameAttributes.h.Enemies_Killed = b } this.actor.getGroup() != f.getActorGroup(11) && f.recycleActor(this.actor) }, init: function () { var a = this; 16 > this.actor.getX() && f.recycleActor(this.actor); if (16 < this.actor.getX()) { var b = h.engine, c = h.engine.getGameAttribute("Enemies_Live") + 1; b.gameAttributes.h.Enemies_Live = c; this._HitPoints = 1; this.actor.getGroup() == f.getActorGroup(8) && (this._HitPoints = 3); this.actor.getGroup() == f.getActorGroup(10) && (this._HitPoints = 12); this.actor.getType() == f.getActorType(210) && (this._HitPoints = 45); this.actor.set_alpha(0); f.runLater(50, function (b) { a.actor.set_alpha(.5) }, this.actor); b = f.getValueForScene("Scene_Manager", "_PassedLevel"); 1 != b && "true" != b || this.actor.shout("_customEvent_die") } this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenCollided, q(this, this._event_HITSBULLETS)); this.addListener(this.actor.whenCollided, q(this, this._event_HITSHERO)) }, forwardMessage: function (a) { }, __class__: Oq }); var Pq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h["Target Actor"] = "_TargetActor"; this.nameMap.h["Distance X"] = "_DistanceX"; this._DistanceX = 0; this.nameMap.h["Distance Y"] = "_DistanceY"; this._DistanceY = 0; this.nameMap.h.Distance = "_Distance"; this._Distance = 0; this.nameMap.h.Direction = "_Direction"; this._Direction = 0; this.nameMap.h.Speed = "_Speed"; this._Speed = 30; this.nameMap.h.Margin = "_Margin"; this._Margin = 0; this.nameMap.h.Easing = "_Easing"; this._Easing = !0; this.nameMap.h["Minimum Easing Speed"] = "_MinimumEasingSpeed"; this._MinimumEasingSpeed = 5; this.nameMap.h["Screen Diagonal"] = "_ScreenDiagonal"; this._ScreenDiagonal = 0; this.nameMap.h["Stop when Colliding"] = "_StopwhenColliding"; this._StopwhenColliding = !0; this.nameMap.h.Collided = "_Collided"; this._Collided = !1; this.nameMap.h.Activated = "_Activated"; this._Activated = !1 }; k["scripts.Design_28_28_FollowTargetCUSTOM"] = Pq; Pq.__name__ = "scripts.Design_28_28_FollowTargetCUSTOM"; Pq.__super__ = P; Pq.prototype = u(P.prototype, { _TargetActor: null, _DistanceX: null, _DistanceY: null, _Distance: null, _Direction: null, _Speed: null, _Margin: null, _Easing: null, _MinimumEasingSpeed: null, _ScreenDiagonal: null, _StopwhenColliding: null, _Collided: null, _Activated: null, _event_Updated: function (a) { this.wrapper.enabled && this._Activated && (a = this._TargetActor, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._TargetActor.isAlive() ? (this._DistanceX = this._TargetActor.getXCenter() - this.actor.getXCenter(), this._DistanceY = this._TargetActor.getYCenter() - this.actor.getYCenter(), this._Distance = Math.sqrt(Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2)), this._Direction = 57.29577951308402 * Math.atan2(this._DistanceY, this._DistanceX), !(this._Distance > this._Margin) || this._StopwhenColliding && this._Collided ? this.actor.setVelocity(0, 0) : this._Easing ? this.actor.setVelocity(this._Direction, this._MinimumEasingSpeed + (this._Distance - this._Margin) / this._ScreenDiagonal * this._Speed) : this.actor.setVelocity(this._Direction, this._Speed), this._Collided = !1) : this.actor.setVelocity(0, 0)) }, _event_HitsHero: function (a) { this.wrapper.enabled && this._TargetActor == a.otherActor && (this._Collided = !0) }, init: function () { for (var a = this, b = 0, c = f.getActorsOfType(f.getActorType(18)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || (this._TargetActor = d) } this._ScreenDiagonal = Math.sqrt(Math.pow(f.getScreenWidth(), 2) + Math.pow(f.getScreenHeight(), 2)); f.runLater(500, function (b) { a._Activated = !0 }, this.actor); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenCollided, q(this, this._event_HitsHero)) }, forwardMessage: function (a) { }, __class__: Pq }); var Qq = function (a, b, c) { P.call(this, b); this.nameMap.h["Down Control"] = "_DownControl"; this.nameMap.h.Actor = "actor"; this.nameMap.h["Left Control"] = "_LeftControl"; this.nameMap.h["Right Control"] = "_RightControl"; this.nameMap.h["Move X"] = "_MoveX"; this._MoveX = 0; this.nameMap.h["Move Y"] = "_MoveY"; this._MoveY = 0; this.nameMap.h["Normalize Diagonal Speed"] = "_NormalizeDiagonalSpeed"; this._NormalizeDiagonalSpeed = !0; this.nameMap.h.Sqrt2 = "_Sqrt2"; this._Sqrt2 = 0; this.nameMap.h["Stop Turning While Moving"] = "_StopTurningWhileMoving"; this._StopTurningWhileMoving = !0; this.nameMap.h["Use Controls"] = "_UseControls"; this._UseControls = !0; this.nameMap.h.Speed = "_Speed"; this._Speed = 30; this.nameMap.h["Use Animations"] = "_UseAnimations"; this._UseAnimations = !0; this.nameMap.h["Up Animation (Idle)"] = "_UpAnimationIdle"; this._UpAnimationIdle = ""; this.nameMap.h["Up Animation"] = "_UpAnimation"; this._UpAnimation = ""; this.nameMap.h["Down Animation (Idle)"] = "_DownAnimationIdle"; this._DownAnimationIdle = ""; this.nameMap.h["Down Animation"] = "_DownAnimation"; this._DownAnimation = ""; this.nameMap.h["Left Animation (Idle)"] = "_LeftAnimationIdle"; this._LeftAnimationIdle = ""; this.nameMap.h["Left Animation"] = "_LeftAnimation"; this._LeftAnimation = ""; this.nameMap.h["Right Animation (Idle)"] = "_RightAnimationIdle"; this._RightAnimationIdle = ""; this.nameMap.h["Right Animation"] = "_RightAnimation"; this._RightAnimation = ""; this.nameMap.h["Prefer Vertical Animtations"] = "_PreferVerticalAnimtations"; this._PreferVerticalAnimtations = !1; this.nameMap.h.Active_Weapons = "_ActiveWeapons"; this._ActiveWeapons = 0; this.nameMap.h["Use Controls WASD"] = "_UseControlsWASD"; this._UseControlsWASD = !1; this.nameMap.h["Up Control"] = "_UpControl" }; k["scripts.Design_31_31_8WayMovementCustom"] = Qq; Qq.__name__ = "scripts.Design_31_31_8WayMovementCustom"; Qq.__super__ = P; Qq.prototype = u(P.prototype, { _DownControl: null, _LeftControl: null, _RightControl: null, _MoveX: null, _MoveY: null, _NormalizeDiagonalSpeed: null, _Sqrt2: null, _StopTurningWhileMoving: null, _UseControls: null, _Speed: null, _UseAnimations: null, _UpAnimationIdle: null, _UpAnimation: null, _DownAnimationIdle: null, _DownAnimation: null, _LeftAnimationIdle: null, _LeftAnimation: null, _RightAnimationIdle: null, _RightAnimation: null, _PreferVerticalAnimtations: null, _ActiveWeapons: null, _UseControlsWASD: null, _UpControl: null, _event_Updated: function (a) { if (this.wrapper.enabled && !ya.isMobileGame()) { (f.isKeyDown("W") || f.isKeyDown("A") || f.isKeyDown("S") || f.isKeyDown("D")) && !this._UseControlsWASD && (this._UseControls = !1, this._UseControlsWASD = !0); (f.isKeyDown(this._UpControl) || f.isKeyDown(this._DownControl) || f.isKeyDown(this._LeftControl) || f.isKeyDown(this._RightControl)) && !this._UseControls && (this._UseControlsWASD = !1, this._UseControls = !0); if (this._UseControls) { a = f.isKeyDown(this._RightControl); var b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = f.isKeyDown(this._LeftControl); this._MoveX = b - (null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))); a = f.isKeyDown(this._DownControl); b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)); a = f.isKeyDown(this._UpControl); this._MoveY = b - (null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))) } else this._UseControlsWASD && (a = f.isKeyDown("D"), b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = f.isKeyDown("A"), this._MoveX = b - (null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a))), a = f.isKeyDown("S"), b = null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)), a = f.isKeyDown("W"), this._MoveY = b - (null == a ? 0 : "number" == typeof a ? w.__cast(a, Ka) : "number" == typeof a && (a | 0) === a ? w.__cast(a, Ia) : "boolean" == typeof a ? w.__cast(a, La) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(z.string(a)))); this._NormalizeDiagonalSpeed && 0 != this._MoveX && 0 != this._MoveY ? (this.actor.setXVelocity(this._MoveX * this._Speed / this._Sqrt2), this.actor.setYVelocity(this._MoveY * this._Speed / this._Sqrt2)) : (this.actor.setXVelocity(this._MoveX * this._Speed), this.actor.setYVelocity(this._MoveY * this._Speed)); !this._StopTurningWhileMoving || 0 == this._MoveX && 0 == this._MoveY || this.actor.setAngularVelocity(0); this._MoveY = this._MoveX = 0; this._UseAnimations && (0 == this.actor.getXVelocity() && 0 == this.actor.getYVelocity() ? this.actor.getAnimation() == this._UpAnimation ? this.actor.setAnimation(this._UpAnimationIdle) : this.actor.getAnimation() == this._DownAnimation ? this.actor.setAnimation(this._DownAnimationIdle) : this.actor.getAnimation() == this._LeftAnimation ? this.actor.setAnimation(this._LeftAnimationIdle) : this.actor.getAnimation() == this._RightAnimation && this.actor.setAnimation(this._RightAnimationIdle) : 0 > this.actor.getYVelocity() && (0 == this.actor.getXVelocity() || this._PreferVerticalAnimtations) ? this.actor.setAnimation(this._UpAnimation) : 0 < this.actor.getYVelocity() && (0 == this.actor.getXVelocity() || this._PreferVerticalAnimtations) ? this.actor.setAnimation(this._DownAnimation) : 0 > this.actor.getXVelocity() ? this.actor.setAnimation(this._LeftAnimation) : 0 < this.actor.getXVelocity() && this.actor.setAnimation(this._RightAnimation)) } }, _customEvent_MoveUp: function () { this._MoveY = -1 }, _customEvent_MoveDown: function () { this._MoveY = 1 }, _customEvent_MoveLeft: function () { this._MoveX = -1 }, _customEvent_MoveRight: function () { this._MoveX = 1 }, _customEvent_weapon_active: function () { this._ActiveWeapons += 1; this._DownAnimationIdle = "Stand_Right_Active"; this._DownAnimation = "Run_Right_Active"; this._LeftAnimationIdle = "Stand_Left_Active"; this._LeftAnimation = "Run_Left_Active"; this._RightAnimationIdle = "Stand_Right_Active"; this._RightAnimation = "Run_Right_Active"; this._UpAnimationIdle = "Stand_Left_Active"; this._UpAnimation = "Run_Left_Active" }, _customEvent_weapon_inactive: function () { --this._ActiveWeapons; 0 == this._ActiveWeapons && (this._DownAnimationIdle = "Stand_Right", this._DownAnimation = "Run_Right", this._LeftAnimationIdle = "Stand_Left", this._LeftAnimation = "Run_Left", this._RightAnimationIdle = "Stand_Right", this._RightAnimation = "Run_Right", this._UpAnimationIdle = "Stand_Left", this._UpAnimation = "Run_Left"); 0 > this._ActiveWeapons && (this._ActiveWeapons = 0) }, init: function () { this._Sqrt2 = Math.sqrt(2); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Qq }); var Rq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Facing = "_Facing"; this._Facing = -90; this.nameMap.h["Idle Threshold"] = "_IdleThreshold"; this._IdleThreshold = 1; this.nameMap.h.Target_Actor = "_TargetActor" }; k["scripts.Design_38_38_FaceDirectionofHEROMotion"] = Rq; Rq.__name__ = "scripts.Design_38_38_FaceDirectionofHEROMotion"; Rq.__super__ = P; Rq.prototype = u(P.prototype, { _Facing: null, _IdleThreshold: null, _TargetActor: null, _event_Updated: function (a) { this.wrapper.enabled && (Math.pow(this._TargetActor.getXVelocity(), 2) + Math.pow(this._TargetActor.getYVelocity(), 2) > Math.pow(this._IdleThreshold, 2) ? this.actor.setAngle(.01745329251994278 * (57.29577951308402 * Math.atan2(this._TargetActor.getYVelocity(), this._TargetActor.getXVelocity()) - this._Facing)) : this.actor.setAngularVelocity(0)) }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._TargetActor = c) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Rq }); var Sq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Speed = "_Speed"; this._Speed = 0; this.nameMap.h.Collided = "_Collided"; this._Collided = !1; this.nameMap.h.Played_Collision_Sound = "_PlayedCollisionSound"; this._PlayedCollisionSound = !1 }; k["scripts.Design_40_40_BounceWithFullSpeedCustom"] = Sq; Sq.__name__ = "scripts.Design_40_40_BounceWithFullSpeedCustom"; Sq.__super__ = P; Sq.prototype = u(P.prototype, { _Speed: null, _Collided: null, _PlayedCollisionSound: null, _event_Updated: function (a) { this.wrapper.enabled && (this._Collided || (this._Speed = Math.sqrt(Math.pow(this.actor.getXVelocity(), 2) + Math.pow(this.actor.getYVelocity(), 2))), this._Collided = !1) }, _event_ActorAny: function (a) { var b = this; if (this.wrapper.enabled && (this._Collided = !0, this.actor.setVelocity(57.29577951308402 * Math.atan2(this.actor.getYVelocity(), this.actor.getXVelocity()), this._Speed), !this._PlayedCollisionSound)) { this._PlayedCollisionSound = !0; f.playSoundOnChannel(f.getSound(137), h.engine.getGameAttribute("Sound_Channel") | 0); a = h.engine; var c = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = c; f.runLater(1E3, function (a) { b._PlayedCollisionSound = !1 }, this.actor) } }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)); this.addListener(this.actor.whenCollided, q(this, this._event_ActorAny)) }, forwardMessage: function (a) { }, __class__: Sq }); var Tq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Player = "_Player"; this.nameMap.h.Picked_Up = "_PickedUp"; this._PickedUp = !1; this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Hero = "_Hero"; this.nameMap.h.Weapon_RNG = "_WeaponRNG"; this._WeaponRNG = 0; this.nameMap.h.Weapon_Type = "_WeaponType"; this._WeaponType = ""; this.nameMap.h.Activated = "_Activated"; this._Activated = !1; this.nameMap.h.Upgrade_Factor = "_UpgradeFactor"; this._UpgradeFactor = 0; this.nameMap.h.Upgraded = "_Upgraded"; this._Upgraded = !1 }; k["scripts.Design_41_41_PickupManager"] = Tq; Tq.__name__ = "scripts.Design_41_41_PickupManager"; Tq.__super__ = P; Tq.prototype = u(P.prototype, { _Player: null, _PickedUp: null, _RNG: null, _Hero: null, _WeaponRNG: null, _WeaponType: null, _Activated: null, _UpgradeFactor: null, _Upgraded: null, _event_Drawing: function (a, b, c) { }, _event_Updating: function (a) { if (this.wrapper.enabled) { if (this._Activated) { var b = this._Hero; f.isPrimitive(b) || ("string" == typeof b ? "" != w.__cast(b, String) : null != b) ? (b = this._WeaponType, a = f.isPrimitive(b) ? !0 : "string" == typeof b ? "" != w.__cast(b, String) : null != b) : a = !1 } else a = !1; if (a) { b = this.actor.getXCenter(); a = null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b)); b = this.actor.getYCenter(); var c = null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b)); b = this._Hero.getXCenter(); var d = null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b)); b = this._Hero.getYCenter(); 14 > za.distance_between_points(a, c, d, null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) && !this._PickedUp && !h.engine.getGameAttribute("Can_Pickup") && (h.engine.gameAttributes.h.Can_Pickup = !0, this._PickedUp || (b = f.getValueForScene("Scene_Manager", "_PickupsLive"), f.setValueForScene("Scene_Manager", "_PickupsLive", (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) - 1), "Tutorial" == f.getCurrentSceneName() && (b = f.getValueForScene("Tutorial_Manager", "_PickupsLive"), f.setValueForScene("Tutorial_Manager", "_PickupsLive", (null == b ? 0 : "number" == typeof b ? w.__cast(b, Ka) : "number" == typeof b && (b | 0) === b ? w.__cast(b, Ia) : "boolean" == typeof b ? w.__cast(b, La) ? 1 : 0 : "string" == typeof b ? parseFloat(b) : parseFloat(z.string(b))) - 1)), this._PickedUp = !0, this._Hero.shout("_customEvent_weapon_active"), "machinegun" == this._WeaponType ? this._customEvent_machinegun() : "spread" == this._WeaponType ? this._customEvent_spread() : "quad" == this._WeaponType ? this._customEvent_quad() : "homing" == this._WeaponType ? this._customEvent_homing() : "mines" == this._WeaponType ? this._customEvent_mines() : "mine_trail" == this._WeaponType ? this._customEvent_mine_trail() : "orbit" == this._WeaponType ? this._customEvent_orbit() : "shotgun" == this._WeaponType && this._customEvent_shotgun())) } } }, _customEvent_machinegun: function () { var a = this; this.actor.disableActorDrawing(); this.actor.enableBehavior("Face Direction of HERO Motion"); f.runPeriodically(1E3 * (.25 - this._UpgradeFactor), function (b) { f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(57.29577951308402 * a.actor.getAngle() + f.randomInt(-5, 5), 50); f.startShakingScreen(.001, .1); a._customEvent_sound_gun() }, this.actor); h.engine.gameAttributes.h.Can_Pickup = !1; f.runLater(2E3, function (b) { a._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(a.actor) }, this.actor) }, _customEvent_spread: function () { for (var a = 0, b = 12 + this._UpgradeFactor | 0; a < b;) { var c = a++; f.createRecycledActor(f.getActorType(23), this.actor.getXCenter() - 4, this.actor.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(30 * c, 40) } this._customEvent_sound_gun(); f.startShakingScreen(.001, .1); if (h.engine.getGameAttribute("Upgrade_Spread")) { a = 0; for (b = 12 + this._UpgradeFactor | 0; a < b;) c = a++, f.createRecycledActor(f.getActorType(23), this.actor.getXCenter() - 4, this.actor.getYCenter() - 4, 0), f.getLastCreatedActor().setVelocity(30 * c, 20); this._customEvent_sound_gun(); f.startShakingScreen(.001, .1) } h.engine.gameAttributes.h.Can_Pickup = !1; this._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(this.actor) }, _customEvent_quad: function () { var a = this; this.actor.disableActorDrawing(); f.createRecycledActor(f.getActorType(23), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(2, -2), 40); f.createRecycledActor(f.getActorType(23), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(88, 92), 40); f.createRecycledActor(f.getActorType(23), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(178, 182), 40); f.createRecycledActor(f.getActorType(23), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(268, 272), 40); this._customEvent_sound_gun(); f.runPeriodically(1E3 * (.45 - this._UpgradeFactor), function (b) { f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(2, -2), 40); f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(88, 92), 40); f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(178, 182), 40); f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(f.randomInt(268, 272), 40); a._customEvent_sound_gun() }, this.actor); h.engine.gameAttributes.h.Can_Pickup = !1; f.runLater(1500, function (b) { a._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(a.actor) }, this.actor) }, _customEvent_homing: function () { for (var a = 0, b = 4 + this._UpgradeFactor | 0; a < b;) { var c = a++; f.createRecycledActor(f.getActorType(35), this.actor.getXCenter() - 4, this.actor.getYCenter() - 4, 0); h.engine.getGameAttribute("Upgrade_Homing") ? f.getLastCreatedActor().setVelocity(72 * c, 10) : f.getLastCreatedActor().setVelocity(90 * c + 45, 10) } this._customEvent_sound_gun(); f.startShakingScreen(.001, .1); h.engine.gameAttributes.h.Can_Pickup = !1; this._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(this.actor) }, _customEvent_mines: function () { this._RNG = f.randomInt(0, 359); if (h.engine.getGameAttribute("Upgrade_Mines")) for (var a = 0, b = 8 + this._UpgradeFactor | 0; a < b;) { var c = a++; f.createRecycledActor(f.getActorType(37), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setActorValue("Mine_ID", c); f.getLastCreatedActor().setVelocity(this._RNG + 45 * c + 22, 30) } a = 0; for (b = 8 + this._UpgradeFactor | 0; a < b;) c = a++, f.createRecycledActor(f.getActorType(37), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 4, 0), f.getLastCreatedActor().setActorValue("Mine_ID", c), f.getLastCreatedActor().setVelocity(this._RNG + 45 * c, 35), c == 7 + this._UpgradeFactor && (f.startShakingScreen(.001, .1), h.engine.gameAttributes.h.Can_Pickup = !1, this._Hero.shout("_customEvent_weapon_inactive"), f.recycleActor(this.actor)); this._customEvent_sound_gun() }, _customEvent_mine_trail: function () { var a = this; this.actor.disableActorDrawing(); this.actor.enableBehavior("Face Opposite of HERO Motion"); h.engine.gameAttributes.h.Can_Pickup = !1; if (h.engine.getGameAttribute("Upgrade_Minetrail")) for (var b = 0; 10 > b;) { var c = [b++]; f.runLater(250 * c[0], function (b) { return function (c) { f.createRecycledActor(f.getActorType(37), a._Hero.getXCenter() - 8, a._Hero.getYCenter() - 8, 0); f.getLastCreatedActor().setActorValue("Mine_ID", b[0]); f.getLastCreatedActor().setVelocity(57.29577951308402 * a._Hero.getAngle() + f.randomInt(0, 360), 10) } }(c), this.actor) } for (b = 0; 10 > b;) c = [b++], f.runLater(250 * c[0], function (b) { return function (c) { f.createRecycledActor(f.getActorType(37), a._Hero.getXCenter() - 8, a._Hero.getYCenter() - 8, 0); f.getLastCreatedActor().setActorValue("Mine_ID", b[0]); f.getLastCreatedActor().setVelocity(57.29577951308402 * a._Hero.getAngle() + f.randomInt(0, 360), 10); f.startShakingScreen(.001, .1); a._customEvent_sound_gun(); 9 == b[0] && (a._Hero.shout("_customEvent_weapon_inactive"), f.recycleActor(a.actor)) } }(c), this.actor) }, _customEvent_orbit: function () { var a = this; this.actor.disableActorDrawing(); f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 32, 0); f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() + 24, this._Hero.getYCenter() - 4, 0); f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 4, this._Hero.getYCenter() + 24, 0); f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 32, this._Hero.getYCenter() - 4, 0); h.engine.getGameAttribute("Upgrade_Orbit") && (f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 4, this._Hero.getYCenter() - 40, 0), f.getLastCreatedActor().setValue("Custom Rotate Around Actor", "_Speed", -400), f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() + 32, this._Hero.getYCenter() - 4, 0), f.getLastCreatedActor().setValue("Custom Rotate Around Actor", "_Speed", -400), f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 4, this._Hero.getYCenter() + 32, 0), f.getLastCreatedActor().setValue("Custom Rotate Around Actor", "_Speed", -400), f.createRecycledActor(f.getActorType(59), this._Hero.getXCenter() - 40, this._Hero.getYCenter() - 4, 0), f.getLastCreatedActor().setValue("Custom Rotate Around Actor", "_Speed", -400)); this._customEvent_sound_gun(); f.startShakingScreen(.001, .1); h.engine.gameAttributes.h.Can_Pickup = !1; f.runLater(3E3, function (b) { a._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(a.actor) }, this.actor) }, _customEvent_shotgun: function () { var a = this; this.actor.disableActorDrawing(); this.actor.enableBehavior("Face Direction of HERO Motion"); f.runLater(100, function (b) { b = 0; for (var c = 3 + a._UpgradeFactor | 0; b < c;) { var d = b++; f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(57.29577951308402 * a.actor.getAngle() - (10 + 3 * a._UpgradeFactor) + f.randomInt(8, 12) * d, 40) } a._customEvent_sound_gun() }, this.actor); f.runPeriodically(650, function (b) { b = 0; for (var c = 3 + a._UpgradeFactor | 0; b < c;) { var d = b++; f.createRecycledActor(f.getActorType(23), a._Hero.getXCenter() - 4, a._Hero.getYCenter() - 4, 0); f.getLastCreatedActor().setVelocity(57.29577951308402 * a.actor.getAngle() - (10 + 3 * a._UpgradeFactor) + f.randomInt(8, 12) * d, 40) } a._customEvent_sound_gun(); f.startShakingScreen(.001, .1) }, this.actor); h.engine.gameAttributes.h.Can_Pickup = !1; f.runLater(2E3, function (b) { a._Hero.shout("_customEvent_weapon_inactive"); f.recycleActor(a.actor) }, this.actor) }, _customEvent_sound_gun: function () { f.playSoundOnChannel(f.getSound(136), h.engine.getGameAttribute("Sound_Channel") | 0); var a = h.engine, b = h.engine.getGameAttribute("Sound_Channel") + 1; a.gameAttributes.h.Sound_Channel = b }, init: function () { var a = this; this.actor.disableBehavior("Face Direction of HERO Motion"); this.actor.disableBehavior("Face Opposite of HERO Motion"); this.actor.moveToBottom(); f.runLater(500, function (b) { a._Activated = !0 }, this.actor); for (var b = 0, c = f.getActorsOfType(f.getActorType(154)); b < c.length;) { var d = c[b]; ++b; null != d && !d.dead && !d.recycled && 40 > Math.abs(this.actor.getXCenter() - d.getXCenter()) && 40 > Math.abs(this.actor.getYCenter() - d.getYCenter()) && (this.actor.getX() < f.getSceneWidth() / 2 ? this.actor.setX(this.actor.getX() - 48) : this.actor.setX(this.actor.getX() + 48), this.actor.getY() < f.getSceneHeight() / 2 ? this.actor.setY(this.actor.getY() - 48) : this.actor.setY(this.actor.getY() + 48)) } b = 0; for (c = f.getActorsOfType(f.getActorType(18)); b < c.length;) d = c[b], ++b, null == d || d.dead || d.recycled || !d.isAlive() || (this._Hero = d, 24 > za.distance_to_target(this.actor, this._Hero) && (d = f.getValueForScene("Scene_Manager", "_PickupsLive"), f.setValueForScene("Scene_Manager", "_PickupsLive", (null == d ? 0 : "number" == typeof d ? w.__cast(d, Ka) : "number" == typeof d && (d | 0) === d ? w.__cast(d, Ia) : "boolean" == typeof d ? w.__cast(d, La) ? 1 : 0 : "string" == typeof d ? parseFloat(d) : parseFloat(z.string(d))) - 1), f.recycleActor(this.actor))); this.actor.disableActorDrawing(); f.createRecycledActor(f.getActorType(232), this.actor.getX() - 8, this.actor.getY() - 8, 0); f.runLater(600, function (b) { a._PickedUp || a.actor.enableActorDrawing() }, this.actor); f.runLater(10, function (b) { 0 == a._WeaponRNG ? (a._WeaponType = "machinegun", h.engine.getGameAttribute("Upgrade_Machinegun") && (a._Upgraded = !0, a._UpgradeFactor = .1)) : 1 == a._WeaponRNG ? (a._WeaponType = "spread", h.engine.getGameAttribute("Upgrade_Spread") && (a._Upgraded = !0)) : 2 == a._WeaponRNG ? (a._WeaponType = "quad", h.engine.getGameAttribute("Upgrade_Quad") && (a._Upgraded = !0, a._UpgradeFactor = .2)) : 3 == a._WeaponRNG ? (a._WeaponType = "homing", h.engine.getGameAttribute("Upgrade_Homing") && (a._Upgraded = !0, a._UpgradeFactor = 1)) : 4 == a._WeaponRNG ? (a._WeaponType = "mines", h.engine.getGameAttribute("Upgrade_Mines") && (a._Upgraded = !0, a._UpgradeFactor = 0)) : 5 == a._WeaponRNG ? (a._WeaponType = "mine_trail", h.engine.getGameAttribute("Upgrade_Minetrail") && (a._Upgraded = !0, a._UpgradeFactor = 4)) : 6 == a._WeaponRNG ? (a._WeaponType = "orbit", h.engine.getGameAttribute("Upgrade_Orbit") && (a._Upgraded = !0)) : 7 == a._WeaponRNG && (a._WeaponType = "shotgun", h.engine.getGameAttribute("Upgrade_Shotgun") && (a._Upgraded = !0, a._UpgradeFactor = 2)); f.runLater(20, function (b) { a._Upgraded ? (a.actor.setAnimation(a._WeaponType + "_up"), a.actor.setX(a.actor.getX() - 1), a.actor.setY(a.actor.getY() - 10)) : a.actor.setAnimation(a._WeaponType) }, a.actor) }, this.actor); this.addListener(this.actor.whenDrawing, q(this, this._event_Drawing)); this.addListener(this.actor.whenUpdated, q(this, this._event_Updating)) }, forwardMessage: function (a) { }, __class__: Tq }); var Uq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Facing = "_Facing"; this._Facing = -90; this.nameMap.h["Idle Threshold"] = "_IdleThreshold"; this._IdleThreshold = 1 }; k["scripts.Design_52_52_FaceDirectionofMotion"] = Uq; Uq.__name__ = "scripts.Design_52_52_FaceDirectionofMotion"; Uq.__super__ = P; Uq.prototype = u(P.prototype, { _Facing: null, _IdleThreshold: null, _event_Updated: function (a) { this.wrapper.enabled && (Math.pow(this.actor.getXVelocity(), 2) + Math.pow(this.actor.getYVelocity(), 2) > Math.pow(this._IdleThreshold, 2) ? this.actor.setAngle(.01745329251994278 * (57.29577951308402 * Math.atan2(this.actor.getYVelocity(), this.actor.getXVelocity()) - this._Facing)) : this.actor.setAngularVelocity(0)) }, init: function () { this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Uq }); var Vq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.Facing = "_Facing"; this._Facing = -90; this.nameMap.h["Idle Threshold"] = "_IdleThreshold"; this._IdleThreshold = 1; this.nameMap.h.Target_Actor = "_TargetActor" }; k["scripts.Design_54_54_FaceOppositeofHEROMotion"] = Vq; Vq.__name__ = "scripts.Design_54_54_FaceOppositeofHEROMotion"; Vq.__super__ = P; Vq.prototype = u(P.prototype, { _Facing: null, _IdleThreshold: null, _TargetActor: null, _event_Updated: function (a) { this.wrapper.enabled && (Math.pow(this._TargetActor.getXVelocity(), 2) + Math.pow(this._TargetActor.getYVelocity(), 2) > Math.pow(this._IdleThreshold, 2) ? this.actor.setAngle(.01745329251994278 * (57.29577951308402 * Math.atan2(this._TargetActor.getYVelocity(), this._TargetActor.getXVelocity()) - this._Facing - 180)) : this.actor.setAngularVelocity(0)) }, init: function () { for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._TargetActor = c) } this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Vq }); var Wq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h["Distance X"] = "_DistanceX"; this._DistanceX = 0; this.nameMap.h["Distance Y"] = "_DistanceY"; this._DistanceY = 0; this.nameMap.h.Direction = "_Direction"; this._Direction = 0; this.nameMap.h.Distance = "_Distance"; this._Distance = 0; this.nameMap.h.Speed = "_Speed"; this._Speed = 10; this.nameMap.h.Facing = "_Facing"; this._Facing = 0; this.nameMap.h["Point Away"] = "_PointAway"; this._PointAway = !0; this.nameMap.h["Origin Actor"] = "_OriginActor"; this.nameMap.h["Step Seconds"] = "_StepSeconds"; this._StepSeconds = 0; this.nameMap.h["New Distance"] = "_NewDistance"; this._NewDistance = 0; this.nameMap.h["Distance Threshold"] = "_DistanceThreshold"; this._DistanceThreshold = 10; this.nameMap.h["Fixed Radius"] = "_FixedRadius"; this._FixedRadius = !0 }; k["scripts.Design_61_61_CustomRotateAroundActor"] = Wq; Wq.__name__ = "scripts.Design_61_61_CustomRotateAroundActor"; Wq.__super__ = P; Wq.prototype = u(P.prototype, { _DistanceX: null, _DistanceY: null, _Direction: null, _Distance: null, _Speed: null, _Facing: null, _PointAway: null, _OriginActor: null, _StepSeconds: null, _NewDistance: null, _DistanceThreshold: null, _FixedRadius: null, _event_Updated: function (a) { this.wrapper.enabled && (a = this._OriginActor, (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && (this._FixedRadius || (this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter(), this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter(), this._NewDistance = Math.sqrt(Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2)), Math.abs(this._NewDistance - this._Distance) > this._DistanceThreshold && (this._Distance = this._NewDistance, this._Direction = Math.atan2(this._DistanceY, this._DistanceX))), this._Direction = (this._Direction += .01745329251994278 * this._Speed * this._StepSeconds) - 2 * Math.PI * Math.floor(this._Direction / (2 * Math.PI)), this.actor.setX(this._OriginActor.getXCenter() + this._Distance * Math.cos(this._Direction) - this.actor.getWidth() / 2), this.actor.setY(this._OriginActor.getYCenter() + this._Distance * Math.sin(this._Direction) - this.actor.getHeight() / 2), this._PointAway && this.actor.setAngle(.01745329251994278 * (57.29577951308402 * this._Direction - this._Facing)))) }, _customEvent_Initialize: function () { var a = this._OriginActor; (f.isPrimitive(a) || ("string" == typeof a ? "" != w.__cast(a, String) : null != a)) && this._OriginActor.isAlive() && (this._DistanceX = this.actor.getXCenter() - this._OriginActor.getXCenter(), this._DistanceY = this.actor.getYCenter() - this._OriginActor.getYCenter(), this._Distance = Math.sqrt(Math.pow(this._DistanceX, 2) + Math.pow(this._DistanceY, 2)), this._Direction = Math.atan2(this._DistanceY, this._DistanceX)) }, init: function () { this._StepSeconds = f.getStepSize() / 1E3; for (var a = 0, b = f.getActorsOfType(f.getActorType(18)); a < b.length;) { var c = b[a]; ++a; null == c || c.dead || c.recycled || (this._OriginActor = c) } this._customEvent_Initialize(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Wq }); var Xq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor"; this.nameMap.h.yPos = "_yPos"; this._yPos = 0 }; k["scripts.Design_66_66_ZOrdering"] = Xq; Xq.__name__ = "scripts.Design_66_66_ZOrdering"; Xq.__super__ = P; Xq.prototype = u(P.prototype, { _yPos: null, _event_Updated: function (a) { this.wrapper.enabled && this._yPos != this.actor.getY() && (this._yPos = this.actor.getY(), f.sayToScene("Actor Z Ordering", "_customBlock_UpdateList")) }, init: function () { this._yPos = this.actor.getY(); this.addListener(this.actor.whenUpdated, q(this, this._event_Updated)) }, forwardMessage: function (a) { }, __class__: Xq }); var Yq = function (a, b) { f.call(this); this.nameMap.h["Actor List"] = "_ActorList"; this.nameMap.h.zIndex = "_zIndex"; this._zIndex = 0; this.nameMap.h.Layers = "_Layers"; this._Layers = "" }; k["scripts.Design_67_67_ActorZOrdering"] = Yq; Yq.__name__ = "scripts.Design_67_67_ActorZOrdering"; Yq.__super__ = Md; Yq.prototype = u(Md.prototype, { _ActorList: null, _zIndex: null, _Layers: null, _customBlock_UpdateList: function () { for (var a = 0, b = w.__cast(this._Layers.split(" "), Array); a < b.length;) { var c = b[a]; ++a; f.engine.allActors.reuseIterator = !1; for (var d = f.engine.allActors.iterator(); d.hasNext();) { var e = d.next(); if (null != e && !e.dead && !e.recycled && e.isOnScreenCache && e.getLayerID() == (null == c ? 0 : "number" == typeof c ? w.__cast(c, Ka) : "number" == typeof c && (c | 0) === c ? w.__cast(c, Ia) : "boolean" == typeof c ? w.__cast(c, La) ? 1 : 0 : "string" == typeof c ? parseFloat(c) : parseFloat(z.string(c)))) if (0 == this._ActorList.length) this._ActorList.push(e); else { this._zIndex = this._ActorList.length; for (var g = 0, h = this._zIndex | 0; g < h;) if (g++, e.getY() + e.getHeight() < this._ActorList[this._zIndex - 1 | 0].getY() + this._ActorList[this._zIndex - 1 | 0].getHeight()) --this._zIndex; else break; this._ActorList.splice(this._zIndex | 0, 0, e) } } f.engine.allActors.reuseIterator = !0; c = 0; for (d = this._ActorList.length; c < d;) e = c++, this._ActorList[e].setZIndex(e); this._ActorList = [] } }, _customBlock_OrderLayer: function (a) { f.engine.allActors.reuseIterator = !1; for (var b = f.engine.allActors.iterator(); b.hasNext();) { var c = b.next(); if (null != c && !c.dead && !c.recycled && c.isOnScreenCache && c.getLayerID() == a) if (0 == this._ActorList.length) this._ActorList.push(c); else { this._zIndex = this._ActorList.length; for (var d = 0, e = this._zIndex | 0; d < e;) if (d++, c.getY() + c.getHeight() < this._ActorList[this._zIndex - 1 | 0].getY() + this._ActorList[this._zIndex - 1 | 0].getHeight()) --this._zIndex; else break; this._ActorList.splice(this._zIndex | 0, 0, c) } } f.engine.allActors.reuseIterator = !0; d = 0; for (e = this._ActorList.length; d < e;) a = d++, this._ActorList[a].setZIndex(a); this._ActorList = [] }, init: function () { var a = this; this._ActorList = []; f.runLater(20, function (b) { a._customBlock_UpdateList() }, null) }, forwardMessage: function (a) { }, __class__: Yq }); var Zq = function (a, b, c) { P.call(this, b); this.nameMap.h.Actor = "actor" }; k["scripts.Design_86_86_DieOnLeavingScreen"] = Zq; Zq.__name__ = "scripts.Design_86_86_DieOnLeavingScreen"; Zq.__super__ = P; Zq.prototype = u(P.prototype, { _event_LeavesScreen: function (a, b, c, d) { this.wrapper.enabled && b && f.recycleActor(this.actor) }, init: function () { this.actor.makeAlwaysSimulate(); this.addListener(this.actor.whenPositionStateChanged, q(this, this._event_LeavesScreen)) }, forwardMessage: function (a) { }, __class__: Zq }); var ms = function () { }; k["scripts.MyScripts"] = ms; ms.__name__ = "scripts.MyScripts"; var $q = function (a, b) { f.call(this); this.nameMap.h.RNG = "_RNG"; this._RNG = 0 }; k["scripts.SceneEvents_14"] = $q; $q.__name__ = "scripts.SceneEvents_14"; $q.__super__ = Md; $q.prototype = u(Md.prototype, { _RNG: null, init: function () { }, forwardMessage: function (a) { }, __class__: $q }); var ar = function (a, b) { f.call(this); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Upgrades_Available = "_UpgradesAvailable"; this.nameMap.h.RNG_2 = "_RNG2"; this._RNG2 = 0; this.nameMap.h.Upgrade_Slot_1 = "_UpgradeSlot1"; this._UpgradeSlot1 = 0; this.nameMap.h.Upgrade_Slot_2 = "_UpgradeSlot2"; this._UpgradeSlot2 = 0; this.nameMap.h.Upgrade_Slot_3 = "_UpgradeSlot3"; this._UpgradeSlot3 = 0; this.nameMap.h.Upgrade_Slot_4 = "_UpgradeSlot4"; this._UpgradeSlot4 = 0; this.nameMap.h.Upgrade_Slot_5 = "_UpgradeSlot5"; this._UpgradeSlot5 = 0; this.nameMap.h.Upgrade_Slot_6 = "_UpgradeSlot6"; this._UpgradeSlot6 = 0; this.nameMap.h.Upgrade_Slot_7 = "_UpgradeSlot7"; this._UpgradeSlot7 = 0; this.nameMap.h.Upgrade_Slot_8 = "_UpgradeSlot8"; this._UpgradeSlot8 = 0 }; k["scripts.SceneEvents_15"] = ar; ar.__name__ = "scripts.SceneEvents_15"; ar.__super__ = Md; ar.prototype = u(Md.prototype, { _RNG: null, _UpgradesAvailable: null, _RNG2: null, _UpgradeSlot1: null, _UpgradeSlot2: null, _UpgradeSlot3: null, _UpgradeSlot4: null, _UpgradeSlot5: null, _UpgradeSlot6: null, _UpgradeSlot7: null, _UpgradeSlot8: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = f.getFont(252); null != b && b != a.font && (a.font = b); b = f.getFont(172); null != b && b != a.font && (a.font = b); b = (f.getSceneWidth() - f.getFont(172).getTextWidth("INTO THE PIT") / h.SCALE) / 2; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 182 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 182 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 182 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "INTO THE PIT:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { g = a.font.font.getTextWidth("INTO THE PIT", a.font.fontScale); var l = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "INTO THE PIT", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()); b = f.getFont(255); null != b && b != a.font && (a.font = b); window.navigator.maxTouchPoints || "ontouchstart" in document ? (b = (f.getSceneWidth() - f.getFont(255).getTextWidth("MOVE=DRAG FINGER") / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 228 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 228 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 228 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = "MOVE=DRAG FINGER:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (g = a.font.font.getTextWidth("MOVE=DRAG FINGER", a.font.fontScale), l = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "MOVE=DRAG FINGER", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))) : (b = (f.getSceneWidth() - f.getFont(255).getTextWidth("MOVE=ARROWS/WASD ESC=PAUSE M=MUTE") / h.SCALE) / 2, null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 228 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 228 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 228 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = "MOVE=ARROWS/WASD ESC=PAUSE M=MUTE:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (g = a.font.font.getTextWidth("MOVE=ARROWS/WASD ESC=PAUSE M=MUTE", a.font.fontScale), l = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < g && 0 < l && (d = new ka(g, l, !0, 0), a.font.font.renderToImg(d, "MOVE=ARROWS/WASD ESC=PAUSE M=MUTE", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))); null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } }, _customEvent_spawn_upgrades: function () { var a = this; f.createRecycledActor(f.getActorType(230), 348, 44, 0); this._RNG = f.randomInt(0, 7); f.runLater(1500, function (b) { b = 0; for (var c = f.getActorsOfType(f.getActorType(230)); b < c.length;) { var d = c[b]; ++b; null == d || d.dead || d.recycled || f.recycleActor(d) } f.createRecycledActor(f.getActorType(228), 356, 42, 0); f.getLastCreatedActor().setValue("ActorEvents_228", "_UpgradeType", a._RNG); f.getLastCreatedActor().setValue("ActorEvents_228", "_LeftSideUpgrade", 1) }, null) }, init: function () { 0 == h.engine.getGameAttribute("High_Score") && (h.engine.gameAttributes.h.High_Score = 1); h.engine.gameAttributes.h.Speedrun_Timer = 0; h.engine.gameAttributes.h.Big_Boss_Order = "asdf"; h.engine.gameAttributes.h.Lives = 3; h.engine.gameAttributes.h.Can_Continue = !0; h.engine.gameAttributes.h.Upgrade_Homing = !1; h.engine.gameAttributes.h.Upgrade_Machinegun = !1; h.engine.gameAttributes.h.Upgrade_Mines = !1; h.engine.gameAttributes.h.Upgrade_Minetrail = !1; h.engine.gameAttributes.h.Upgrade_Orbit = !1; h.engine.gameAttributes.h.Upgrade_Quad = !1; h.engine.gameAttributes.h.Upgrade_Shotgun = !1; h.engine.gameAttributes.h.Upgrade_Spread = !1; h.engine.gameAttributes.h.BG_Pattern_Bounce = !1; h.engine.gameAttributes.h.BG_Pattern_Diagonal = !1; h.engine.gameAttributes.h.BG_Pattern_Follow = !1; h.engine.gameAttributes.h.BG_Pattern_Grid = !1; h.engine.gameAttributes.h.Tutorial_Complete = !0; this._customEvent_spawn_upgrades(); this.addListener(f.engine.whenDrawing, q(this, this._event_Drawing)) }, forwardMessage: function (a) { }, __class__: ar }); var br = function (a, b) { f.call(this); this.nameMap.h.Scene_Transitioning = "_SceneTransitioning"; this._SceneTransitioning = !1 }; k["scripts.SceneEvents_16"] = br; br.__name__ = "scripts.SceneEvents_16"; br.__super__ = Md; br.prototype = u(Md.prototype, { _SceneTransitioning: null, init: function () { var a = this; window.addEventListener("keydown", function (a) { switch (a.keyCode) { case 37: case 39: case 38: case 40: case 32: a.preventDefault() } }, !1); window.addEventListener("keyup", function (a) { }, !1); f.loadGame("mySave", function (a) { f.loopSoundOnChannel(f.getSound(113), 0); h.engine.gameAttributes.h.Volume = 50; f.setVolumeForAllSounds(h.engine.getGameAttribute("Volume") / 100); f.setVolumeForChannel(h.engine.getGameAttribute("Volume") / 2 / 100, 0) }); h.engine.gameAttributes.h.Score = 0; h.engine.gameAttributes.h.Sound_Channel = 6; f.runLater(700, function (b) { a._SceneTransitioning = !0; f.engine.pause(); ya.commercialBreak(function () { f.engine.unpause(); var a = zb.get().scenes.h[15].getID(), b = 204, e = 204, g = 204; null == g && (g = 0); null == e && (e = 0); null == b && (b = 0); var h = f.createFadeOut(.1, b << 16 | e << 8 | g); g = e = b = 204; null == g && (g = 0); null == e && (e = 0); null == b && (b = 0); f.switchScene(a, h, f.createFadeIn(.1, b << 16 | e << 8 | g)) }) }, null) }, forwardMessage: function (a) { }, __class__: br }); var cr = function (a, b) { f.call(this); this.nameMap.h.RNG = "_RNG"; this._RNG = 0 }; k["scripts.SceneEvents_17"] = cr; cr.__name__ = "scripts.SceneEvents_17"; cr.__super__ = Md; cr.prototype = u(Md.prototype, { _RNG: null, init: function () { }, forwardMessage: function (a) { }, __class__: cr }); var dr = function (a, b) { f.call(this); this.nameMap.h.RNG = "_RNG"; this._RNG = 0; this.nameMap.h.Clone_Phrases = "_ClonePhrases" }; k["scripts.SceneEvents_18"] = dr; dr.__name__ = "scripts.SceneEvents_18"; dr.__super__ = Md; dr.prototype = u(Md.prototype, { _RNG: null, _ClonePhrases: null, _event_Drawing: function (a, b, c) { if (this.wrapper.enabled) { b = f.getFont(172); null != b && b != a.font && (a.font = b); b = (f.getSceneWidth() - f.getFont(172).getTextWidth("THE END") / h.SCALE) / 2; null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + b * a.scaleX, c = a.y + 182 * a.scaleY) : (b = a.x + b * a.scaleX - h.cameraX, c = a.y + 182 * a.scaleY - h.cameraY) : (b = a.x + b * a.scaleX, c = a.y + 182 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); var d = null, e = a.font; e = "THE END:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); if (Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e)) { var g = ca.drawnStringCache.h[e]; g.lifetime = 5; d = g.img } else { var l = a.font.font.getTextWidth("THE END", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0; 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "THE END", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)) } null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()); b = f.getFont(255); null != b && b != a.font && (a.font = b); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 140 * a.scaleX, c = a.y + 6 * a.scaleY) : (b = a.x + 140 * a.scaleX - h.cameraX, c = a.y + 6 * a.scaleY - h.cameraY) : (b = a.x + 140 * a.scaleX, c = a.y + 6 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); d = null; e = a.font; e = "YOUR TIME:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth("YOUR TIME", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "YOUR TIME", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e))); null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()); null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)); a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 255 * a.scaleX, c = a.y + 6 * a.scaleY) : (b = a.x + 255 * a.scaleX - h.cameraX, c = a.y + 6 * a.scaleY - h.cameraY) : (b = a.x + 255 * a.scaleX, c = a.y + 6 * a.scaleY); a.mtx.identity(); a.mtx.translate(b, c); d = null; e = a.font; e = "BEST:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(); Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth("BEST", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "BEST", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e))); null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()); 1 <= h.engine.getGameAttribute("Speedrun_Timer") && (g = "" + Math.floor(h.engine.getGameAttribute("Speedrun_Timer") / 1E3 / 60) + ":" + ("" + h.engine.getGameAttribute("Speedrun_Best") / 1E3 % 60).substring(0, 4), null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 148 * a.scaleX, c = a.y + 15 * a.scaleY) : (b = a.x + 148 * a.scaleX - h.cameraX, c = a.y + 15 * a.scaleY - h.cameraY) : (b = a.x + 148 * a.scaleX, c = a.y + 15 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = g + ":" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth(g, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, g, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e))), null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill())); 1 <= h.engine.getGameAttribute("Speedrun_Best") ? (g = "" + Math.floor(h.engine.getGameAttribute("Speedrun_Best") / 1E3 / 60) + ":" + ("" + h.engine.getGameAttribute("Speedrun_Best") / 1E3 % 60).substring(0, 4), null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 250 * a.scaleX, c = a.y + 15 * a.scaleY) : (b = a.x + 250 * a.scaleX - h.cameraX, c = a.y + 15 * a.scaleY - h.cameraY) : (b = a.x + 250 * a.scaleX, c = a.y + 15 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = g + ":" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth(g, a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, g, 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))) : (null == a.font && (a.font = a.defaultFont, a.font.fontScale != h.SCALE && (a.font.fontScale = h.SCALE)), a.drawActor ? null != a.actor && a.actor.isHUD ? (b = a.x + 148 * a.scaleX, c = a.y + 16 * a.scaleY) : (b = a.x + 148 * a.scaleX - h.cameraX, c = a.y + 16 * a.scaleY - h.cameraY) : (b = a.x + 148 * a.scaleX, c = a.y + 16 * a.scaleY), a.mtx.identity(), a.mtx.translate(b, c), d = null, e = a.font, e = "- - - -:" + e.ID + ":" + a.alpha + ":" + h.SCALE + ":" + e.get_letterSpacing(), Object.prototype.hasOwnProperty.call(ca.drawnStringCache.h, e) ? (g = ca.drawnStringCache.h[e], g.lifetime = 5, d = g.img) : (l = a.font.font.getTextWidth("- - - -", a.font.fontScale), k = a.font.font.getFontHeight() * a.font.fontScale | 0, 0 < l && 0 < k && (d = new ka(l, k, !0, 0), a.font.font.renderToImg(d, "- - - -", 0, a.alpha, 0, 0, a.font.fontScale, 0, !1), g = new vc, g.img = d, g.lifetime = 5, ca.drawnStringCache.h[e] = g, ca.drawnStringCacheKeys.push(e)))); null != d && (a.graphics.beginBitmapFill(d, a.mtx, !1, aa.antialias), a.graphics.drawRect(b, c, d.width, d.height), a.graphics.endFill()) } }, _event_Msound: function (a, b) { this.wrapper.enabled && a && (50 == h.engine.getGameAttribute("Volume") ? h.engine.gameAttributes.h.Volume = 0 : h.engine.gameAttributes.h.Volume = 50, f.setVolumeForAllSounds(h.engine.getGameAttribute("Volume") / 100), f.setVolumeForChannel(h.engine.getGameAttribute("Volume") / 2 / 100, 0)) }, init: function () { ya.sendHappyTime(1); h.engine.gameAttributes.h.Score = 25; this._ClonePhrases = []; this._ClonePhrases.push("So...now what?"); this._ClonePhrases.push("You look familiar."); this._ClonePhrases.push("We did it! ... Right?"); this._ClonePhrases.push("Did you bring food?"); this._ClonePhrases.push("This wasn~x2019t the ending I hoped for."); this._ClonePhrases.push("Did we take a wrong turn?"); this._ClonePhrases.push("Did you bring a ladder?"); this._ClonePhrases.push("I wish I had a jetpack."); this._ClonePhrases.push("I expected something different."); this._ClonePhrases.push("I guess it was all in the title."); this._ClonePhrases.push("I~x2019m hungry."); this._ClonePhrases.push("Isn~x2019t it beautiful here?"); this._ClonePhrases.push("Gray my favorite color!"); this._ClonePhrases.push("Look at all this gorgeous metal!"); this._ClonePhrases.push("They should decorate."); this._ClonePhrases.push("Honestly, I~x2019m tired of pits."); this._ClonePhrases.push("I feel like they were trying to kill me."); this._ClonePhrases.push("Is there a trophy?"); this._ClonePhrases.push("Who wants to go again?"); this._ClonePhrases.push("Tag! You~x2019re it!"); this._ClonePhrases.push("Want to play hide and seek?"); this._ClonePhrases.push("How did they build this with no hands?"); this.addListener(f.engine.whenDrawing, q(this, this._event_Drawing)); this.addListener(f.engine.whenKeyPressedEvents.getOrCreateEvent("M"), q(this, this._event_Msound)) }, forwardMessage: function (a) { }, __class__: dr }); var er = function () { }; k["scripts.SplashBox"] = er; er.__name__ = "scripts.SplashBox"; er.prototype = {__class__: er}; var qk = function () { this.onComplete = new Rd; var a = this; Ca.call(this); Oa.get_current().addChild(this); this.locked = !1; var b = h.SCALE, c = ""; this.background = new Ca; this.background.get_graphics().beginFill(-15592942, 1); this.background.get_graphics().drawRect(0, 0, this.getWidth(), this.getHeight()); this.addChild(this.background); X.getConfigBitmap("config/preloader-bg.png").onComplete(function (b) { a.addChildAt(b, a.getChildIndex(a.background) + 1) }); var d = 2 * b; this.barWidth = b * h.screenScaleX * 192 | 0; this.barHeight = b * h.screenScaleY * 13 | 0; var e = 0 * b; b *= 126; c = this.getWidth() / 2 - this.barWidth / 2; var f = this.getHeight() / 2 - this.barHeight / 2; this.barBorder = new Ca; this.barBorder.get_graphics().beginFill(-12303292, 1); this.barBorder.get_graphics().drawRect(-d, -d, this.barWidth + 2 * d, this.barHeight + 2 * d); this.barBorder.set_x(c + e); this.barBorder.set_y(f + b); this.addChild(this.barBorder); this.barBackground = new Ca; this.barBackground.get_graphics().beginFill(-12303292, 1); this.barBackground.get_graphics().drawRect(0, 0, this.barWidth, this.barHeight); this.barBackground.set_x(c + e); this.barBackground.set_y(f + b); this.barBackground.set_scaleX(1); this.addChild(this.barBackground); this.bar = new Ca; this.bar.get_graphics().beginFill(-7829368, 1); this.bar.get_graphics().drawRect(0, 0, this.barWidth, this.barHeight); d = new ba(0, 0, 0, this.barHeight); this.bar.set_scrollRect(d); this.bar.set_x(c + e); this.bar.set_y(f + b); this.addChild(this.bar); "" != this.getURL() && this.addEventListener("mouseDown", q(this, this.onMouseDown), !1, 2); c = this.getLockURL(); if (this.isSiteLocked() && null != c && "" != c) { d = !1; e = Oa.get_current().get_loaderInfo().url; if (null == e) d = !0; else if (0 > e.indexOf("http://") && 0 > e.indexOf("https://")) d = !0; else if (0 < e.indexOf("stencyl.com") || 0 < e.indexOf("localhost")) d = !0; if (!d) { b = c.split(","); for (c = 0; c < b.length;) d = b[c], ++c, d = T.trim(d), 0 <= d.indexOf("*") || T.startsWith(d, "^") && T.endsWith(d, "$") ? (d = new fb(d, ""), d = d.match(e)) : d = 0 <= e.indexOf(d); d || this.showLockScreen(b[0]) } } }; k["scripts.StencylPreloader"] = qk; qk.__name__ = "scripts.StencylPreloader"; qk.__super__ = Ca; qk.prototype = u(Ca.prototype, { barBorder: null, bar: null, barBackground: null, background: null, barWidth: null, barHeight: null, locked: null, onComplete: null, adPlaying: null, ready: null, getLockURL: function () { return "" }, isSiteLocked: function () { return !1 }, showLockScreen: function (a) { this.locked = !0; X.removeAllChildren(this); var b = new dd(new ka(this.getWidth() | 0, this.getHeight() | 0, !1, 5658198)); this.addChild(b); var c = new cf; c.set_width(this.getWidth() - 16); c.set_height(this.getHeight() - 16); c.set_x(8); c.set_y(8); c.set_textColor(16777215); c.set_multiline(!0); c.set_wordWrap(!0); c.set_text("Hi there! It looks like somebody copied this game without my permission. Just click anywhere, or copy-paste this URL into your browser.\n\n" + a + "\n\nThanks, and have fun!"); a = new Sg(null, 25); c.setTextFormat(a); this.addChild(c); this.removeEventListener("mouseDown", q(this, this.onMouseDown)); c.addEventListener("click", q(this, this.goToLockURL)); b.addEventListener("click", q(this, this.goToLockURL)) }, getURL: function () { return "" }, goToLockURL: function (a) { Oa.getURL(new Vg(this.getLockURL().split(",")[0]), "_parent") }, onMouseDown: function (a) { this.removeEventListener("mouseDown", q(this, this.onMouseDown)); Oa.getURL(new Vg(this.getURL()), "_blank") }, getBackgroundColor: function () { return 3368601 }, getWidth: function () { return ua.windowWidth }, getHeight: function () { return ua.windowHeight }, onUpdate: function (a, b) { Oa.get_current().get_loaderInfo().__update(a, b); null != this.bar && (a = new ba(0, 0, a / b * this.barWidth, this.barHeight), this.bar.set_scrollRect(a)) }, onLoaded: function () { Oa.get_current().get_loaderInfo().__complete(); this.ready = !0; this.adPlaying || this.unload() }, adFinished: function () { this.adPlaying = !1; this.ready && this.unload() }, unload: function () { new er; this.isSiteLocked() && this.locked || (this.parent == Oa.get_current() && Oa.get_current().removeChild(this), Oa.get_current().stage.set_focus(null), this.onComplete.dispatch()) }, __class__: qk }); var Nb = function () { }; k["tweenxcore.Easing"] = Nb; Nb.__name__ = "tweenxcore.Easing"; Nb.linear = function (a) { return a }; Nb.sineIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 - Math.cos(1.5707963267948966 * a) }; Nb.sineOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.sin(1.5707963267948966 * a) }; Nb.sineInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : -.5 * (Math.cos(3.141592653589793 * a) - 1) }; Nb.sineOutIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : .5 > a ? .5 * Math.sin(3.141592653589793 * a) : -.5 * Math.cos(1.5707963267948966 * (2 * a - 1)) + 1 }; Nb.quadIn = function (a) { return a * a }; Nb.quadOut = function (a) { return -a * (a - 2) }; Nb.quadInOut = function (a) { return .5 > a ? 2 * a * a : -2 * --a * a + 1 }; Nb.quadOutIn = function (a) { if (.5 > a) return -.5 * (a *= 2) * (a - 2); a = 2 * a - 1; return .5 * a * a + .5 }; Nb.cubicIn = function (a) { return a * a * a }; Nb.cubicOut = function (a) { return --a * a * a + 1 }; Nb.cubicInOut = function (a) { return 1 > (a *= 2) ? .5 * a * a * a : .5 * ((a -= 2) * a * a + 2) }; Nb.cubicOutIn = function (a) { a = 2 * a - 1; return .5 * (a * a * a + 1) }; Nb.quartIn = function (a) { return (a *= a) * a }; Nb.quartOut = function (a) { a *= --a; return 1 - a * a }; Nb.quartInOut = function (a) { if (1 > (a *= 2)) return .5 * (a *= a) * a; a *= a -= 2; return -.5 * (a * a - 2) }; Nb.quartOutIn = function (a) { if (.5 > a) return a = 2 * a - 1, -.5 * (a *= a) * a + .5; a = 2 * a - 1; return .5 * (a *= a) * a + .5 }; Nb.quintIn = function (a) { return a * (a *= a) * a }; Nb.quintOut = function (a) { return --a * (a *= a) * a + 1 }; Nb.quintInOut = function (a) { return 1 > (a *= 2) ? .5 * a * (a *= a) * a : .5 * (a -= 2) * (a *= a) * a + 1 }; Nb.quintOutIn = function (a) { a = 2 * a - 1; return .5 * (a * (a *= a) * a + 1) }; Nb.expoIn = function (a) { return 0 == a ? 0 : Math.exp(6.931471805599453 * (a - 1)) }; Nb.expoOut = function (a) { return 1 == a ? 1 : 1 - Math.exp(-6.931471805599453 * a) }; Nb.expoInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? .5 * Math.exp(6.931471805599453 * (a - 1)) : .5 * (2 - Math.exp(-6.931471805599453 * (a - 1))) }; Nb.expoOutIn = function (a) { return .5 > a ? .5 * (1 - Math.exp(-13.862943611198906 * a)) : .5 == a ? .5 : .5 * (Math.exp(13.862943611198906 * (a - 1)) + 1) }; Nb.circIn = function (a) { return -1 > a || 1 < a ? 0 : 1 - Math.sqrt(1 - a * a) }; Nb.circOut = function (a) { return 0 > a || 2 < a ? 0 : Math.sqrt(a * (2 - a)) }; Nb.circInOut = function (a) { return -.5 > a || 1.5 < a ? .5 : 1 > (a *= 2) ? -.5 * (Math.sqrt(1 - a * a) - 1) : .5 * (Math.sqrt(1 - (a -= 2) * a) + 1) }; Nb.circOutIn = function (a) { if (0 > a) return 0; if (1 < a) return 1; if (.5 > a) return a = 2 * a - 1, .5 * Math.sqrt(1 - a * a); a = 2 * a - 1; return -.5 * (Math.sqrt(1 - a * a) - 1 - 1) }; Nb.bounceIn = function (a) { a = 1 - a; return .36363636363636365 > a ? 1 - 7.5625 * a * a : .7272727272727273 > a ? 1 - (7.5625 * (a -= .5454545454545454) * a + .75) : .9090909090909091 > a ? 1 - (7.5625 * (a -= .8181818181818182) * a + .9375) : 1 - (7.5625 * (a -= .9545454545454546) * a + .984375) }; Nb.bounceOut = function (a) { return .36363636363636365 > a ? 7.5625 * a * a : .7272727272727273 > a ? 7.5625 * (a -= .5454545454545454) * a + .75 : .9090909090909091 > a ? 7.5625 * (a -= .8181818181818182) * a + .9375 : 7.5625 * (a -= .9545454545454546) * a + .984375 }; Nb.bounceInOut = function (a) { if (.5 > a) return a = 1 - 2 * a, .36363636363636365 > a ? .5 * (1 - 7.5625 * a * a) : .7272727272727273 > a ? .5 * (1 - (7.5625 * (a -= .5454545454545454) * a + .75)) : .9090909090909091 > a ? .5 * (1 - (7.5625 * (a -= .8181818181818182) * a + .9375)) : .5 * (1 - (7.5625 * (a -= .9545454545454546) * a + .984375)); a = 2 * a - 1; return .36363636363636365 > a ? 7.5625 * a * a * .5 + .5 : .7272727272727273 > a ? .5 * (7.5625 * (a -= .5454545454545454) * a + .75) + .5 : .9090909090909091 > a ? .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) + .5 : .5 * (7.5625 * (a -= .9545454545454546) * a + .984375) + .5 }; Nb.bounceOutIn = function (a) { if (.5 > a) return .36363636363636365 > (a *= 2) ? 3.78125 * a * a : .7272727272727273 > a ? .5 * (7.5625 * (a -= .5454545454545454) * a + .75) : .9090909090909091 > a ? .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) : .5 * (7.5625 * (a -= .9545454545454546) * a + .984375); a = 1 - (2 * a - 1); return .36363636363636365 > a ? .5 - 3.78125 * a * a + .5 : .7272727272727273 > a ? .5 - .5 * (7.5625 * (a -= .5454545454545454) * a + .75) + .5 : .9090909090909091 > a ? .5 - .5 * (7.5625 * (a -= .8181818181818182) * a + .9375) + .5 : .5 - .5 * (7.5625 * (a -= .9545454545454546) * a + .984375) + .5 }; Nb.backIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : a * a * (2.70158 * a - 1.70158) }; Nb.backOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : --a * a * (2.70158 * a + 1.70158) + 1 }; Nb.backInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? .5 * a * a * (3.5949095 * a - 2.5949095) : .5 * ((a -= 2) * a * (3.5949095 * a + 2.5949095) + 2) }; Nb.backOutIn = function (a) { if (0 == a) return 0; if (1 == a) return 1; if (.5 > a) return a = 2 * a - 1, .5 * (a * a * (2.70158 * a + 1.70158) + 1); a = 2 * a - 1; return .5 * a * a * (2.70158 * a - 1.70158) + .5 }; Nb.elasticIn = function (a) { return 0 == a ? 0 : 1 == a ? 1 : -(Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4)) }; Nb.elasticOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : Math.exp(-6.931471805599453 * a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) + 1 }; Nb.elasticInOut = function (a) { return 0 == a ? 0 : 1 == a ? 1 : 1 > (a *= 2) ? -.5 * Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) : Math.exp(-6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) * .5 + 1 }; Nb.elasticOutIn = function (a) { if (.5 > a) return 0 == (a *= 2) ? 0 : .5 * Math.exp(-6.931471805599453 * a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4) + .5; if (.5 == a) return .5; if (1 == a) return 1; a = 2 * a - 1; return -(.5 * Math.exp(6.931471805599453 * --a) * Math.sin(6.283185307179586 * (.001 * a - 7.5E-5) / 3E-4)) + .5 }; Nb.warpOut = function (a) { return 0 >= a ? 0 : 1 }; Nb.warpIn = function (a) { return 1 > a ? 0 : 1 }; Nb.warpInOut = function (a) { return .5 > a ? 0 : 1 }; Nb.warpOutIn = function (a) { return 0 >= a ? 0 : 1 > a ? .5 : 1 }; var Hc = function () { }; k["tweenxcore.FloatTools"] = Hc; Hc.__name__ = "tweenxcore.FloatTools"; Hc.revert = function (a) { return 1 - a }; Hc.clamp = function (a, b, c) { null == c && (c = 1); null == b && (b = 0); return a <= b ? b : c <= a ? c : a }; Hc.lerp = function (a, b, c) { return b * (1 - a) + c * a }; Hc.inverseLerp = function (a, b, c) { return (a - b) / (c - b) }; Hc.repeat = function (a, b, c) { null == c && (c = 1); null == b && (b = 0); a = (a - b) / (c - b); return a - Math.floor(a) }; Hc.shake = function (a, b, c) { null == b && (b = 0); null == c && (c = Math.random); c = c(); return b + (-a * (1 - c) + a * c) }; Hc.spread = function (a, b) { return -b * (1 - a) + b * a }; Hc.sinByRate = function (a) { return Math.sin(2 * a * Math.PI) }; Hc.cosByRate = function (a) { return Math.cos(2 * a * Math.PI) }; Hc.yoyo = function (a, b) { return b(2 * (.5 > a ? a : 1 - a)) }; Hc.zigzag = function (a, b) { return .5 > a ? b(2 * a) : 1 - b(2 * (a - .5)) }; Hc.mixEasing = function (a, b, c, d) { null == d && (d = .5); return b(a) * (1 - d) + c(a) * d }; Hc.crossfadeEasing = function (a, b, c, d, e, f) { null == f && (f = 1); null == e && (e = 0); d = d(a); e = e * (1 - d) + f * d; return b(a) * (1 - e) + c(a) * e }; Hc.connectEasing = function (a, b, c, d, e) { null == e && (e = .5); null == d && (d = .5); if (a < d) return a = b(a / d), 0 * (1 - a) + e * a; a = c((a - d) / (1 - d)); return e * (1 - a) + a }; Hc.oneTwoEasing = function (a, b, c, d) { null == d && (d = .5); return a < d ? b(a / d) : c((a - d) / (1 - d)) }; Hc.binarySearch = function (a, b, c) { null == c && (c = 0); var d = 0, e = a.length; if (0 == c) for (; ;) { c = ((e - d) / 2 | 0) + d; var f = a[c]; f <= b ? d = c + 1 : e = c; if (d == e) break } else for (; c = ((e - d) / 2 | 0) + d, f = a[c], f < b ? d = c + 1 : e = c, d != e;) ; return d }; Hc.polyline = function (a, b) { if (2 > b.length) throw I.thrown("points length must be more than 2"); var c = b.length - 1; a *= c; var d = 0; --c; null == c && (c = 1); null == d && (d = 0); c = Math.floor(a <= d ? d : c <= a ? c : a); a -= c; return b[c] * (1 - a) + b[c + 1] * a }; Hc.bezier2 = function (a, b, c, d) { return (b * (1 - a) + c * a) * (1 - a) + (c * (1 - a) + d * a) * a }; Hc.bezier3 = function (a, b, c, d, e) { var f = c * (1 - a) + d * a; return ((b * (1 - a) + c * a) * (1 - a) + f * a) * (1 - a) + (f * (1 - a) + (d * (1 - a) + e * a) * a) * a }; Hc.bezier = function (a, b) { if (2 > b.length) throw I.thrown("points length must be more than 2"); if (2 == b.length) return b[0] * (1 - a) + b[1] * a; if (3 == b.length) { var c = b[1]; return (b[0] * (1 - a) + c * a) * (1 - a) + (c * (1 - a) + b[2] * a) * a } return Hc._bezier(a, b) }; Hc._bezier = function (a, b) { if (4 == b.length) { var c = b[1], d = b[2], e = c * (1 - a) + d * a; return ((b[0] * (1 - a) + c * a) * (1 - a) + e * a) * (1 - a) + (e * (1 - a) + (d * (1 - a) + b[3] * a) * a) * a } c = []; d = 0; for (e = b.length - 1; d < e;) { var f = d++; c.push(b[f] * (1 - a) + b[f + 1] * a) } return Hc._bezier(a, c) }; Hc.uniformQuadraticBSpline = function (a, b) { if (2 > b.length) throw I.thrown("points length must be more than 2"); if (2 == b.length) return b[0] * (1 - a) + b[1] * a; var c = b.length - 2; a *= c; var d = 0; --c; null == c && (c = 1); null == d && (d = 0); c = Math.floor(a <= d ? d : c <= a ? c : a); a -= c; d = b[c]; var e = b[c + 1]; return a * a * (d / 2 - e + b[c + 2] / 2) + a * (-d + e) + d / 2 + e / 2 }; Hc.frameToSecond = function (a, b) { return a / b }; Hc.secondToFrame = function (a, b) { return a * b }; Hc.degreeToRate = function (a) { return a / 360 }; Hc.rateToDegree = function (a) { return 360 * a }; Hc.radianToRate = function (a) { return a / (2 * Math.PI) }; Hc.rateToRadian = function (a) { return 2 * a * Math.PI }; Hc.millisecondToBeat = function (a, b) { return a * b / 6E4 }; Hc.beatToMillisecond = function (a, b) { return 6E4 * a / b }; var ok = function () { }; k["tweenxcore.PointTools"] = ok; ok.__name__ = "tweenxcore.PointTools"; ok.polyline = function (a, b, c) { var d = [], e = []; for (c = H(c); c.hasNext();) { var f = c.next(); d.push(f.x); e.push(f.y) } if (2 > d.length) throw I.thrown("points length must be more than 2"); var h = d.length - 1; c = b * h; f = 0; --h; null == h && (h = 1); null == f && (f = 0); f = Math.floor(c <= f ? f : h <= c ? h : c); c -= f; d = d[f] * (1 - c) + d[f + 1] * c; a.x = d; if (2 > e.length) throw I.thrown("points length must be more than 2"); h = e.length - 1; c = b * h; f = 0; --h; null == h && (h = 1); null == f && (f = 0); f = Math.floor(c <= f ? f : h <= c ? h : c); c -= f; d = e[f] * (1 - c) + e[f + 1] * c; a.y = d }; ok.bezier2 = function (a, b, c, d, e) { e = d.x; a.x = (c.x * (1 - b) + e * b) * (1 - b) + (e * (1 - b) + c.x * b) * b; e = d.y; a.y = (c.y * (1 - b) + e * b) * (1 - b) + (e * (1 - b) + c.y * b) * b }; ok.bezier3 = function (a, b, c, d, e, f) { f = d.x; var g = e.x, h = f * (1 - b) + g * b; a.x = ((c.x * (1 - b) + f * b) * (1 - b) + h * b) * (1 - b) + (h * (1 - b) + (g * (1 - b) + c.x * b) * b) * b; f = d.y; g = e.y; h = f * (1 - b) + g * b; a.y = ((c.y * (1 - b) + f * b) * (1 - b) + h * b) * (1 - b) + (h * (1 - b) + (g * (1 - b) + c.y * b) * b) * b }; ok.bezier = function (a, b, c) { var d = [], e = []; for (c = H(c); c.hasNext();) { var f = c.next(); d.push(f.x); e.push(f.y) } if (2 > d.length) throw I.thrown("points length must be more than 2"); 2 == d.length ? d = d[0] * (1 - b) + d[1] * b : 3 == d.length ? (c = d[1], d = (d[0] * (1 - b) + c * b) * (1 - b) + (c * (1 - b) + d[2] * b) * b) : d = Hc._bezier(b, d); a.x = d; if (2 > e.length) throw I.thrown("points length must be more than 2"); 2 == e.length ? d = e[0] * (1 - b) + e[1] * b : 3 == e.length ? (c = e[1], d = (e[0] * (1 - b) + c * b) * (1 - b) + (c * (1 - b) + e[2] * b) * b) : d = Hc._bezier(b, e); a.y = d }; ok.uniformQuadraticBSpline = function (a, b, c) { for (var d = [], e = [], f = H(c); f.hasNext();) c = f.next(), d.push(c.x), e.push(c.y); if (2 > d.length) throw I.thrown("points length must be more than 2"); if (2 == d.length) d = d[0] * (1 - b) + d[1] * b; else { var h = d.length - 2; c = b * h; f = 0; --h; null == h && (h = 1); null == f && (f = 0); f = Math.floor(c <= f ? f : h <= c ? h : c); h = c - f; var l = d[f]; c = d[f + 1]; d = d[f + 2]; d = h * h * (l / 2 - c + d / 2) + h * (-l + c) + l / 2 + c / 2 } a.x = d; if (2 > e.length) throw I.thrown("points length must be more than 2"); 2 == e.length ? d = e[0] * (1 - b) + e[1] * b : (h = e.length - 2, c = b * h, f = 0, --h, null == h && (h = 1), null == f && (f = 0), f = Math.floor(c <= f ? f : h <= c ? h : c), h = c - f, l = e[f], c = e[f + 1], d = e[f + 2], d = h * h * (l / 2 - c + d / 2) + h * (-l + c) + l / 2 + c / 2); a.y = d }; var Yr = function () { }; k["tweenxcore.MatrixTools"] = Yr; Yr.__name__ = "tweenxcore.MatrixTools"; Yr.createSimilarityTransform = function (a, b, c, d, e) { d -= b; var f = e - c; e = Math.atan2(f, d); d = Math.sqrt(d * d + f * f); a.a = d * Math.cos(e); a.b = d * Math.sin(e); a.c = -d * Math.sin(e); a.d = d * Math.cos(e); a.tx = b; a.ty = c }; R.$haxeUID |= 0; "undefined" != typeof performance && "function" == typeof performance.now && (K.now = performance.now.bind(performance)); k.Math = Math; null == String.fromCodePoint && (String.fromCodePoint = function (a) { return 65536 > a ? String.fromCharCode(a) : String.fromCharCode((a >> 10) + 55232) + String.fromCharCode((a & 1023) + 56320) }); String.prototype.__class__ = k.String = String; String.__name__ = "String"; k.Array = Array; Array.__name__ = "Array"; Date.prototype.__class__ = k.Date = Date; Date.__name__ = "Date"; var Ia = {}, os = {}, Ka = Number, La = Boolean, jr = {}, fs = {}; Oc.count = 0; zh.content = [{ name: "config_game_config_json", data: "ewoJImFudGlhbGlhcyI6IGZhbHNlLAoJImJ1aWxkQ29uZmlnIjogeyJkZWJ1ZyI6dHJ1ZSwiZXh0cmEiOltdLCJwbGF0Zm9ybSI6Imh0bWw1In0sCgkiZGVidWdEcmF3IjogZmFsc2UsCgkiZGlzcG9zZUltYWdlcyI6IGZhbHNlLAoJImZvcmNlSGlSZXNBc3NldHMiOiB0cnVlLAoJImluaXRTY2VuZUlEIjogMTYsCgkia2V5cyI6IHsKCQkidXAiOiBbIlVQIl0sCgkJImRvd24iOiBbIkRPV04iXSwKCQkibGVmdCI6IFsiTEVGVCJdLAoJCSJyaWdodCI6IFsiUklHSFQiXSwKCQkiYWN0aW9uMSI6IFsiWiJdLAoJCSJhY3Rpb24yIjogWyJYIl0sCgkJImVudGVyIjogWyJFTlRFUiIsIlNQQUNFIl0sCgkJInIiOiBbIlIiXSwKCQkiZXNjIjogWyJFU0NBUEUiXSwKCQkiVyI6IFsiVyJdLAoJCSJBIjogWyJBIl0sCgkJIlMiOiBbIlMiXSwKCQkiRCI6IFsiRCJdLAoJCSJNIjogWyJNIl0KCQkKCX0sCgkicGl4ZWxzbmFwIjogZmFsc2UsCgkicGh5c2ljc01vZGUiOiAiTk9STUFMX1BIWVNJQ1MiLAoJInJlbGVhc2VNb2RlIjogdHJ1ZSwKCSJzaG93Q29uc29sZSI6IGZhbHNlLAoJInN0YWdlV2lkdGgiOiA0MzIsCgkic3RhZ2VIZWlnaHQiOiAyNDMsCgkidG9vbHNldEludGVyZmFjZUhvc3QiOiAibG9jYWxob3N0IiwKCSJ0b29sc2V0SW50ZXJmYWNlUG9ydCI6IC0xLAoJInByb2plY3ROYW1lIjogIkludG9fVGhlX1BpdF9FYXN5TW9kZSIsCgkidXNlR2NpTG9nZ2luZyI6IGZhbHNlLAoJCgkiY29uZmlnLW1vYmlsZSI6IHsKCQkiYWRQb3NpdGlvbkJvdHRvbSI6IHRydWUsCgkJImF1dG9yb3RhdGUiOiBmYWxzZSwKCQkiZ2FtZVNjYWxlIjogMSwKCQkibGFuZHNjYXBlIjogZmFsc2UsCgkJInRlc3RBZHMiOiBmYWxzZSwKCQkidG9vbHNldEludGVyZmFjZUhvc3QiOiAiMTkyLjE2OC4xLjEwMyIsCgoJCSJjb25maWctYW5kcm9pZCI6IHsKCQkJImRpc2FibGVCYWNrQnV0dG9uIjogZmFsc2UsCgkJCSJzY2FsZU1vZGUiOiAiTk9fU0NBTElORyIsCgkJCSJzY2FsZXMiOiBbIjF4IiwiMS41eCIsIjJ4IiwiM3giLCI0eCJdCgkJfSwKCQkKCQkiY29uZmlnLWlvcyI6IHsKCQkJInNjYWxlTW9kZSI6ICJOT19TQ0FMSU5HIiwKCQkJInNjYWxlcyI6IFsiMXgiLCIxLjV4IiwiMngiLCIzeCIsIjR4Il0KCQl9Cgl9LAoJCgkiY29uZmlnLWRlc2t0b3AiOiB7CgkJImdhbWVTY2FsZSI6IDEuMCwKCQkic2NhbGVNb2RlIjogIk5PX1NDQUxJTkciLAoJCSJzY2FsZXMiOiBbIjF4IiwiMS41eCIsIjJ4IiwiM3giLCI0eCJdLAoJCSJzdGFydEluRnVsbFNjcmVlbiI6IGZhbHNlCgl9LAoJCgkiY29uZmlnLXdlYiI6IHsKCQkiZ2FtZVNjYWxlIjogMi4wLAoJCSJzdGFydEluRnVsbFNjcmVlbiI6IGZhbHNlLAoJCSJzY2FsZXMiOiBbIjF4Il0sCgoJCSJjb25maWctZmxhc2giOiB7CgkJCSJzY2FsZU1vZGUiOiAiU0NBTEVfVE9fRklUX0xFVFRFUkJPWCIKCQl9LAoJCQoJCSJjb25maWctaHRtbDUiOiB7CgkJCSJ0b29sc2V0SW50ZXJmYWNlSG9zdCI6ICIxOTIuMTY4LjEuMTAzIgoJCX0KCX0KfQ" }, { name: "config_preloadpaths_txt", data: "YXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNTctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNTktMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3RpbGVzZXQtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNjEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNjMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNjUtMC5wbmcKYXNzZXRzL3NmeC9zb3VuZC0yNjYub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjY4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTE3LmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0xNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOS0yOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMjAuZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTIwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTI0LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjgtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0zNi0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTM4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDItMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00Mi0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQyLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDItMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00Mi00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTQ2LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNDYtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS00OC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU0LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTQtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NC01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU0LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTQtNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS01NC04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTU0LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTQtMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNTgtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02MC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC02NS5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtNjUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9iYWNrZ3JvdW5kLTY2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjgtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02OC00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTY4LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNjgtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS02OC03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTY4LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzAtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03MC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTcwLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzAtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03MC00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTcwLTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzAtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03MC03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTcwLTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzAtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03MC0xMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03MC0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0xOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03NC0yNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2JhY2tncm91bmQtNzUtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtNzYuZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTc2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTc4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtNzgtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS03OC0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTgyLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODYtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04Ni0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTg2LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODYtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04Ni00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTg2LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODYtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04Ni03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTg2LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODYtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04Ni0xMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04OC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTg4LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtODgtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS04OC00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkwLTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTAtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05MC03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTE2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTEyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTEzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTE0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTkyLTE1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk2LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTYtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05Ni03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk2LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTYtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS05OC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTk4LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtOTgtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDAtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDAtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDAtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDItMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDItMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDQtNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDYtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTA4LTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEwOC0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtMTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTA4LTE0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEwOC0xNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtMTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTA4LTE3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEwOC0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtMTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTA4LTIwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEwOC0yMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xMDgtMjIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9iYWNrZ3JvdW5kLTEwOS0wLnBuZwphc3NldHMvc2Z4L3NvdW5kLTExMC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMTIub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS8xMTMuU09VTkRfRVhUCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI5LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI5LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTI5LTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTEzMy0wLnBuZwphc3NldHMvc2Z4L3NvdW5kLTEzNC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMzUub2dnCmFzc2V0cy9zZngvc291bmQtMTM2Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTEzNy5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xMzgub2dnCmFzc2V0cy9zZngvc291bmQtMTM5Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTE0MC5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xNDEub2dnCmFzc2V0cy9zZngvc291bmQtMTQyLm9nZwphc3NldHMvc2Z4L3NvdW5kLTE0My5vZ2cKYXNzZXRzL3NmeC9zb3VuZC0xNDQub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTE0NS5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTQ1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE0Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE0Ny0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1MS0xNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTEtMTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUxLTEyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1MS0xMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTEtMTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUxLTE1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1My0xNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTMtMTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUzLTE4LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1My0xOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTMtMjAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUzLTIxLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1My0yMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTMtMjMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUzLTI0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1My0yNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xNTMtMTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTUzLTE1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1NS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1NS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1NS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1NS0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1NS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1Ny02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE1OS05LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvdGlsZXNldC0xNjAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYyLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTYyLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY0LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTY4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTE2OS5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTY5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE3MS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE3MS0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0xNzIuZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTE3Mi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMTczLmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0xNzMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc1LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc1LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc1LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc3LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc3LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTc3LTIucG5nCmFzc2V0cy9zZngvc291bmQtMTc4Lm9nZwphc3NldHMvc2Z4L3NvdW5kLTE3OS5vZ2cKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODMtMTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTgzLTExLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE4My0xMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODUtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODUtMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODktMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODktNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xODktNS5wbmcKYXNzZXRzL3NmeC9zb3VuZC0xOTAub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTkyLTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTkyLTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTkyLTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5Mi0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0xOTItMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMTkyLTEzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5NC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5Ni0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5Ni0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC0xLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC0yLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC04LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTE5OC05LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwMC05LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwMC0xMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDAtMTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAwLTEyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwMC0xMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDAtMTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjAyLTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTE3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwNC0xOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDQtMTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTIwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwNC0yMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDQtMjIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTIzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwNC0yNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDQtMjUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA0LTI2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwNC0yNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDQtMjgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA2LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTEzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0xNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTE2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0xNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMjEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTIyLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0yMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMjQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTI1LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0yNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMjcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTI4LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0yOS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMzAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTMxLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0zMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMDgtMzMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjA4LTM0LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIwOC0zNS5wbmcKYXNzZXRzL3NmeC9zb3VuZC0yMDkub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTMucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTQucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTYucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTcucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTkucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTEwLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxMS0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTEtMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTEzLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxMS0xNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTEtMTUucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTE2LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxMS0xNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMTEtMTgucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjExLTE5LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxMS0yMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMjEyLmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0yMTIucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjE2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTIxNy5mbnQKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMjE3LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxOS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxOS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxOS02LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIxOS03LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTIyMS0xMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjctMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktMS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktMi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktMy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktNC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktNS5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktNi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktNy5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMjktOC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMzEtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMzMtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yMzUtMC5wbmcKYXNzZXRzL3NmeC9zb3VuZC0yNDAub2dnCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQyLTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQyLTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ2LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ4LTAucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9zcHJpdGUtMjQ4LTEucG5nCmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9iYWNrZ3JvdW5kLTI0OS0wLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTI1MS0zLnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTI1MS00LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0Uvc3ByaXRlLTI1MS01LnBuZwphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0yNTIuZm50CmFzc2V0cy9ncmFwaGljcy9JTUdfQkFTRS9mb250LTI1Mi5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL3Nwcml0ZS0yNTQtMC5wbmcKYXNzZXRzL2dyYXBoaWNzL0lNR19CQVNFL2ZvbnQtMjU1LmZudAphc3NldHMvZ3JhcGhpY3MvSU1HX0JBU0UvZm9udC0yNTUucG5nCg" }, { name: "config_preloader_bg_txt", data: "aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQTJBQUFBSG1DQU1BQUFBaU9oMTZBQUFEQUZCTVZFVUFBQUJTYW5XUHBMR09vN0NEbWFYKwpONU1BQUFCUFpuTmxaV1dRcGJLTm9xK0xvSzJNb2E2S242eUJsNlFtSEIxNVBpYUlucXFFbXFlR25LaVJwck9IbmFsblptVUdCQWZwCmhUK0puNnQ4a1oyUW9xK0JscU1YRngzamdUMExDQXFEUkNsK1FDZlBwSTVKTml3ZEhpSnVUVk10SVNBUkVoWnBTMVoxT2lRVERRc2IKRXhBdEtUZENNU2s3TENkeE5pTWhHaW8xSlNMS240eDJTazJSVFN4MlB5M2NmVHlqckttS1NDb3hLaWllVlM3N2tTR1lVUzFPT1MxLwpsS0ZzWjJPa1dqSk5ZM0EvSFJOcVJWQ0VUMENVcWJiRG1vbDlUVVYzVUZPSW1hSlJaM1NzWFRKcU1oOUtZVzdNY2ppOWxZWi9TVFp2ClVscXFnWGQzVlZyVmVEcTNqNExFYmppOGFEVnpSamR4ZUgxbmFHbXpZelNLYTJ4c2IzRnZjM2R5YkdWS0pCZDhRekZwYTIyWnA2NDcKUEVWK2paV0VrNXVFWVdPTG9LK0lUVFltRkF0OFcxNTFpcGFZcmJxamVXK1hkWEdXYldoM2ZZSjZiVjk5aDQyVVZEbFVQaTlUS3htTQpuYWR1VGtSNGdvbGNSVEl5R3hDMGgzclZuNGMwTXpxdHJLSldabkNFVlZGdGdvNkhnWUZoWm1pc2lJQkdYV3J6aWl6djViQ05kWFplCmRJQkdSMHBhWld4ZE5CeG1lNGp4aWtKVWEzanIycUNFZVdpUm5KMlVvYWRRVUZLL2pIdXVhMFdSWVVQT21ZUmFWMW1RWWw2bWZWR2UKZjN1NlhDajdrVVNpWkVUSGtuL2JxNUZrU3pTUGtJMm9sblJnWG1CRk5qZGZKUlpiYm5rdkdUZXhiRmo3OXBPZG5aZGRQMGFxb1pWaApTVkdxVVNadlhXUHJmQ2VYUXlQTGFDeStja044ZEhVK0hrV1RmMmVKUGlMYmRTMVNQRDZIYlZmUGR6enAwRnFYaUlXWmluQzdxb2o5CithMzM3M24rL01yRXZhSGt0cG55N0wveDRXai8vL3g3Wkdxc2kxKzVuV3ltbFlySnM0YmV6cCsyYUQ1eVozQjBXVFRWd283R3JYSEoKbVV0bWFIeXpoVXJrem8yWGRVN2F3RjRtVDJ0TElGai8vdVZXSzBoa09Tc1dMRHZldFZCZ0syZk5xbGtoUUZYTFZpQzlrRkJPV1dHKwpmR2ZVdkg1L283YlRwVXNwWW9KM2xxNStTU09hdjlLNTF0eUdqckJhYWF5SXA4bUNSMldRdkx3NWxNSnpOWU1xZDUvVTdmSmppSnRRClNJSFJmRTJkUUk1Z3E4T3NkTWdxQUFBQUFuUlNUbE1BRUdzazNWd0FBSUFBU1VSQlZIaGU3RjBKWUJUbDJYNW5kblpucjJ4dWNoQUMKNUlBRVFnZzNoSnNRUU1CU2cyakZHMjJ0MXRhL2h5MjJ0TlJXcTlhcnJiVnF2YTNpQ2RSV0JZRWdSN2lQUUVJdVFnNGdDYm1QdldldgorYi8zbTcyeUJBZ1ViTjNzayt3eHM3T2JuZXc4Kzd6djg3M2ZPNHdTUWdnaGhHc0ZObkJGQ0NHRWNQVVFJbGdJSVZ4RGhBZ1dRZ2pYCkVDR0NoUkRDTlVTSVlDR0VjQTBSSWxnSUlWeERoQWdXUWdqWEVDR0NoUkRDTlVTSVlDR0VjQTBSSWxnSUlWeERoQWdXUWdqWEVDR0MKaFJEQ05VU0lZQ0dFY0EwUklsZ0lJVnhEaEFnV1FnalhFQ0dDaFJEQ05VU0lZQ0dFY0EwUklsZ0lJVnhEaEFnV1FnalhFRnpnaWhDKwpHVmdEbm00cVJuTFJndlV4LzBkRCtGOUJpR0RmUUt4UkdzRnhFQW9oRDJBQjdOd0w4TlNXd2tlMGF3SzNDK0cvRHliVVZlcWJoaldPCmc0UmFoWUdyQVI0UHFkai9Ia0lFKzRhQjB1c0N5THZ6enNCVklmeVhFU0xZTnd1ckwwd3Z4RHNoaHYyUFFSWkt3cjVCV0pNTDd3U3UKODBmdTRFR2xnZXRDK0s4aXBHQ1hnd0xPVHE2NWp3UFhmMDFZbzkxeVVmMGl5SXZZRUxncWhQOG1RZ0xXYitnV0RlNkkvQ3U1bzd4ZAoyS3dQZlBScndCckhMd0pYblFmTG5GRWhwK04vQ1NHQzlSTUZZdGkvV3hpUjE1aWdhK005M3hhMVBlc0NON25HS0hBOEVianFmT3hkClpndGNGY0ovRTZFUXNWOG9FTHNQZGZLZUpRR2lUTnlNSk92WEd5cSsvZkxld0ZWOUlXVFcvMDhoWkhMMEJ5dlV1ZzEyMzMrS0k2bVkKcGV0WTdKSWhGWDRiWFdNODlzT3pnYXY2eEJUMTlzQlZJZnozRUZLd1M2Tmc2R3RZamhRSWpVbjRjZHRIZ1d1dkZkWm9MNTJBVWVUTgo2MHZDVmpBZ092MzhqeFdNUGI0WnVDLy9HN25rZ0VKSXdDNkptMklQaTRIckVDYU43Vyt5bTc0bWhoVW9QdzFjZFFFVUxqanZPMU9YCnAyMDR2S3BreU8weDFnNTh2eXN0aWVYWjczWnF6TE9YQ1YvVCt4K3dDQ25ZcGJCaW85bWJmQVZDWXhGV2ZqMUg2SnJDZmlWZ0ZJOEgKRkNXdWxFVTlyYlR5R3VpTTRyT1RyUEs0amczUUZXa2lqOWpnWit6ei9wdXVVWmFQNmtzQVE3aFNoQlRzRXZqeHk2NG9QQmI3aEVuagoyclRpYTdFNmxLckFOUmVHWHp5ckl5SGd5c2lYUkY3a29ST2dDN3FZV2ZDMkFrQkI5MGtodkJENVl4L0QxamdjMnhkc3Nhem1RaFM3CmFnZ1I3S0xRL2ZEbGlZVjlCb2dTVE5DcFd2azErUFZydGhmbUZVS3VaM0V2NU1HRmg1ejlQbE5Nc1NKZmxuYUFGeGllRmNVdmVZWDMKWVp1YTZYN2FvOEZySEw4bjErUmxWWmJIUW9YNVZ3c2hGN0UzMXN3aTJPVmR2T245YzAwWC93ODU2a2ZWQzRFcnJ6cnVPWjdPcHFiTwpibFZJU0wydGtZMDdtMWNYdUprRVI0UC8wb29Qc2ZvRTRXVGtBS3hENW50TUlXZmxNRTU2L3dXNVAzV3ZyUnVTbCtYN0Y0VHdIK0hpClI4L0F3aHBRR2gxUFBBS3dtZ01hSkJVTS9mVWJGOHkvM09CTkcvTTM5bDVGdnY2dmRvejFyZ3ljZHpZYUo3VnVnQUtBUVZxSDA2SmQKdSsvOFNTdDVRRFhJRDdwQkJWNkY1WUYxZ1o4ZTJ3YlpRTlJWTGNVTjFxVGY0VjIvZDFrb003OWFDSmtjYnVBa3hnaDNxVjllNFNPWQpocXhVYit3TTJLb1BDSGxjakY4YVZqQ2V2RTYzOXVoVkxRbGNvM1U5STFqVTR5QURseW9CaWlMUzV5dC92WGJmRmpmRjNEY0w4TW80CiswblA4d2gwZHg4dGN0KzFxUmpPNGJSNnZ6STBabzBUR0RGcndrdGtYN043alFJOFBpUlVsbjkxRUZJd2lqWEs3WDdmL0lYd1JPNXEKN1ZHdVNoQXVKV0JFRmdyNTI0SEtGdXJXbXZTMzZldjgvaXFXQks1SStwdCsydWlNU2lnRzVJb0dZTnlNREdoN1grTndydDFLcVlYQwpCUXVtN2R2eUZNQVc3VTcvSnk5NnhwZHlpV0ZXVHVTOSsyUWllZ1k5NGFjbWtmc0xmZnFGMkRtaDEySUlWNHlRZ2lIT244V1lKNE9oCnIyc3VhQi8yZ2dZV1p4dmhJRXdHTFJoeEFqOUE3akpIZjMyQ044Qm9OMWNsYm9VT0Z4WmhxY2txTXdubWdJM09oNmFSNnNqTmZOUlIKUXE0aUFWZDZRQlkwNHpMZzNWOWI5em5kNGpXdGFIN3R5eXJRMm01SlB1WW5uejkrNTV6bmVUWTF4emxzRnJ5THF6U2Q0UXk2SVBFMwp2M2orTkRNcTRTSDg1d2dSak1yWGVibU1KYitKZWI5Ly9BSzRkLzFJVUJWaW9PWXo5eTU5aEw1aDdDRzhhaFBDVE5hdXdNZThTRkNxCnZ0VTA4dlozenF6dkRueEk0SW1PclIrWi95aCtIVXdybXZwQ1RnWkdqNUR4Zm9HQjhWTHNwblBGbnQyd3FaVXUxc3hZZUFGRXdqQk4KVjVRVFhVYjFkOCtOWXZjWjkvWks2SjR5WHVydGg5QXZoQWhHNU91OEtuWENMMlZkWmVHbDQwTUpNeURmOFdqQXVvc1M3STJ1NHNSMQpBbnNSWWdVaVFYNGZ3Lzd6aUt2WFNxVFkyOExhSXBpeGI5SlRxNkJTb3BKbUhNQXdwOGZaV0xFSmZBUlRBTXZwR1JmckVrUmUwNmxSCjlCREJOT3ZVaXhYSk8yYUFONkZENU0zcnJ3S0hjRkVNZUlLdGNVU2NWK1NYVjdpVzI1cnhZbi81aFJJMndSaFlhZkhydmduMkYzdHgKV1p1aTQzeHFSWUpTQXd3QWV1eHhHb2tWTFhEclR0RjB6ck9GNHU2NG1HM3YrcDVDb0xsbFk3cDIycVBSeThGZmJ6V20yeDBlaHMwOQo1SGtBaDhGQVpoVkJaTUFGTENQWFkwQnExakcycVhENDF1Uk4rZjRVZXdSQUc2cnArTTh4MEFsVzBCMFlIU0xXcW45NXo0ditPYzhsCk1LUG8wVUFKZTJwMTcyWEVYM29NNjg3alZxUlNDdzF4R3Fkb2hzU3BBUExlanhMWU4yaGt0VWxHU2U2SWtzblcrSTk4YTI0UkV4OTEKM2g4b3Q4S1B6MkdVdUFhVVZjclhRY0NRVUZETEdiMk9VUmpRcVdlMU5wSEVoNVJnZkk4MUx3UGVWLzdra2JYN3R2aS95RVZWT0lSKwpZYUM3aU10NnUyY1VlVE8ySHIvbnRiNzUxYmZ2VVh5dk5lQWZtZXZvdlV6SjliaEhpeVFrYUppR09LVm9qb0xGdnBYdVVXRzUzY3UwCjdHeHlWUUc3dXptYjJIRU9mcFh3Nk9uWFBZOEJkRllXL3pKNitmdSt5V29TK0plVzQ4akQzc0sxUTlvRXBSSkVnVmN6bkJOQUpBckcKa3MvZGh1RWhJTDlrQnBFdktpVFI1aWFuY3N2YXJYNUsvTVFqYXlTR0ZTaXBIcTYwREFOck15Zi9Ha3BYZ2dZRFhNRldabjhhR05xaApJZGZFbkhmRVhoejNIcGRCcnhmcWJSSThXN3hEY2NwdkdTS2pHVHVoVmlKZGFDSVhlbStxNTJFNUlMOThISU5NOTIzRnBzNXpNUHplClI1M2VSMENJR2dkZUg4T0hlN2xvV2grOHdMbmwvamNVU2lOb3dVRkhtVVdrdnRJbDB2aVFCb2dtdXF1WTBGVlcvR2ozTkQrS25kNUoKaDhOdTRrSG5hdjk0SmZjK2I0cnFmckJrU0hUTFo2RjVMdjNEd0M2VldoTzJxNCthb051VTNaWGxsOFV2VUI5OG9MSEd0NWo3L2NPdgplTzYvTVN2bjVQWURQZDRoNjhqSVdDRXBnckVrZE5yQlFBRnVma0ZERXIyUnUyU1VXNzZhcGt5b2FHK1BKWGRlRExmR2RqTE5TY2hKCk56aDdjbkhuK1ovaStJODNEOEVabWpWMzNQdUV3czZDd3VVZzdHSXdabEVyRkRaR1Q2TlJ3aStGUmZvN0hGU1hKTTg4bUJxWHpOTTkKeWF1RDNDK2k2ZVROa1RIdmxPeHVYYVg2VU8yMFc2d3ExNFpEVGVPV0RDdjMvYkVRTG9pQlRiQlorOC9Qd1BMdVNIMWt6SWVYeHk5SQpIakpzc04vNDdsMi85VXgxZmpibjZlM2JURmIzRXBKckJDdVRpM2E3MmlxM2c5cFRKaGhHTGxPVEtMOEl2U1IrVVdTMms1L1lpbGdDCmdKSy9DMEtzb2NmcVdsSGtlUnh4eG0reXRSZmpTMzRuVVg2bnFmTE9ZeW9BbDRqMGtnSER1bHcya0NrRXNOdnRtSkpaUE0rbUZJdDkKZFhiOWJUdno2bktWcWFtenEzNzNKM3lnSW4xTXFkMTBvQUtNTm8yZE8zTkdCaE5jNnl0dXl3cTFpTHMwK3Zob2doQllaZGpYR1JLVQpDODRqV0o1czZ6TzN2bmFaL0FMSTRQeVNyanlNdXd0a2NOMzJIWC8wcFYyUkVVNVdLY2EwVW1zQlI1UFZaclAwU0svNEVNbmw0VmRtClJVVW1ob2MwUWl3cGFvT2sxaG1iMDA2eEk5MlBYeGdDZEcyUmxDblB1WGFmcml2Q0FZd0xpM3Baam43azFPL1hNYXhWOEovdHhrTmgKOFMyYnl2TFd3b3g5eG1VMjd2cWRLK2ljNTg4V2FjbGIxZXZVMWs1cDdrNGhMMFM5KzZNYkFvb3dRemdmQXlFSEk4aytMVlRJZzhrQgp6dk5qWEtCRkw0MHdYMTRDQnRUTE8rMDE0UElza01BTmJwKy9kYmUzM0QxU3FXd2VaU1Nra3NnRlpqWHlTM3BNQ2cvZC9QSkx1eXJJCkQ3bWxWNVJlYlVQRHA4TCtxZHZLNE14dzcyWVhBSnFMVzNId094Y2dmOThSbTBVSGVyZjV5TEFjSzVYOE1xeFp4TkpFSko1dmoyZGsKclB2RnIzOS81bVVGZWF1bUgzVktyWDF1cXFlWldiak42V2RoenNucE5Wc3poRDRRL0NIaW1nVzc2dDZoUjNwZFhkSENvYjBtWXN4agp0L2t0QVk2QXJlSU90bDltQWthZ0dMTWhNYzdkbENaUE5udWtnWHZrRCtzUHVJc3ZJcFBrcGhSbmVMZGRUZ0JtVEgzVVpyWGRIUjVLCjhpVmxYK2h1U0xxVDJSN2JIa3RDUXdCTXZhQmsvWkhUc1VQbk5EUTBFQkZ6R2Ztdkx2V3gyY2R2bUp5YVBHY09id000Ti93NEdFMG0KR2JBTVFtUmNMS1BuUWMvTHVCNzYrVHVCWVp3T3owdWVxUnIvbW5iZm1FbnFoSVNFNUk5clppZGpzbFgyclhxVUxrSE5Pd1J2Ym5pUwpuNENsSXlGY0JFR3ZZSUYxR3IzR2RoNzdsZTgrUmQ2TW91SWJYd3RZMlE5b2Jsay8wbU1qTG9CSnJabFB0cmdmU1ZDYTlhTk12ZVpzCm10VlV3U1JJL05wUEJjem5ISHBjUXdtL0hkVEc4aEhleGZxV3VPR0gvQjd1RXhyNFRqSndKREJ1TFRtU0MwVkVwUmplZDdwRlVkbWoKWTF3MnExUUlMREJFd09oWW1Sc3pNaW85dFkrMmVlUGJxQzEvUXlQdUgzbmZrU1pmUVg3VXdwQmxmM0VFdTRLdDJSdlF6SjJmNTZkaAo4d0k2bk9WWlVyblI3M3VjaDh1QVlreEZERkFGeTBzM3JqSi84b0hrbTBjbThEM0pzbkMvWHFDb1gzS3ozQzFmaVdHU3V3RW9ZR2dlCnlsQWRNdHN6QWJWTFFzbmIyMEVqeHZpK0NLZldkSnVlK0tkMzhRS3dUK21vWFc5VUgvMVVualZ1YXcyMm1uTTRPVkZrcEVkRmw0cVYKK0NVNFhVNjFYQ1lRRmZNVHNYMTFuSlNyZ2F4Nm5Qb3czcW1jM0c0aUFhNWNidEN4VnJlSTJlUXpCbitObmV1K2lRaHlmb0VqME1VbwpMSHdIVHc0cDlhMEk3TVpXdUZiSlZGNTJBa1pSY0pxK1dKNWxzZUhuYm1NalFla1VJeU42L3cxSnZId0ptRC9rVWdhR3FaZVVlSDIrCnBPTERRUjJnTkhFUjBDU2xhZ2hsd3JtdDNvVUxva2d6Ymh4VUZrT3haNUNNQnlzcUZWVXgxaVd3WUVWZFpWUXFIRlRqYlNMUk9POU0KbGw3R2h4RTdld0JzdkdtYmtZZ3ZxTHQwZzNwRU91S3U2RFQzMHVZUXprT1FoNGhyOWdZU0RITDM1aTJBWCtUMWVRNjd0WThxN3JxTQpFa1FmTkxmRWNsZ3JsZmZHRElOVUNrVkNRMVcwRkJxU3JDY2dSSlRZMWN2ZDhOUnVTTTRHUmNYdUhrMUh0TkdjU0VlaXZReWJ1dGxXCk56enVrakVpRGgzamI2ODFnQlNqc0VyendraFNaZGVSVzcwNTNHckY5OGw3K2grNHQ5TjA2VFR6UG9JQ3BWMysyZEs0ZjBqankrWkkKcTBqZFJ5SGhrWis1dHcraFR3UjVpSmg3L3RsK3prTGR0bTFRQi9nYmdOelVFZVBlNzEydzNrOU1pWWx6Y0hXd3R1akZSaHp6aW96VQpLSmg0a1lhRzdxRE1BN1BjN0M2SDZ1MXV1TWUrZlB3cWVidGFBSnN0dkJOd0pCb01aUE1tRENnaDZaU05QUmNRSXdwOWZZemNlUUVLCng4a2NEb2VUWEJ5ODlKaExyWmNqMDNpdHZDY0taRTdHd1NoSmRNZzVHYWZUNFhRNlhhQnh5cWNjZ2pHSzVzaEpYY2FaOW1aOGx0emcKQ0NOS3lNamtsc1BYbC9YK0d5SDBRbDhmVFBEZ3NjdmJ2WHl1Q3E0c1FJVDNmdzZ5dGRhM0tXa2pvdzF5VmlrYUpXNkpmZ3FHN21HdgpzYS85MGdMS0YvS0xqbnNSVk5nM2E3RmxGVWgxVkxoNUUxRXdTY1AybTBuWWNVWmE3VUhnbS9ZcUY5N1IrTzlUd0pZOHF3WlVNSUo0CjZJcGtMWXhLSkFFazYrNFNKeW9Na2MxWXJpbCswVWxlNmpZWVdVczFUQTFkT3NaRkltMlpiZDNERFY5TDQ3cHZLSUk2UkF4MEVDK08KUEpseDkvMVg0Q0FpWmh6THlwZS9Rbzk2UWk4KzFvUlRRc2hoU2JqbDMyVkdHbDRHYjNRb21ZZCtsYjEwNE11K21kR1lSRFBtYTcxeQpOVytVMk1MVWphcTIrSEVGYWRRckdxUXJBc25rZzhCNExFT2J6cEE3RXFxZ1ZsbzA4d1pndEE0WHNBNXlZRmc1cHdOMGV1MmR6d1BjCnNJM2tiQzVaT0FrbXBhRThNT3VBWVIwT2VBQnM3NFVxRXkrRTRDWllmL3U1UzFqcmFPdjNKT2Jld0dGZDY5dm44RzRhcFpjUHlMQmUKRW9ZM3ZjZVc3WjcwQ3pEdjZnWXZKMzFtUG1XWE53dHpOTFFNbi9XNlQ0MEVldGZITVBlOTNqZTk0Q1dmb0FtZnFRSjdqSDJEWk9FMwpoN3VVRGlkMkV0Q1I5NnlQeDNXbVJWaXhjZis3THBmRHlhaTdQSVBsRXNWY05vdFNWUkRxd0gwaFhGNE05UTNEWlgxNTVNMVEvL1NCCksrUVh2UC9pcjZoOEpiaHNLdCtNRmplNUNGOGt4dUFBR041SzRhRm5LN3ZrSG1aU2RuRW1wZWlSUFA5eUR4SXFrbURSUXpFK3N1NGUKSExyeTBDU1FRcjJvNWV0eTQ0TjNEZThhQXppVXRmSm1ZOVV4RWl2R04rc0VCdlNFUXFoZGxGOHBQSTBYWDdxaCs2RFM2cktFTVhvVQpWNFNhU0pqQ1R2YXhmdnpYMWFQL0d3ZnYwR05RNHJ3K0ZoZUJEUDc0d1B0WDFFSlUweW1jK0RueUszSzRYQldyOUUwbFlmQ1hvVVcyCkZKNXZmZ3AzK2tYWVpTZnN5b1NLdi85eGs1Rno4c0I0TncrSUVMM0taeUpmSFhjZ3ZYcnh5MGVqQzlDdUwyakU3T2dWNUhiZFM4N0IKV0c4SWFyMitCL2tGV0h0SXIydVBwTkRGalRFRm9GQ0lEbEhuZlZ1T0h0QmJlREFWdlZ0NGs3UW1oQUFFdFlzNGIydi9UcWxGY1J0bgp1SUlhS1VBak8vNkd1M0MwSzRIbFlrVENGbzBkZnlWUUJYTXpCZzFFd05GbDhKYk9BN2pra05WdS83U3c5cmhKNlJRcEdUMmp3V0R2Ck5WcUdQaUpGVW8xZDBkMVJERTZuOU9FSlhLQ0o2RjUwcnovdllUL1loZUtLc1NQUkNDeXR2R0cyc1N1bFdXNVhTeG1oemkyRHJydnIKcE1IazhyUjV3MHBaaGNqeFJqVU9tT1BURlNKRDl0Vm1aOGNjcHl0Q0NFQndFK3p0d0RVWFJGNTY1WnZYL2ZPSy9obW10ZVZZR3hLWgp3Q1FndmNoUnA3RjdLWWJzOGlSZ2xGOXVldTEzVC8yU3ljRCtVbjI5alFXRlRKUkpHM3BIemVSbXRkMDdvNFZrWWRTbFI1L2V3WFpiCjJvQjNFOHpKY1gzNzlPRGRJR0M5SHpoQmR2TE05MU53NWtucC91a1pCMGJWcW5XU2poTis2UVZCQUZtTzBWMnRVYkYveEh6RktZV0wKNFkwNDF3VXJ1d1NOMHhCdVVvR2plbW1vTExFdkJEZkIrbjJ1eDd6QzIwYW5WVlpmL2o5RG8zQTg5dlpwUVBtS0k4bVhSbUhYS0JRbQpldkdKbUZ2Q3pFZ1dhU2lMMm9lRVhmYTlKYldscklPV0JMS3NKN2owS3A1M3pBeGhJTStsSENNRXM1bzBySVdqeEJHY2ZReDR1ZEVQCmdvSE1Dc0x4MFJsME5Lc3NiV2lpdXBubmVRRjBoRnNDb1pwWks1U05uWmN3cG9HeXJuei91SXk4NGJVS0dZNUgyN0hnUzlDR216azIKakRmbGo1ZytJalJCN0R3RXRZdjQySG45RGkrRVBObVdLNnZoMEpqZnBKVlJhWTJqVE9oMm1EUW1qVlZKYjB4ZXQ4TmpDdUlWeG5sdQpmMk4vTjRkYmFLUWx3Z01aVUlyNXJIMi9jVE9FSjBac2F0ZEpOaUkxT3J5R1lCOXZ2NjkxNTBFZ2hQNFoyeUtWN2E1STZ2aUNKRi9vCnU1dEJ4N2pzRmdWNUZXN0drTEFtVGhydktwQXgvSnZoUGQ2bms0MEFsRWFuRUorZDhiV2ZHZjUvSGlHQ1VlVG1YNWxGcitsYVIvazEKSE9jaElyMXdKYmttSExNcVBReHpXNGp1cHlRaXYvWTNxVGxwSU5sTEx5Ky92SVRzWmRQVFVURHZRSmpGcHJ6bnR5QVJERjFDU3FRKwpCcjc2UlRDRXB2TmVnelI5VXBjWGpWVWloR0htU0pOSXZ6TElZaFFJNWg4Nm1qd05UVmNrL2QyRlhRY2toTE1PcFI0cmgyVS9PQk9hCmc5a2JRVTJ3L2c4MHIxWC85SUVyR0dQV2REN3paK1JYWEpJSm1XS1NGQXpwSldrWTNjZ2pTRWdYSkFqaGxxbUZQRWQ2QmZKRWlaYkkKTUUrTTZCazM2eld4QmFpRVVZNjF1QXp3aTRkRnQxTlBMMzZtL1pWQmM0K2pTOUtmbFhGN3BISG5abDdsN1ZxS1h5YWk2bGFOUjZNSwpocjVscEYyNENYUXloOUlnell5V2ZUYzA2TndMUVoyRDdackIwOXFsU3lJMzlmVGtLNW1sWXIvdkxhek5TMFBmMEtTZy9BSVhCNXhKCkFRcGttQjBUTVlsZlpqdEpwOVNDbzZzMlNuU2VpOU5xOGZuVURRRnBVaFpKd3B4QWJRNnZpd2h5OEUvQ0NMK2E2UHdXVUpyWnR2bGIKQ1NXZDBvVVRTSjVGY3pFdituWTlMZ0w3Z1pvTWFpZEM2ZjdKbzArbG5PWkJhK2M2d3hXZU4yQ1hjZUxoNDAxM0psZXNXVERQTXRzMQpiNzhsU21vMndyTXVxNFduZG1iTW1FR2grU3YrQ081eE1PM2t3RFdBblFOODEyN2twNzVlZVFVQklpaWpjRjVsT29kS1JLVkxJNDF1Cmszdms0cGVGbWMxcWpVN1c3bkxhNU5CZ3QwdnFSYXNOTlNhVFd5VUl2YVFZMGV2clV3bnpESjZoZXZuTldZbWt0SFdQaExrMXpDL2UKOUZYRjkxcDdVWFJ1YVB0eEFiMjMwWG56cVJ4QXB6N1M3UGQwUVZDb212NmhMUzc4Zkx2cVYwZXNmNDJ6cUVCSElKTjZmSkJjanJtago2NnFldCttYmo2QldNTWgxRlFXdWdnWFQ1L0NwcWJjbDIzMWpaTG1wWlJNdU5JUFJhd2FlRDQycGRqbTVTZU5BZytxbE1DazRzS0o2CldhbUlXVG5KU2hRWmhuTzBoWWxPbWE1QnIzSkoya1dmajJhK1hhTndTeGhMWWtRcE12VHpIY0hUV1FCcjZoUERtc0tvaitneW0ySEcKRnBEa2k1Q0ppQmYrY243dlZZUG5hcEhzd3d2dlFRQ01EVmt5dDRnTm1iTGJrTm1sNStVOW90eXJZVTV3dWpoajVLYlo5WFBmekJQZgp6Tzc1L2c1V3pvaEtscldDVE9BNEIrZk1pRTBNS1pnL2dwdGdzM1FCUFRkZ3dXMXZ6RmZFeWtlb2gvNWxMVDlNQ2lEejVuSUgyeTlrCjBWL2s2TFRmK1dpM3BGODBPbFFvQUNsR2lJWHNVaE9PMlVHaE1EVDJlTG5sMHBvb3RDMlVaSFpweUl3UVUzbzlrb01odzZ5Y0wwUTAKeTMwRFlZa0dneUZSc3ZsZFhVNWwxazV2eVFjR2lqelgyOURBWjExd2ZPd0M0R0JmMmZ6eEoxSDdLZzR2bmY5aE5rbi90SGF3ZUw1awo2Q3hucmpwRmZTNTcrcHNwZFRzekUvSjMybVFPcTkwR0lpdXpPWGlRbFhDRFJwYjNldEVCanVBT0VaWDRMZStIM0xWR0pmL0h1amFtCmJkTVBlS1Z4QmcwVTh5ejcvcFJSZlBrR2djYVdRd2lhSnBQaVEvUVFRWU01aVpKRWlpWnl6RnV0cDUzNkhtNXdVa01EalFwYkNDQU8KZjFyY0lTSkdrWGpsZmtFWmVGd09iM1dWMnE5WXFnbWRSTy84RlFKdjBTS0pGS00wd1BjVkNsN21idkh3OUZ2TFZ0QzdINS8rWVFhYQppVHFuMnR6cmxmbWl5ckdQY21zdGVlRGNhbjFVcHRmU1kwaGtWV3JHQnJCbjQvcjcvYmNlNkFodUJadDh5cjlXS2k4aG4zc3pMVWZlCjNyNVZEZ256dS9kOEovdk52RHBJbVR2YzBGNSsrZjhIKzlUUFRCQVo2V0lBaDVWUndZaDJFZjJ4Y2oyV3hoNWVjTEFhRmhvTkJwV1cKWkZrbVV4ejl3WVRMRk5kaWNrc1ltaU1lQ1hPeVRoWXA0K0I4TGdlWWZlMUpFdzFnU0pSY0RwZmVxWTAvekhna2pCZmtMcWRDS2RkNworejFkT1RqK1NNdkNKa25FUm1hNHpIcWVsNHRXc1Zla1hGMXo2NU1MaGxlZHJUdHJINXAvdkZYbG90VW5PdDdCc1lKTU1mblQrMmdUCmp4QVFRVTJ3TmE3My9aYnlaTE1kWDExWCtjL3F1aWI3bWVxNkd2bk0zK1ROZXBNSVdPdkdXVnN2Zng2enh2akF2d0c3MVRDWUp5SEYKZ091d1dCcDRoOEJhb25YQU5CcU1lcFVKQ0xrZ2p2eTJJTFhvUFpQVzVQYm9NVUwweThHa1VnNEg1MmR5MERoU3VtL0FJRkdxbDNMcAoyL2x5QjUxNGpDUlRoTXRrSmh2Ym93TGJSU2hHT05LZmdORU8zZlUzU21GZVdWYW1zVmtRU0NKR3BObVBZcHo5NkgydnpCeE9zbGpDCnNPbkZGcUt6TnBGMU9jSkdkZDVlNmp6ajBvNExsVTE1RU5RRVcxRGs1OUxuV1dZNzJtSmVPNE9aQ2FZVDlqTkg3MzFsNXF5ZGRhdXUKVE1BVTFtVmZrc2hJWmVOWmk4TmhjZFMzQ1NCaldaa2NHS2JWWUZEaitKaG5GQW1seTYxZ2tvaEpXVmh2QlNNU1Jxc1JIWnpQUnJSRApZaGp0R0VCaG9MUENDTVBhRk4xRG0wVWNSMGFPaFhNaVJvbEduUU00bTdjejFIbXdveWR5d1VmOXdLbjJUa21oSWxhNmYvSTVKYS9uCnRWWUY2TVA5UmV6b25VOHNHTDR6ajJqWThKbkZKcm5vRUVXTmM2RjJPbDhqVG0rcG4wOTdLWVlBd1U2d3YvdnU1eFd1VWpaV2Z1aS8KdTBMSm5YL2ZzaUNPQ05pVlZQa3FtSmpqSk5IcTdHNXpZTm1ld0drRmx4eTVwVDZIUTYzK3JqK1N5cTFnVk1SUXc5empZQ1I5VXhBRgpsSW9ScGF6S255TDJ4S2xKUFNoZDdtV0ROT3ZTeEhSZlZ3SlNrU0VYN1pKaVJVRlFPMEhodUtDR0VRbmluUDJpbU4xWmRuS0ZKR0tWClM5bkc3Tk1rVE95T01tdThkaUxCMGUvLythN3NONEZvMlBEWlg3bFlsUUIyUmZvbmg2dnk1ejc3WFBqeGxCREIzQWhtZ3ExUitIbUkKS1hlb2Z6WCtvMTQ1UHlmVTNESitWT3J3WGZJTFdZZ1hnNTFkdmgwZ2NraDBsQnFoVVZ0TlZvTmUzNXRhRW5BTlhVc0RSSGNhSmttWQpBc25WWUlxazJ6bGxtSVE1ZUs5NUFiRk5qZHZrWERPb1k2bVFlV0pFcGFYN3JrS3lGY2VLQWcrc05LR1RGMVFPRnVTQzR3SWNrbnhGCnp1M2RYeFFjcUk5T1NLRnhYbm51dkxNa0VRT3RXV0VUL0NsV2Rmc1Q4NmZ2UklZMTNiUmJCazRSN00zM3BSd3UyLzlzd2ZDaDY3MmIKRFhRRU04RnlkL2tpeER4Wnd5ZTN2aFp3N0hIR3lXOHh5WCs1NlhMUHBTS0JmZjE1b21EUjluTUdEQWoxK290UDFrVGRRdm1pSFg4eApWS1FNbzVWU2lxNVkrZ2FjTXRyNDNhRVFhVUc5V1E1Y3BUbHM1WU8yY1M3RFNUN1dJTVdJWUFnRGc4RlV3ZHF3TzQzQUsyU2Uya1dCCmQ1S255VWlnNkJrQjZ3VkJraS91WXRQRHZMQkR6ZGw3MHJFNnZyeDg3R2kwaW5pTEpicEQ1V09ZdldybGp2Y1cxQUNNWU4rSzZsUngKVHJEYUQrWXMyWTNQQ0EyRmVSSE1CRnZrVjExWWQ5dndUZXF6am9DWkcxelY3V04zblpIN25PL0xnTVlXZThSS2pyc09YRGhmdFFMaApydGZBS3lsaXBENEg1bUFhNk5MUUNTc3MwQ1NNRW94UTdGeFBHS3djWGZaTCtaaXNPWnRmLzlTVWdCcUc0V0lZV0VWMTQ1b2RJbzQrCk1ieTNPRmdRb213aUkrSk9PdnY0eWtBSGhlNSsvejV5dS9Wd0RoVXhvWEprRHQ3eVJuT0V4VGZxREVaZDF2aWUxR0YxZFRVTGJpL1YKSzhpYnNjb2FFdWVXNHlTWEVEd0lab0w1VHdmTGJXVTBlM0JlUm0rRzJjZjNSSTY1VUJISHhhRXdib3ZySVlkWmRMOE9KeUpmVW9CSQpibG9lUEVndVgxRUZzOXRSd1RTTTI2akhKTXhOc0RORHIvL1JWejhaay8yakRRU3I0K3Vhek1nd0VpUVNDZXVVeWJzSG44RHpPSWd5CmNMRTRiTWFBWGlmSWlZUXhEdDVKK09XUktid1ZjTUFaZDc0dm02TXZzWFBqOEltZjBabVk1UmtUOXhIR3V1eUNob1NKSG9aeDFiclkKOUtGNEVyS2E2ZE9LRFVxbGpRTzI1b095U2w0b0dEUGlDVmxvY2hnaWlBbTJ4bHJrVzhqTWV5bStVWVloVk84ZHJqcHl0TXJmSGVzLwo3REw1Yjc0a3QxUllMZ21haGxIcElwZURaUEVnalJGUndiRFJoVVF3SW1HRUxJMlJJbFpMS1RMdlB6UDFSeHQyMEtmdjJQRE1tSy9xCmJxc0FReUw1Q1FzalNWaFhPNGZEdXd6cUhoMlo1dlVncUZ3aXlBUk1MNUZLMkVzQUdVWHU4WUxTU2EyUTN0SkcyRFVucGNONGdZTkEKNWlxZk1UNjVBaXVuOHBPcVU4d3V1ZEVSYmZCbjJKbk1CUHVJT3JBUG43RGJLV3BzWUdNYm82djBLOVBlK1NMeHdRY3BPUWM2Z3BoZwpzL2I3VWpCSVRkcGFMUmM1d3JEZU8yeWMxZEhIK1ZmN0JZMXhIc2FJWXFSLzQ0eUxRcUtYNU5lRGV5d015K250WXF2YjVjQ0NlbzZhCkhHZWVXN2ZoMkdhSWtPclZBYmJmZnJLK0s1cklGLzZFR1F3SzI2UGJzVCtPUkRCcTdQTzhZSk1UbXFJZnoyT052Uk4vc0Y3UnlRdHEKaFl3TitINFJuT0c1aThlMzd6SDBFVTlLa0NrS0QwekY2c1NLL1NuMWxWcWVkOGw3d3J0MFhvYWRXZkJNM25CcUpiYmZ2STJHcXJaRApVNHNnN1NYK0Q2L2Q5TmpXM05DQWMxQVQ3QzIvaGRzVW01UjRlRG1aM2dORlhKL25YKzBYN0xLak1TUUJzeXI5WThUWUM3Rk5pZzlOCjhPQkI2aUlpMWR4V3ZVbGhGODBTd2ZERWVLd05DY2FvTk44NUJsYnc4QXVzRzU2WFYzY2xZZzVHSk13cXNtM3pkb2w0d2tweThUYXUKRWtEdGt1eENGNjJuNTl6RndCd1R6U3cvNjJJY0RPT1VTY0dqUmpGbDhXUjVVZVhKVytjVVR3N29FK3lEblhPV0hmc1pOc0Nxdkw2RgowUk1LeXczK2Z2Mis3Ly9wN215MEVsT0h6dG9ta3hNTjR5WWNoc3h5QVlSVFJ0dGFRK3FBdCt1RG1XQysweFFCek9HMnlsbVJZZVV5CjMwbDYvbU5ZZjRJenBudkZpQmZpRjhhSWxHSUhVYjRlUEcxQ3F0SGhaclRxUFFSemtoQ1JFa3c4ODh5NnpVcFFXcjBLQnJEaE4rS3UKT0VuQ3BDU3NETWUvV0tRbHpzK2s4Uit2ZDZnSXFhaWdZUWt3ZlNJdktNS0YrMTVaTXZhUUx0SUlEaDQwZDQ0ZlAwWmVWTUxNelhjTQpIcnluWlZidktMbFhWc2FCb2lBY2FWSzJkSXFyaTd5VzNhcjFXUjNPbWpzZWtkOUJHRGFzc1NtLzBpWlQyVFNEeTJCTUs5bGJvZXpvCjgyTzJMS3lFZ2UxNURCU0M4Y04zTVdGMjdCUHZ2SGdQbU12Q2xuaHlKRVVwQTFoMUlSWHpwR0NFWlhpSGtFeUtFcEZnQ2lrSmM3S2kKUmVTd3RDK3NvSUc4akxMYmoySFpYem9jYU5iamFCaEp3dXdtbFUyTEpWNnNDd2ttRlRDU0tGRWprOHNkYm1NUjFjdkpxK1d5RzlvcQp5bE5Ianp2Q09sWFc4SzRhNTU3TVVmbjVUVVAzc01aYXhhMHZqZXNsWVZJekhUZVkvNXZTWnFDMmUvbVFkQ3RobU1zdTZNd2VobkgyCnFydS82c2tjVmxjM2pHMmNWeW00eEp2WnJOTHlIeCthVXd1Q1ZqeDlydjBudXdjMHY0S1pZTHVlOGh0blRoMnlHMFMxblJGWkI5T0gKbFhhRmtLM2VUZ2ptOUNkVUxKNzlxMjlJNDgxU3JFZ0xPNlN4TUVvd3JhY2VVWFMwUmdDY1h2ZjZmalVXMGx0OS9JSWRMNVNVeFVtagpZVGdTcGwxV3JBWUhhZ3p0TUNBRmlkaWhneFhEWFBZb0MzS0xZUlF5SGN2b3RSUGVJWWxVWmVyWWpMblRKOFpOek85Y0huYmdUQjFVCjdoZ20zNVdhZW5CbWJ3bnovbmMwQ29Wenl2T0hQVjNiRGsrdVQrMGlERk5vakRiUEprYmRyTmdlRnMzNlRHUlkyT0hUU1pVUVArVWoKZ1BnT2pURzJhNTNoMUlEMjdZTjV1a3FDLzRMQ1l1R3NXaTJJS3A0RVZsZnJFMDhtbHc3cE5NcHV0UG5kN3cyVUszSnBJYjl4ZUkxWApkTmdaclh2dlZyVFN5VHJxRlJnaUxmdk9IQXRRN1VycFNhU2RBMERrSSt1U1NZYW1SRGF3dEZUWkkxb01LR3g4cEZ5dGxMR2FxQ2hlCjdnVEhvQUk4YVZuQkN0RUNIWTN0S3V1WmFXVFI2SFR1aFVMSTIxTDRreGZIZWYrR1B6U216aTdYT3ovd3JkZzRmeVNBVHExM2hNczgKTTFqNHdzcXFTZE93TzRkVCsrcDNWQVpvSmUvd1kzbHJmbjV6L21SRmQxVG02emNWU0MyQ0J5YUNXTUZnSXVPekVlT3E3am9vZHprNApPMGxQWkdoMU9QdFhsbmNKTk1xN3dSb2xYa2l6ZXNFdFlKRjZLVlNrWXViV01CTGVlUnB6T0cxaG5LeGg2c0YwSWs0QkNrWWtyQ3U1CkZYTXdUTUlZNC9XN1dKZkx4WUtMb1NHaWV5T2VTcG5lckpZclpIUmNEUnk2NzNSOUFDdlRFc3NOKzZzYmFrNVhqeDRrVTBPZGt0MlcKVndmcGJDclVHQnY5eXd6ZEVGeDQxakN3RnYxb2lMY3lvMnprbE1NanpVWUZxTHludHVUT0pIODZkeWhKdytwcTFqNTNwK29rVTNGRApHWXc0K1dGeUtteWRmZjF1elEzckp3MDc1bm4rd0VNd0V5dzMweHNqNXUxYVZSWGJ4TEl1cGNzSkxDTlRPSER0ZjA2eHBxWEhpV1R3Cm1uNHhqTUtrVDNMUkFURXBIWk1ZNWtjdzFzWnc5ZmZ2VDhlekw1QVkwZW96NmdteUR4eDB4dEppampDbHZidXVRZVVpMGFISXVqeG4KbHlEUVU4K2Q0WGs5bmVHc0Z3U1pkbkhQeDdyRnl2ZEthODhLZ3RGa05CMHJMZHBiRkRIejdCMVZJOUszZk8rVWVXNU9VczdSM3MwUgpiSnlNVTNNR3EwM2pzdStiNHB1a1hIN28zbTJXYUF1MksvYk1FUk9hN255T1dvbXdjeTJ2MW5WMzZYTExTK01iUzFNaEZlSW1sNXhhCnlneVBIYmkxVThGTXNGbStZdCtVTzdhbUZkcEVZRnlzaWljcUJuSVp4emt2ZDc1dkgxaGFhajFQd2k1a2NyZ1JkazdLeEtRckdoeTIKbXR3NUdDR2dxSzEvZWE5TTR3UTVTcGlmVVUrdzQvbVNicFY3Sk16WnJaRytKb2lDU2Z6Q1J0ZWU4MEdnb3doNm1Vc3VsK2ZrV3o2OAphZG9IaHp6enlnaHNEbDdXdmIwN3QzbjY4Skl2dTJmeEoxbFhxY1lFRE1zQ3c5akk5dzRqRDVmSnNUZWkycWhtZEpYWlV1RXZZczF6CjN4NTNYTnVoWU5WMnZYVHNjRUxKUFkvc1dvczlUcmpoMFpFamEwNjIzbEJhZmhlSGU5UVNsMTF5cW5SSWZQblZpc20vY1FobWd1MmEKNDRrUjgyWnNyUnJKMVBIa3E1NnhPZFFLT3lPU1JLeXZncjNMUmRHUGlsQXZlbEhxNHZ5Q2NKMktGaVpLTWtZbk41dEFLODFZSVhyUQoxalcwMlJDTzNRTW93ZndGakVoWW9jeUNSaUtFV1EwbTlmZjJBM0xMMDhzZUQySlBZdzRrbXd4UDBLQ1Q1NzkzK1A2S1R3SkNRSUcxCksyUTdsbXMvclEyemxKNFlaYkV2SERxMndhNlNzeHdYTHVNNVR1NTBWdjc5QnhQcXUrTXRDcXV0cE5VOUJYTk43bGVyQnJkTU84cHEKTzNoR1p2VXdyT1p1Ym1IbGJYeE4zZUpIbHBwR2g1M0lQU1djL002SG1LQWl3NXpsS1lrRGRnWm1NQk1NY2hPSzZDM2hsM1B1K3pVYQpFQlF1a1pXNVhLRG03UzVyMVBsNXgrVmpOcFV3MVlWSnBkUDFmaXhPWnV5ZzQ4NXVCWE1UekIwam1rUXVibTRYT2dodWd2WGlGK3g0Ci9mRFlWa3F3VG81dG03SFYyK2lHQklSNmF0WUpaUGVNVkxubytVOXl1dTU0UVZqeDd6UG43YXJkTHJNckRtN3JNSU5va3BkTnRyMWUKbnpZMDU2aE1aSmtKMHplK3l0bXIvbHFkWnVsSm0xaGlGSnpoZHJhdStJSDBVbmhNcVh4ekp6ZnA3S3hqSGZIdEtwWjFSNGxrNi9tLwo2WnAxWXRVY2NjdjBhS2Z1Vk1iNHcwSmlRNDJiWWVWTE4xWVhsQVg4L1lHQ29DYllya1cwM0RkUDFsQTZ0N0lHN0FyTzVDVHNjcm1VClJzR3NjNTEzMEYwSmltNGtXVmgzdUpkRUFmR2hMblhOVjV6Z3JvNmlNT21WTVNwUERvWjJ2WWRnZEY1ekEvZENnMmtVVm9pNENkYnIKMVlpRTFmK1RUbHdKQzFOWmpJc0tVYkV3MmRLamZnbHFTaXVkNERraExlVFVadHoyT01CQ1Uzc2ZJWnJkVHBMUkh1eDN3R3FMRmJuRgpwZVgxM3hwVHB4aC83R1BaMXJuWi8wN1pXSjZ1L0NCdHp3dEt3YXBSTk0vZVBEcGxWUFN1VndCcXJKT1lpRTZMek1XeExvUDc4TEZYClRabTEzNTdoMmxPei9yWVlIZnVKUExlODdIcmx6bFJBZzNSM3c5S1RaUVhlTkc1Z0lhZ0pCcmxMdHRGZUFiSlJsYWhsMkVlWDR5d08KaDlXbHhtNFpWd1dUbTR5RVZ0N0JaaCsvZER5dkcvYm5pb3FINXg2d0NsckpPVVRFcWRwN3BKRXdxbUJvY3VBRVoybW8yYW1TbVVhaQo5ZDgzd1NJMjN6ZGsrN0lLd0NTTTZXN2dqQ0FRNnVCRkxiZTdXNVQ2Y2FrNU11TkZnSlhXanRZK0NFYitIL2hFdkRVS1BaT0dOZ2xDCldjbDFLWm9VM1lMYW8wZkx5QitwS0lXS0o1WnVma1VRekJIMVFrMXQ5a1FOWDVOWGQzWm5Yc2x0aDUwbUdhZGdMUjZHbmFsS3lEckkKTnc3OTFjazdrdU1pUjBaV0xkbXkwSjJHVFY3eWx0TjY3cnFLQVRrY0Z0d0UyM1Y3eTFuc0ZiQy92ZEJ6SUdDWEdRTFRWWkV2UlBHSgo1d0U2ZXhVa0VuSkZHa2ZKZnJkeTF1ZW5SYkcwOC81U3dTSEVhZW1nRjBwWW5LeUR5cGMzQndNa0dIMU04YmR6TWFCeVNBUnJQKzhVCm5WYjQ3dEE5SFZJUzV1em12bjBZcEo1VGFqeVZrRmU0M05ESnJZdHhhbkZtellsTDlvdVhWYzRaalhYekZlVmw1Ui8zMnBmS290S0gKbmlicVNPSnIxWXZUM2xxTDgxTjJacDc1ZVhnTm8xZjRHRVlvZGpRNWR0dmFsRnRYL1hOS3g3Ynl0eXFtdFk5ZUx3V0oraEtPdlNGKwpQNTRWYWNBaHVBa0diTjYydXJXcER5WHY4WnZMYkVmNGIvUWY0c1ZVUW9kQnZiSXduZTQzS3o0YlVYYW9KTFk4RmtSREc3T2FVS3dUCjRyUmFLbUlHMEhiUWdnNmMyVXdId2p3RUU2emRMVVBrSUEvdlFJS2RKMkFFMlM5MVFqUWRDUk43ZE5mdElTRWg3b3NjdTdzRmJLbXoKckk3OEdPL00ybnBKZm9IZFdtZE5weTFIL1NCSlR1T0wydFFHSTJHWXZ1ZDI4NG41SjFiWnowSk5qYW54NXYzcUhzSXdxODQ3aGxaZApzL0twK2JjOGNldnIwMnViTys0SmZ5VjI1am9NRXRIb1dMcngwTWZ2REVTR0JUbkJHbStheWxhK3YvSWpKM01WS3hBRDRQcCtxVFhBClNJejV5enZIMmdsaUsyaVZoNEZwVFhod2JpMVlPNlU0TWE2bks1WnFHTGt2OVpmU2FxaUxhR0lmdHc4NWNpNFJISDBSakJxS08xNWcKSytaV1lCSm1adG9tN3dNa2w5eHVkM3NhL3NoY2N2SVR2TlZOUG9ZeldDNEY0OWt6ZHdYTTRITFRRU2hNL2VxaHB3V0h6bnBVUFo5awpXc1BuMk0vbWJjdHN1ck13d2lseUNxdTM5SmV6NzhzOXBabHpkTjY3OXh6WjlkYXhMTmtTRmFWMlM5eVN0NVlXSzBZZkhvQU1DM0tDCkNkdG54ZzlOZm8zREF2TnJ4akQwT1hvWmlVbU8rdkoydk5NT21YU0ZhTktlckI5OC85eGFHWWZTWllxTFBZME1RN1pocTNvTlZ0UWoKd2ZSMlcwc2p3TGxJa29RNUxZRXBtTFNRM2JYdE5QWWdEVk4yV2Q5N1d6cGd6MmVYcm12T29IOUtCUlRMRlVmeEROS1hobkh2dWJ0UwpSbGJvOEF5WGI5eXFlK1JMTHgzS3E3Wk0vK0pwcFZ3OHV6Y2w2NVdoY2NtOCtld3c4OUE3dnpUSmUxUXlxdzNOUkRvTEJ2dHE5K1E4CjlkMi9zMCtPL25DRXZFSkxHTGE0R3VMMFM5NjY0WW5TL1VLSVlNRUdZYXI4MTJGbjhXTU5uR3A1RmRFUTF3MHFtWTlnWVg4OWhQeksKYk04a0lvWXJXRERxV01meDZ1R25IdC9saU5CcVcxU3hwOE42U0hTb3BaUENGRzZDMVVZK2N3eG5tSXpDSk16Wmg4ZUIyTEc4a1ZFWQpFdk9US3B6R21LMkJqMUxreEp2aE41YVBoWUk1bUZhTnNSOEkzQUNoamo2ZmRxYURwWlB6MHF2TXA5NlUvenZxM0thMkZWSDBYNmZqCmo1VmxISWNtbzVyajYvZmx4ajQzN2V4YzNxeDZNOXMyNzJoWXQ0cDNvSmtvL1hlNTZwb3hQY1BmL202ZFlWTDZ4eG5EejZaOGtKeGUKalduWWt1WWZwcXo5Y09CSldMQVRESFlsMWRkTGgybkFWTXVyQ091eDUwSHVxNWZTdGU5MjY1ZFh3UmpRQXNzcERFbWRtaTdHSXRlQwpTekE0Qk1JdEltRFlHQkU5UktjbGpHL0l4R0xoWkF0MDJQb3lFU20rTy8yenVSVk1hYjFaMGQwZ25uZTg2bmlueXpodFd2UUxwVkF3CjFJV25MMCtQa2ZrM0VIZGowSGZIVGpwOVBzWFVWVWYzY094ZnhORmZiWnd4OUpQc1JaYUNkTFlSemNiUy9kUDNQTzlpR2JtaWZ1LzMKekZzbVpUYXljZSttTjk1Nk1LeFR3Yk1XYjFkU3psNDFoazF2aW03NXRQaFEyZTd5NDM5NUdkOGlZZGpJOEhjVnFjY0dITU9Dbm1BMwpyTGVKN2xNcVhEc0ppeWtFcTVKekV5eE85WFFySlppZmd0MTVYSXV6akJWMlMwTFVEM2R5c25QYU9JMnFLNUxXL3hIdHNyZm9XS2VWCmNlYWJXbkh6YzhtT2p2TmNlc3pBSXJDd0kvc2xZVnZZbjFXMWpLdGJZL05PRzBIbytJbm43TEtiSnNiSVhpM0hjMUNxbWo4aWF4dG4KS1lyOXR3STBIZU52YXVnMnpCN1puRDNFM290bDZOd0xnbUE5S2p6N3JQRDBpMzlkbC9QQXpWbXBkSlM0ckdybW1HS2pZTk9HSHpoeQpoL201T1JNYlU3Y01hYi85MDFpbnFHQU5NbThwbzcxcUhNc1d5Zi9DVHhsMXc2eklrLzlIOHJyRjFTMXg0UW14Ynp6MUlUMnA5RUJDCnNCTk1ON1pVeEpObklhNmRoTTByQkVqd1RBc3poUytYSXNRS240S1Y0SER5cXFNbWNteFBYVCtoS3BKblhhN3dpRTdtWEp5Q0JJZk8KUm9nUUNiK21Vbm9CVENBS2RoN0I4SzQxb2p2Q3V1TUZZOFBpc0ppcFp3eWRVVXRyVHJUazU4L2FCYnJNOXV6NHBwR1p1VEhwcG45VQpvbGR4VTRTeENma0ZRdnlYMkFmSEgzYTR2d05ZM2lRbVIycTRuZ3NmOG5iWlcydGw3ODcrYXJxTVpJWlFjVGoxK2tNcVFUQnJaQ1dIClZqSFByOGljM21wc1d0WFJ5SWx5dWM3cE5WS01OYXEwN0VQYTAzTTZiUzlPRUtZMTZSZC9BZGtRRHMxbk5pMDZsbU80OEo4TFJnUTcKd1padFhIbWNTSmRFc1d2R3NEbmJDWW04UHFKdTVuRWtXRHRxR0JVd1RBQUp3UTZUQXpzR1dtWWVYanhMOXYwdkJZdXR6ZWpRMm1SOAplK3ZRd2ExV1JkVGMxc25uNk5adUJXdjMrQnEvM1NHOVNvVFZHZ0ZLNWJwYjVpVCtkc2ZjQW5hdmFrSEpiNDhYYlM5K2NFS1JjVmxNClJueUU4OVZLSENFbThyV29OcVBGM1Y4M1kzeDU3MUJUSFhGSDgwZmw1YVVab3ZPVHBwT3lpMWlNMGMwUVdmVG9odG5GcWJSWGZmbnUKNVJPL2VEcS8zR1p6MXV5YWVlYkR5Vzlsd3VEc3cwWVp5QmlqdHh5ZnMzZnNuVHh0MS9mdGhwYTJQWXZEVGcvVFZTL1c2UmhvemloYQpzVHNwZG1BeExOZ0p0Z0Mrb0tXd2JoRzdSazdpTkN4STlJdzFKelVjb0JFaTFUQXZ3WXdrN3lJRVU1RVFjc1JPWFhoYlF2cjljMi80Cnpxb3ZCSmN0NFdWOWNyTXlNN3hodkZ3aW1GdkI2R3dWeEE0M3c2elNDV3FWbTNmc2dGczcwNGU4Wjl6ZVE5Y1gxZjVaa0ltdmxwVzUKYmZhQ0RPMkxzODlKL0ZxeDBQR1orLzE0RUcxUC9nUmc1ZnlOYkVMcThaL3V2RWlGQlFrZmpiWEdZei85L05YcGo5b3JRQ2VVRGZ1OAp2Y2FlWHd0V3BxdE9mc0R5dlpways1d2pIZUV1bDFyd2hhdDJLSm94N3JtcHhwUzlkNWhmbmpLRVVlbkRHWUJtT0QyNHJqMjJmVUNsCllVRk9zSlhIRDJCWE0zRDNmN2xXVHVLd2xtNEFyZnU0MGFsR3VROW9jdE1lVzRFY295NEhFa3hOQ1BZNUpNS1I5TEJ0RmNmM0g1MTQKMTJaKytwdTJ5cml3SnUxNEZaeURKZFdTZ3NtY2N0ODQyQTZQaUVWMEU0YmRWN2E4OUZheThBOERPZjRqNCsrRVJqQWR1T1haVWlnWQpsNUUxS2ljamE5Ym5oL0l5bkRRK2hCdk9icXFrellkOVVMdHUrRnlBQXY0ZjF1YVRSMi9zbVZ4NkVRbWpxTFUvZlhiTGd3bVBidEtECjdsamx0NVorZkQ4UWlnbnp6dkdUVDFteWZqMTkwNkJ1bG5WSnN6dmQ0QTdsWnJ6M3UvM0hUMmVrbVpzVHdzTnhYVE5rZkxEdW5hVFkKdmdvamd4WkJUckFaWHhCVzBla2MxelJJNU50SWRqVkljZ3ZpWks1QlhvK0R4SWcrbHdNSnBpSFpTUFVFblBaL0RHd2doOUtUTTZQMApYZWFZZG5XMG9pUGMwUWJWdURtT2c4bWNSTUtVQkZhTUVkMGlac1VPQWhOUEgxOE83MlZIanl3MHdiQnZmeWRmODVQM1NONnpKbnoyCjU3WDFkZlZpVDFHSlkxYUNZUjE5TnplZDNlc3VPUFFoZWp4L0ZHRE1acWZSTHVobXZwT1dYeGE0UlcvRUcvTnI4eCt0T1BsTXp5ODMKNlhYODBkMW5wMy94MHptcHRhbUpjWHZiNXI4MExtT1dzOHVvZHJHTVdXZjNXaDJpTW5GM096OXZCellqYUc1dVRnQW9oaE9EU3ViLwpLd2tHVkpBWTNBVFRwZUJKZmlRTnU1WkdSN2VXaEdxUkVzRk11bk9TN3FCTDM1NTVZaEJLR0hVNUpBV0xnK3BFZ0dObmpJS0RRTjFlCmNzLzdTb2dPbDRNTVlyRGlQR2xtTmJRbGh4T0dzWElGOXIwaERDTUs5bHNxWWxUQlRzTjMxZnBzaUxhV3RxY3RtSmp1U052MWs4M1cKenBOem5oYUZMcVB4N0ZtQlovSWFKZjBxVUIwNno0clhqWS9GQjJjZEkrOVpsL1VKbTZrdXZ0Z0JyMWFkK05tTkR5Ky8vK0UvUFAzdgpSWGVuWURWRzJiQWoxVFhKV0FXVjNGYnBUSG9udlRQY1pHQllWalJ3Q20vZFZIMUdlbHpVdXl2ZkcwT1hFcEJmV1ZBN0pXcGY3SUJpCldEQTN2UUZZeUVqN2g5ZFhZWGJsQmRHMUVqeUdCTVQ1Q3Y4eUFTcXlLdEJJbE5yUytIRE1obTFpc0pvS0l2NFVBVEVLcktVZlNWWXQKU1JwN25Od2N3UVVGeWRoaVltS3c3ODF2a1dCa2ZYZkVmWEFmM0VwVHNXclZjeEE5d1hncldCWVZmNVFBZFI4Tk1ydHRsaHVYdkxSQgp1aWQrTHQzNlF6K0Vobkx0ZkN6RU96UVBnOHh3a1ZKRm5TNUgrZVRMWC96aThjZXpjdFZ3NHVITkcvVjZuVzdEUzNsMzdLR0QzRG5XCmU4cWhhdmYxL3pmZVFmWXlRV015YVR6dGNONkwxN3k4NkFiYnAzU2h1UGpFaWF3VHNPeVJOUHJIQms0WG5PQldzSkdmU2QrbkRJYUoKMXpCSTVIRGlXWmpFTUZPc0hzL3lpbWhIRzVFYWlTSXdSaTNyOGlqWU1SczJCUEJaRCthb2tSMHk2R2lGcFBpV2xyRVdyNFk1NVhMcwp6S0cwN29BNUpFZ2tHcVk4QWhNcnNzRVVRWTdUNkFQN1JxWTBMV3pUNnpKM2ZHK3p0ZU5HV2hxbFZnbVprbndSNUZuNzZJYWhPbkxYCllZRHlwY2xMeGc0S2V4MXltTm9MQ2NxZ2U4Zkc2OUkyR041am14U1RmN253MC9YNUR5VE4yS1RuZWI1WS91ZkNVdFN3d1MzNVV3ckgKZlh3a2ttU2h0aTdzSyt6TjZMUndiTkxoS1Vja0NUdVIxZHFhQlZCeXg3K1NoblVQb0RTTXdlL0NvTVdQLzRvOXBOSGN3R0ZlOTRjcQpYblV0RTZBcG1ZU0lZZTZXYlVtUHZ5MGQxcGw0a3lsSjJKMXZ4NE1EVEJDZERjMllmb0VGQ2RZdGRXV0xVWTBwSFc3cGRDYVIrNmhnCkRVQ3R4Q3J3YklqVFZvaUlZUmUzKzliZmloTmR6Z0VzZm5mYmRXZGdWTHBWbFE0SE02NEgrTU5xZkxGQjg3MzhLdEM4NmJuYkM2czAKTFc2Slc1SFUrTkZOLy9RdlZFWWZKcWMyQlViR1dEdEVwM3N6Q2Jyckp2UzhkT0kzUzI0Z0NxU0hGZUh2VEtlcnMySElFNHMrVUlDeQpSeVE1SnA3eExLb1Qxd3NQZGFoVjdZbXZMME42d1FtNmJkYTRyaGYwVTRpeVgwUTFnd3BCcldDNnJDUHVka3VFWVl6b3R1cXZxcE1vCk9KMHVKOFBFYnZkclVxK2JXeUtKRXlxWTI2cjNKV0Z4WUd6R2hORGRsUTIvNExxbmEwOUJSTjV4MEkxdEJSeHMxdW4wY0k2SVdFeUgKREZWTW9YWlowVW9FdE9sUFEvWUdRbWVVc05hbVlXRTZYc2srdmh3R0h4OTJGRTdjZGhqVWM3TG9IQldLekxERDN2ditLRDR4Ym1aRwpYbklad093VGlzcXk1Zk5PdSt6eEx2dWdtOGFORzVlZlBUUXJLamtpVnV6NFIxbkFtZlNFc3EzSEYwYWV1RXVaZUZTWVlpaE9uL2tuCnlyK1dPSDMyeU1OeW81cUV2UW84SmE3Q1NUT3hjRDVjOS9Zb09mb2NneWkvc2xxelRyZytlRWIxNVFBeU9vS2FZTXZ0SjUzdWpqQ1UKWVZmYjV5RHNrazZQRENOd1d2TWdqWW11RHB0ZTVvbiswT2FRbkhxdlR4LzNlV0o4TTdhMHdXMm9LeGpUT1dJNjA1MDRzc3l1YThIegpwZUNiSlF3akZJdU5JWEVpcFpnTHpVUVVzQmlTZ1JGK05jVjFRblRqaVpHTVdKUHk2bXR3YVBEZzdFTnRwbzNQd2FSQmZxZHZyWmg5ClROWG5nV3cvVmxIeDFhU1VKbUdFVXF5QXNxcjVhYU9uRE0wYWFiSGI3ZXYzbEpXV2xwZVhsZ1lHbHpwZTBQSDZzZy9ySi8zNiszZmIKdC9FNVg3TFZwMmxYZ0pZNDBDK1pHWk5XYXdjN250U2RyQ0pKcGQxZU5idTVjbnIzM2E5a0VBa2o3SUpCSkVvOGtmdUhPeDk0TmdrRwpTcEFZMUFUTGtKZTdQRDJYa0dHeXE4a3dBYzljNHVsWGZTQWFiVVNjMzBXZ0tkRjYwNnZNOW5ZcFJoUkpFa1lKMWpKelp5SkttQVBqCk1ocWdxNk5NV1ljc3JhTVBNVGdjaTk4RXlEQ2tHR0VZcFppTVZaZ3B3WlRJTHhOOFZkOXhNZ2FpalhWTDIwUjk5UjlHRDVMRGJVTnUKZXcvV2o1b2Y1c2N2Z0dUbEtmOUZQd2dDRkE4ZVZWbEtSVW9vcjZ3OFhGWmVXa0Z3d1FOZkVIU1lmZkg2RCtVajdqZ3dyTGh4U3NXZQo2UWRYcGNMaTZnbEZMU3I5eU9hTU1ZMFdQT09aWWxuVnNpb2laYTZNVFhkK2xEejdpN0lNUUdYT0lpcEdHSmIzM0FUQ3NGZ3N2aG9BCkNHcUNqYTVwVVN0c1BvWmR4YXBmQVY5S09xTWR4M0VndTY4SVFPVWUwSTJvOFZVbXRYdktPVmlTOUx0OSttb2Z3UkF4b0RvN1ArTTQKTkJlVWhLTWQ0OVl3U3JFMnBCaHlqRlZnbEJnQjZsczNWS1I5QmZCSVVZNCtPcXJvbGtxMjUwN3RHdzl0cnJKK2IwdTVsVjNWNklzUApFV2V2NjZ1U0hvR3pWZHFtREF1VXFZdENvRjNoQ01WMjF5WWV2U3Z4eTV5a0xiWHovclNoZXZFWEpHWFU2MGUrbFpZMnB2R0dvMUZjCkdWU1pnSVNLRmYvNDNmTFkzenl6Zmd3Ukw2REJMekl0NzVYc3FIMnhob0ZSMEJIVUJNdmFROElWRXF0UWhxR0V5YkZUSjg4NW5VN2EKT3R1TksvZ1gwR09Ea2NoRnlNUEF1ODhEeUIxU1d4djk0TWViZkE0aFVxdzlGa1NSOGRpSU9xQUV3ekV1b1B3aW1VdDhoVHd5dTFsUwpSTW94dkpJb1JtVU1HYVpVa28ySklwMEYyeHFZK1VKU1ovUytWOGREMk1UNjFiR1RGLzUyNXg1cnAzWHdCOTYvU3lHa1orNlZ1bllFCkFvdm9KMFpjOW5sZUJZbGlSNDkvLzA4NXYzN1dRTUxFNFg4dmRTMnVobXJDc0NVSnpaQUd0WHJWMGlyVHlqSDEzTktxNUcxcHl1UnEKREJLUllSUlpyYTFSRzM5d3BpSnpZQVNKd1QwT2hpVzI1SXJ1SkdXWmlzZld0K1RpanUwb0JJVGY4aVZCdDJZWXFZc3V5MktOMEU2OAo2eTQ4REJqbUlTRWk5Ukc5SzQ3UWF4VmhDeUMvU01LaWlvWFluTE5HcTdmV1NPSVlRRkpTRWtCNWVia3paMHo0a0NFeE1Tb1Z6aHl6CnJUMTlHcXNhMHdkYnpycWc0eVFrUHFuWjhPMnpNaXdRQ2NDNmxvZFhhYzVyMStGR3RsWXE5N2dzNk5ILzArbC8vcDI0Sis2SEExTXEKYmxqOTBIdGZMRjZNNy9Vc1lOM0dNcnhvQUJZdFdnZG5DajV5aFg5VUo0WE9FdER0V1BhTDVYcklIQkNEWVVHdFlLTVBTN3NuYVJqRwppSEFIRHVOaVdZYy93K2lhL2l1WkpGODgzUnpQTGttdW1BbEhzTnhYTGgxSjRYdDlTUmcxT25Bc2pDZ1lTQW8yd2lpNUhLQTJ4NmlSCmFUSlpjODZyQ2ZwcUhHMGUzVFo2RUxYN0pZWmhwSWd3Q1dHUmtiR3g0UkVSUGVQajc0V2VvYURCWG9pSDJXRU5wejc2NGRMVG9ENWQKK2J2MzRNeDU3bmZwL3RFekx1QW8zRzNhMk9mNlMwRVNzYUxqWTJGczZwYWNwTGVHZk43eDJxTHFkUEpXR1NBYUJtUFNZUE5TZ0U4egp4bFNOWWt0VEUrTnQ4OTcza3pDQzFyWWJXaXBpQjRTVEdOd0VpMisyK1RFTVVTSXhESnQwK09CK3JMOGNvM1kvdFNkWTdGeE5ya0M3CkQ3azF5TzF5UUlQLzlCRG42UGJNaWxpaVlGb0hlVmdETFhIb2NtQXhMMVVXb2tTeVI0d1Z3em1kU3ErRzBlUkZZQkNCUkRJQ2tXRUkKZ1RzVXA0WndYT2xJZFZwNnZTbFZpSU5IeWZPaUkwKzFwV2RPZWQ4NUJmdDZKSDlRRFZIUFM0VVQvaWd0djY2MDkzUVZOOFk1QWlkaQo5aE5TbktpdnpMejFoNU5mYmM4NWVQeWg0ZzAvcEk5SUREc3hLSTNjenlDL2plcXlzZ1RIeC9NMzUwQXZoczJLelB3c0NRYUMwUkhjCkJET2ZjZnNaNkhSSVZmV2w5SnFWY2U0NVlnaC9qdlhuLzBHZUtmR0w2QktsbDhzQjMvVnpPWVFrVE1LZWRKOTZna1d2bm15WjRNRG0KRzJZTCtvamozUXdEbFp6US94R0lLK2ZhTmFKbTlDRFBuNkFrb3l3amIyNTBrNmJnVDUzZHErcS9wVzNhSHBGL1V0N1YvT2NKa0tUdgpqQXZmc2ZyTEZ4dzNxNVZnaCt1R3ZRZXFxWnU4citDRk1PenNlUVdKaUdPVDZxOVVRdHlaMkwvVU8yZEViL3UyOXExdlRYeHlrZnNoCndqRHZYbXkrVzZqS2lYU09XWWNsaVNleUNNTVdTYTVtNjFoUlA2d2JCb0NFQlhVT0poSjZlYjY3V2ZlZWlneEptbGlwT3RHdnBNUEwKc1g1OTVOSTV1Rmg4TVd5cllTVi81d0d5d3VwTnd2QlZhRm1GQkN6cFNFU0RSYXJUSzFseUpJZVdHcEtVQ2hScnlYMFlDeG9MQzJXKwpwMUNNSGswdWtjcVR1NzU4V0tjei91UkRIVDYvOXZyb3p6NmNndVVlU2VsMldLMGVISGtNbGJOOTE3OFR3TnFYbndFZnJ3aGM0OGI4CndCWDlobFJScVA5NW1EcGp4WWR3ODRlMmgzN3NlV2djbkpDcU5nQTZ4MERtc0hvT0ZwNFZQb1VzWExOWjRtRld3cEZoTUd5WU5OODcKcUJIVUJBT1RwOFpXaTkxbDZMNnlrcERocVhwWUZvZDFxTzFCMTBnVTY1ZmhvUkFvWXlWNk9UZ1dYT3NTQUxwa2NlN0gxNUxMay9TWApndktMNCtCZVpGaUh4TEFjSEl3bHlObDBIWlNUTkEyMTlpeEFFelExNGJWYlhrY3JoMy95NWFmdWQ2UzU3L2s5NXVuYU5VOGxua0x6CkF4cStDRlAxRkhURVRNTUhZOENsaGE2K2c3NzNmdWlUUmg5MDJsNkZVSmNIeWV2US9XMWJ4SWlORlp0dTN0VHVZWmdvamdPa0dKSk0KMDdFRVlCZ3JqeW5oVFovaW1rV3dHWkJpSjg3ZFRUY09mcDhqdUVQRUkzY2ZBUWRSTVllRDVVQmhrL0l0bjFVblluWkRnUEVpaG95ZQpmS3dmeVpnTWt6dVNWaWtJdmNCRmZqck5QZVFnbDJZa2d6N3kvNXJhU1lUb1BUOVpaaUtTa1QzbXdsRURDOG5EWnU1TWpJK1BENCtKCkdRTFhrWU5WMzVGWDUzRGtqYXdQTXhnZ3Nja1ExeHplaENYRDYvL1Y4RThuTGJWM3NtQnBORWZuN2RpNm9vTnQvaTdxRnpuRUZ3L2EKY3F3cEljTXdtQ2lZK3ZiWHV1RzZQWjQvNlEvaDhOSzVvOGRYeVh2cFcveHQzWmRyMHZjQ1BiTkx6b0d0WTdyQ01qWmw3aHM4NzFGUApsRGkyaEk1M3RRN0srTlhkWDBXUS8vaXkrbm9JU3lOSjJDa1NJK0psMFlZRWRTZEFkL0Q3SEVGTnNKeU1kOG0xZzhQZ0RIbkFxbTFFCmN1eFlXby9NRXFtekNEUStSTmJScE13ZEtWNlNZVHFEUW1mVGdwVnpuMS95MUMrd0wwZGttTHRhYWxjVStvZ2tEWk15c2JIU2srNHEKWVZjZFZkaHBIcWJkZWU1Y2Nra3lRSnpRQUhXZHBZWDN2MXEwTlJ2YnpodXdtSmR3TEt4cDJCY095aTR3TmZRb2RNdVdQVjdicytMTApmSDF5ZHdyb2t4cUFjRXhPanRkbmVFTXMxdWdPZmI4ZExNM1NYd3BFK2VFc0lXMU9yN25MOTdkZmdVbnZEenpmWHp2UEY5a1dDRDhyCm1yVEp4N0RFNlh2Z2RpUlo2d0xteGs4am9MNGhxaVNxVXhwdHhoenMxS0xOaTA3bXRsc2dvanZvZlk2Z0RoR3RXSFBrbmFnbFFRb1cKcFdnUlRYYTNubUZlSmlWbC9jekZURkZPZzlacVJma2kvQ0lCa3hpSk1hTDcwVWJublpoZnJIWm5ZaVNWV2todUZyNEY4QlpOeERxZwpwR1RKRWpnQzhkT3hJcjI0cytOYnNZL0VQSnI5N2o3Y2ZEZTVKTFpBOUNlclRUUnBNOWtzRDFWOU91ZG50ei9qZlBhNFlyVWhmaVRRCkZBd2FxckZQUVd3VC9adjBaQkx1Z3Y0K3NPN2pqYjBtcFExcS9BLzVSVUYyWEZmeFdDZlp6ZXQ4VVNJMC9SeitRZStjZUpMOFI2S0gKYlpvRml6U1N2NGtjcEVIaUZ3c2hHb1lGZlpBWTFBVGJFT1BYTnBDZXlnNGJWWU5WcTBXYWFiVTZhbFFnY0FPUDc5RmZob0d5UjhtNQprRjgwSC9rTVF6cHJpL1JnSFB3R1BGbllrNUFaRC9BbE5EZS9EYzBMZ2FSaUdnMU54RXFTQ01jSWRoZTdtcmxoajBTMS9jS1ZwZHEzCmJ5L01CTmhiWTF5L1dxQ1RGMDN0Z203THo5U0RId0g0NEF6OGNhSExDcXIxZ1BRQ2tvbXRnTFQ3S2JVa0NHOTQ3dlVCN3ptV0VHbjgKVFg1TFZ3aENMOXo1RDUvOG9MNyt1Zy9iSC9vVlhkdUVEQ00wSWtSS09yRjhVOGVFekU0WkxGc0duMllCYkg1cXRUc1BJOWtaL1ExdQpCRFhCb0I2L3M5M0JIdDQ0SEZZa210VnFwVVJET2RQUi93RGxHTlUxWkpqSDdaQ2VlRUdZMU4xbUR6dlY4YlZGNU9aY0xMVTU0aG14CjV3ZVpIZ0VqQ1JpMnBRQnMrMEk0UmlrR0hSME1NQ1VranRxOUcxek4zMDQ1QVYxL2hBcTRXNlZoL2xWaGZLZDF3OSt0U0svYWRyUFEKa3JnWkkwZUE1Ymtad0l5SXZSZmliMjJRNkFXUUNvMnArM3luWDc1QXpZWUVXNzdmd3JFUHZKN25md2dVc1UyRUtqZHZhdjh1MWJCRQo4dlB6UlpKbFdEejROa0tqSXkralhDNkRMTWpTblgwSk5tL2VuTFc0YWdKdUcrejFITUZOTVBrRTNEL0tNTHpDQytvWU9jSUp4NUJvCldpeWtvdUVoZUNoMk9XR2lSdFVqMHp2MG9GYnJJT1d4NFdRVnhvaEpnMjkra1V2VVY3ajFhelh5S3g3aXBlYzBFNjRCRmJGMlFySEUKOWdNQW5jM2pRQWxWVDc0SFQ0NXB2dHYxUFZ2VnA3SmFTTkdBcWRhc2JLbExIREc2ZzM1T3kySGo3d0dlR1AwVzBXWWlZSmlFUVhVcApESWJsaVQ0SnV4aWEvTGN5eXc5ZHlMMi9IT2gxT2lwaUNCSWxya1dHTldIRlZuWU9qUVpQZlBFdGdBbWJPcVBjMjU5NGNVYlJIMTlhCnZmb0htSHhOd0NBeHVCSFVKZ2VNamEwUTBlMmpGTUtMaXhFNWN1dGlaTGlPWlYwMmg0TjFhYW0vU0QwUGNvTWowSlJoVWpIVXhXQzMKNjB5OEpWNHJFSDVCeS9qajVCVjY0aUxoTDU4ZGl0SitDTlJGM0FhWlljMUdNTjY1Qi8rNmk4RVR4Um9KcVYwS05EdGFXL01URXcvSwpCa1hvSDVxVWZyaGxhL1BXWWRPZXNOZzFpa2dGbVBTdXJtN3lmWkE0ZnNlT1B6eHNWVERmdWRFRmpPckh0ZDBKVUJWSFpJTjg5eXZWClF1c3B4WGQyeEx1VUFJZjM2U0ZtZkI4anpSNk0vOHgvU2RZKzQ1RC84aFZDNExHK25tK1hSd0NrYjRvdWVHUlJZaGgxUU1XV1UybHAKa0xZM1ljNld4RmxIZnI5NnpJbldRVGdsN1BTa2syZjAralA0M0NOcUM4aUQyK1lJYm9LVjVoMlJiQWVYcEVrdUtqRXVFZldLb1FlOApqSFhoV1JrVU5uVHRBU2ttU29WVTBMOUpMWFlOWjJhdE9aR1I1UDdNTWlOWW96dkQvdkpTT1hhemVYS2JaQ0tPYllaNEkyQ0ZGZ05tCk95R2xBb3h1aWluc2tQMStLU3lOZ1BDSm40MHBiMG45dnkxN2k3QzNHNWdhMUJhaExWS2xVa1VhVHUzODlxOFpPYzZCSnE4Z0Y1cFAKREk4dW5kNko5b0FTaExEamJZcFhPdmxFcXhMTXh6c2dxcTlTRGc5S2YzakFyN0xlUGt0MzFPL0JLd1k5UlRTdk44aTdJeUM5M2xXdwpQZDRBdEN0SjNNeTMwa2l1dDJHU0ZwZ1ZoKzZxYmdYQ01ITFZYWGg3eTBpY2hBT0pFVFpMeEZuaElwMVB2L0VJN2hBUjZsWFVPY09CCktqejdPU0dXaTlvU2hFVjRCOWV5SEdkRjkwUHlGa1hKNjhCRDJhL080eUl3bWFKa3h1cTljQ3A3ZmkybU9HSHgzRXRsTkRoY0xlVmcKNkNaUzc5eGt3dFBHU25la09CSGdvWWNHaS9LbEpIZUQyOW9xSUxYdDVUL3lGcGVydHRabVdaRjdyaXRTR1JFUjRaSVhnUmI1VHZtbApBamc3dDlsU2lpWUh2bFJUa3dPNDBmVWsyT3RHN3hHY2RQN0FoZENWNzNjaU1iVkVnLzhjR0NIcWRUaWFUckt0K2xPNVgzaUwrcW1YCnNlaUxzVWNTcDg4b0g1ZEZKemJqMWMvSFZpbWxMWVpoNzYzektwU0RDRUZPTU5WaXp3NjY2QzlxbC9UcmEwUHJBZzRUTXB6YTRtVVkKU0xsWXYyQ0NxQ3psdkhzM3Y3ZjVNTkd4VTl6dmtOT3JwZnlMWExHVVhlQW1WMXNiL21MS2hHWUhCL3lmNUE4anYyQzlrQW5UdmpYdAp2WmRWZ3FBYmRkZU01M0pHZ0pLb2tybW9FRGgvZmkySWFUNm0rdDF2OGNYSVFWb09qd0pNam53SXNNektuVHBlR09zU0p2c1c1RnN4CmliczZ3Q1k0VUZFUGJvWko0d2FzS3dlcndDQ3BmWUoyNWZWU3FaUzdpQXFwUFJJSEcwZ2FOaXlvYlk3Z0RoR2hkTVlSY3RqMUd2ODUKRDFqUTRjS0JhQklua2pDUndTdk9pYmxiUDJHMzUzZi9zNmludTZjTkhSUmRFN29iMjZUOGkyUmcwbEdQOUJMYjFlMHhaclVaekJvOApaNUhSdUR6TkdERjFmL2UzaG1VOWwxTjNjb1VOOXNaODJyTnkrWFVmM2JmbEh6QzJ4bkJhWll2ZVNrSlZySE55OCt0WWZFYVhzVGxuCjlVOFR5QXJPMU1UWFdQZkZqV3c5YVJYaGJNcmhkb2ljYzM0NXZSOUtKN2R3U3ZmWkhxdy9mejNnMFNzSGlmSklwTmgraWlSaUVYQjAKOXZaNG1vU3hidTErKzRIaWhRVTlMWWtsZ0QwRFdtSFJLZWMwcTVKellKUjRaSlJ0Y0RBSGlVRk9NTjJDaE9uRnREaUtqamw3VlV2ZgpXNTlFR1dHWWcvTmptTE5mR1pnYmthZHJmUXV4T0N0am16c0JlM0piTENXWUNhWTFpTGtkSkN4RGpwRWtDd2U0NGttRzBtQmtxN1p2CjN6NnIvWlc0b3pIL0tydjN4aThYYksxMkpmMFpNdjY2OFI3MTg2dHVBZTYrbStHUndqbkFNQ281SElNalRjM1F2R2lka0VFSTVoQU4KZ3E2c2pyK3hxKzA2bTVoMHVMRWIrUGQ5NzZRdmxDMWRQRGlDVGc5VDM5NTJXZjBDTGc1QktwMUNpa1h6Ui9NcjFjZ3d4c1hFeHhPSwpwZjM1OWpkd05pZ3Q0eUlNU3p1VkpsZHpRQmdXRTZPbzc0aTJOd1l0djRLOEx5SkIxTmlEZUVNTkRKRkcrenB2TGJqN3ZvNXdpcVVhCm9RUWp5aDNSUE5IZElhby9ZSDcycFAvaUZ5K1NBM2R3STVFeE9naUdnU2ZWcjl5OW5pM2FBU0orUVA1c0d6eWh3YjV0K1UzN3JmREgKUXFIczRiOFRrYkpvVHNwYUs1ZCs1aUNTU2c1VGcrSVIrRDFHZjBTK0lPZnpUdFNFQlFVM1RMVGcyLzAwaVkzOFc5ZThFVHNzWTVhawphMjg3QmNtWER2dFdXaUJlYVZQVXE2NUdKWWNQT3IwVTZtVU9pKzZvWHg3VmhYa1lSdHUwRzJxT3VncGd4djEwQSt4OUE2dlJ0cmNxCnJWQUY5ZEN4U1k4ZlJsQWkyQW1tVzdTZEhJbGU2ZkorakdyQXRvUnVrQ01ENTUwNE1La3hVb0pac0FDd3YzanI5bDZMR2FrVnlDOUMKcjhHTlQ2N09SSnVTRUd3YXBWY2tQUG5pQmpVakE1Tzc1QVBpTk9TUHRza2dxajJyWWpRT3JaSGZXMWN2ZU5LRkJaUk9rbk1CYTVPQwpRM0tZSHJiVjBKaHJ6QThvd2NDNUxZbTE3RDcxRXpNckRyck9Xdmg3Y3VEKzBmMjZGNGR1L3JhcmYwVDdLQWFFWWUvZEMrNFVIeW1XClkwNTZZOEo3bmkwWGJYNkpEcDFicTBnZVZuVUU2Zy9Rcjd0Z1JKQ2JIS0RmZkoxZkthSS92L3lLSHZUVVhaUW1qMkVERHhFVXRBYXcKZjRoNFFycE5TRUN2WGhySy9pRU1YZzFQNGdqUDNhNjc3M2FSVi90WCs3aFhUcDJyT2pyMjcrMW5UdGRPay9nVkZ3Y3R0VzBOUGJCegpac05UN0RDVENXc1BOZkZmL20zb2FvZlRxVkNvU09EcXNHRmxpUVZHT2hyM2ZyaG5NM25XOU92ZTlKYndNZmc3ZFd6c29PcytIWDBTCkpQZWdIOUJ2dUFiSHMxNmF3NEpteDRUNmhOdGV3L3VZL3VhUnk3R1RuYXVPdk9RdWtZS2NQeG9hVUdxVlBwL2pHcnlmL3drRWVRNEcKOEhEajNUdkFZN0RSM01PdXRvT2NmTi95THUvMERRRzc0S0FaNHVCdzhqTnIwZlUvUUJRZXBXbFA1Q3YxdjE2NjZwakRpa25ZNEkxRQp2Q28yRGpac2c0YTdBY1lWVi8xeXBuenptMjA5aS9jQlBFaGlWdmM4RVpOYW8xQXEySHZmRlJ0S1pwYmp1NW5JcERoNXVmeFBOV3puCk9KeENvM2oyd0k3dFh5bk9mcjcvOE9ldGl1Sm11UHZVZE9DSGIxK2djTHd5RWJhTEVRQjFuU3N5MGhVN0Z3N3EvQklpUzNXNmlKUTcKRnQxK1VhdmpHb0xPWVdrL05YZ0Z0TjM2VEh3WXc3aEVScXJ3YjY0cnNNazIweG5OV2ZrdlowYnBkUTE2SGRsRFIweEh0MFVldE5OVwpncDVndXlxMTVaNTlwTitTY2puWTFZUmVTRGM1aFIzckRubTMxY0dSZ014NXNiT3FCb0xEODhjQ3ZGSjBkTnUyU3UzYXp4MzhzOXNNCmc4RkFybERCWXNlQjBUYXBvT2YzOVJZd1BmajZnd2NmL0N2RW1lSk1FS3ZSY0RGMXNYY3B2L1dYU1hiSStrY1JEZFo1U084NEc5YTYKL09UU1g4WVZ0WjV5dEdka2pNamFYbHJhR2hlanVqRWhlY3hTaUd2UXY1WjdZSHk5YnVJckUydkZjR2c2YlZ6UjNYTU1scFg5bndtcwpQVDA5M2VlS3RoKy83K2FMRERoZlMxQ0daZTVUamVoT21XbHEwOUV1cXFOVDZnQVcxb1IzZEtRdEcxTUVpL1pHTFNxTFZ6VFQwVFBnCkhCMFJOdjVVc0JxSlFVOHdnUEZqOTd1alFTcGc1SU9VUzZOY1BDLzF2cVFVNDlFRUlRempGSXB1bmZja1YvMkFyUkU3Y2FnNldzUEQKdzEydUtsT0NQRzhiaWVBTWd3MDZuYzVBQ0dZRVl4TUh1MW1GUXZFVkhJU0RTVHFIUnVRaVdadTVmZW1TOEp1bTViT2djTXJLc1laSwpNMUhUYzN6dUVKdlFlcXV1dmZXY3M3Mjg2a0RSVWEwc0ppWW1keGluN3dGWDl6bjlydW5hUC8zZTJ2bit4SW5ybFlNWktESlo3N1pCCjg4S2hkMWI2M2xSMzBja2xhSXIvRjRBTWk0MU5ITkU5d1ZFN3BVeUg5cTBhVWxMcWFoYnU2VmhZa3hIeE9hU2xiUmlYK0k0Q1B4UmsKbUtNRElzN0pEUkNjalVnSEFNRktSN2JZZlJHaVhHSVZFaXlseTFQT1N4aUd4d1ZoR091eW1YU215K0FYaEhNOUFHa2paZEpnbXhEegowMzgwR0pCZ2VBVUdhRzhZYmV5QlZNMkVYWmFHYjNmcFlkVEtLYyt1NjFJN2pWWkhGOXkxTlNJc3o0NWQ1RnhQYW1Va1FHelZPT2FBClFtbmpxeU5iZXhUTGg1ODZPZVlIYkhOYnExNy9oVEpNYk5JYk9PaXl0SGZWblVsVkh6bHlSRDAxclJXRUtxaWNmdXoveVhzVHdDYXEKN1gvOHpHU3lUSkttVGZkMG85QVdLRXN0Kzc3SUpnZ280b3FBRzZqSWU0bytSVVh4dWFDQ082SStsNmU0SzY0c3lpcGwzOWZTQWdYYQowcjFOMjdSWm1qVGJaUEsvNTA2U3RvaUN2Ni9nMzc1UDIyUXltWmxPSnZPNW4zUE9QZmZjRFErL3ZDMnN1Q3l4VC9kRTdiUXlPMERqCnNRN25xVEIxR2FDektjRmt5dXFjNVZjWHBzV2YwR0xJaUhBSkdaWU94YWU3OXR5VkRrWFdEa1BpYVZpRE1JeUxhQUFpWWRMWDArN3cKUDBBd3FMaXlCa055MUVKVUErYW00ckN2VG5yUTY1dHBUUTUzZ0dFTXBpaGEvb0QvaGRDb0xLVEpUbXlHOHVoU3F6Vzg5UG85V2tzeQpVQVhEY2M4UTA4L2lUV28rL0hXUit1Nk9QVWE4YlAzNEU3bi9vTmN2QzFQeFlic2QyNWRLVlF1K09oaFJyNEZrUjRaVHc3blVVYXFvCk14TXJoTHdZWnVqQmRSMjkrbit3WHFoVGN5cWVCM05lOGxiZDlidXpTZ3Z2UFJ5VmVMWkJmZVAzSUU2NDRtRjQ5a3p4cWs3ZE9uWHEKMWwvdVQyRWFpWXJ0WGZKWG1JbVkrUXVRMVRtY2t4V1dEOVJaMFAxVnd4MVRPblVXV0VHZVhSd24yNUNlcnZ2MEYxbVd5aVlsZkJHRwpSZFFRZ3JWTENmdGZJSmk3Mi9CRDlKbjh5WU1wVUozb28xbmFBSEJBRlgzRGI5SC9NWDdCRFdXRVlLK2ZkSlduM0hYVDhNMVdHTDcxCnNjM2hoRnBWaWZpdXJ1a1JaNm5uNi8wNzNQZG1tLzdWcDQ5dTJEK0pVS21PYkwvckV4ZGhjMFhjUExYQXk3MlBybjdtY0RNaG1LYTgKdXlDQUlLZ1ZlMUpIbnZRVVpaKzZvZGJzN0M1emJMdkY0YkpZTFBvZGRlNlM2cmpTU1lWcjRYQzBKcnZXcVY3ZVlOQU9IQW9mZkhHcgowZlZzRG1Kb3oyNjI4ZnNBSE1lWC9nVWE1bmJqbFNRRTh6bkxoNm85V2dzRFVRM3FLV0czVGhjM2R0SkI0dGtvRExZV1FkSGFNZUUyCmFpTzZJTHJCNHpXMVR3bjdYeUFZRkNTTVBzeWNRekFwcEM0UkxDaGhOcVZYenY5QmZrR0ZraERzdW9PbEtjYVB2dnplODNaZDFrLzcKQkVLd1lDQmROMEFXbnpCMDhBWnQ3Sk9qSnoyMzRkWkp0d3FzYXdDWENiZmY5YVhQbUhKU0NYS240bjVaNWZwSUpCaWM2U3BBSlRHYgpJSFZGaXNkdFBYazJ2OHRCV1hGNWJZeEpKdk9CNVF6VDJWTnRFQlBmeW5lcElLcVA5aVEwSHhRKzNPRG91T3JKMmROcTM1QktVZTNPCnlaa2ovL0pWQUdzRmpkOWRkcEFyMmE5emVGVlllWGxYalZBaEJ6VXhFVDB6d1ZWU0lyZnRhWWlLSWs1ck9rRXBaaDdiZEpXUkFrVDcKbk8xVXd2NG5DRVlZZHNWSkcvMzZ6aUdZUHNRd0RDV0d1L2lMRzduWUJpcmlnNTBLaTd4clhWSmNlTjN1UlEvNnVLUnl3ckNxQU1NTwpyTXJadkhIc1ZtRmM3MGxnTVM4K0pIQ0V6cjMxNy9VV2I3OHI2a055TnMyT2I2ZjA2bDZPR1lvVkF4UlJBaGFaVW5OQzV6ZDBkV09iCndzV2hUS202Uk9hMEt3aS9iRXhDMVdtK1Q4elJPcHdwVEJOLzFnazNyZGVuNlk1OHQzSzJTZjVHUzRHRW5LR2w1UjRYMUR5L05iVHEKY3NJTjdJaGprV0hsRUttUlIwYld1OVMwZzg3VHFaTU4raFkzUkdXWDRFWlhGV2RUTHd4MHhJQnY4Q1MyVDRhMTk0N21BSDUwM0l1agpqaVZJMXVFNXkrcDRuWkpSQjNMZS93aXNHRjUzQVN6bXJwL0NkNis1K3JsQWtoVzFFT2xDWXFMc0hkWTlBZUNzclpsTDlibXgyOWd4ClZ4R21EbitFQnljemRIL25YMmluTE0yaG9raXFkS2xxSGhnSkcyS3orditVb1VpTU54cWhzYmtabUlUZWhhRElCZWQwbkxodlFYd0MKOUJUTkNjSXRaOG9YVnc1NkkvZ1BFUzlaL3BGQjJwRDNXNis3akFoZWFqMVl3K05Tc1FKSlV4T0VFWklsRVRJbFYyRFhNMkVZbDB5ZgpLMDNrRXFiU2NUM3RELzhiQ2tZMDdPUzk5bXF2cEdCVXRTUUZDMnFZTzlzb1dIWC9EL0pGWFBTSHRnREVtQ0p0YjFmc0dkTzFybUZWCm8veFpkTUphUTFmT3N6dW1QZXJtUUhuOTFxM1QzanI0VGY0b0dhdVZnOVA5VlFuYlY3T21hL3Jua1pqRTRTY0tWb25KSEtWcVhVVzMKYmlzOVJWcE5mVlBrM01ad25wY2JmMXdodmcyOExCc09GNUtEUmptMSsrZUZ2VmlqZ0w1Zjl1NjVxdFNPazJHRy91WEJYb05QMXdMNwo0cWFXczdpTWNEZmQwTU1lbHByc1pMd3FtWWExT3RYdy9GaWlZVFlkVTNMVkw5bCtlYklSaXRPQnRVQXlxcGhPSUY1WWphazlTdGovCkNzSEF2ZThhOWRsNFVVYzdRcUdGWUtCSHhPOWhGZnhGUmVjMVVqMWVISXdjd0tnY2NtTjAxTjM3YXFlS2l1UnVDL1kzdWlhWG56TkEKNXY1ZjNscDNjOThISHZ6SC9mY1JtKzF3dUtIclN6NWdCQ0ZqMXU3ZHNmS3Fqa1ZOYnlYTEFJck5uWXVTV1hMSFJSenJVYXF6cmNzdwpuR2FycXFycTYzN3VMSGZYT2Jndkt4NXBqbEpBZkc2SnlxS0sxbVNiNnRLOW56RTNwdTIxeW5QNlc3VjJhRVV4MzhGZXd6M0ZydHkzCi80STRCNEh5QnAwOWpQSDdLNUxNR3ZPQnJsWTFEQ2NYWGhsVGJNdG0wOW55Skw1anVER2RHSTYyOEhEeWVXMlJBbnBobWFiMkYrZjQKSHpFUkNXNTA1UG5kbkUzWDJrQU1ZTS94UXZuRmVGOGFndERBWkh4QjBVeTRXck1BbEErUmxYdld2THJNQUhPS3o5bnhyVmYrYVh5LwpLNzMzRnkxYUZObXI2MHNlaHZFL3N2YTlUeU9Tc21EVW0xbEFjM1RUc0lBaVJxNzVyaDZvVEpweTV2TWlKd0hZSFdjNnFjTTh0c1UzCkF6R3FGa3l3NGx5WGtBMHdMMitOMlpCMXVKNTM5NGNVaU1lNk9xRXNaYzlMbGtORG9iWlY3L05mQWpQVTdRSk5DbmJHSTdwaFhCNlMKS3l0YjVWcEQ4cGtMandINHUrSi9Sc0d1YTF6RDh0RHNGK3NidEozMHRJYUdoRnh6aFVjdEtpNGtYNmhjalg1UkxtSnlGYTFBeGZqOAp5dVltSjM5RVMyNzR3NnB2RHpRTXJnQzE2WmpYbEVxakhFSGNmd0RLeDFYOWUwZlhXMzErR2FiMS8zUEdTQjlreW11cm1iUWtjQnRLClZNYTQyazdmSlhOeXdheHM3cVFXYk5Cb3lQWDJFRW9UNGdmbVJCTFByRmw5Nm5pU29yUmhYMFMwSEJZQ3JIQ3BJSnBQUEZ1YUh2ZEIKekxqYVlXZWYrS1pEV1hpNEZTUVJDNnJZd2VldjJkOW9mUGF2NkF5RDdCRjUvYnlNVGxmWHlRRVZ3M1ZockJlalMzS1pLRDhieGdJYgpack1seVE4UUd6RU02L0ZIRldkelFuUjFvaVhHMU81c3hQOEJmaTNFS0VUZU9oejFTQXQ1aW8xbVZvVTJuS2h5Z2VCektWU3FpMUF2CnMwckJzcEcva3IrelJ0RTE4VE5pa2FGbzdRRlROQXhhazE3MC9HT3RObm1MM1BUTzI5Y3ZMUEQ0NkszUEN3TDMrajBMdC9oN3B3RlUKOThvYjllYVZlUWtBOGRXZ0FSTnQ0QUVLK3lhK015V3BNcVZhaW51WXdQUVJSRmdpb3FWcEpUQ0VDSXA0YnZ5aHlKSnZHL0lBM2xWSApsc3o5VDBvNXhOTWh4RmpDaDhDellIRk1ZZEZmSlE1RHlaOVpLMDNNRE5ZRVdqTE9LNWQ3dTU3cVNGZFZKa3ZQeVJYSmNOWEd6dEdRCkNsQksxN1FydEhjRld6aXV2N2pyWkNyeittQmtnSmRBd2N2bEhKM2FqaFZadGw4RHNRMjlGMUF2MUMvVkZYR3hYakNYR1p2TklSQVoKMUNmSHhyMzdCb0IvYVltaVVRMWpqa1lmdmFhb1ByOURheWVzU3FmakkwcEwrMjBlNnNFSndaeTZHNzJkUHVZVHdkSmhwenpEVWFoaQoxYlZoTVRtZG10ajQ0dHFNYUlXQWJuOVUzZmlhNnFScXBpSjRFRmNFcUVETjMwRnN3MmZMY2FuUDJkS3M0NStxK0ZxSTA4cnlTcGN0CnZiL2ZHUlN4Z0lwUkx1YzhuTDZ2NnEvSW1OTEZqRWdXMVI3UmI5TnFQUlVkbWhtM3grdFJRcUlEWlA0b2hRQ2Fla2pPSVQ0WVQ2NUkKRXJsV3FjUUxheWd1aFpqeno4WDVOMGI3SnRqQ3dlSXZYKzhxdVl0NythNXZnaDhVU2RhQ2N1K0YyUVhvMmZqdFpVWTZzMUV3U2tJUQo0QmtVMnNGVm9CVmRhcWhRbTZETGpkOUhtbHFIRVhWUU5UTi8rTEc2TVQrTzlvYS9lL1NVOGJoTkxLK0w4d3h6K2piM2hLaTRwcnlHCnVqRXIxZjQ3aXZtNklNRWE0MnE2bE5xU2JCTUhicENHeE9Kak5OeU56dGNHa1JpSS9lTmxZdytsZnYxeEtVRGM5bUZGWlJaMjl6NmsKV0xpVlVndzhDc0l3eFpYSFRscjYvUVY5WWU1ck95ZklHM2IxS1ZJbmV5Tk9sU1h2THBlSEU0YnBOTWd3aFJ2VWlnUlZCd0NoT0J3aQpVZHJLTUpDb2NGcWczVTIzMHA2REhBdWZ6OW0rZUEreHF0VFBUQXQwTlAwdWZtK1FKYmtMbWdsdzBVYkxsTFVhSVBqQjdlVEI3UzJQCk1GR0RidThMaHNLWExBQ1c0UHM0K25MNGtYRGh1MjVMUDFxYSt0N0o3eldPVVREZDAzSG5Fdk5zMkpuNEpocUlFbHA5RzRYYTFSencKQm1iVE14YVFmb0JPTnd2d3VJbndTeEZQTE1QbWwvblREVGpiMk5wRkVlWGxvRnE2ZE83Y3VTa3BLZkh4OGFSSndOblNMVG56LzZLKwpzR1NjVWJkWkhZcGxuRzZvZ0tZcWlJMEZ1VWNIdGpBSERta09TdzZNSVVxR1Nxa2RhWGRvdndxMmNQQytraDNFd2hxZGNlcm5XejlzCnBUdS9DWlF5OS9tdmg4TGhFZkZ0b25lWTMrUEdLa3AwREJsRm41MUVjaGFWRXdrakFnWWFTeW5reDR1b09SWjYxeHdnTnVJM04yVGsKemYzV1pyRVV4c3daT0hDZ0tlc1FXQlF6aU1lVjIydTNzdzQwdlFmazNnbnAyWnVDQ2thTXhCSEZWM2pLbmo1MjdPbUJ1ZVJZZUtSbQp4UTBSbEYrZ3lkYktzblpvVGc1Z01GTzlOaVBpWTFkblJsQnh1L1lSR1RzWWxER1piL2ZpcjJ1dGYwVTZ4elBIdWtKZFJaclpiWTQwClYwQldJWGdiVWlLOHlpWmRIUjBzNUpaN1FDT0FvQ2xPRXRSeUw0ZzIwSEVSK1JFUjdXN0dzUFpLc0lYamRsVGxZRWJPYU9lSURpbGYKMnkvTUw3Y1BnWlB2bldkdU1BV2pDRGJGbEdGU2Z3MmhtQTNyMm1aVUVvSGI2QWwzWVUyMkdLK3RFWnBWTHBmS29xTDhxc0lhMTAxRgppbDhhWjJkbjU5NDFFTmMxUXpYUm1KTHlEanNyK3U3SDQvZXU2NXRnaDQwYVhZQmdHWTFSalhwL2ZQZElVL0djVDhxRHJYdnowZTBiCnNQSWIzeWZlbEo5VnVGcDJSVU1VcnRjY3JxMHY3dS9IcXZ1RVkwaXhZRVN4MTh4OWpVV3QxUFl5UVhmRGtBWkdVNWprRUNGU1V3aWQKQzRkdmppQ3lhMWZxaUkwb0UwRXBLajBld2pDNVNpUVgxSXMrbVUwbktHcUlVTGN6TDZ5ZG1vZ0w5MnpKeWFGTE9XUFRsa0hqaGZqVgpkdDdZODh5cklnOG0vNkNwS0QzaEF6VVdkWjg5UUJaVkwyRjFkb0lGUmQzVFZVL2lrbVFuSmtJVlZDWHFzdlYxQUovY0FUaWd3d1NKCmZZa0JCN0R6cFB4TnVoUFdQWDBON29nT3ZJRENERUl5NzFNMVY4OS81T3J5OUtDMUdWMVJZWW8yWVFUUmxEOTloOTcxRWM1a1FoQ3YKRW9kbWZwWHF3dGlOU3ZYZVVqUVVwZGttWGlxYkJVMnZCWTk2MlpDWkxOZTdyVU1yUVExdUt3dzFRMFVEbkhiNE5WQ0ZOUjdsZ2tETQp3N0Ftbm9jdzZicWl2YWlCTHRoYXRMT01xWFpKc0lXZjdnblFDMkR3M29lbVlVcnQ3K0hYaERwM2hZTmNKeDJDdnBLOHNRRFJrR1V5CkE0QVppN1NoRC9ZUVBLVTB1Mk1rZWxIT0paYjd5Z3MrWDJTc2dqdUFEb3RKakhaSFoyRXN2WEh5ZlQzcE1kNkVGZkJXS2s2ckp3SDUKQmViLzNMbmFxZWwrNHJGQU9hWm9pSTVHZnZIWkFOUEJVN3BvQy9IQUVnakY4aXFTdWlvWEx4VngzaGlHa1p3eGlXRUsrQW5Nd1FwVwpsdzk5eEdhbzNCV09aamNmTGhWK1BWeDZyTUV2QlZjMzhGaTRBY0thbXFScG1ZREhZQ250S2tsTkRlVXh0ZyswUTRJdFhDamNGcVFYCndOZ1o1bFBuMHVVY25PL3R0dXMwakRVdzhDTkFNVW5BNkI4K1BJTmhEdXM5NVpST1QramhLWGkrbnBLRXNxeThuQ3o0anIrNzZDVXMKMHFGRTd3MklpRFZDWStHN0dWdXcvczA4QjJHVzZaVlhXL2ZIWlFBL1l1T1dsU3ZTR3cxYk1mVVErUVdremNlK3NDR21MTmhVZHlJOQp0SEdmUmR2aTN4eTY2YXdYalVSVXNhVVFZSmdsT2dPK1dSN2E4UCtFWmVldStHMklXQkJBVGg3VU5pdkU2ckZUak1CQkdJWVN0Z0dMClVOSU1leWNXOTFMTGs3dlM5MVB4cjMxSldQc2oyRUpoeitMV3IwL1BQdnA3QWhZMER1bTRZa1J3ZmNzbUJMS1dCSEdKWWlFcGs1NGkKcUlUMW9JSVZFd1ZmOG9VdlhRT0YwV0NSck1hMHRCNXBrUGZ1L0plMkJRNnNySUpOeHBKKzQyL0Fnam56aUg3MVZDY0FNODEwSmZsSAowclFPR0RMY3dGdmcya1UxMHlZdURjUWtlWm9KUldPSm42azZMaUxrcFBwSE5Nek84QjV0dXRNQkZnc1FGYU1pUmhuMjBwQ0pVSUxFCi9oT0FsdkJGSXRZclQ0TjhMKzMzSG9yenc1ZVdOdEJCQi9WRTFNYkRkaERRbFkza1FHZ21EQlBDb0NzVmIrcFJ0aXUwTzRJdFZHMXYKa1MrMEVEZi9YcHFHeDRPRkJVbUx6NkJyUkdzSkJFbld5bTdVTkNvb293SUVwS1ppeUY2a0d2Ym9XTEpRK2cra1UvMWlSZ2Nmd3dOcgpvcW5tZ01XbVN5TXR0U2F0aDVpVDBPdjlvelZLOU1HK00yY09IWmhSMFRNL0g4MUR4QXJ3ZmczR3dKQ3VMMUgrdHZObEV6YmRjaWJqCkNBcVl4RlFGc3VzT1hFcVk5eFd4d0pCZjFRblZjSmc4RDcweXRuQ1VnRlNrSWdZU3d4UVJPM0MrdnN1TU9jM1FiQS9JRmxxS3NKYW8KVStscEltR3VlcFF3OGpFRUhOcUF0Y1R4cFp3bERGTkJGNGlLYW1uSzJnWGFIY0ZVVDRZcVZDTzBvdy8vZHJvcjVSQ2pJcXhpYVprTwpSUEFaM3c0dHFmMVlYbHNTdHhhUlF6RUwwa3lGZVQvejhzb2pJaUxLWmYvSyt5QzFxQWlpVFNFdkREUU9qUk9NOGQ4MVJKL2V1WFBuCjJZMlo2dlg5ZDFEemNMcDByQytpRW5PK05iZkVMd3RKSzErMkZoYjFnMlhQTGcyc0krVEtKaExXd2JZemF4UDg1MTdjUFY4S2MweDAKK2dHK3ZuM2NncklJQjRvZEo1VnNUaUYvbGc1NnFQeVRiTVNMeFFDeDJGcXNqMVlUQVNPdGo1ZHc2SEJCS1RUQWFWZURIK3V5amlkRwpJblhEV3Jpa2dxNlYwbnlYN2N0R2JHOEVXMGpEZHkwWTVLRUcxZm5nZGhPcUtIa2VaN3IwMDlRcGFTNVpWTEUyRzJwSVU4c0UrRVczCkNIQU14UXdDTlB0cU8xa3E1TE53L1RPdnB4UXZNVGlyQjBjVENiT1VRNHgwRUEwYkQxenN4dExObTVkdTNsZjAvY0F0Ukg3eWUwSWUKNmxEUGo4L09jQStaOEZ4eTM2MC9FbHZweTJlSStRU2oxdmc2bnFqdGNuZUFndEUwVlQ0YmFJVjNsUm1uQStxSkVvWnpCUmtYajNRUwpMdVhON20wQmgwTXlFMVZMNTBJS01STDlLdkJJQTdjdkcvcEVFelBYYXZhQ0FaSmloeFo3QVFxdzN1OWhvbUVOZm1sQzZlMVl0Rmh5CnhTZzhoR0ZBSkt5OW9aMFJiQ0VHRnRxQTYzWHVHZ2x1V3BGYXllSlVZY2d0a0FyWUJ5WkNiOHV3WmxiYWdMNHJMVkdPQmJVTWFYWVQKcWtYdGZVU3ZVaDY3RDFJK1h3SjF0OU9zZHFtUnpnTEtQUUloTm5aVWJEVE1HMFhFcHlkaFNENCtWT3Nqa212dVhEK2ptcmtydFdJLwpQSU1kWVphcjd3TFpXY1BvWnlJb3VhS0JWK0FRRllwTm5zeTRRL2xTQUJLbkhJODNweG5uR2lPZS9lckRreG9Qb0lnUkxVU0dFU09SCm5LVDVhR0MveTRRNXhYb1J3aHR4VVZrWER0Wnd0aVh6cGFGZWV0Nk92NmpZMnlXUGpEQU1VTUxhbVkzWXpnaVdjZHU1YTM0RFVxaUIKWndtOVdyaERKK1dUR05heUViSHVsTGlTNmh1MnVyaUU2NUZka3BiaDMvRVg5T1JHZm1BNnVUbFNDTmRzMzZhYUoycDkxQXZETkdPTQpOOFFEN2szaGdEY2x6NnVhdWxIUlF2VXpjcWZ6VXdVM3U5ZUN2bXpLSWJ0LzNYZWY1OTdiVkJUMVJza3pnTEg1YUdvZ1FuejhmUmpMCmo2eHVHcWFRK0lXSS9ibDJKVHp1K2I0Z3dVQU9MVEVzMUVqZ2h6b1IydlJ5WUlEZzlXcXhqcENSZkdiV25BYm05M0ExTVJJUGJ6eXQKY3NWaW1JTVFLeERwZ08wNGp3WFJNRGd0U1ZocThEanRBZTJMWUF0RHllZS9Ca2JIYVlTY0x1SHRwd3pSUzR0enlPclFWTVNCWG1TRgpzcldFeVZoV29Nd0NkQlhvQXQyclJjdlF3Snc3bWJ3b1dqZ3owUHdlWDZJdjdBN1N5Q3hrV0N6RXgyS0QzYmV2QS9ubG9OU3JyZ2I4CmlUWU9yWmx6dG16cVZJRC9ESEQzZS8rbExjYmlsZlAycTgycXJpOStrWTlPWEtnRE9vQ08zYUhWTUsvcStQejVrV0NjLzh1bjhZeEIKWUNuREFoS1dBaS9OMFdMczduTGkzN1ZlY3pIeHZ1UUdqR09RZjYvL2dqUTVCZEpvRkpjZnd4eklzQUMxbk1CdklISW1UMVJKc2ZyMgpGVWxzWDZsUzQreTd6bGt6a2lzNjZxVlpVRFFFU09Dak56M3h2aFFNK0Zra2tsWmg1NUJDck5wREZRbWJmSTV1aFJkSDA2aVdDYURpCk9BL082dXdTMVJ4TGxyQmNhRXRzbnh6SEQ3MHdZYW94OTVaeG1Qc0U0YWR0bGoyOHhxOXRWcnFKUDFXWlhCZGJSMXlPdnRzZGFxczMKV3ExVys5Vk5UVmx4Y1hIcU9MVXhkNVZKMkZoMDB5Y1A1RHpwZm1TNjlxSHBYUWJPVkt0aFNGaWFlVWRFdE5xRWtUWWVGTmt3eEF4ZApyV2JCb2xja1dpRXIySUhjTWVwRHdXcWN0K0RCUnJuYVE3d3Z2MCttY0tsRUJvU0JCNjNXbjI3ZUE2ckxXam5nQld0SGhUdWx1RjZkCllKTXhFVlZ4OWkwcnlWcWxLY1lTNFV4b2lHUTlwR1ZLTDhJdHkxSmhPNUV4UVo0aUI0ZlhmMXFOalpGVC9pZDFLL3ovQWUxS3dSWkMKbXg0d0NtRlhMM2ViMEo5RUM1NG5hb1dUZ21tMVdxRUpLVVhnNGtocnkrRE1wd0c0YWZpUDQxUXFPOUVEQklDMGhKSkdnWnNKMUlMOAo1bFVjSmwzMGNzVThlbjhjWDJLQVU3VW9QcEtteGRJdTF1M29UVVZUYTlSZkVkVGJYRTlXRjk1UTNuRnhOZmVLdkRrajI2NU9qSXhVClE3UGlHYzFPSEdTSitzVmpyWUFoa0dZcW83dFlZd0RESXhUUnBzY1dlMEQvc3ZxRXd1N0J2aWFXcGtWUUNRTlFQSFRzb21jMStuTXcKNEJTb2l6RUliNFRhWmxZT2RkQVJWOXVvaGgwbUV1YlN3NFlOVk1PYzIvRUJlRlF5dkR4RXZScmFseGZXcmhScytBNU03MjBEWmNiVwo1QkxxamloeE5xQVFHR20yYzYwQ2IwaWJvQkdCWTBWQ0ZiWENROTZnYzhqaVBxQUJuOXlqd0E0emZDVFBJdVBCWlM3b1RZbW9hd3BVCk4vSG5LZVJXQm50ZUduT0czQ0RoUDJoTjBEQ2xtbFUzWTgreE9RNnFSZWhiaG1Ma3A3K1YwTTNpdGhQc0l2K3MyOE1UN2p5b2ZtYmIKdGkwS2wrTzFleldNbzA0WW9uUlhOVWVEcWJsWnpjdmhqdHlSU1Bpb2sxRitvbUIyUXcwUk1JL01Jd1BvdVMyajhKVDZ4Sno0V3VvMApDaHkwU0pqTXF1MlpYd0dOSXk1amRha1BOREtWRytwazlqaGR6WURtWXE4MmR2bEIrb2E3aVdpWXg2ZFc4OTRpb0FvbUNGVkUxdVVqCmlxbzZnYVpKR1FGT253ZWdwdW04MlRWL1M3U25HUzZuZHY2MWdBM1dXcTk0aHdsR0xTQWcyU0tsSEt1bGsrV3hIcVZESzBxeWhaTmMKMnVtN0lyNmwxSUJMM2hKS3BudEtoOURpQktqU0pLaDBNQ1ErQVdzNGcwK0dSMGRoMUs3SHpvZUk5N0YvdGd4TUdLalhaR0ZJZ3crdwpDL01XdXAybWg4UytaYWVXT1pGNXA5MWNDMkVaMm44SlJTbmdUbm9nWm1WbFJiS3pLRDJjMkUzSnRGaUFqV3hwNlZMaUxPbG9qU3pIClFaWDRNMEJ6dTdwdTBQSENqRERXUTJSTHdQTWhuTmRFZ09CM0thQzhQS1h2aDlDVm50bmxRYTdKQytwbXVSRU00RTh6TjZhb20yZFMKcTVrSzB3U0l1c3FVSFdQZVFGY1E4UnF4M2NtRGt4OU5KS3plNVc4QWJpMU9LZHZxY0g5dnRDY0Jnd1BucmdEWTg3U3dNeEN4WUlQUwpJZlZnMlpFazVBS0lyRU9wY2JiS3B0S0NEV2RNUjJkTTQyQVZBWDZKbEZjMFdSVVh5ZDZFaWxwcG5KWmRTMjVyUE5vZ0VkdmxtcGVQCmRyb1g0UDNsb0ZmVWpoaGtra0U5TWl3dlM2cFBFWnpQdGh0STVNTGJERXJUUm85OWxHYVM3NEcwbVc1UXNvL3o3M0FWeVdDNlprdFYKNVh2N2RpWS9UVGZkQ2V2K25aZGhBVmcySmNBdkQvd2tUMDJ0andzN01qdFA1VExldEVPZzFBYzY2VFJDTVEybGVka0QwcXRMajdsVwpuSzVHWFJFSGhpcUZ0VlpOdUJiZ0Y5aDBtYVdwRGFldm9NMFIrZHc4NzBRajBZa0dzRmRlUld3RUxLdU5hRGN6eXJZbmd2VnZYV29tCmdORjdOMm1IN3BYWUVacXBtYnpTVWcwaUgxOEVSNlJEbzVLNzBTRURUbkRoUk9ob1AySjlvMllPVFVHcWJpeXhCUEVvYUZzR0tVYi8KMEN1ejAwZUFGWk44YUtUV2ZLYi90SmwxbWNIY0orbHdYcGFKeGdBZG1yeDQ2SHVDRWplWU5lOEJiTDF4S2Zwd09peDV2SUFzTFFGNApQTE1BbHJ6NCtNd2ZraUcvenliQzJkc05mVXZLT2toN05aa3hiMHBmbjNXSWNJdjhEQnQvS3JjOGR0ZDE0eHNYM0hvR29nOVpvOUFMCkM5WUVtZnNmc3ZWLzllYWk4elErbHdhNitSZzB4U25YRXF0WUVPWE5VQnc4R1JwS2hGUndWYkxxOFNoaGxHSEI5N0QvK1hRWGJCYWkKTW9PTS9QdWpIZmxnejdQTnY0clNqM2FPdUhxSG9id3R2M1JLajFRK1VFQitlWGp3ZWhWTldnSDhqTWl3b3NCNXdtaFlSRkRLbFdvWAppSDd3KzhsYjlBaUIwQ0V1VVg4TWZiTkEraURaa0lFelU4ZlNPS2JMNHJCak02MXRYcnJjRytGalRSb3NTS0FWRTJpOG5LSEdYZ3cwCitLU09OUUNUT3JLSVAvN3c1aVZqeGp3K0JzWmtqeGtqUGpGemU1VHoxS3pCeXovMXlrejJNemVadThKSm9uU1pzVEpIbEtVMHIyaDgKWitwd0RuTW1mbHZKN2F5ZG4zUG9sazk1cmJ6amhKTStRQzlNMURYVktHSGdRYXYyeDdBeFI4QnFEWnptcGNhUFRoRlUxZUhWY1lsUQpGT2FLdDNiMFJqN1lFaFYwSy90QlFrTUtIK2NxUW9rVjVKSUZqbUZFUTVPTUkwNFl4aEhia1JQV0VqSDcyOE8rcVUwV0ltSzBjeXozClpPK2pMdnlVZnBvS3hiS1lQS2dsM3BmTGhmenlLNVFZY1hObzhQNURxZUxBcGFVOVhDSWZyaERzd1Nza1VsN05EQVExeURJK00zNTgKRktWSEVVT0QvazhPbHNlMU9nSFRpNXAxRFpXeXdkSDFOT1dZTzRSbE94aGdyaUF2VHZKZEZNRHpOSldMYUZ4NlB2djVrc2NmUndWRApzUE8zOC9uaHIzOXdlNGNuajNGM3A4UEdhOHNvb1RDSENpd1FvNVFjT0lDem0zeXAyYmRla1pMeXJKVzRreHlzRFh5bG1xcXp3d0V3CmpWRlJyZzBZdDVjQk9vUFhLSzhnY3NTYXFrQk1xNUZEc1F1Rk9mZzJzWUlQdytsVHRLRnBsY1htM0M2dm93WnorK29GYTA4S3RsRDgKN054Vm8yVWpWRXR1KzhVUjNzUkpUaFhRNkFTRlFLMWowVzlYNEoydkFZVlZGUWlBcUtnMitjUDlnS1FKQ1I4ZUlkZnZaOUdQODJQZgpNcTZpeHd6Mmh0RVg1Y3NVQ3hNNWxUNWFHNmV3ZzJ2eWx3ZVgvTnlVbXRaZzBpakkveFlWVm1odTFrRHRzRUxTVHRmM3JwZkpaR3lnCkZZK3NpcW90Z2MxajRIRlVzYTNid05oNy9kZGhWOSsxN1pQeDJRbjVaUTVYSE5udVRMbld4RVFaRlZtd1kwdzUyV25ZOGwwcFpZcGMKZmFYV3VPa2V6OEVNZFVkZEdiWVNmdUMvTmNmVUNUQjNDOWdmMGVRQVZxaStISmlWYW95WDhRNTduQ0s2Q0J3dWNFZHEzbXZWT2FrMAp5UzBSTlFtZDJiZ2tTY0tDSVNSNUIySWl5c2dyWjlkQ3FHay9OYlRiRDhHR2krZDJNbytXRFJLcWVyN2o1THc2TzBlN2xDVit1WWhkClJud3JRaWVmMGk3TmhhSm9kdWdZYXZkUjQ5SERoRkY2VVlJeEVzTVlTUVdrRnpRS2dsc0hlUldBU0VUTXRUWGZLbzVsKy9jOVFWVHgKVk9UdC8zM2swTDR5elpoS0wzZkRzTjY5ajVQN3FObXByaDNXbVdCNzcvajQrSHFaVDA0NXBxNWlPbFlUaG8xNWZBbDhYM2VxNDRJbgpCUDdGaVpGVHhRWkg1NzZyS3Z2RlZic09BbU5MOEVRWncvU2ROb3hKSXd6cklMeXlzRmVCT24rUTFlN3J1L3FXVmE2ekhXc1ZBbzVyClZsbDQ2SEVLY3ExZzM1RytEL1NYeVVTOFBWcERmRU5ISENzN0ZSZG1qeFpGODlFTnJmcU4zYlM3dVlhTkJMWUlFK3FSWHlOTHlRT3gKRVVVRld0Vm45SVdnTEdvMzAwQzBJeFB4WENDLzZ1RWRISC9pMER2OVdtSVhhakd5UVVOWUx1Q0lWZWYxQnVZYUNzVHgwZEFqN0hPcApWSzBUdlNVRVBUaHBoQ1lWTjBuaEF2Wmg0SWx1WWExZGZuRGxtVVZrbVpoSHR6OGUvMDlUcFhzUWVmWEkyMi9Qbm9mbGhSc1M4Z2hnClluejhZY2pPVmlqUVZnUSsydGwwVlhjZ1ppSjgzNVQvNUxHcm9jdTRUSyt3c1VFVU55cFRKOUJqTS80d1F6YjBBamlJTmFlSkIvYjUKSEUvaXBMcWg1VWFBbDU3Tmhla3VrUEk3UlBQYXQycWo3b1Y3TVpwL0NPQVd1dmFTWTBDYXNkYkwxc2FCSVJvWUkxVElrNlJlNWhCcwpRQXpHMHNQZzBvOG5hb1VSanBIYllDU05wQ2JTa0d3eXRLc0t2KzFJd1Y0NFo0VmhoRkIvNmh1Sk9kNXdya0gwYW9sMjBhUmRtcmpMCitFTHo3V25NS21YQWhrUnR3bGFIY2tWTkF4Z2hHNUV1K01ndjFwM3lZOTZpM3o4emw3NUo4NFFwM0ZMK29WUFJYYitSdkFvamlwVDkKczFXNXVyUy80Nmd6QWc0Y21OUDcrTno5ZGM3MHNMRG1vdHJhWVZvdDZoaktHQWk4MHpSSWthbUtLYW83TlhiRldWaVh0MERJQ1kvMQpWemVwd3hLR3hrRVRISzdabjlxZE9EZ1dTN2ZqdWNSRzdGQ3l2OGh3VWxtWmFMV1RVKzNiUGZiOVdaNUtGYWJReWl2MXoxU2tzSWNICmJJRTVjNzV0aEFsYmd5ZDRTYkhMcWdsandLNWozRmE3WG1PUGQ5dVN2bHJWWmd1M3UwbWVDcG5sT2w4SkVBRWJXVm9xRVNvOXZzNUwKVFVTMmM2RlMzbTVzeFBaRHNIRk1JQWdnWWJSaHJDckhsQlBzMy9KNmRXNW5zOXZOK2xRczIrd1JCSSs5bVhoZUFmMVNzSTRnd1NRNwpNVUF3cWI4bWFDTksra1Q1STFWMmM1T25ZKzdXWmQ3Y1VxWWpQVXBhMmxFN2RGeE1uQ3JJM3B4eC9kNkdxRHV5Y2lKRS84SCt2V0hnCndQUzR1TGpOaEdVU3grd0Jpc25sUmR3d1YzaVo2Y1ZYcS9WeEorOXpPT05GNTVhNnVyaXdHb08vaG5teHJGclJPWTNoQkF2b2U2eWIKZFJyS0xTVU9WanlWYURYaWVlMmVkS3IyZERYdytBbkNSaVpvVG1heWZXVmJvT2ZieDBFLzVyS2tjcXkxR2JWTVFtRWNRMXFMTUYrQwpxUENxRDlSTGFSd3RJQXlMVUtnakVwSVN5d1JJTFEyc1RYZUNvVmxBRXhFSzFlM0hDV3MvSnFLcmY1dVhPV081Rjd2dWF0Vi83SUJJCnZWN3ZVMW9zRm9GWCtkVDZTRTFvUGt0SGFOS2Z0Z2hHUkNobXRINGg1ZVVIN01WZ29uNmd5b0FmeGMzdmhBZUlrdGdsVmk0cDZQdUkKKzVTNGNYOHBhZFBRYUZVbUprTGlvOU96SUtHaGdSaUx4QlhMeHNIS1dLMTlUWFVCdkh5VDJmRCt5L2NSbmgvb1pud29DdlNRSmI0TQpSMjFLems2amhNVHNxb1dOdzRhZFdjSE5tMmhPa2M0SndETCswUnFRcW5hYjVkOEJSa0VBakhBOVFBVG1TVjV5REVneEdoaGpUVnlpCkFhSnJqY3FhMm1hSTdJamxETm9DNHkzUjlubzlqQ0FMSXpHWU9KS09Ed05zNUxLVDE5S2xkcEtPMkg0VTdCd1Q4ZWxkSzI5K3ArMkgKdzFyMDRNVjVpQnhlNlVVQUd0R0JUbGdnV2lGSkdIYlZxZ0taRnBLQ1hZR1poZ0VGQ3kzUnQxcUhPVnA2c3lmZGVOQUM5cnRLc2dHNwp0dncvMzNaZzNaTyt2Wm1pYk50UTdzMnZyNGIzaDRCT3A2NnRBNkpqelVWeHhFZE1yQ2VIVk1pcy9Nd2JvZU9pR0Jma3hxNU9mZkxnCkovSFRiWVNydTBYUWJiNy9YMDJtZUw5QUdLYy85Y3RVM2RIdHJwL3JueVl1RmxxSUN0bU9NZHRxMVRJWk9SK3VzdWNzZFUyc0ZtUmIKR2huUEVVaDd2L1U1WGlvc3NNYjVGZWsyMXU0R3M4TWdFL1ZFd1BRdm43c1Y2UHFCeHhkL1JpVVhxNFJVS0pYTGhWSmkwM1p4Ti9tVQpSTUtxc1NNc3ByMUkyUCtkWDFNNXYrL0hjMWYrRlJpZDAycFp0dGQrdzlldDlLc0ZRZFZxZ1Fia2JMREc0UitCUDJSVjRnUFRpbHNVClVTL1hRR0FrMXVOMHhZc1ZqenhHckU0NUxDVzMwUDJKcWxkZ1BrRFdLRnIxcHFlcE9pdmVtSTBPblRYODlPMlE4bDFlUXg1a2xlUnQKTkVOY2w1M2RBS2ZvSzE4TkR0KzI4Ym5adkJPU0dqcGFiVi84TXFCUG40VWZsUTh0bDZLZmlnV0xCeXhZdk1VcWdtWkVWVU1TL3RQMwpVNlo5dHdhZysrVVkwenkzcTVIbFBGRGJHMHpSUjhqbnJJbFNHK3pQbmJzVlJVTXFKQ2xpcWtmUWxFUW5CanFjRzBiSDBvdFZNWEV0CjVrdGRwbTZGUzQzL0c4RjBrNXp4ckExMDk1azIvdlhYb3hXL3dEbFdxRDkxd1hxK1FUUkdOSU5ORi9TK3BOU29pd0Nqb0FOYUFtakwKTGxETy9TL2gxMnlZTStwVG9QbFA4UGlqTHovNndwTS9ZWUp3NGkxWVJVcnVmZFUvdjhya05jeERqaUhGc0NUQWdmRFRweUIxWmlHZgpCOUhHdDJwQWYyK1M5aURsRitDWUxtbUdDdDVaeVYrLzg0YU02MjVlZDJhNjVibkhKWDVobFp2OThGR0V3dlBZS3gzVzM3Z3NPZzdlClY1VHZ1dTBRR1BwL0VUeXhTNGo1dXcwMThjb3FBNWlnS2o3QmhLczJkVHhmMXRQNlRJanFvc3J0SmhkZzIwZ01JRzdEWG1lTXpVaFgKTWFyOXhCSC9HTUVXZ3NxdWRUMGZlS1ViSFlabCtKTDlObEROcXRvdzVrZmNBSUx2WG5ZTWJwWElNWmJiMmpVVTRMZ2cxT2RySFRqaApRZ01OOEdaUXR1WllLeWlqVmhOVm1aOWpUYnJwQlk5VFRTZ0VLdC9pcVErOE1GRHNCSEJ5OW9kd3l3cVYzTXU4T28zWVF3QUdXaHVSClNCWVlGVk52aHo2TEc1em1EVE9PZlVhOHJkbUpkcnMwOWd0SHVtaWtzY0JPSGs1NmE1TWZ5TXJMR2c3TC9sMGU5TUtNQ3hhcnYwcnIKNUdtSTBDK3RqVDU2STY3cS96TTVuVXVZNnJ1ODZuUXZPZFpNbkZzY0p5WUwwVlVHRTNnVkFubUlsNmZwN3o1M2M4Q2MzNExNdzNBVgpMdkxPYllHVlRwclhFUWdvdFIvOEFZSXR6S2pZUWxWaWRIOE9XWFNUU3Y5VytHMlFWNEZkRnlibExPVllIeXlDMGFPa2R5OC9Sb1FJCk5ucm9zOXBiTDFRdnV4WFFRa1NmT2loaExhQlRiUVh3V3hxZy9EWEZsTUNNSitTWS8yWDg3R1czNjZQQ21JbTRkdHZaSitQdS9QaUIKcTVaMG95YjFMYk1uRVlZUmNyMTRKK0ZZZ0dKWmNPL1Z5Szlxdlg3VSsyY0FVbC82ZEVJdzF2SVNQdHlmQk5raUZHWnMrOG0xWGcxNQpVM1ljN3ZOMjZTZHY0RnZ4UnBTd2VwaWEreGh4R05PaUVtL0F0WjdHSW9DN241SU9jUW53MnBZRkNzLzExd0FNdU8rWWdhdElxVW9rCjBsVVRUeFJWVk1DcWsrY1RNSXJEcVZkSUFTQmlIZ1llNmlRYk1YbmlXb0RNZ3ZPMWVuOC9YRHpCbnJmZkZsakt5Um45K0JKNEtIY1QKS0p2ZVpyVzNZZk9hREx1emFDQVlLZmk0ZG1ITGZwY0x6eisrWUxHME5Ob0pkek5mWDh5RVJSU2FScXg2Y1VFRW92U3RFUG9IdUJBaQptYlQydVNlSWZmZ1ZveTYrc3VmV1lxaW1WcEI1YURmN0VuZzFhZExQeTZWTlhhcjVyM3c5elFTUFpzS2RBWXBCOTZzaGRmRmpNd0JLCnRwMEIvVkxOeDdmWHdlWlJlZEx3S1pESy91YkJ3SHZZdVIzVmhmNUlJL1RaRVFFUkR3RzhBVWJDTU9NQ21QMUs3NFpGRSs3dU45cVEKaG1tUmlzRUhJRDB4dVB1ZmpXVUh4bDhUVXovU1UwMXMzbUx5NzNyWFlIMythQWN4RUVuallkQS9jZTRPRkNoaHhBcU02aVluVHRnMgo3R25lMW5hRDByWXYvOGE0NkNqaTg5elRMUzlLZGcwZS9tT0JUUEFKMFM3UGdVT040K0w0TDRzS2J6OGl2Vm15aTVtMXBXWGp5NFh4Cm5sM1NRc2xkM0FIVHlZdmxGeWdZaHpjWUZHN2RGU2JpcGFGaFJHcTNCSTJYVUJTeGJXZy9ORmFhdnBxeHBoRXk5cWg2alB1eDZHQjkKdlIxT25Ucmxja0hUaWFKWnc4cVdINXVZb0FDN0F0WThrVHQweU83ak5ROTlaNHJKemMxTCt5SDdlTmRUeSt4eGQyazdRcjR1OFYwdwpmTW9ndityQWp2emFTbys4RzdKeklmRzIxQWVHUnVWTnFvYUc0YXNHdnJ3bisrZlVIKy9ha1VnVURHVFAvK1BWbTdzWFRMVVZsVFJjClMzU2lLbjEvSTNTOFZESEUxOGJOY01aVWpURHkxMng5VzFYZHBSSGNRbUl6Z0VOT1doU0JrY2txUHo1M0R3bVlNYVZNNkN6bnhDcGgKSkpUaWI2azhYZFJnUjVpeGc2MlFXTTN0WkJxaml5WFk4MXMrYVAxeTNPaXZ1cFVESnhNY2doRGQ3RDE0OElBb1p3NTlpclZORUNYTQo5QjJ0Tjc4c2lJaFNsdENGY1pYdlR3aGtjRndFTk1CdzNxQWFCV3hFZkpLeWdVTngra0FlUnd2Qi9MOXo1VHpaV3lGZGJ2Q2R6UE5aCkNMRU1ZV0hVMUhUcDY0dVBSenlZKy8yQk1SZ2d1UWFPRDRVaGU2WTBsWnRNdGJIK1hFZVJXSG5rYlByYkVjNGZDOFByaXBxalhvbDUKYTRJREhoald1NVpZZWZEcEhlVGh5aHZpYzdPTVQvenJZY1AwVGxQSk5SNit3YjJnWHVzK2VUUi9kT1cwSGJKNE8xeTV1Q0g5ZzM1ZApSN2hNVTRscGViaElrUSt3djJISW9UWW4rQ2RoMFQ4amdGOHoycTZITWZPaTVCcFZFeWN5aEJmbGNrWUdYcENIeVI3NXJmSTFTb2l4CnFOM044V3hLVVNxVWt0OVNrS2ZMK1BaSHNOKzVTMkJxSERSNDVRSTZETTl6cldOME1IajBqNWxVTHREL0lKYUowcTMwZzl1L003UkIKVHM1VGw5MFIrM0hoT09ra0J3bXA1NC9Rbng4T25tZ0NOZmgxaEVTU2VORTRJZzRNYnVXRWhRWXgvaVpDVnVsZHhGcU9iNGJ3Vi9BRgpLdDI5ZXFJaDl4SlhpNjhadVZNemROZE4vQTkxMnRSU3ZQMGVlWFhhc3pjQkhJY2VvakZlNDlFdjRUYzNFYWZXMzNFS0dHb21BRHp3ClpEZHFJRklCOHp3T3VkeUR0ZWg5N2QyeEE0Yi9zRXIxN21ud0cwYy91ZnVXVytHeE40aUdMWGdzOHNQMHIvcHUrT0tlNFlDeCtldUkKaGRnYjUydi84N0hvSVNjdnJKbUJ4OWF4VUZGMFRVUHZJNzNCNUkxcVNFRTN6TERwdHowd0FHSWtRcEkwbStISWJTUFBlVE8xdE5VUQpsNzgxZmtmQjdtTyt6VHRUV0I0eGdUUit6dE50eGpKbVJ2OXNESFRUY3B6TWlUV1F2WUxQcCt6UXN0V09weTY3aHUwWVNiT2x4cFY5CjBYdkhiMytzYzZHd2E0eHFqNXlBcDVOclVYT1FvYm0rSVFtVGVDZEpXRURCL09kcG0wSTVVNnNYQVhoSGRLdXRTbG0rOHVNYndlTzcKK21xZnozZjFsQnMzQzhsMVRUMzhhMVY1SHgyUHNQVzRHamZlZlh5N1htbEZGNSt4Nis2ZWZLckU1VjU3cHJOT0pZdXcyaFdLbk91Ngo1ZEVhWjU4ZUpsdVBHUnFYODVWamR1L0Noa21FWGgxKzBIS3ZudVpYM3REY1kvM3BSNTV1SHJpTktKaHYwc2FhV2RNZ3lSU1REa1lZClhPNDdBdmVzRis0K04xL3BUOEJyLzNTQ3NKYnlDM0lmY05tbW5vMndPY0FkN2NLWkNMMTJwVXIyMExtN2hPQjJ1NXNTRXlKNFlpTVMKcnpJVk02Yms2ZDZRaVZnQTdiNmplV3FIVjhKWnJrbDBIZHcyVXdkeENqNm5KUXcrZU5oTFRPditXcW5oZGtlMlNTM0NPL1F5dzlYZgpTYzV4VUhYYUh4R3dSbWlJOU5MdEhXNWdsTUN3SEJkSWkvK2pDUDNYcjhoZnpZZDBRUi8rNEVnOTdPMTdzc0x6cGdlaW9HK04vbmphCmczRGxDZDhTZmFjN0IxYVJUZnp4bWU4Q3BKUWY3OEVhMXp1bWIxSXBJUjBtRThOdXdwTEhWMDloYzJtQW93ZE5mSG9jU3IvdThrOCsKVHpXZVdJZXdRWHRtcmUxZjNVNlpESVZYZ0M5REN4NmlZQXBMU3NuS3hRM2Jody9IM1dhbGtMM25IdXo2ZWZEVS9qd3NHMFhhMk4wUwp2OHptN204N1RNUkFOQUFjaVZMSUlmcElmQ1E3N2R4ZFdrRUh0dElvTUYwQkkxellGN1lOMTFFNUN5Q3puVWpZT1FUVGplRVNxNzZsCmIzeXVGeFJOVHIvU0FWOW9laDAxRzZLdW5IT2J4TEhCMXhiOUtwNU5vT3gxSWxDeGhPS3lGWUZvd2ZQUGo5Z3plbWphNjcwdXRvczUKMEVnMlN0VEFQbHcvV2NVb0dRWEhYcWlCK0wxLzhlVHRuZC8zMXRCRk05QUNaU2VJa1hhMzVyb2VQVDkwVHNCaEdhNjR2cnNiRHg5TwpmYVNnYzZHL1laZks1eXhIaHQwSlAzenRUVlZPWks3U0FReFluVm5ZR0NyeEx3QUFnQUJKUkVGVUl4Y25JaUg4NmpWdkZNQkxpazUzCmZIU0c5L3NJditvM3VIeGhQMGFSVzFwdUFCd2hYVGtSUjZaZ05MLzdMbG5TSVNrMzVhTzhBOUJ4eTFZcFFQTG5ZbUtrQUhYWEJHeFAKZy9pRUorNnhoQWFEb1lZYWlGWGdaZS8rdlVDN1RacVd4aXVYYnhnSmdUQjlDSzN2bzc4NTJwcUlVM3QrV1hReWR5NHhKNlp1Y2ZrRQp0eWpRMjhoYjdwV3hQczh5NFk1SmZtS0UvYlBvSXpvTXVEVTBYczJBby8vd3RUSWtPMGtSaDh1S3dWMXN6clJGTi8zaURINHFqUmMwCkNrdy9ET1VkQnFIeGVyRGFiK0FWTmU3c2dRTEE0Q01tTDhPSldMTWpZQ0xTN1ZxYmlPZXpFQW5jSFA0QzVHMllldjBaUzNDdDRaWWIKUGJQVGhjR2x1dy9tbU9QZUxUcXJCazV0OFVSc2NtNVpKNDVuR0tmWFlIVytkRHEyTGphM1Z4NGpxdnlxSzFtcjFkb2NFM2ZNdUlIUQpjMlpXVnZ5NnBxSi9YRFZxeFg5RzlXeU1ITjhOWUlOaWRmNG5lVy9jT0s3QkRkV2R5RDl4NUhlV0Q5M3RrNEhza2UzbWlXODJvM2xtCmFQVHNQd0p6SGcyZDM1K0lSVU5FNEx0TG8vN05CcjJhcVRFZDBBeHo2NXBVYUNBYWs5Tzh2OTlYNDFhYUVoTlNSRjVXbHBRS0dKaVgKRjZVSGd4eVZ5bll6R1hvYmd0MmtYc1dBQ3c3UDJ3YzlodVlxWEl3ek1uUmplcjNsR3BYbkU2UENGWk56NGxmOElwNk0zM0ZEMUdldAoxc3daZU5tZE1OaWh0bC9KN1pDM2hPaTlIczduWWV3dVVYTXV4YndlWHNiNVFubTZ5REJLSFlaV0tDVU04aWxFSkpFQ0dmWXJndmwvClE4QTQvSlhkbDdyV3ZHK3ZSUnJzQXJPN1drN3NyOTkvd2x3b2hQV2IzR1B6OTJPMHZRKzlVR0ZSOHo4M3JWVjl2OG9oNzFMUFJIVjYKVVh3cXY3Q3VlbVkrTjhYY213WlpHRXF2bVZtVnJycmE1YlVaZFRWREYzcGY2dVhVWEFQd3cwcnJaL1hXR2RkVjJwQmY5NWVCU2YzeAowV3YxeitKWU5ka2c4OWx0MStKb1R5Sno3Z1ZnaU02NEZPYldoeG9Sc21za2d1bjE0TFR3ZkgxeFRHS1I4bkF5UkJmR1IyeDUvcmNpCmlBRzQzVnAxZWdUbktjT3VQU1FZaEFoVzZMUkFURk83WUZocmdsMjM5WmdIUk1ZbERFb2M3LzNTNS9MN2hUYStDSEtzV1Rrbzl1eXYKK1VYSGlHY3FKMjF1V2JONXhPVW5HRnc3eXJ6c3BsV2h6OFJFeU9XY1hNbnphcnVuTGNVOEhFZjRJbFdncHdnUWpKR3NacFlCUHg4SwoxRXQxU3RzR09jNHJZQVF6Ymt3d0hkLzN4ckVHaVYvcHN5Wi9WZW94SjFlNUVQSzZodnRNL1Y3cGFSejF4dnlLQ0F2SHJiQ3VkYTZ0CjZXV0xkdm9lOUh6ajlmKzdMM1BxS3FneDRLNUx0QnVLWm1ZUk9jMVU2Y0pUTXVPMEM1OEtuNURpZDE4UEcyTCtVYjdXRkR0bGN0U3gKU1BKVlZEbThOdDcyOEZ2MS9Xa1UxVGUweGxmOUJKMUhFdXIvVXd3TDNya3krYzluMkl4clJWaS9IQTFFTXg4UlJ2aWw0b1JPaWhOeQoyWldwelhBcXZxdnpoZCtKSUZMb3NpRWh2VHhlTEN0S0JVcXc4Y0EzZXluQk9sZldRRHZKNUdoRk1OMFZlU3FQU0pwdS81NEI3eFQ3ClZSN3dvNDNVQmw1aUxwWkxNNmkxaGN6dHNKOTBKdDV0Q3htR296UCtnczdtSFd6Q0RubGg0S3pkU3JYWHBrUmlpRDZPODdnMXdmUFcKZUpuQUpwd3ZLR0VoZ3FFMHNiaVR4MGN2amljWVJHeEZNT1JtWUw4MjhINmVzZTZIWTlaZ2FEOTlWdi9UUnc0d2hHcU5PT0ZYUnBSYQo0LytXcmJuNVAwM21tMTZwTlVSRVJDVFlWN2pYcmxyVE9Mck9lLzJBeVNkR0hzNDZPcXlnTmhzZzEyZ3NJdXFWcDRqcld1L3VHdTJJCmtuKytmckJ1U2srL2cvQ3I5S25TUnY2bm5nUFhPV094dStuYlhmSlRWMng3ekRVb1ErcW0yRDJ0dXZ3R3lsR284dTdSUngvSTlKNEsKbk5HZmhtVlBDY0Qzb1E2WWl4ZWRqSVc0bFlwYkNzVENuNnlkd0IwWjQvaWc3VGptODBBWkEwcEZMMDRzRTFLQkVpeWRFSXhjWFdOWgpscTFRYVdsL0p1SzFSUTBlMGM4NHlWMVdvbVQ4M1BrSTl0dndLRGwveVlFZDA4Y0ZSYXhUeDcrQVlGQ1F4TzhLbkxTSDE0bWdZbVNBCnRMRjVOUDRtWFlCaGRqbldocUlJR1lrU3dTUUJvd1lhZ1IrN3NNNUhNR243WCtHVEk1L3NDamxlUkx2V0ZwN3dXWktKcFpRUkZSVVYKS0VpbTl0ZlhYbEZVT2I3bnNWckNnZWs3MWR3S3c4VFM3K3R2L1c3N2ZoWVNsQWxzZkR4aDE0WWk5TDN5dW5hcythR2hacytKem43UApzTnR1bTJLT2hHdCtLRkE5MHBoK3gyMU5oYzVZenVHOWZ1T25aNVNGNXZ4OTVuSERYYnVsZnoxcG85bU1reWtCVkQ3cjZyUXpiQ2ovCnAzY3o5K3pQQ3ovOVNBM0VKR2VZdkVRUHJnaDF3ZFFDYTMzWllEVzRFODcrZG9RK0NLeFVyMDRJVnlaU0JVdXNvQVJERXhGb25EN20KQWhibTN3U3RDRFp1RTRnQ2pwSlhjczBYSUZoSUMwSndZK281NTdmc092Uk1vUHhueVpDL3dFU0U2L3A5UktNTW9MSHpDa0gwKzVXcwpsL0NGVWFsQXB2RDQ2WWw3MUMwVk5FSkdJbkhDUWdSakFtVHlvNXA1c0hwQVc0TGh3bm11VE1tMVVyMFo0cFBNVU4rM3RyQmNzTGlTCkc0bHdCV3Y5cFpuVHpJUmlqSjFUZjlMbFNkVldBK1JIV0ZJVDdNVWRlKzNiYUx1NXl1dG1FZ1R1bUJGZ3czZ01QVloyNy9oZWd3SUcKMWJGRGRPL3VtcGxXbXU3d2xsL3p3SEpJSG45RmtWcW5BZ2VjZWZabjVaenNqbWZ6azRoSlJiT0JDY2FjckI0d0doZE9QRndOczNiTApyeTA2RVhqbm9yRWNoOGI4Tmw1N1dDN0l4aUcvVk5lNit2cHJGWUlRSVNmTlc1TkxiOXoxYUYxY1NlM3Y3MCtoTk1Va3BDc1lzYWcwCkZXdUN0eENzVEU4VXJLRGRLZGdaZ1dHOURQbUVQcmtHR0JuN093UnJ4UzkzckpYeitBSXBlTUM1SExsM3lvcnA4bzRYTHIrRVRZMksKL2tYaVY2T0dGMVVDVnUvbHZCenJVOHE4TWxFbUVrOU00ZUJiRDRyZ2doVGpNRUNQenlFQll4azZyd3J5aVJKTTJzc25FZTNYVjJiUgpKQmU2Ky9HUnMxTDFhNTBIZU1aQjFJelFLL0IyV21Ra2tCK0VtYmZFL2R4bm1HcGlQbGJCSmlybU10M1liZXRHMnh3em1HUHJmeXdxCm9uT1A5QkFHcVdvYUJpVXY5eXI2M0RDRG5aa01zUTdRZU80N2svRmxtQ3BTamFkd3pjWjFoY25UV2FaSDFLa2t0U3ZJTHhoVGYycEEKY3pwWmlGMWhncUVGdmVWWXNmcVA0UUw4T0R2N3Y3M1hmRVVJcGhMUE9NdzNESXd2QVAyVWdxbjdTRHNyOTYyOGF6ZTNZUDdXYy9mNQpGZHpLR0tVaU9hR3BhQ1I1a1ZvcVQ5ZURSRERRRnpyYm00bW9tOWlyeTJrUWZBenJBeVV0QWVNVi9ZRG0xWG5rcWhYY2pOY1h5SERGCkVqRGtmclZ0Tno4am1ZbGJndjdONWNPTFQ2NlIrT1ZROHFKZkFJNWxQWUtLdFJOano2WGlPS1duaVRlcm1DQlhKSzBMdUdHU0J3WjAKdWxqS0lYd21EUE5nb0lkdUlrVjhmSFRYWHdjUlozMk9ycGMrc284eXgzV1d0N2pJM2NlN0lBT0paYWJzU28xQW9Ba1oyVEQ4Vk56cQo2Um5ma2R0cGVuNitKVFU2NFlqcjZ1SHI5MDl1OWhncnh1TFlMNWlaVmRkZHRhM0l3L3pUMGpkTzg0RGlMUStvSEhEOTJYc2JCOXgxClBDbVdYR2lCODh4ZUgzWEhCSHU2c3F6WldEd3d4Qy9JNlNBY3Zwa20wSGY3QmdxdlZIL3lSL2wxQWYyQzE5NnJId3I5aUFjV0VhWlcKcytMeC9KSHh4ZXJUWXFHVjJER0NnZmttOWpuUHlVWHJ6OTNyVjFDYU1oSzJab3JVUlBSV3lJdVNBZ3JXM2dpbXV6cHpBcnU1cUlBUgppRTNsUmhuQ3VpbWN5dU4zaDN2YnlOVzVjTXM1RkM4Nmd5U2htUjREWno2TzNmaXNtNXFKQzNhZHMvMmxoaTdzaE1RQ3IwY3Q1UTR5CldLYk56b0FDcThpNzNLeThpZFpjQWdZcEp0V0RhZ2tsU2dJV01CQWxIZlBnZkdIbm1vaDBzM01RVVZlR3BtSG41RDJXc1JtN2VXS1MKTW1ET2lFcUxoR0tpV1dTRDFNQjJTTEZJVjg5UzU3YzNaNTh5bDc3VkRYQzBqQ0dhOVl1MXEwYjBPaXVyamgrYmxRWE94ZzVwcTUwagpPcS84ckxUZzVHYkw5VEtWMjZ1NVp1eHlRLyticTlNNWNDaGNKeHIvYlhrRStyS3hqdXI3L2I5MFdmVll3QU1EVUVTUHlKbG0ySkMrCkliM21HekRNV2h4Y2YzRWc3TG9BdjJCWXB3bjNiUHVhaHdnZU1OQXNpc2RHRGR3bmIyNGcvSElwRkt4N0hRK3V6cUhUK1Uwb1FkNXQKa0E0SjVtTmxwYUV3UFJLc29QMzBnK25tZHZpOGFGODkxNndSUlorZlVvUVdnQVN2Mzg4MXRTcEpkZzdjUGpFbWpMZkc4enl2OVhJKwpKUkV3SzBjMGdRT3Z5ejlpSjR4N2V1RHV5MzJScmxuZExMSEFIU2V5MUhkaTBFaFVLRHc0elk5SVdNV0Uwbkg4U0MxS3NkQmtlcFJnCkFRTXg4S1MxVTE1ZG1HQUZDOG5EMUtQSEtqdE4zYXZybWRFL1NsdnZuMUNIaGVRcHV5TG9tTE1mdXYzUVRhS1lLM1B5cXExRDhudGsKMUE2YzJoZ1JZWWpXdW0vdU42aGd6YjRPbldPaTkxZFUrT2ZKYTB4RjJvU3kwcHpQekZWcFV6SlZrbm5JMzl4SkYwdm9KYnJMMXE5UAp2cFdQMWFrYzFUYUFQVjJ2aCtBZHJlanZFL0x6WmhRVlJTVTJmQVdSd3k5RWwxWll2bnI1Nm92WWZGTGNEVVBDOTdnTWNsR0VxVlFlCml4L1VyOForUTFlRWptMXdvTzFZL3ZJRkQwUnNSR2RQMVE0aEZhOTI0bGw1SzRLMW55amkvQTVmSHVJMFhxOFk3bUdjSXYxUVNwK0gKeHFvWlRsUUlQZ0hsQ2U5RXlhQUtnZHhvRHJzOTNtalhHcldFWTd5WFF6ZUdic01WeVdaYy9jT253djdiazZvdjYyVWFjVkpLRU5JdwpNaEg4TWxhVVlRdExQRWtQVGtJSnRKWThWcmRHdnFDRUVmRkNoclVpbURJb1lKTGRxQVZKd2VoTGlXRFN4dWNTck4vYmhEWHBoVHFWCnJhN2N1M1dLVjdibGlnemZHd1Z5M0U1aUZ5RlhBWkNmQWtJeFpKZ3pjL3Z1Y1dPRWYxL3o4VjdQNlpLaVc5ZndQWktHUkovWVBkSE4KeFE3czZqdGgwaXFlczkzMW92QmxtYXZyaUc0K0wxeS9kbUZqMTZtNkpOTDZpZTY2NTNjNjN4d2NxNHZsQ0wrR0Fld3VHLzFzOEZ4awpNU3ByOGVzRlVlb0cxNm9qRUQ3eWdqZDZDeTRzWG9obDcyalRPMXk5Ulk0MURMQlE3OVNDcWNkV1pvODQ1U1FPYnhqWW5iaGFLMCs5CnNCZEdiTVNlbWxNNFhNWEhpaFd0Q2RaK1RNUzlKN3lnQVZIWlRKejdKbXlkbFJ3b3lRMktrNUdJTW8xUEZncXpnZFRlQnlFRnVJbmYKMFFSMnU4T3V0Y1pZZmNHMFgyWEZrVjk2VzR1VngvSnY3bnl5WlpkTERWMWFJQUhTSGlrdzFEd2t6VG54VllpWXFRR0pndnpDOXluSApxSkdJSnEwa1NuUUh5VUtFb0lCaDhuSUx3YWpqRnZqYXoxWDJPVCtRaDlzYVRva1dsNjhTOGs4Y3I3TkZkL3QzZW02c09aT3lxd0RKCkpTSElNUHVVZFl2M1AvQTZLT0xEZlJ5ekY0Nk1yOGhaNlhEbE9xTjJ2OTRWdHZlQWhKTDZINHU4RlpEY2JaQ1BmRWV6MTJYY2taa1cKUzFTQ0U5Ly9RVmlSb2lOZUpUZzJqK2xBbXJyMUVWSXZNMElXeitVMjhiMmhJZlpoNGd6L2JxS1VqbndjWGJBTS9JVThyeUJldS9xbQp3VUwzSlFQaSttY1dFRzdSWmdQOHhVOVpUOWZMV1RVNHNBa3lKemd6THNaR0pBU3JGa2FTYjZTOUVvelRPOGpYd3lsQUovT0phcDhiCjJVRStyY0RLQkZaUTJTSFVZU1RkWSs0Vzc1NStMWFFTQk5LMCs4RU1OUXp1VE1kRXVmMSt6UzVhSWUxejVyNTNRMGU0MUJpdmQ5TmgKeGhvUGZzZkJZS0JLd0NrbzZYZ3VjcnJra1RwblltaUFGL2xNTk9uaU4rcXRhREdqUUdJZGhQaDFMbWE4VFI3U1A5RHJ3VkJqcGhtKwpZTnZHZEc4ZXRvM3JsU3NGVmE5SENnYVJXa29lTnFYZjNPT3hOL0NPV3JKVUpUeFJWWEZmS1dSRU5VeXNsNVVSWHNBV2U3eitmWThaCmtoK1dxVndWd3V2UVpYVEhTdlJ5VHF5dGdLNmptakxJSVloOFRjUGp2Vll6c05YUkFlS3FFaitBaHFZaWdKU3ViZDVvQXgzWVlPcG0KOHZtaytTVHZPdmY5ODJQR0pDMzVnTTVubjA2QUgrbVBoSWZHM1pzR0toNmNlREhOSFo5NGFrM3JuYzRQL0xkTnRIU2JMR0RnU3Q5Qgpjc3NtZjNmSS9LQ3g2MWhHaHRuam5FRDBpcEY1MUFxWHlxTmlYUzYvQjd2R0FHOHdLUzlXMVdJb3VsV2NGRkFEUmlYZytDbTZBZW9jCmh4R3VVR2prMEcxcGZ6U0k5ZitLNGU5SS9RcGV1WXkwREhnK0lzT0NTM1JoaEVQMDQyY2dqMjQ1alhBRXZEQmNvSEZFQm5lZ01jU1EKaFNpTnZ2R0dYa3VTUjNGT0ZIRVdqa0RvNW1UQVRMTTRESWJHRExXL3ZxbTA2THI0VFE5c3pjTCtzUUxvTVV4V0IvUDNCSzFFVHYzNQpzOUdySHRsSC9zL21oWWRnN09vWEt1ZC9jbEIrWnJoeTRaclRCRXV1RTUrc2RjR0FlMnBza2VKLzE2ZG4zK3NnN3BlcnBQSDdxdlRzCjZTa09yOExocGVaaDV4SGFaeGIzWEJBNkdhSmcxcG9TZXpYT1o5dDk0Vy9UUmpjbVYvZmlqcHR2YnF4eW81SmRKRjY3Ry9uRnl5bS8KSkErTVBteFg3aHRWNUJRVnRGcWJmdkdMTnZFaWNwMTBHWW8wTmdtWHZDbXRGSXd0TElDejUyNzc5NFJNRHQ0SWtmQkg0SWlQNHZmNwpHSVdiSjd6eWlCN3NBQ0p2ZUtWWkhRR05SNHdJQkJ0ekg2ZlhDcHlnaXRJcU9WNG5obktPQU1NZXJTT1BlZU1TTHhQREJseEJJOXpnCmp2S3hkQkl2RVUwNWptWlUwdDVpa1RETERZS016dkpGRVNRTWZsSktHK2xqVVBVTGpHNVRJTU1DQkF2ZGgyMHR4SmZmSkRhZlh1YkcKVkdtRXZSRWFveFJSYWsxVmNWTENDc2U4K25pa1dGM0I3UVlaWmhCZHY2c3VBUm4yYzl3dVpzb21HUkhZTXl1Ry8yZXBmTTZLWElqTApINTJZSDZ2UlBHT0w2L0Y0SmNBajQ1U1JaVjk5WmhuUUlWc2Q2MVk0VnYrdzA5NTExSEMxQThPN201WElyMFdQdjVnK3l4cXlFQldlClZ3NjdWV1htcGtiUTM3VGxkOHcrWmU3VW1RL1Y3RnJuZXk3NllqTTlsbDg3L04yYmNINmE1N2NsL0ZoQW1JVi9rdkhMZ1R4L2NJblAKVFJ2a04yQ1Q3b1lMbTRqZzdwS1VRZ2NHK1RqSlJQUWh3WVpqcWxUN1NPUkFnckV5aHZYN3lCMG84QzdnRkt3YzcwUS9neTArTnVwQwpnRjZoUnR0RGU4ZklKY0VMclZRSUFrc01hSm5hNzBWamtXeXBOZHExMU04TjR2alFTekNjOWp5NHNXeWwxR2NuS3VtVXI0emc5OU1FCkU0K1d6anpGMERsUXlGY28rT1JCZ2dWaTlJR3A5RGk2RVgwTkxWVnRBdDRiME1GaUFiUWxtRFdmUE54LzBNSVRndWxKKzhLcmVGY1UKRkVaQmxLWk80WnI4MGJGWEttaVN4eDdaY1hMSk81MkphT3FBR2lhRWUydjVlN1o1WlBhcWtSTTJ6VFlmc1pSYVV2TnZCOCtpamZzbgpSZS83dGdZeXNvOE5PclJ1dStQSDhJbXBzWndEeWpLKzB6c24zQm1wSXJTSDZxcUpIY0MwcnN2cU00WUJVYTBFekZmTFJIUXBtVHArCkQ3anVvSlcrZmdQdUFkUG53SUNySGFVYkgxWmRYS3JIc3JQeGhuR045NlRmdjd6VWRJTFNpd1k1RUp6QWt1Wm55SEhLTDhPd2gzVU4KMDM2SDJ5RlVEVWVDYlV0bHZhQnNTdWNiQVhJQk16a0sya2tpQjhnaWZPUWU5SXVjcU9JOExzWkZwNEtrRS9NQVVvemNxTklkU05XTApwUzIvVHlKWXJJdGwvS3hTSm9Jb3c3QUJGOTRNZm9QWFIrTWViZTQvNzY2WmVBTmVjb3pZNHBTVWs1d3JHb0VNUzJmNzRzQ2pzRXVzCmtlSWFmam83Y3dBQkNaT0VpeElNMmdvWUlabzdTTENRM3JVbDJNdGJVTUJLQlplTFVBdVk5eWRQL29uaG02dlFTVXFMNUNKclhhbWYKT0xwcDBUR3JneDYzVjd0MURsMUZBbUVZWjE3eDF1QTFkeC8wK1BaL3RtSDJPamM1aW1weXpuWFBUYjV1dVB5WE0yNWoraDNNQ2RYWgpQT0U5K2VweERyL1hXOTBFaFQxbjJxL0M3OEloeVpkcDY5Mys1YTVPdDdUd2l4RE1HQzFMek9HYit1ZkRtVGQrK3k3WHZmTEx4OUJsCm1XdU95dnJSL0swWGRUOUhEVHNoV0U1L0ZIM3JyUU0zdTcyRlFLMUROQkQvdlJ1dnFNSW1UZlJnV1BLMFUzMzNnMjMzUFQrVXc2T1UKQXFTaWhYRk1ubTRYL0dnaGdyNndwcDJrSWhMbkVoUEtXTktLdUloSjZQZHhvZWxScFh3OVJycXBhTmplenhCZElHSkhDZWIya1ZkRQo3UlJZM293Mld6NjFrN0VIYnNHMkRUdzNabCtiMTVjSUE0NnpsR0FhWDRCZzVOUkVQQmRGcURQTEg1aTlxK1VFVzdxWmxUaDVPQnNTCnNGYmxEd0lFRTFzTXlqWWY4SlhNZDhqalZMc0Q1MXYrWVBKaytQZVZrd25IVk03K2RXbDAyMGpueXMrUGVhZ25CckZIRlFvSEtIcm0KcEJHRzhTdFV2OHpUYjFMc2RjNkFwaTUxUlBmNFU3NTl5b00vRHpLTUdyWFYvOUVTWTg4SDFvenVJVS9nVVltcklhR0tCMW1HVDRIUgpqYXFJb2NROC9HRFcyNHRjRHc0T3B2a2laREtQVENYazg4ZU5XcnVsMzlhV04xcEQ5K0t3NDE5YllNQ3lBLzNCR1ZIODlVMlNjZjM3CldQN1o1ck43K2MyZTBzSzkwNjY3cGRzYWNsSUZWTWE0clRpck5iWWZCT2J3WmJaVlVUeVdUYmd3bE1NL0hFdnZIcGxJRkF3ZC92UnkKUXJBVjBINFVqS2dTS3hEOVVuaEV4a1dzSnc3TlBJd0wwb212QWxZUnh6TFVpa0tLK1NqRGxDeWFrQXJ5RGtmb0tXT0ltb25xa0dYWQpsbUR1ekdOdFhsOGE2RHJ0bHdSTTRjWFRBVmIwKzlIN0VqZzdqVTh3YURjaVJiRDlDSWJaM2FGY1JLUmFNRWlQajBFREVjRGxsOUxwCkE0ME5SY3NINUphL3Zvdzh6Zi81OVorQmFCZFo5SXhCTTVwUXJIU0FYS0FaVXA3dlVnZFUvS3UyRm5yRVhsV013Vld2dFI4TFJ6TXQKYXZtWVZ6cE5lNzM2RnYvVU04Zm0rT3RWOFEzWEh2MmcvNVh5cDNKV1Z3eitKS0w3akJ5K0lhNnhFY0tBeUZlQzNKNFdvWFpySEVUTQpiT3dRTUszZFB2bjlyWERtbmFNOVd4TU1mRTdqTlRuK3ByZ21GL1EvcnlPMFBLem1sN1ZXNENjOFRmaFZtTlZ6UzRQeDdkK1d1aEM2CmZIM2I1R21EcG5lYmt4d2VtVE1rOC9ydnpTckpRcVFsSkNFUVFJejdyKzNGNTdkZVpPK01PK01oYWlJU2g5SkJDQmE3MDVoU0R1SDgKZTJmYkNiOW9xSnJGa1lWMnU4aUlPSGlLWENUUjZRYWM2MHJwRG5uMTJEM3J4M21MQThGdk45NXhyQXl6RmJGME9ySEVzSzh3Vm5KdApRdDVhWUcvbDJxbUJOWmNTazRJTERpa1FLTktUd2JnMkJJeStVSkFpVk9RUTZPY01MQVh5RUtXTld3VE1GY3hrbHJyaEpRUVg5U1ZwCk04OFFvK2pCalcvOSsvMDR1QWVrL0VVTVc4SUg4VnZOVXRBanRaZTUrcnA1OTQwRHVHcW5OTDJMNDVBMDNRbmZhUGpjMTNDeWNFTDAKOXRtdmJGS1B2SkhSbXAvNmxMd2gxcTQ3QTJscERYdWhKOTJReU5mSjhoK0lKZS9BQTJ5MkR4dGk2cnplVmZyYUxuM1dWbnNxM1VRQwpIV0x6MEYxd3FqZERqTkp2cEpITmJiSG9zYy9LemVuemZucHJPUFF2TElSQ3VBRThhTUJlQU10dkk1OFhEZkNjejVhTnlYdXY4QjgvCnFLM1N0WkV1VUlNRk95aSsyQVl2UHZId3hYN2hPbHBVUEdpcGgrUHNGOFNsWFJ0Ni8yOFBtUnI5TFBLdEtEeCtMRzFJVnZrRVRIQkEKaXdsL0pBU2FjOXFOeEtHNXpUbFp2MHRnbFJ5ZG1JcXNFdEUvODBtbFlueDBFQlo2QTRGYjAzdkZaWERDTW12T1NQOFdBc01wR1pDeApMRGs5bFVkTFUrSWg1SEdoS3ladDAycE1NOTRuNXhNd1FhUVJ5VFl1V0tBTldURHU0UE8wbkxwaFdHelpkZit0K2Znemp3ODdLdWliClB0K1lnM2F0VUdFMGtCZnVKdk9ZaGZlemFVY3hXUS9IVm11NkgwT1djcWFWcjV5NWJuWjhrbk5WMDFyVnJvTTVYR1dqNjRuUGp2M2oKRTk1UzA1UFJiQjhaRFNmclk2QXBvZWxzeXBnT1VXNFU2ZXI5S2QxVnBxM2IxWjFXTjZaM3Z3T09SbmZMQ1o0WXVzZ3kyWVQ3YTNmYwpiYjRqQnl4YmtwOCtOOUN4NkcwajZPYzY1aDdMYWliYUNGQ1lZZmlTSDNIdVZyL0dpWWNad2tPZU9BUmZDbUVGKzYzSlI1ZXVjY3JwCmRMd0l6T0F3ZDN5L1I2RnQ0dE9sVmIvai9MV0dlN3FLM0RPbHFlVG1Pek1lRk94T0lBbzJmR05SZXhFd0pCanRBYk1UQTVHYWcwcGsKbDU5Umtyc0VpMU1FYmtBNUcraUdwWEZ1dkRlUlpES04wNDJ4YjQ5SHpSSldZdkpINE1JRTd2U2dJVFg5aThEQ3BVVDNUVnJKUk5SZwoxSVhCTTViS0d3b2lIVFNKQ0ZBRTZSSTR0MVlNVTdvNUttMXRCTXlGUnhDUllBRVhUT0lnOG5OQmgrOVhCNG9uTk9iczI3ZXkyTnpCCjlaUDNnd21oSS9xRzc3Qm51TnkxaEdJUmJxNW0vS0o1bzNKWTFEU2M5ZHprWlRIalhyMGlQdThEKzh3cUlnemZWV2ZxNUZxSXJQNWUKY2MrRCttbmIwbFZKQlRodFoweDlmV09OWTNOVEZPY3Vhd29qL0xKRmRKZmIxZ3U1cG5Vd241KzBZTXlKaGo0dEJLTXRRNi9UMVVmMgpwVEEydmhHc2VmOW9heVkrK2hacEUxYjJ2TEtRMzk5SUFSbnI5bDRFd1JZdGt6dHdlak1CUnJ0MXJFSng0bkJmNXBIdm5GTGZQb0dqCm5vOTRlMzVVSWZTNHA0WlhYV1NDbHU2R1RxSkxJbGhOdUVaUll4d0s1ZERoODNhU3hrRWcwK0lJTUJWNktjUUQ4K045SjZDMzVhTXUKUDZCQlFPNFh6RUFQOCtJZFN5eEtYMHNucThLT2xTMUkrKzVSY0I3aXA0bWdrcHA1WDl1UlpKY2xUdC81ZE9CYlVYaFJpc2hYeGtyUgpGeFhXcmFGUkR6OFZacW1FRFpVd3Q1UW5oYTBLY28zNm4yMEZqR1lDcTdFZGFTdDMzS3h1MysrbXZjcnBVM3VQWmxOdUh0S3R0NjFoClQvayswOWJJa3JmSCtmeTBXUjgrL051TUtKTy8xbWdrRFgvOStKY0ZDNnRTU1daamhKWGo4U3FwZlp1MmRISmlFQ1BUVU5MZjFTSFcKYzMvSEExKzdvb3hKNFd5akpocUlnSFV6d20wdnpPaVk3cXNHYUdyYXIyUWgwZGxoaS9kRW8rSEpncjdQd2hqajEvdGFPRVRidGtGRgpGU3MzVjZ5YmIrdWREL1pkdlRFeUY4QnJKOWU2SU9PV1hvWDdxWG9seFNyakd3dlgxeHZHWDRnUXl5ZnJXQlF3NUJjVmNBVi9lSGVYCmx4SzNCZEtuemE3d3BmTVRpTDBKMTVmeU1QWjhwdWw1a0QzRXgzaUE0OG5YVTVQZzFkbU5QZDNsd0c1dko3M01CRElleXlnQjVqbjQKTWJ0UUtYbFgyTlpMQ2I4TUkxUGcvWXBwcjR5ZkNsaEFuZ2k4ZUVzeVNFNFVNUS9yNDZ3K29uc3hUUXdUQ09aTFNEelY2c1dsUXVicApnR1BsSmI0aGRzbXhxRG9jK1pVcVEySGFseTlJRWlVbklNTjhQbXhKQ05tUWVSd0dkVmpKRHdzUkRObkFvYUZKcmVmZ1dvQXZQdHB1Cng0SnNYUVY3VTBXeDIxZXl0N0NvUHFuM1pHNWM5Yy83ekllYnZoNHRjV3o0VjlVOUNjVTBncURuMTB6YzZBbGpRVVVCdXJRcW1ndk0KZjZlUmgyRW9oQnp1YVBpZzVFMStjMFQ1cDRlaWVmUndDY0hxWlRWSmg3ZGVseEhuSnZ5Q2swb2RERlVuZGs5KzR5VGN5bGpFcndENgpmbmVmUHozRU1IcmRkMXh4c3A5SkcvN3ozZThuRU9lcUpzU3c1ZVdyYWdFZXVYYkV1a1pJMHNVcXc2YW1kMHMvNEYxekVWUE1kaG5ICjJvRm9yamdhZk5KVUdZekNwRnIyWE9JbWlXR2NmSE5DWWFram8vRmVJM0hVWnE1dnZlOXZRaGN6ckR4YUFKdVc4Y3VMRk9FNmU3eU8KYVBHZUxlMUd3RUNtRW1Vc1lCaWJDQmg1NU53Qkc0anlDeXRKc3l3VDVoWERhRjR2RXN6WGltQzQ2SkxSMkxaZlNlNURnZVhsV283egpSUGlpN2I0V0ZYdmd4OHR4d2E3Y2hhUFhBRk1SNVlEc29xa2NJaDJ2SWhYVzhPTUFGV2xqb2x3TUpuVUYzRXpTTElBMExGdnFjbTZ4CkVQRkI1TnpTNUVVdEJIdjErUXFBMlRjZWRKb1VZVEtCcTNNNEdBdlB1K3RPdk5SMS9ORVp3dzd2TlFVNU5uSWtVaXpNVHB5WDBxWkIKbVkwdDgyZWUvdis0K3c3QUtLcnQ3ek96dldRM205NEprRkJDZ0FDaDl5NENJaWdXc0tEeWxHSkZpcWdQQ3o0VWZRcWlUOEdDaUFKUApFQUdsU0c5SjZCQklBNUpBZWpadDA3Yk03c3pPZnZmYzJVMEM0dFAzZjRnZi9nako3dXpNN016dS9kM1R6MlhjR29pdGl3MFBENWVLCldYSmNPOHVXcHJwbnBoeVBMeXVLSkI5dWV4UmdNcGoxb3VOUmRZaU44aXNLWUtEdS9xY2FIN1JPbjV3OSt1ZlhDTE5TMzFxNHYxK1QKam9nTFFJQTdwdUtod3BoNjY2RzV3eTBxQzJIWUVpcWdWcngxa1FQTms1TXNKNGpzY3BjV1dEcWN5YWxxZGZaZGlKdjVXNFI0ZjdvQwpMVENGTU1IbDlDNUY0MkUwQlNNSEJHMnFvVm4xUmFQMDVVNUQvSmtuQmFMNHR2bXE1YkcvRG1mVVFMcysxS1lsMzQyc0lFRHJiNDFFCkVWaVZjdjErdHk5a0d2UlowRklPVE5sbzBXWko2V0VaRkdHZ1YzSmFGNDl1RVBLUm9wYlZVdjF6b2swdkVJbkJPSG1zR2haWkVRTzgKQ2ljWmpJeWJTZ21BekJHM1FvTDFMUEltdjFFVjBSc0l3NXBtVVU2dkhaWEdKcUxMcVNpakRLUEFsQ3I4eTE2cklVcmFISmwySkJNVQpkNllQQWpOS0lTNjVNTnVQeUVXR2s1dnhLRTB0ZG1iYnRHLzhrRmJSRTZ2RHJZY0p4N3E3dkJTcnRPWVZGRERxMG94YW5VeWtZTUVRClg4bDFwT1dXQkh2YmJvYjM0ZzR2QlhoN1M1bmxnZUUxZUEwMVFZUmY3Vk5YZEhvb1dzZERJK1hYd0ZZNmVPZnlkcGh1dDI0L1hQbkQKM1lSWkk4eTF6UkpNV3NRb2lGTm9YQUZ1Ni9FOUx6YU9UNFB5WXR6Ni92SkNJcjRtRDBmeEZYSzF0RjFvSk44cmV2REUvVlo0ODFuZgo0YitHSzdOWksxVVF2L0R5UzFLMEw2NmRQWEVyWlpnQ1ZqMlVhSGx5WXkzaGwvLzgzMUk0dlNBU3pHN1NOeWpLZElTVURTYURUZERrCmpzMzkrUzhTWkViSU5PZ0Vjdms1UFdnOGVVQlVlMGVjaXVxRFpMenBpWm1QRFhCd2xKSVAxZU9tcldCOGtHT1NyOG9wOTNoWUQrL1MKYzc3cG1aWGorUmcxemF2aUM2Z3Q5QWNqK3B5M3VRSHYwdFdyMFRaRWsxRmtjU2xZR2dtajRsY0MzZ0krbGdTYWl1aUpPQld3VktuegpNUG9tQmRGNzNRTEdCYjJIMEhHMWVEUEV0YkVvM0xCZ1FOcExRd2JkZVZiL3dVK01odEtSMjNSdzE5M1FyZS9JMDJQaXY5NTFaYWhFCnNRTXNydE5pMExyNjF5cWtLWXh3ckg4bW9JZVJZRys2TXlmeDBid1ArcWJDZ3JkSGJwL1Q1VnNGYWdmdGtWOC9YbXIvbEw4YkhmV28KSGc3VWplZStYRS9NcC9McU9ickFWelpaWHR3UEl3cHFFMzBFVTFvQlJWaFliYTlhdVRQQXJUZE9USWdwTFlMeUJhbXdZdmxWZ0dGRApGU2krMU5zMGlXN1ZtdHpoaWZka2xVT1AzeFE0cTk4aUFvd3FpRDc1UmZQb3lFZFNObTdNR2lTWWNwaTdmOEhURERwdVlQN3M1aVAvCkk1d0RsRnBUaHpLMjRiektqMjFReU9YR3hxSjI0YTlldjl0dERKbWZIRFZFcEE3bXhxdmwxTDFCUmh3T1NPUVhOZklGTWxCVnFFZ3kKd0YzREx6VDhHWStBQW9BVFdJWm5sVmEzMmk0SWFwYVhtMUJWSVlJUWo1LzhPK09PL3dzNlhrWlRDeUhUU2luSkRERzVSQlJnNE5JcgplWnd3VUdEaEJhRzBhdGIzM09qS2tWT05HTkhpRHIwRWsvS0ZXeHd5ZmpmY1VRSnpCd3lvY1hSVGV6eWVnV2xIbHB5MWFuQXBNSVVHClBEK05sOGxrd3hQaUgrWXVyZk5TYk5DUkQwNnBSWmV4WnZUNE0zZ0YrRmIzNlMrYXc0bnNnczFPWE4zaEozWXlFV0RqTE4rMFQwOFAKcE9wM0VBVFhwRjJNZmhhTDhzcTg2dUhvQmNlL0pzZkdyWFR2TXpRMGxJNE9KZ1RiTDJ0U0VZbUdpRlIreDg0NUdMbFQvK0lMSVJIaAoybzVwa1AvUmhMK1hRT3lVMlpibDdaQmZNWjBVOGszLzdOQ29ldFlLTDdXc3BMa3hrdnVqQUVNRlVWcUYzU3ZBQUd5RjBURUoxQXc3CkxueS9KOUNLTHJNeC8ydzY3cmVRR05GdTM2RHZXamNFbEVhd1dsRUg2Z1BRTG4vOTlYdmR4cENqQ3h2MFZqUTkxSklDNVpUQ3FDd2EKL0hwSlNWTHpJRmFxVVY5MFhNY3ZGQVprYncvSDBFZ3RPWnRJTkJtbWdSeGFTeXZHL0pJT2tmSHQwenYvU0NnR1hVQy9HS0pCNWNHUQpYWXMxOHF4NnNlVTFZTldhYjRoSXdOdnltVWUwZkF6aDFSREpCMVR2ZTBTaFdRYXdkYlM4QmlCVTJsQXhIU29YeWtCNUg1VC9mVWZmClk4a3JzbGJSTmlBVDc3VXUvdHZRZTlIajh5cGRWaFlhTE8vTDBHV0k4OWVTTVV3VjJiSVoyUVV3WnNKTFI0aUN1RzlQL014L1JwUG4KUXcrU1h4a2R0N1dmeS9uNE5SQW13ZFJqNVdSN2gyR2w3VVNJSWw4TGtZRUx1VkYxdmt1VEVBYW1Xbkx6ZDl4Qm53V2VKcmRTKzIwRgptTzY0ZjZwL0hlRlhibFQvNmtpWURUOWRJdVpPajNldlBmaEd1QTlqeUVSQnRIclhRTU1QajB4WU5vRHFNejE3Mk8xa1FzRE9qelNYCjQ5SGZjYjVyb09FaE9pKzhIS0p3TENiOWxjTE1oR0IyTW5Fb0JIMERwbkZjejUwbVU1KzhDaW9QRFVOang2YW1IU1Nva0Z0S3lUdEMKekI2T2pCMk55Rm9sczZVQ3g0cnAyZ1ArR0FqUnZtQ0FqallPd0lpQ3JFa0lXZWtHcVV6MGw2QlpIS2hQNHBNbUw4U3Y0clgzSWE2MQpaemlFZmxYazljK0Z3VC9BQlI5MnFCOWdTZVpqRkRGZDE1OTdiOUdiWkdyUkxMVWVtVDl1RUhXcUxua1poRkIrMkxHbTgzVGp0dEp5ClRPVFhZeXNhRml4VnZyRHdDVmhSR3VjZ2l0WnVxcWlPMkRtRDhpc2JLTDkyYjhRQ3gvang4dWh0WTBxSVJOT0dFRTcrdkhMTjBxWnoKMHJYUUNRNjFobHBzR1pkcENkQ1FJZXRmY1lXOHg0U3BVQWM3bnJJUnNyYXFQT0ZuL1JLZzlmUy9OeC83YTNnL1RMUktIbnFxSUtMcgoyS3MxZzNyTGtmWHYvNTFNU21SYXFrR0d0T25ROHNqZnhCSDRZT0lXMnBXVmlNRmc5NkFHVnNvWS9vdEFEaHFyUytOeHFJaEdRdFVnCmFRQ3FuQ3BSMWp6RDAwZklJUEtaT20rMHVyZ0tmMXdlSjJob05vakhqcE0wRlc0TWttdUMxQ3JqajhVUHN4LzhSREtlYkU0ZEtuT3MKMTJIRHFlbENsZEo0K0MzUXZacEUySTJoVzE4TFliSkg0YXVUVkNsZHNIUUIrRU1tZVhUbW16V3A5ckdiekl4aGRORzR3NE9lK2toSgp4SmptemtGdmJtOVRCNHVvdm0xTEdWb2R4SEtnUmlHd1pJaE85TklMVm1qSExsVzYvTG4zb2t1WEJ3RXlETkg1azd1SVl1cFZEMkhTCk43bW9QclVmM2hGc0NXWEJaSlB3MDN5QWxVK1B3SDJWMkhra0RNemtCejdCcWtoUkJtZVB2UmV1RDBXNThsMHR4RzVNSVBKcjZnNTEKTHBRTWNzd2trckMxL2JHbzMvUnZFSHo2T0l0WjRjTzkwNU0zMVV5YWFXc21DajNzYmoxSS9GSS8rdTdqVFlmOUpnd0ZQWWljdFdzYwpVUmVxc1FWbGxjTUF4YmVvZXZEV1FLYmdRZWJSWW9Va2RieDVQMEZpT3dIMk9wTUVnSnByZmdVa0ErWkdrTWxsYm9XM3k1c2crZkxKCk9NZGF2aXQvekJMQjF5R3F5T3Q5MG1rSXRkQlJ6d29zaThsZFV2dFFyTFh4M2dVVnVzMFRDSTJxbzBOUXBJVUVUVjVFbjIvR2w2RkMKYlRBR0NvbXVGMVovOWVNaXlTWkxoZFRabXk5dkd2UEdLWGU3Z05RWWEwSTJPTE5xOCtJVW5VOHNuaUNUS2R5eThlbnBrMUxQRFlhRApvZ0N0Mi9qWE9xV0NHUVlLRXMwaFJBYXgwMkJGNE1DbFNuaHIzL253cVlGNStOYm81YWdoUmhnME5qWm1WMUYrRFpyNDgzWWl2cEllCmlyRVZOa0xtWTdrdkYyWUxTY2twczZlOElWMGRvWmhEcjhjSm9uNVlpcDUveTFVNzQrU3FJMHMyRUVXVUtRZlQzYTh0SWxwdmhycVAKSmJqcmtmdjhGSnpwMGZHdi9wWi9IckhpWFFWVG9SQ2FJbUEwK09scjZDY1VmdmZJMWtiMGN6QWMrTTk0cSttbzN3RlZ6NGpPUFJwZAowUjJWdWRGaUVJNldITzJ1djVDVDNxY08yY2hjeEltaU4vTVZDMVdhcEJTS0ltSlYwWkhaM0hINmhuQXhERGxNUzRVWDhwVmxmYWRSCjNaSVYxWHhKdVdSbWRUVTBZSUtUV3k1SVM2VFFsQXVxSXRLNVYrVnN6dkZGT0ZWZTFaSG1Qb04zLzJZVDdGcHM2QXJ3L0QzbUZGREcKeEVoYkZuelpQZTdodTN2QmdLNW5sQU1PTEd4dDhOVFY5Ym1jOWJlaUtSODh0d2lVR3BjcmJJdG40c3RQbXVYQTF2MmtjQ0IvcFpPSApSQkRweFlaQldjQmh3cThYWG91RkI4Y3VyOFpYZk9teTJRUWc4ZXU1akR3VVh3OUNiaG5abUpEWUgxWVZCZFV0L1hnVWVLY0VJc0pRCmZCR1kxMEtGM0xWb25ManEreTVudjNtT3RnbDVKSGsyZGhJR1dCY1JBV3ZuVEZobnF2MzZxL2U5Yi9NZlVhSm5pNG1DQ00wZVJJODAKYU1odGNGQnpGN3lEL0txcGd6YlAvZzU5c3dVNkJ2cjB3VHZncUFhQ3VlaUM5WDhwRFJFcm1yMUF4eHZtSCtLc3plQXpodXBKSEFvdwpMNy9vZnFwZkUyQk9EWlkyTThBcVpISkJUWHRpb05zT1JabW0zUzFJOW9Yc2dSbGVSNzJTMXpuVkdCdG1SYm1JUkNkVE95TjE0cUJDCmg2WnZ0SkJnNEtiNVh4NTA5VWp1WnpwZWZRTHNXZ24yMm9weW1GN1M1VkRmMTNvbW4wYm5oekl5TTMzZ2llK3JES2ZqVHJMUjVTVk0KNWgwZDg4ZGtoc2kzcXhadjYxbS82ZGhRMmVCRDlXMi9lckRDb1JmbDd0QzQxbW40MFVvaWJIQy95dnhBZDhCbkY5QXBNdTc4dGs1bgpmMUNEM2E2RkRDTDVhQ0lIRWMwR3lxOWxxem1JODN1bWxZMW9qSkFRL015UlFVZFd4azNnWmo5K1BsVXBBeGtSWUc0bG9Lb0dWcXZMCnpmbTlOYThxTE9sOFJrakMxVWtxaXdYQzFmK09WOXJKRjhvRkZMYlBLUjJ4ZGUrNHVzTHlDN09mK08yWVZlSHM0aTBaUDN6cVZMUTAKVC9HanBwbWFVUFJBd09mWXlsdis3SWpmNjUvM0lpckNrVmlqTFQ3WlVibXJXM1NqWE5kd0xyL2dyMUlKSnFHWllKaVhoNTA0OFNGRApxNzJ3TXpzT01vY0hoNVpQZXYwYXY3QmxKelYrVVhRcDhYaEtTYnA3NzhPMzVFTnI2M1BVSzExcVRvMkZvNHpJTWdMMTArTm1qOU9YCnlJRUxXVEpVTmZSQmptRXd5YkhvSTFpekFCUHRVaE1QdVZKdmVtVjFJY1RwNzl6eGFvUnQ5NzRpdXFzK0pxYjR6RHMvbXU5bmwyOEgKaGJFbVo5TFBkeDZMSkI4bm9WaHQ4c1d1SDU4YXVqSE1NZnp6b3hYcFdya1FlRHpVdzdxYmxFUis4bWxQejArS0NFV0lnbmc0UE9IOQpBK1NjUWZma0FPcUlFc0VrZnEzOHhncWRobzhEdml5YmJIdXo5eEZvdFNrclBoZys0MmFlQXBmYnJaUzVsSzVJZXIxV21GdnM2UEN6ClM5blowL0RVbE1JUjBDNS8yVG9URncrQzFrNm1TL0V4b1NZaElwQWJIbExVWUUwNXR2QmcwNDNlR0t2ZjBSdldqZ2w4NU1FZnFtbGYKWlB5WWJKUmYwdXVsK3g3NVVnczFjKzU4L3JlNWVpMmlWS0JxVXh4bFZPbjhPSTBnT3ZtdEJYK1ZiamRldENDWW5ISDZhTVFRVzZySgpCc09XRkQ1KzBNNEJ2d2FzWC9GNGcwbm9GRWRwd0ZGYnJHSG9yVWpsZ0xMSjNycGNYcWV3NHh4QkRERUJremw4QkVNK1lWVFpKNzFhClpPKzZjWDZRSmdVY1AyUnlhYWtndW9uMGUyblUwQ0dGQ3ZkUDlXQ0t2ZmZUNXl0Q054MnRWNkt4Q3ZwNjQ2eUNpM2x6UDdUbUZGbjAKT25QVVphVTVZZkYyT2NRR0JWazJQVzh0SGZsT1dJWERHci9FWm1CZE1pWXNwN3JPSzhMSUIxV25DRDk1OVpJTVhMSVgzaDZjOXVUagpVMUhGdHAvUk5oT002SWZ3OER1bTE2dkN2eWlPUEtGdXhKamlwM0NFVU82OXlHbHZESGhuUzU5REx1UTV1V2FaNUoyeFF0L0dXbFBNCnhTUlBUc3hlLzhHT25HZi95VzI0eDZWekt3akRPRkRuZHorcE8xbVZ1R3Zva0lqR0d0dUI3aS8vWjBOc2VDL1AyLzZ5SkszZlBaL3kKb2hJMVJLLzk1Ulh4M04xOWY3UzZYM3p4djZVWEdJTDl4Y2l3Y042bXFXZU5OUW9idS82SFlQZ0xwWEhBTlFRRDM3b0diZ1pVdElDWgpFa3p0b2hsR0V2UCtBNzNBYXdRNUZYcVJWU29VRFByd0hOSVJqdk1QWmwyMzd4OEJad2VmQTBwWlkyeFEwa0E1eHBrbGdvbU1Cd2tsCm9QZ2lONGZ4ZEx3dm42TG94akpvNllra3dwb1VSS0lrT3huMjlWWGI5aCtvcVNlR1IzaXJ4MTlMT0hueHk2dGtwMGlqWHA5ZzFMalQKNWZLby9uY20vRGp4bUY0dDJocFYrcTBOU1Zmay9wdGRpVFhNdnY3YngvS3N6WjVrNmUrZmFlQjVQMGd1ZVBYNDg4ZXhYUWpoVW02dQp1b2pZZkRMWHVGUGJPNXpya2s3Zk1RaTkxa2d3eWY2cU8zQm1KYWU1bXk5WEdmS3JvaHJnMHlPRk1Pakl4NVBPSmFlZStxNVY4SEVaCjlnbEFrallSN09qWXF3YytPNS9qN3Y1NnJHUHFJZi8xRTA0a1c0a2VJb0NkOHdkdGwraHowVVlubDd0clFZZW9xcnJ5bktmdS8wOFUKQ3h6VCtrVlpoMEJCMExZdEVXd0txbXJ6UkQzMGZVSmM0NVR2R29mOXMrVWh2dytxNm5oNVdGdmdheG82dW5LVUhzYjFkMENDL2Q0TwpxTGNEWktLeGVXbFYyc1ZYUmI0R1JvbFJaa2xQY2tKVGh0R3ZtbDh0WWNBUXJ5aXlyRUxqRXFYVzFJUjZoVS9jQ2o5aThlUlQwdnNwClJUV25RajhpalI1TEJFUGZNc291NmloVW9RSkg3NHZ4NlltWTdpVTlRcDdSUGxSZXlGMGl2UFlLT2o1TUdrM1VIVkdUWCt0VmxGZmsKaGdWamh2NWdqTkc0M1dxa2lpSWp2VjlBOEhzdkQ4c3hjSzc2eU5OeHBvcWdoUHJhWGdkRzd0VzIzaGRaRjJZZS9ZbGdBbEVSVUZFUgplZklaNk5PSFVJd01VbVZwUFhXcXZQVnpUdFRkOXl5SE9oUmhEL3RVeENwVUVPdHFEMXlHcjRmSktvd01hL1FySWZ3Q3dxL3BsYTFtCnZEMFh0R2VPSUxYby96RHBndlhXSXpOeWQvejRaVFowdmpEaHdyUCthb2gvMThRbjFNamNTREF1U2hOVHBtSnJkRVk5ZTJMWC9PK1QKNWZrcE9VLzlCMU9zeTZTd3hpU3RBSnFHVmdGRFR0YlFDQUxmWWdMU2FIYS9tZFFpRXZmYjJHanRNMzBYaG55S1Q0L1UvcjEzb0s0eQpQTE1tck9SZ1NoS2NnUG5WazhhTitVK0V2NTBnQzNNSUh0L3l4VG9IY2dqOTF6S2FWRTRJWmlXNkhoWmlVdC9idFlmK0Ntd3FwVjBVCkJUZWhtUUxIalVSSy92U3R5Slp5dHMrVFZySGtkWnpnVkxHb3FiS1VZeTdVV1Rtc3BjSC9jamwyeEVJWERLYUlFYVZSeXZ3bHpLSisKZW1TWVM5czhnRmlYbUQ4ZUlHNWVZL2MyYmZSOUVsNEx1MlJCVnFieVIzWm10UTRORFEwVXVuL0ZPQTNzMFo3UkordU9jK1dCb3RNVgpzS09QNlZMUTRXRER0SmZ2ejJtY2NGWXg4blJTcGMxcU5iQzI4SVN6RFNQSThYMG9UaGtwd1Z6SjV5NnY2N1FJNm1qMnIwOUZ6SWF4CkZTVlJ3ZytGY1gwMWgvRmJxYlpyRFVzcHYxNnA3akxsTlJoejZIdk5LWnBYUldTZ1Y0Q1JyMDAyWnFOZjhRVTI4dTdIaEdmOWd3S1YKY2RYakc0SnFnT2lJZHZVa2l6SmZ4VmJyQktFaDNJK3R5MWlSSFVNb2RuNzhyMWxRcTJmWXJpVGhaS3ZROHEyaUpuN0dlNVRFQW11cApRV3ZyeHRiL2ZrYXN2dC8rK0NmNWw2aGU2b1RuM3pyeEhYL2UvTVRlZ0k3RlM0aTRMbjNvKytKWDJyeHc1Nk43cmovdXRnVDV6dnlBCjl5NWZyR1RjU2c5aEdlRGFPeDVVRVJ1b0x4Q0g0Uy9GbDFNaHczSnhaOHZDTDBKU2o5UWt4dVBXaU1Ed3pWcmxrRnRSZEpuOWZMVGsKcjFRMitHTVBjSElYQWhHbkFxZFhFWW9KT0VYSWFUd01KeER5QjF2WXE3QXFES1Q1bzRVTWE4RXdVZmhxQWdmVFRkOWE3b3VJYUwzMApLRkI2RFlodnY4OVNhd28rWHBIUVlMUFcxQWtlc2VaYzJpalY0NW9UajJlNzVhSncxTlA1MHFDYWlVZnE5ODQ0VnNOTitvcmYvMGdXCkEzb1hHRFltMkVaOGNzcUxvbnJxV1g5cjNiSGVkMDdsMUdvcXdVQWlXSFQ1V0lEdWtRdXNQVHAxRFd0WENUVjIwQ2tHRkJKK3ZiMnEKb0VKOEc2RGJlMlA3SC9KZXAwK0FvWTQ0TkZ2clZ3MEdUK2ZjOUNDTlVxMHNDbkZFRzJ2Y29DZ2FkVUViN3M4SlNubWxYZEM2UUI2LwpOMzNGN2dkUDFKMy9OVzlIOHNBUCs2SWJYdFBnWXVCQThkMW5HM0M2YmFGQmd6eEVHZkVyN1B3RlZrL3QwZjNlcEhxMUkzM2g2SUdSCmt4OTViMmJXbmNtOW9wT0d4Wi80MkFtbHBlOS9EVXl2OEc0SnZkditKUmpHNklnS3dvRVRPOFdTNzY0S2pFNjd5cVhDUVloVFA0NUUKRVpYRVg4b3ZwdzdsQTY0U0pKbG5UWkJKaWJHc2gxV0R4ZU03empuNnh0L2VUWVpCN3BMeUMzUk9Cd1p0MEZldjVqRGFMUElpQnJ6WQpwb3hEY25kTnZodjZBSzhVWDhQN1liR013UHVxWEppNjl5cG9QbHpVcXdpcDRQVlV3dnFmdCs5YzBNY2ZXOUVtQXJzK3RZMjVSdjFRCndFZUxLcUQyNnpHWmNqTUR0ZDFYUDkvaDBtTmZYOHg5ZmlQalNiU1AvWWl3T2t4UVJwZE83UGFKOXl4UVJKdEZ3eHNMSngxV1BmKzYKRktpaU5waEdDVW1BbFBud0l1eVVwNGJCaFFnZ3M4ZGczR0hRajh0eks5WXNJNDljcGk1OThDOUZXRXdSL3NNenVub1Z1RHJtUkJydgpYazc0MVI2cWpnNDFaU2Rjd290M3RpdUpjY2pCVEIxQ2lXd1FhTVR5OFJBNXlRR21Oby9kS0sxanZsK1VLbEhyQUkxc3g2QUQwQjltCkZYbGpOMUtVRk5UVGpUYzY3TVpZRWRTMU5iVGoxWGI4dk5WUVR6NW90V0xTVTZQckFSb1NPdlhTbDY1UU9iWDJROHJ4bTkvKzl2cGoKYjBmSVZHVFFFV3VFeDF3T3BkdHBBRnVBSUxocC8xRzlTM0tyMGREWTlmeDZ1SHNCSnFnem9vZmxycFZ0VG5LOElBTk96aWpBMFNUQgo1QTJLVytHcWQwNTg0RXdkdmlVUllRMnFCaFhSQkJrM2NvWkJmZ0cyRkpRY0dSanpZbVMwaFFEV011TW1QQXhsTmU2QUpkeStkY05ZCkdMd2Q0aGQvOHZHcGVqSndjVmNsV3FzVkRWZGk0OTUySHR4K3BpSTE5UWdUWWxXcSt4N1lLeS9aLzFTdCszQTBiNjNqVEtMeUdCc1gKWGZmc3V1b3FUVjFEN2NrNllyN29SWTArZ04wK2FNT0RNWnNqaStycnZmeXE2L2ZlL1F0d25ISlVoR2xCUXdSWUdBYTF2c2hvL1VXbwprNGRxUCtSWFVEdXl6NkF0SzNManVsY1VXTUUxd0NEYlFIV0lNQ3ZaM1dnc2ducUlxZGRiWlVXekxnUldOOTZ4TEVvRENkbFZ1aUpOClRIbFZ4NkE2dCt5aUpwb2o5MlN0QUlOS1ZWemhaOWZ5QVNmYU40Nnh5VXZMejkwb0tsWXhlZjE4dzViQ2pvUmZjTFUvd05qTlRqV2EKc042VlRjVVhYL3I5NnVHS29KN0JpdTQxZXJ0V29XQjFJaTRUb3RFOFhGQitYc2FEeVZGMTdPZ0pvazN3Mmw0aHJXMFRPdnorMC83LwpDNW1jQlNldkZPU2NsZ2VyQzJjVmoxenJwMVo1WkxqaUQrT2I1Ni9uMXhEV013akc5VHJwUVFKZTg0ck9vVEppNUFtTk9ZVW9KVklnCjdyMTRLd2dHR2FZQ0JlcTd2TkVwT0VFbGs5eWZqRXpod25ZSEtpKzdxSXFJeWkrT0U2ZlhYVSt2dE1tUjZGTDZHQ1krK3phRWh4NFAKNjdPWlVFRW1jMlBJaWh3d00rNWlldXQyNndlTUx3c3dXc29xSzdYUkVjVWViV1MrSTJCdncxTmJJMVhWd0xFblN4bDJqZkpNY2VYawpBcXpHTkhuQzFFcDFxRWYwdjl5Z2VIZGhwNk80bENnS3hiZTJaSDQxN09tcCtHNythSVNoRTFFU1lHMmozK3J4ZGtRRFpEWEtvRXNHCkJKRUJEb09tN29NNzRoUG1HSzB3dCt4S0RwcEhZVlpybUI1aWdGQ3NIdi9yOVROK3VQRGgxWXIyb0pQSm9tVUd4VkdyTzZxaHFzcVQKcU1ycndRcEVnRUVGU25pVnM2SkM0OUJxcWsvRWRrOUtxQzY4VVZSc2VuaUc0OThoSy8zeW9kVUJmSHZZNEdwUmN4dnh5bjhSWEY0OQp1STlDcytjYmZ6dXFuRzRXTUkrWmY2QUFhc3dOS2puSEt5ZmxDUGhWS1BwSE56UkVwUC9pU201RHlFUnNHcXFVZXhUb0dHQU1rbzN2CkVWMUVmTlA2TDY4UDhUb0R6SFdQamE5VGkxOHh3SEp1NVRVaWpKZjdGcDBWaUNYTU5CMDVJS1ZwbHo4VVdlT21uQ0dDRTVSeWhjdmcKaSt1SnlnYk03dkgyWlh1STJta29xNmhWUnN2QlVJNUorOUlmYW9GNjdReE5UajNrZDh4NytwTjZhOWpIWlc2alhtOEY5OXNqZG13Vgp1Tmk1RjQvZTJkMFVNZm1lQ1VWNmhjelFLSGR3SS9hWDlEc3djVzlmTTRkNVJCWm03R0g5aERTSEVDdmdzcklsZmcrMGwrZkZmRko2CnNmU2Y1ZDJML3JaUFQvajF3b0IxcGVsem5zbzloTyttUnJXTENqRENyN1lCY0lBZjNYWmZFVkg3WkYwZ1ErTFhVMmM4UGJvZlc2bTAKQXZROTg3UCtPS0dYSGxNUXBjU3RldktIeU1WOUhZV045U00xZGUyRG9zOFltT0lGOTUweUdnMEdRNzZ4aThBSXJCbkVTanBwcWxUTwp5b3A4UDYybTdrUjhSUDh1eGFYbm5tdHVvRU94b3VIRG56TkNwbXlaczkrdjlkVVlXQ2VhUTRzY3ZtOVZQV1A5TDBYZXJ5TjVqRVBqCkdrM2tsMTBCZG45UjNraHUxZUJIV0pvRzZOTlZkL1FTYkZpMGYzbEV6bCtDWUdxM1cyQUZwUXRxNWJ4Z3BBT1F4ZllCeUMrRUtDVUkKWFVld0Y4cVFSSzZRQWlJYjVONW0ycitBWE01aGphUDB4QmwzS3lKaGlDeVRYd0g1d3lzZHhubzZoaGpHWlJVNG9yaTY1VTVCNFdFOApGM3hTeWtNdkhHTUoyS3lqaVdEU0h5VmFYL2d3NDNWNGUzazZkN1lvSnRxVUlpTVNBdlNXdDF0ZDNUUDBrd3Z0Q3VJbTYxVXJqMjVJCjJXV3huSy9pZVpiVlY5ZU5PR2dmYnRnMTV3STFVenh5djM3SFJ1NTc0dUlFeDUxWDZodXI5KzgvM2xqNVJPeVVFYkx4MngvZU8yMWYKbU9XdDl1bWJWWnM2NTc1TzN4ajVGYVJSZ0RJSm9Dc2NMWUxoZFlSZGxvRVJvYkF1Q0F4dXBjNzBMTmRseEpmT3A0bUdHTmI1ekthRQpBaXV5aS9CclZzOVRNT3RVdlhFVzRaTHhIOThuSGY4ME42aTBxcW84aW1IOHVsYzFZQWNqTW9YMk8ydlhtc0YyaVJiRkFWS01pTEY4CjFoRmNkeUkyZUdCOHlZL1hkVkljRTNuNHFjNmQ3L3BDZkNNd01TYmRIQUk1SFZQdDNtODFZdjd2NmtEdlErOUZCZ1ZzK1Vra1V6Q1oKMEVYMVhkVUdYcnczb2diMnluaTNXOHRQZ1J4cVFST0N1V2MrK05jZ21FSW1JL0tlMTdwWlhCV01qaTdVQ3ltLzBMVXRkU085WGtPTQpkMU5QUm9lVE5LcC9iWSsyRmhBQjAzOHBScWh1V1JWQ1ZxOGVKUTUwMVZ2OEc0aFNLUE80aUVsSXUyOEk2dXY2eWVHWTQ0and3aTZRClhnbEdyVENHOFhoNHBWV0pESHRobG5YNmZjZmc2WjU1eWtZRk93dXJmeDlNL1hpeXdYSW1OaTd1L2FPMTlmL2lYV3FlNTVXRyt5cmkKNGF5Z1YxZVdULys4MDlXc0twTkdyVmJYYlIzL2QyZSs1WGoxOGFJMHp6M2FtY2M2UjdlSjJubVZQY0lWUHY1bWNlWDhudnN2YmR2Wgo0KzVPVXcvUnQwY1hSaEJJL09vUFI4bXpPb3ZENFlEODFLNlJxZHBPNEVyNmFlcDA5dkdVek5CT21YcTkrY2lKblcweUpYb1pad0djCm1nV255TitlcDJiMWhIMVhhc2RuRlVVUnFZWDZjT1RpTnRWMlJoRHE3YjJ2T3RWV0cyYi9PbFhCZHZKdWR1U1l1ZUtxSmp3ODNjYmUKY2YvWHU1dlhVeWVZekh3QWNOY1hjSG5VTjlGbXlLbXVodXBNYVpVNHhkeXYveHZ4QlliWmZRVUYzS1BtVVVTYi9mWHUrRHYxQ1ozdQpqN3VhYkNnSUtsRXBERms1a3Q5SmNYZkl4VkdCZnhHQ1lSeFZ3U2g1ajl6bUpnU1QrbElvMFZtRy9FSUJoczNjcnNNQXV3eWRoWFVqClQySVArK3ZsR3pIRWFHVE4xV3lnT2U5YWU4ME9meWl5MmlXY2txTVpadGVwR1ZZVUc0MVdiNUtsRzVSMEFSbHZIMVhxVHlScUltcUkKVGwrelgxeTV5WU1VNDJrNng5VE5wZUYxbVF5Y1BtOXVET0NlZVFsaTZoOU1IVGsvWmM3Y29TSC9zRzJ2emtpeldLd0tRYWl5V05LSwpNdktEeGhyWndxajh0c1lNTVlEWHpLenVXL1QyUnpWVmxyZ25ldFZIRElyT3poczRaSy9HZmpGSkxPR2RCV1hQNzJkenowN2FvaHFhCjl4SzF2OENmeWkraUgwcjhnaUlnN0NLYnpGYW43QTVJWlNLRWZzcytoN2FURithRVJtMGtCcHpldUtqamVpT3lhMkhQbnJEOHVQdDQKSC9JWGxzdDZ3c3FYVXN2VDJ3WFFwRXVtV25lMExJclhrZTlhTGU4VW5hMjI4blFWVG1lTmt2ZnIxYURWVW80VlFZNS9CMzl3UFpMNgo4MXN0eHZhMjlzdnVKL3k2Qkdubjl3M0o0Y1cwb2xZVnRYTFF3ZHp2LzB0SHVuTldCMEZSK2hrdXpxaHd4Mm9kazh4eG1iWW9QOXRsCmk2eGRheWNqSjFxOEhPOVdhMzlSbHEreXJCeUJ3ZWpiSERSVmlrenJQQ3Z3L2lveThMQ1FTeEJwUjJ5cHp5aE9LYjhnVUErSDVJNFgKTCtEU1l2ajZOVXVrTTFhaXBEdEZsYnRKUTV4anZnVng1aVprdHgzWk41TW5pb2dkM1lnT21hVHRJaGczdVVuTTlFZUdzVlJlb1pybwp4c1p0WG9KUnU4MkRhUjBlbFZXcnFNbURWeHl2SEhsbGM0MDd4bDN5clQ2bTZNRmw3Yk5pM1VOZnU3ejk4dFZuZWhuUzlrVEhtdEoyClJaM2RNcjk3cGNWNk5pTS9MSERTanR4dUx2ZW9vcVBsbGFPME05ZW5KUzk2OVk0aHZkb0VkMDQ5VmFBMzY3dWRVYmpMNVdvRm0yRXQKVTk3ZlJ2dGlGOG5QVGNVWHNiK1VNb2xmUnpIWmpMRExDb3NHRGhRaFBWa2hmTEJqWGtLbk54YzBqdHlEVVdWendwWDNUc1VZalVSZwpFVnFSL3pQSVBTdy9Ecy9BU2tnK1dLYUtWeURCbUdxd0s3aXNLQzNMbXEzYVZ2cmNTcUFFUzZ4Y2ZHVFpoa0pacnpZMVduU2IyKzNaCjVwd2lhKzcwclZrdDE0TG9YN0JoZHZnbG1KdXo2SGdBM3oyOFo4L0VnN1h5aUNuYi9rdDZBYXhPMG5vVU5WOFRnbW50ZXRjNFl5TmMKQmFqSnpPUnNSck94OWNUZENzYXZBdmRUR0I1MnpaeGRzUFBxWmFuYjNPME1PcWFVdUZJc0srZmtMTnBldmhBaThrZmkxeThFR0d2MgpMblJKeHFLcG5KYXphR21Sa3dTWFdrT2tINDJSZU1Hd20xbzgrK1B4QTB6c2VWaHJZZFI0Zit3MTlkUk9sVU9Ma291dTBDeGw5amEvClJIK2tKeW9SMkFiMm5rUFpwakVIbHJ4cit5WVpjdmpqMEF1S2lwWkdWNzk2SG42TzY5RDJwMFZURm5UY2lsNjByWCtEcmZQcnZsei8KL3Jjdm5Nekx6VTJKRzNKeHRIVUhFNm5VMWJ3NkplQlJLRnl3bE9vRlNqQzdZclJuMVlYKy9vbGQzOHVKbnpCNFlXd3NTT0lMK1lYeApMMEQvSVhvempnSTJHVEZqTFRUbUpqa2pGSTVOS2ZNdWxYMVJzYVlpNElVTnVKVzlPanBtbG5UMFNqV25ub1lQYUlocUdxRVkvWHFyCmc2cUpSZ0dhc2JDREJnU3F2NzZ2TW9JOGFBdjVtWWtwam9ZN2pscDJqNEIra0VaUFVrWGVMK3dMRSt0YkM0S3UzdnpGOUc2RVg3RG8KVGZqdUxkdzR4OTdtSWRQajNqMytDMWpsVlJDWkM2Z2dCdDVWVnRiaWxiS0lzb2djaldmU1h1bnBPNUQ3VDNnUlZDVzNmK0t2Vnl2Qwo0S3NhaTN2VVZ2QW9mQVdIUHZ5aVNjQ2cvUTJHY1lLQ2gxMU9sWm5CUWNtSUtxNXBMNCtvczJIN0xxZVBtN3BKZEdhNmxkZ3llZVpxCjBHand4aGdHbDlEendxTUNwYWpFT1lReWpLNkpUaDlKL2FDYitJVTNMY3ErbUZzeHIreXE3bVZic3UyVVB2UVlKTTE2eWJ4Z1cwSDQKTk5lQ0NtSDdHNDlTM2pSalFlRzlXN3MrOHVvOStWL2s1VUVLZENtNVFzaHlHQlo2WDNaaHlqc01NRmNBNS85TS9oZDc0aGR2R0EvUAo1OExyOUZWS0x3MXlNQWw3ZktENHNsQjZlZldrZ3QyZEhTZFM1dVdtUU1lazlNODNJQ2xqaWtvZXhwZVdQNzk4eGtvMW5kS1FYR3F5CkFTS25MU0ZIay9OVkUzcVIzNHMwZllGT21Xenc3QzNVbGRCV0ErWlJoaU55NTZ5QWZXdDdRcjgweXUrcUtoc0U1dm5tSk9SWDJhVXYKSkg0dGVsTUhTNWpDNXg2T2ZQeWM5L1gvQ3RTN0hJKy9OSGUxcEJkRWxKVkYwQWVvSUlKMmNTZlgzRzFuVUtoZWFyblhiUWtwbTE3dQpGT1FNNTlIS09ZNFJHVkdtZHRIOERGU2ozSFJNWGd2bnZZZkJtZEZWRk1GWUF0aGoyMFVrUlFzV29xUGVpT3FoQU5NeVBUcWwzd1JoCmZZdkRidzJ5VDQydmRSTXRVTzVpdVJabEtYaVZyRXBxVjQ4YUlxMnZvV24yM3V0djJ0VXQ5NS85b20zS01Udnd2RFVZTE9ISG9JK3cKMWV3cVpqcTd3TGl2WWw2M040NGV3angyaEhSVTZ2Nzkrd2RVOUhmdUdYandBbU5waSt2UitTclF2T2QwUTYvaStuSTUwK2FyczZHYgpPaXo2Wis2elErRDExdzhCOGl0SXExRW9aVEtKWHdGTi9KS0c1T0tvM1ozVnVaOVBMejMremFteXFmY0dkRmpYbVdpR3A5U2pIejZWCmVoelNwME1tUEhwK0duMlRkUElOcENRYkdnK1dpN0ZLWWc1VDFVTFp1amkzcmRWMnFiSXllTzNlUzlGMHJCUHJVNTg1WjBmK29PY1cKUGJLaElhYWlYM1NCaDlWcXdlSzJUUDFKdW1CY0hYM3lzbTZFWHpBNDlXaXQ1NkNwMnpQekQvNGZGYmZSN1lOUFJUczNpZ3AzUHl5UwpiMFpqaEI5cUhaTitZQW5EdEpyNU1HNGJURkh3YmhoMFhjamc5b05NUWRNUTVZTEFLend1Rnk1bDVPRndvVWprbDFkRFpLNzNFb1lFCm9rR1YwVWtNMitJeFdVRXVrem5kbUNQUkVqeExxMXg2eEE5SjZoSW9mbmZ0aTdjR0NYM09zMUllZmJNQVF4WTVGWXdnWWs0ZzZIazYKaVhoWWp6Y3JBVDAyVFhnMWV3Y01DR3NYVWVCMjlDeS8yRGJmMmdlZTNtZDFkM1VZWk9wWHkrQjBwbEZQZ2VMZXl6Q0NVOGNQSFptUgpjREUxOCsza0FTMkhCNWFPa1owR3oxaWxpSFdQM0JyL2lTVm8wMGU1TUtjY25wbUYzZzJrRnlxUlNXRVFwb2UyemZKTDR0Y0RoRjgxCi81aGVjMnpOSjBaejljTm5BcXNpVDVadVRaaTdiR3VJV3kyZkJtc1k1dndyMHJBbEJBT0JFT3pIMnFnUUUrLzdYbXl6N3Ntc2dvQmEKcU96ODZyalRsR0RZWUVDOHFuVDlFSjBvNjk5cGUxWHUyenM4QXdvOEE4UXIxdDZTbDhPQTMrSER6azJIRzJ5eWZjSTlnd2JkMlh2eAovNUZkNUdSRGhObnVpUDF6OXNHOTEvS0xNTXdQZnBpVWt6UHBrb1B3NnlmSUdoVitNZ1dGYUxmYm4yQmFseFkvYlBSaHl6eTBGUmNICkxFdnpDekgxZ2U1MG5RVFQzZVdrTHZkT012R2t2SjZ3RTJQUjEvR0xqR0xjcWhyU3VPYlU2WXUzMHNIUmpBNDdVZlhEeGFmbHZxd24KNmlsMEsxU3MycVhFTllSb1MyMlExbzExWW8vVTVnVXZZZFRCSXBpbk8xVVFXOW9sc2p5OGdjbnJ3M0JuNjYzdVZqWUR5NTUydm5yWgpTRkZQVzFiNUJCOW1lWUNzb09lK2ZmTStIckRNZHk2bFcrbkdIMUF1SGdMN1B0b3Q3dE9vS3lIM1BrS2g4czZWeUM5MGJlREI3YU9wCmVsaUdvUy9DcjBXREpmbTFZekRoMTVDN2tWOXdDaUl6T3NkeWJxT00xVVFjZnpuaXRaWCtST2lkeC9kRkp3bmd3Mm1aU1puK01mdkQKQWh3Sy9HSndKVjFsWWNkZGZZbkNvWEpXN09pZEprVXVlWmNhNnNQaTV4L2VkQ0xLTkxEejhUZmtycEl3WjhIVmd2Q1JrbDVLVzVkcwp1MkJla2pSMDFOQzFxUWYzYlBzLzA0dWM3SUZGQXgvYTBDT0ZqYmllWC9mV0FlVGtFQWxtVnlrV3o0ZXN1UzlrelVldml6djA5NnhzCisvODFaTDBqS2dRaXhPZ3lDQmlKZFpPaGFNVEtaQ3JFcEJGeVhSeloybTRML1pzZzdIRnp1SktZM0huTlBpZ1RuWXdDcTF6a1I4Y2MKYjM3aDFtSlN4R2thTm5keFJBdHN5djBtQkpPekNrSFFja1F1VzBXY1NsaFVGTWxteVhYZlJMRG5Oa0tjMFJnY21kYXRYTUZkaVNpSgowN2lmUG5VSjNKN1lPclhNSXovdGRDdUk0SDdtY2ozbU92bjRoYi9DOUE4ZXZCQWdQTFFNWkpFT3FWTUdMb3BISkdaTTYxRkVVVnBaClZCVGJKVExqMGZRZkRnMGg5RG9FL2xGRWVoSHRzSDFRdE9KTWVYZGlIUlZCY2lhWXJUQllPdTFpeXE5MmxGL1FzK2NwcUs2dWdvMWwKZTRmNkxYL0pjcjd5eFVUNEdrYm5EMmxWNkY5SU9IYWVDRE5JcXU5ME9tMXRxWlVTVEpSanR2TmxWMmhKRlFhV28zcDNQVjlsdCt1cQo3SW9nMGNqQTBlNERVdzRkeSszUkp5ajdhcW1aYjh5RlRsOUtiK3pEdGoyNy9oZHFlVEVodmYwK1crWU5HaUJsRXduV01RZHl3S1pZCjNCZU9PVjl5UFltcWhOdzkrYi8yVlA3L0Jsa3JDSEZXWVJFVkhTSlNUYk9JQVZoYzZFSGFlRjJ5SWN5eFNSS3BVMWlLazVHUytacjMKMGZFdWhwT0RxSkc2Mk11T3o3NFZaU28zUXVmdE5CaE9GeGdVbXdRVFhpZWpZSEc1YlRtbkZRQUx3RER2bDJxS1RiZE04Tm8vT1hoRQpZOE9WdlUyUUYrUitOV3YrMGVUTlZuRFBPQnhacDI3UXlXUUtSaTQ4LzlJbEM0MnhvZnFIL0FyVDYyTXVGZlRjM21QNEJzeSt0Y3B3CkVTS1h6SVg4NmpXblB6dzFldVdwcWs0ZDVKbWp6cFZ4Y0dqak00VEdrdTNWUGtoRDZBVmppZnd5dTVNaDFRcUxLTDkyeDBueXExMmMKS1hVTnZiU2VsNVBZcXRnMTJVR3lqL3BuaGwrNForZVl4dk5RK0ZKeFBmalgreGQySXRybHkwZkhzdThjcy93d2ExTUVqK3RvVTgrdwphTkJGMTZEaVpiODRNdkdpSGNoRHV6UElwV0NNbnF1RERKNk1uWm1qUi9XdlovTXNFUHVISkFXc1hqTHVHdGRHRXlMOGlJWkkzbkpTCmp0N3dZOTlaQitmRDNZS2FXR1B5OE1IL082di9aQkNDZ1lrWVlFUnNpZDZocFpMckdnMENWWjNRTkpHN0dlOGlLVjdvdXF5aGZ3M3gKNHZuZ1JqVnRKTk1VNzlLQlFDd2NBeS96T0ZFbWtxM1pZeTgySDNzck1jam42UktRT3pLdkRDTlh4T2dBdFdDeW5XaU9HSXlneTZPRAo1UFZvNnROeHoxWXcxY2J5Y003Y0VYTGt3VSt2WWcvRHlYcXJDMUpuSEE1bDVhS05MYng0cFhSelBkMmRLSGNvckdTWWNHc3Nzbzc3Cm9LSmhBeENxMVZ0eEpRWVVZSVM0Z3g0SDJWT2gyYWRxTzdVUk03dVlyTFc0RnQ4ZWRSVFNpK2lHRjZyS0NiM2FBVlRMb0J1c0JjV3IKMG9YRUxSNThybzM2NTFuaFVSWC9sQVBOKyt4NXRiRXFPTUFlcGRsV2NWZEo5TkdhK2dGSE1jMnlWWDA5MUxjeUVJSU5UQm5ZV0xFLwpQSEIxME1JU2hZRDE1YXhvVTRwK1VHd1BzbVByNCtVaUpuRklEQlBxSGVHZTF1M2JjZmtIemlUMDZ6OXkwUGcvSktheWVza2t2eHBDCnByMGxFc3hGSmF2ZXBZOXlPcUlGUnJSRXVQdThJcFZ6SitVZkpGTThyM0pPKzY4U3NmNi9CUG02cmhBTng2a0NHNXBha3EvYXBxSzkKdjRnZ3crSXBsZE83dUt6M2tDZXFwTDhqK0hDbkdmMEhWT3A1WVhOcXdXRkNMN0RTS1hrZmJYVXRYcjZWWUwyRlgyU3VZRmhSS3U1QwpRYVZ6MUJySmF6aFFPYXl1UjFlOXgrdXJKNCs5RGhIVnB3RFRMVGJZQlVQSktVSWRLeFZrZDdNWnZZOUxGeXdERnl5QS9rMHUrcGdZCmtGbWhDTFd4bUZrd1RiZjgrYTY5M3ZrRS9TdE5KWkF1K0pLODkzMGRnaWkvY3JyY3Njc2QxT1NYYnc4YTdBWTRGbmVzQnVnQ3NGYmgKZGU3dkhwMzd3TGxROWM4SElYei9idUJXcW1FYXFGOGFFbW1mL3dJSGRkREdWQUhKcC9PK2VSbmpXSVVBclFvTEk0a0FBMGhyRlFjUAo3UitRY21mc1VCb1hFK0Q4eTFZb3cvTUhWVmRwNEpXTUgrbjV5WmZaMWlnNGtyUEVybDJ6OWhhOEU2NTRLdkwvRU9MNkhTamx5b2k1CjhNLzJqMGxxQklFZy9IUnBMallZZjJJczlTR2lKeEVhd2U4TnI0MFdGZGw4OU8wSytSWDZ4NStWeWhTOUpITHFCUUgwV0xpS0svQnAKY05DaHcwTjYxZWR5VjV0V1NFRmFITFZTanpkeXBKYnNTcy9sMngxT1RmRWVjR3N4cVZIaWx4UTM5eFpQa3JzSXNKaWNIbDhiZXZLQwp4RENRVnJaRWtrblZsNC92QlFodzVnSHlLMGZwejcveXNqOG9NVkFMQTJDWmE4RlNhQkVBVThiTSt2SVNwc1dIeFlCcnVUbnE5THlNClhpNXdQYldxQ1A3eGlyY1RLUFJTN0J2eFpBZEhCdVdYT3l4TDVzWmFGWUwybWpORTVZNGlueUd4NkRFY1JQaTF3Y2N2T05ubTZ5NmgKNnEzbmFydW03b2FWTTJiZ051N1l3RHIvbXVUUWt6YlFIVk1tNXlYVzJzN1JDQkp5cko4MGZQdWxXYUIwd0ZtQWdoVFhuWGozQndyZgpIdFlKK3YwWVZFMG9ESk5maXd5V0pzcXE0SHpRaGFVTHlWbEZFM3FkMDI3TGZhWDEvTkFYcGJQZFJLeXUvVlQvQ2t5SFYyYTR2NWQxCkkvWkZWbXpGa2JyZ3pTZWdMN2lvUnZyRUQ5NWRrVjZUZmlRQ2R0SWZ3L1JiQ2hrNFZRMU9FT3U5cTBOUzZEZ2xNREtYeDQvSGxEeUcKNkZkeTdNUUVkQkd0WjJ1OFRVUTdpS2RvR3lhdkFNT1Z4NTBpSS9ONHpiR21ERVUrTHFGbjE2dk5udkpiaEc0YktXVUVKYTR1NlBCMQp0bUZBRExJWUFCY0o5QkRGVUU0VVJhMUxtaUl3OTVLaGEzd2l0cjBHOFFxUE5aM3dDOHdhTGJNTE9FV2hGU0kvclZZNndIR2s2VzBRCmtRdS96R2NqUzJTUUFDNzEwL25GSG9jZkt6K3Q2SnBSSDVNOGZQZ0JWQkpkM3lTbGlFdkQ2c1dpZVEzeUhIZmJZV2ZZaE9nd1kzU3AKeDFNbE14aU1SdHFMQjhOQlhVSWg4ck9GQXdmaWlYZmszdi9HdWRCUTlZbXpSWmRmM0EyUTdIM0QvRkdxSHVHZmFmT2lSZWlaMmFETwpiNjhMYWZMaUZFZW5RdjkzeFlHSC9tM2RQTjlsQWJDd3MwdGRiT1B6bXo0dURHbUVTMVF6dk5UWU9GZDVDUjhGanlpcHNpdHFhd1ZyCkY1ZloydFk2ZmxiNjVaVHIxMDMvbjdHaVgxbk15TUUvZHJnajdNaUpVODdDakl6OEkyZVBucldXOE45K3RtSlBUTVh5N3grNkwvbksKWVhSMmVwRkRKdlZIM21weGh0c1ZNamR2VllCZG84SDJHVDd3Q3N6aGs0SEFzbG9scm4zT01sNkt5U0VnNlhQdlhwMFVaOUVwNEpWaQpETklQbzBsU1hVaXpBQU1Zc2kwbGE5WXRkeVoyMEZRaXdaVFkxNUhobTN5REFXS0Q5OHFvV3dQWHYwUUtBcjBGWDI0WUVXT0tGTGhEClV3NGRBVEt6QXRnbHgycDQ1YlBmUWxqc1R0dkVpMVpyMCtrb2pJV1hLdjBWUmJJd28wc05LWWJEZzE0aW53d3pXcDgrL3d5aHhQQUoKUkJtVDNiR3oxM2RXbXpKdit1R2dIR2pUdDZqZW83TFpuRFpDTFNQTE1EVU9oNE90ZDFSV1ZqNW9NaGhnTUM4NVpiOGJiUGVFbWlNeQo5K1ZkenM1ditZN0RlM3kvSzZ5ejhrSlVZYVpCcm01VkZkQk1NTmlBM2ZKWlp1cmJjWjhubmdKb1BTTnJ6WnRYWGZ6K291SUlKQmphCllFUy8vOXNoaVdBdnJLKy82NUxkYnE5ekZtbGRDZGxjUkdQU3MxUDMveGk5L0thNkYvcXR1ejk5V1ZyRzExdU91TjJOZUFFOGpRMnAKQkR2TDJ2YnZhZHo0K1lENFZ2ZDFIN1duaVdOeVIrQ0VtM29KZnhKa1pCRHlHakxpNmxyNjJWazVpK09Oa2JHaVM2dFVZV3NBbXV3QQpibmx2S1FaR2tGaCtwVVVtSHo0SXJuZTczUUhvc1VPdStWN1JSZWJQUG5GNTRxMW9udDBTN1kvaEVyaUNITmVmOWpRTlA1VlY3MnV3ClRvQjdpSUtjbzMySThRNmFGcGtOeXEyRHphbTRzSEptSXNleUdYVThoQnd2RFF0ejJtUmRMMXIxUm9jdmVZTkEyYmtZckFGUDd3NkwKY2FrWjdzalplZGJUQ2hGRzd6NExYWHJUSFFqQlB2cDVrSDdqWis1OWNjNndiSEFIOUs3eU05RHlMT1FXSXdnMEtEZXJUNTgrZy9GagpVL0FLNEdYdkhZaElQSGM1d0pMNFdlQytqbDNKNXNoRytoODk4ZmtsVmFlREx2WFFoZ2VHZUxxcUJFNVZGK203eFg2UzhJbDV1eWhCCnhoWUJ6SHZyemN2L2V1T0t6blhaUDVZUXJBWVZSQ0xXRWxmWTdWaXFjdmlpLytXN0xPaFFySFBXdTBTKytrVGkyY0k3Y3EvU05XZHYKR2lZZVdYZEo1WFlRWGttT000Uy82Qy9LNVI0UHg3dkpUUDc5dnplMjhTVGQxNzFQcW1RTWkvQThWWWR2ZDhqOFZTb1ZkcWRnc0NtSApGOG9HbmxET2cwc2NNNnhMRUVRR201elJHS3k2aXhRREkwaUlTMjJtRjMxa3hZTlVBbnJ1ZlM5Z0h1S08wWDVIcklOdlJWL0VsaGg2CkFRdHZSSTdhVmI3UnB3SzF0WmxmYUhrUkEwekFKbGpTSFZCdkR1TDEvWnpwYjZsV0UwQmxTTFZMS2RwY01rMmhQc3l2SE9ZNkJsODEKR2lNajNWNk9MVGpWdDFRd1Evc3VPL1VMMHhtUFJlYXBNaWxnWkJ6MFB6bWRTSFdjdHlhTUhyTjdrUDZac0JOYnc5L056WEt6bnJIYQowT3JFRUlvaXBWS096YmtJMHBNazg1L3dpNWZKM3VNZStOclRHSlkyWkZXUHpZRWZRS1RCa0ZaZlgxOWNYdzhZN0ZLdnZETkhXWHZCCmxxYURRb0VMTDFkRitXNXhReDJIT1lsOHVtVW1jOVlLTWR0Z3orS2NmNzE1aVhjSkVSR05VSXdwZmdCYXNRQnYxUTcxLzFxamVWQ0oKREFPNzNWbGJieHlZbmgrc2EyeTgvTUhOREVFRkZyR0VYTmd3cjNtYnk5cytDQjNWUktBcDNZZlcvYnp6YitIM2R6K0FGSk0vTnI5NQoxOXNZTWkzMlhtUGNTbVdMNkxvWVpIVWlVSlh5TURLUjFicklDTVRDRkdiMjJxYTlPdm1kOVUzaVBxSjVBdFNyUEVQMEJkNm5GSHlYClU0TS9VTWtIM0dvZHNiV3BqQUZzUG9zMm9tLzB5UVBFYXpPWHFWcUlDN2RUWlZkc2lvS05TdVUwZjB0VlFHWUlJVmlQYWlWUERGRnIKbUtiY28yZ0g2NGljbnA1dURHNGRWRXI0dGV6MUl3Sll3K1krRlJhVEttZVk0TU16R0VXZHVnMkFIaTBtNnZyaFJPUlg2S0NOc0hIMQpCUXhzZDlGN1Fzc2FLZno4cmxvUmV2TTljZVFQNW1MSVJKbTRKS0pEYVdNWDgzRnp6TDZxZHNJN2hmWEZ4Y1crYTY1dkZXbFl2ckMrCmZXMnB5VCthNnhqaE1lbFUwRVN3QytUOU9HNTh6aUZUY2ZBeE1sTVFudXhhZk9henVUQmh0UitqZ1FJV3E3OUFtOW1vUmtkOThCeTUKemZ5RlJUWEtTekc3TTBjZjVLb3ltS3VyYjZZSXMzRFlYS2lwcGtudndrUTFINXgwNnVaNTNzUTczOTNWdSszOWNhbnMzWmU2SEd6ZQo0emFHVEMyS1NwYVZXMTFTRjNrS0Q4aDQwUEsrdGZZSXhjZ3oxQmdIVHlodkRrRW11VTVTeTl3cnZnaVU4djdKSDZXZkxyZ210cXlMClR0akFnalBxVmtmRGtreFpMSWdpSlZpVGg4Vm9wOUVJTDJTNElCaE5xQ2ZHSnRHRFJTZjJTYVNJcnJad01wY0FxUmNEUStSKzFjcXUKZWExaDRYbXJnNFB1b2NrRTBLM2JTWmU2Q1BtMW1tUE40RC9rUjcxUndjQ0puSWR5ZGFYS3NRQ2hhNGxhMTYycVV4VndWVWZ0U2MrRQpCdTNrT2x6QjFCK1ByRkVSNFBtNTFkRldhY1hSUDFwNG1pN1l3SnpyUnY3NEYvZ1RtbCtwUzl6ZDJNYTh2ZGhmMlc5ZGttSjJaYk9GCmhhaVBob0hMeXVRL2QrTFU4NGQzRmRPdEFYd3p3UzdqTDF2U3RJOGVLaXV3UUNoVk9IWjluTDQ1cCtpcVg2d0dpb2hjSnhUVDlxL3oKenlkemFFQnZaM2FuRno1ckxKMWphdS9sR08vUWRxMStacDBDRStsdkV0NC94YUxUeXplMzZhMlM4UEt5ekUxZW9CTWJ6OHYwN3RXNwplaWZjSC9lRmRiaTNpT0EyQnlzSUFrNmdvdGh5WW1mdC9iVGthOUJDUTBNRHRzQVJXVTVQSm5qbnNkQ0U1cDIyVTVrbmNZd2dUQWtQClR6YXR4NitsRWVzamZMQXB3c2tvbjA3N0xkOUtyQTlrdlgzN21xR3lLN0FUdFFSR0puQnlXcmlDODZwVkJOSHBhVm9DYlYwL3VuUmcKSmtBdVByV0JXcGkxeWxyYkdSYVFaeFZyWVczRkovYzgzeDhXYkhqOUMwNXVCc2JJQWE1RVBlWE8ybi9vYVJIVDdyV2pLN3JCdVU1Wgp3UFhJdDkvN2pPZk5LN1dhZUhTMWtwL3E5THp2NFNnV3BLUkJWWlcwVXFSazNSZUVGeFFVck5xOSsxeEk0OXEwQmRPZmRDeWNFandmCnMvSXhZS1lCRFMxK1FEQ09yTHI1UzZhV2xwYUd4SmxBaCsxaTZSN2I2YXZKOEFsY0hKb0g0SjNxSG4rOVRXRVJaTzJJa0hMYXFvRVoKOFJwOUlYK0JwdTdBb1ZaYzFnTWZXS3Z1dWdzM1ZSWGtiM1o0WTUwM0NlZm9IT2RVT2FXcER0MnEyT1pBS29vaW01c1c5aVYyWVpqcgo0Q2kyeDh2QnozbzMzZWFRS1dtRlBPRUpKeldkcHVCbGRWM3M1SzRWQ2dWUHhGaURDb1dZS0xvWC8xMXh0V2tuWi9lUnFXcWZTdVZoCmV0MDl3TEpKa205ZFc5cGJRNHhYTDdubjFQMjd4YVpiZzVqVEdtQmRWSUkxYVlqNmVoKy9HSm1iU0M2T2M3c0ZVUzNucUIzV2xCTE0KZ0h2K0ZsQ0ZBam9NT25KK1piTExyQ0ZGVStPSUxCdnNzTmtnemhZWGVLUlV2UlFlNzdqV0EyYWlYNzd1MlpsQUJGamMzNmRzTDNmTgpqU1VqZHpSQVhIajRPYmRNbkZmeXhEUHcyZUh0Y1pyUWJEZGVEOHU3NituN2VMQTZ4RzdYRWZXSU1DZjl3dm56NS9OU3o1OXZvOU9GCm10Tmd1aU5xeDlZcGpwZko4Q1JmQk9DUFE2VVFORUsvZC92RFVjWHJ1V2RpMGU4QnJhOFU5WXdVUU9NZ1A1cHNldUxna0YxRkF3NVoKSU9aTjd4MXRNejk4RVBPNE5LMVEwN1NEdmZjSE1xbW9jbSs5N01xd3hKZDJPRTRZTGkwOU1LSjlEWG5SbnZ4bDFZcWI2TU9UMVVodAp1K1MrMEEwdGNtZ1NZQzFMZXNnbmthMzhyazNQVmdQMGYwaSsxcTJHVEVrVDhRaWtOalkrS0F2cnU0VFpWU3FuZ3RkYWlWYmxZWlYxCnh2bkg4cTh1VEduYUo2UFY2Q01NYmV2dVVibW5SMVY4S1gyNUFBRUZUZnVBYS96cW5pTUdsKzYrNVhFd2FEOXZGK01sbU5mbHAySnMKVGZ4QzVSR1FWcUtIY1RxeGg0RFlURVRDc0JYTFFHWEx3Z2d0SVZqYmlBS05UbEV1aEtVRWRNQ1hBN1hhcGFIOWx5by9xOWhzYzFZeQpVQnQ3c2NkWkl3dFBQQmxsWTJ3d2dJaVRPTEpiWGh5WWxmRHZoUHVlWmo3NmJwWHBnMHBpZ01uSWo5dmo5T2haajR3R0NvaW1VRTFzCkh5VlJKWGcrK1VxSDBORFFvNzNNbHJRRkhRTjNMeno3ZGlIeXk0dCt4WU9MQlpVRE5rQnE2a3NEbitQRmlXRDRlS3loY1Z0TlAwb3UKaFVQanVHeFQycFFkNHlJOGFWd3VoTTl0OWxSY1lOcGFsSEh4alNYVjZENkVIZlcxaVpYWWVwUXU3aUhXZGZEVFZwVjhXNUNyNUxRagoycmZQeWJVTzNvTzFZRGNGcTNkZ2ExZTMxd1lqdkpLb1JYODU1ZDYycndSYUhpczdlTjdKQnZrbjFJZjlKWFJFbVZ2bW9XcVI4OXFVClhoNE14VmU3bUdwVktqM2hHRkdlV1Z2dy9OZnlBVktHVDIyS3NtYTE3WkhqMFhGaHJqbDlZemVjOXRFTFlFeHFzNDkra0NjNysxVDAKcHB2MVhmMFh5RkVyS3pIRkZxUEkwdHZMOVZMVk5XM3BDMFJ1ZVVRcEdrWVRmajNnYlBLS0FoTnlBTUs3dFViRHNhTkdyb1FDazlKbQo2NklnSmhqU0M1WWVDeHkwVlBtcDhLM05BOWlnS1d6K1UzcU5ZdlM1L2NsaDVRRFpQa1U2TDg0c3F5bTdZeWJ6MGNyRFhHenBCVlRRClBMUVhxdE50MTlNbStUaTNhUWhFVVdUNlJVTTBIQzBLQ0xNY0x6TDFXUGY5NFhDalo2amtWa2QyOVV1RFltQkJzUlVWMy80djg4Q1AKd1pYNVlPVmI2LzBETkxoc09wRngyVHl2cTYyNVEzMzJySVhNTVY5N0Q2WjQ5V1NWWGQ5WXF6TkhtV2taU2tnbDJxTklzWHBWclg5awo2NktRVXFHQno1R1ZoZnp0eGRyWVRjMlc2LytLNFFld2NnbE5MWHptOGxKTGdyeFpQd1Rzb3FMRkgwWDI2cU54eHBzb1F2ODh5TEUzCnFPUnB1dzQybmZxc1VqQmdXd1l0R1JpcSs3T2tJdGY5KzV1SDRYcVk0b2psYXFDc09UdlVNSTRQYWFicWdKeWdUVk1jK2k5SGQvaTAKYWRzdHc4YlpPcXc5eEhJVVdvbWk4aGFWTUpoY2puM3BwSzc2VGlJVDBNUFYvRVVqTGdHTXZVeXRLWUR5Y1BMcmxabjk4a3l3b0NhUQpQRjdLUnZaWkNwOVdCTnBjcm1yTXRTUW1XQXc3K3IzODZZV2x3TTdEZ2d5eUcvbnpjL1NITVhjdnF0c0lNWHMwRVZSRmNDTzNXMFlLCnNPQ0wybmtEcVZHV2xBUndYRFJCOXU0OU1POWcxRkFOTnRPR2ZtbGNHcVNoSGdua284YmV2Ky9hcHEyWjl1NTg4Z0RxUUovWEZpMHcKMkRSdXV3MTB0ZHA3WnF3OFRKNkdQM1pOWmYrTGkxKzU2QmlyRXhPSlpabVlTWDdqQThDcmFTaUtPVEJNTTVibkM2QW1UTGg4K1VPSQplZjBtcGlueG1IL20rM1QxVnIxVktxRkRPTDJaYVlDOXBQQ2ZuZndsS3F6L3BKdWZyZlduUUU1ckxHOEk4bFdCc2t5cjBvREN4ZHdmCnQ4M2JGb1hNaEMxU1dLNVBNNXlvMzZLeWVCMTFPcHN1T2RnOWNZTkxxVHAwNkpHdE45RXI5VHRSU1RNTm02R2hJNXRCVlpEMmZhU3kKelJOZ29aV2x2a1dhSk16Y0M5TVBKbm9KWmlKU3lmL2xmb2M2a3dNRE1RbVJOUjdyQTE5V0JINEdMTzMrWTlMUEptZjdnb1ZkQ1FKTAp5UFhaazNoWUlOU0VlcTdrMzFsaFdxUk5DWS9UWmFIQ1FPWnkya2dtQ1BmQUhIdklqYzlOd29rQStVWFpCU2JJYWxQNkJUeGY4Q3E1CkF6WDVCd2RBemNuY2FveHdUWllZVmtyNHRVWW44ZXZkeE14KzUyRFRaSmpjTGNVRzlWMTdQL3prNGNHRXRDT3ZjeFQ4UGJaQTZRaXEKUnFKblFtWWkrZE1nVWQwQWhHR2pGTEk3ZXo5YTZ6ZGRXd0YrTnpQaDEyQ25LZ1Q2TWxUbzJiQmlockVQelI0TzVCWFNpMUlzNGkrUQo1MHNobDdpQWlVMi9hRzJEM3EwQU1vSHl2YzhzK0h1THpiVFA1UTB4cWRYbk50OXBuQkZqOU9abFU4b3ZTQzdGTDZZMlM3bGJoVTJUCkgxK0o2VktNcU1GMXB1VVBmQ2RIZnVFbUdoVEh4Q2lsbE9HTVgzS0xtV2JXejBWeDg5K1FKbmlpQVpxZ0JHeTJLQnlUU3pFcldOUzgKc0pUd2E1bE9FbURoUmdlRXVlNCtzbjZBcHBaRmQrQ1RzQlM5amVTVXo3ZVo4UXlFVGw0SWNuK3FJRktRVVIxVVRSbEcrQldmbTB1TAovSlBTaytBNFlaZFNWNXZhM1pFQzhiWWhoWlVjdG9paXYzaEtORmlERlVFd2VTOVNmdzFNaG5mcjhHdXFSSjFyTWpqeTE1NGRXOWhuCjJJeEZMaVd4QWNON2ZTdTlYeE9lZXpQWDBEYW8waXU4TWhNVE14c01VczZ2b1E0dStrZUx4d2JtRmExNDZkM3JEdnNmMFlDTVFVMUIKbW5pcmdwc0dFTzNoSmZGTGtsODBSSWVGYWcvZFJJTC9xYUNERFJYeHBrejZhMkVqLzlpc2w0UitMYmI5YXYySlFiZThPY3dVTU95YgpUN2RNM25QQllpTWpRdWVjdC91YVhXOE5ObFU1dkYrbVJzMW9uM1RqRXc4VllJUmYxTTBCZEJyQkQwRFZnbDloUHhlQnlzc3ZXcktmCkNYVXVLSVdEYXNvdmlPcS90RmNGZkFhMUxxbDluZndaaUxrN1pKZkpibVBSTFlLcDlqVFpQbVRuT01JdlQ4V1hvSW1ueGUrb295SzkKa0dIZXAxUTlKUHdDZTlycGVVWVRjTU9HMmxOcVRWT0NQNmxrT0c4WkFLR1ltNU9SMzJ0UUx5RDNOVEo1MmhxWVZ2c0YrUzVzNUN2YQpoSkcwTmRBdlBNWGUvZVVqNm9GdGhvZWRKWnJ0VjlLcG0vSGlVM0JtckMwQ0VqSCtRSlJFOHR1ZkNsc0NRMUhkRGlmMHZTTys0b1Z1CnE2ODU2aWJCNTZRUGJ1NVpwbXJPV1BYeXk2c2xQdllYVVJEaDJqV2Fid1MzeGdQcVl5Y2ZkallsRXNEQVprZml0WmpRc3JmTlRDNEQKWU9nUmgzTk82NjRCWXpyVy9wOGFmZjJ2S0g0R0xKSWpFUlF6eWpkT082cENDMHdFdVhkank2N2ZMVnBQdmIwUjRsVWhsWFR3RHliRApXMU1KK3U2TmxZa0ZTZ1VuQ0lLNmF0OW4wYkRaUms1aHh0bkdHdC9ueDFkdHF5NVBzZ29jVWJwVEZ5eGxHU1l0WlFDY1NIL2dHVUxYCmtQVHdUeTlXVUFWUnNyL0lFRUlKNW4zRCtKaXdzRENBVXVmcmN3T0NvODl1SmFyNGdJSFBHRjJFVzJxZlg1TzJTMEYrRVlObWFxZE8KbWFmVHA2WG45cjA2ZnI4TlhNU3NPOWhxWGZ2RVhrL3RpRTcrcWUzVnFtK0xzLzNHSThNZXBxeHVnU2ZPMW05OUw5UGhJZmZXdHJZUwpFaXVoMVErTFREVENEQ291MU1KclRGR09xdkpqNzl4VUQ5NndzelMxVjFyRFcxK3FxNUtVR2ljV0x0RFBBTjJIbUNCRy95bDQ0TWZmCjFQZi9NL0dmQ2VhU3MwcVpSK3hvZ2VNWVJ2SGkxd2cyV2VOWDFQUkVGMFJVd3NuZmVNRGQ4OHZ6QlNjSy9oUitnVFA3enROcXptTncKR2ZxTS9qWWRQc21vQk96UGdRS01NdXdhdGJpNTRVMlBsRGhkWkQ3Mm5ZbTNkS1FFazNzaUhKVWhuQ2pJS3czSzhIbGpLbUF6OEM1bgpKV01pcHpLMS90ZVhaVkdyTkc3UmlZdURlbzQ1Q1c5ZlN1Mi94VDE5SmdPaFFRY2hzdXdDWUU4aGtONHl5SzdWZ3BzMlBpR3dDUDY3CnM3ckkwL2wxWmZrWlo2MFFmcGZpWTFjMU5rZHBqaHQ0b0VLdnppeEFIWFBhbXZUMGlES2lWdkxseFEvK1NQdVRkNHhKNHpWVFoxMnUKTmYydE1PWDgyZW5kR3oyeHd3bFB6N2RzZ1kzWTlsWk8zYzduSWk4SXRkajlCaW9OVWMrdFBXNVdqR2gvQ1YvbE9EZzkxaUc4c3RXVwplVk9UNmNlZFFEY0hlVU0zZ1VQbE5rZ3BVNFJmM2lvaVFxbG1BYWJndGNOYUZOdmQ1dmlQQkhNeWNsWW5lc1F3QzB5cUQ4cjNiaDNlCi9zQTFlelZoOUVkbHZvZE85MVEraDh6K3A4akhlR1pXNjZ5YjUvTDlMK0U4UG5aSVhKZDJuYnNydmlLWDhQbGRtU0xEU0FLTXVoQ3YKV3hmR1I3RkJLUUhLVnBWSXNNREJxS0JwS2xtNVVhZ01xUmJsSFZ0WG05emRDTDlzdklzRkd6cEx3dm1YZDR5eGZYSTUyZTJTNDhwbwpxTmtKd3FHRmVkdlRKbitqOGRpU3o4YXJESldTeERRNERRMHFsR0JVS0NGa24zOTg4WkQvc0hYN0xSWlVCK09lMEtzV0IwcjBRdVFGCjVCM0lKa2d3V3lyVDZQV21UNU5IbkU0bUg3VnJZRVp4b3d2NmxXWU9QcVQ4Zk41S2NlcjR3b21yV3FseS91MElDWG5rNTdzSXc3QWgKenpYWXRTaS83RXhvNjNQVUpsQ3Bndk4zMWdkZjVDOHpBN3dVQzgxVUJ6VDB2bGpSQVVQc053dmo5cE5mYmkyTGVRdjRYS1ZnV1piRAo4TEwwY1dzSnA0QUtMN3NXRkhZSWJZN2UzZmI0andSek0yNEZML2RZb3kyUWszTy9iekpzRTk0VUNMc1c3Wm9YS0hKUFg0dHgrSjQwCnBTTTcvVllzZ1A1cnVIaThMZXY0N3JSVUxSTXo0SnhFTU14ZVFSZmlOY0UvOE9tSmNlZFZPdzlURFpId2l4S3NVaDhxaEVBMVd4RUwKNXJBbktqYmpNanNld1Z6bmgxNHhkYzBiYnRNcWpjMkl4UytDbkpQYXBIMmYwVWI3YncyRUpYOE4zK1psMHhBek9sT2NLTVBRdzBFRAp6YktrYmN2cUhwcWNOdS93aDVyT25lZWRiRzJhTzN6c09SKzlDTHZnZ0RuSkRQZG1KMWlJd2t2MlR5NmJsa2xiVFNmWE53VFd5bmszCmxBb3p2d2kxclpwME1yUTR4MzM0NDZ5b2JUTlRuajdaTStRbnNydEt5aGhwZ1QydjVsK3B6citMTnFNbmhxQXpKc0hVUnZYYzkra3oKOTkyRkZPTzRza2krYU1tNjBtVTNVWVJOUHVvbVdtQk5pR1BSczdHaitvN3ExM2R1Ty84Q1JxYVMrRWEwUThJclNpM0NNTUl2MWROLwpHUVh4UHhKTXg4c0ZSdUhSaUU2K0xZb3d0V1NGRGUrMTVMb2RmZWphclBHN2d3Y1dFSW5ScGhBL1FkNDEvTktFVHUzL3RNeVhuSXltCnQ4NXBmVVpOQ2VhVkh0Znp5eXZFSHQvdDl4Z2hHQm5USFVFaW1GMkpCVmVaVnFiZ2FvZytiRE9nNmVOa2JTWW9KenZFeWlOdDIwOGwKNndTYVVZaUxlb3B5cFhOSVNGRkZyY2JqTHJQRUZtRUtoOWRMS2ZNWTBGT0d3bWpBK1g3SGR3dlRKNjg3eVh3ano1eVJrS0FzREYyUwpWbTJXK2hzUWR0bFMvTExqTFdaSU9wQmt3YnpGZmhYSnA1RmZRRVRZYVdWbDZ5cVJZOWhGLzI1Vk9tZkE4QTJoQXVNQlU3L1VXU25wCjh0UE80MnM3dUMxU1JPQmE3SG4xY3I3eDNXMERrR0prTVB2eEYvV3l2T2VPN1hCVThyUXVERW9pR3lyeWRJTnVJc0cydFJWWXpkMGYKVG96dnpmU01hdGM2UGo3QTJDT28zenl1b05SRU9NWUQ4a29COUQrUlpOb241MTkvZ3RzWU55U1lEdXYvbEJZc25nUkd4YXRycUFpTAp2b3F2RGU4bC94VUJCc09hSzFMa0JSY2VKOUtyK081OG5weHRxaCtiZHJsTGgyWUI5K2VoM1poMFFnSk9wREV3cm1XZmhDYkk1ZkpWCnl4Ui8yOW9JZ1Jib1dLdXBWUXRjbzEzTGFnQUtvQzdhWUJ4UCtRVXM3ZnlPMXB5ZzZoYnlMMFdKb1ZKUEtDWm5XZHJoUXh2L2s2MFcKTkdFQjZhYmxHZFc0cHJ3a3hQelFCZ1BjcGZyeGxTbDEweWV2UDFGSGpCK3Urb2VENnpNS0ZHSHJrdUJpZ0pkZEVBaUJ1ZkVXTUNlUgpBOUpZVDNSQlJUTFJYRTlIUUVTYVd6UEFwYWx5cUV1M2gvYUNWWGN1OGJqMHJRekdaNWRET3M0YUFzZ3lwcVNCOFpjRXcvS3cvSStZCjk3Y053TFJEc050Vk91QXZkdVJlL0ZLUlB2d0tsckE0VzVjVXliKzUvckQvQlkvc2YyekNhRWpsVzN0cy9rUlBWRlN5VUtDNU92NGUKVFg2cFh0Rk1MMHhGc1dzSGZuajk0YmN6YmtRd3A0TmplRkVoNjFYQ0tjQXA2a1JuRFNvb0R6bUtZZmdEclpiOEdyL2crRXhma3EvTwpxcHpxSUVxWjg4S0VVZDI3UkVGOTRGSHh3cWcydDdxbytRWVl1b3FJRjdTL01MaXN1aEcvRU4yMmNDZmJscUVONW00RnVDWkdTTHhGCmp3Ump1TUYxN2p5Slgxd2xVUkNSWUNaUTlqeXo3NW5hYXRDTHZteFcrVVRaRnFZV1FCMmJ6blVxdU9EQnluR1dkVXRPUk1LdmFydjkKdFMzckc2bjA4b1U5dUhqb0hiZHpHbkFCZVJZb3pnN0VuQkVnREVNZlB2bDArMFlWUjFjazQ2WUlTSXN1QnRGb243dko5ZWF1VmYyRAprckwrRmFRT3FzMk9tTGtjazNQSXFaNC9IdkNnZWo4RTNFalQyN1c0b3J6dW8wcWJzM3Q3YW5uWmRWV0tXb05GOTQ4akY1aTVSNE5ICnlDNFZsRTY0M3YvNFAySFMvbDdCNXJCaWFPMmhDMUZVbXB3SG1kNHg2ZWJxTm9WQlYvV29HeUsxY0NqYXRmZi9DVGsvZnlCK1NUQ24KbTFFckdUOVdaTXNDdTlqVitub1pyMk90YlFNc1lWWEZ3NGU5K2F2MElqZzl0SUQ4ZGhvRjdaTnRmMEt5R2U0UkxZNHRaelBhL1VERwpWeS9MbjZZa05tUGdXUlpFak5oNnJuSFJYNGZBTXF0eVpWb2pJWmlsWTYySlV3dCtrSW5LSWlHWTJjQVNwUWI1SlNjS0l0VVFOUkF3CitsK1c4WmtPMEtQMEFyTlZMeThOVE9YcWtIc2o5NGVIS212SVpqZUxYVjFwNW9UZGJ2ZC9ZK1dQWmk3ZWtsM0NlUnRleFZ2aUNaRzEKWlVtWkZvc3Rtd2l2Y3I5eVF1QmNNclhSNW05UmFkSFJ0T2tVSWhxaUt3b3VWMTdwVmpEOFRqZDh1bFBoNkZxUnAwOXdIZmRXNk1oVApRTlpsYlRrd3ZXL2tMOWhsdjYraFRpaXR5NjRNVDhRcU1QSlB4OWZxU2hSekRxVllIZG1wbHRLWXgyOUF6UDg3anJmUDdBOWh4VU9OClhJaWQ1eFUyRjFRSU1XQys4SDJod3VVdk9GQjRTVkxNcmczQUZVVC9RdkFHbWx0QVJjYWVLRm9Gak5aZ1R2aU1xZDFZbVRuOVN0d1AKNEExNy9qcE1EdzNSRFprK2NjS1lmOUc2c0NrUEIyK3VOdmVZQ0pwWmhIZnZYVmVjOVdmQWdPUFB4NnNiUnRZcHZud2FybzR0bGJKMQpUTFdZRENpQnlLUXdjQkdRejAxdWxzbzlFUE5XNXNWOTdEdXRtZENCbTZKWG9HRHlKSDRCUnY4YzlKYzFCY0VJWHBsN2Vxb2pjRXI0CllQUEZjTzlSdm9CemNpYlkwaUcrSEJNZ3c2RWNDWXdDN0JBY2J4bnJQMDcrTVVNRFMwTURQM0M3bDJRTkwrK1ZHOU9MdmlKZEtnZlAKejRKV0pxaXRhSEZRTXhwK2ZMRUhNUjhMVHZ5NDlWRVBWb0VGazQyMmZOamZMdUNUd2tzT2lIbno1aVpTTkV4eVFsS3FtcTZxNlVWLwpTTTg1am5uWG9JNUNWNmNXL3hOK1BkTzh5MThDdjVSZ0lIZTc1YXpIUTdSRHZRa0NMRGs1UXhMekdGa05YMUVLRC95YWY4T0xuQXZkCk8vbDllK0VpNm9LR3NjT3Viam9CUmJrbDV4LzRMckxiZ0g2dGJuMnUxQy9nN0hzQ2RUVWFOS0E5Y244RkorYWtXQXhjRlpsUGlIVmkKNGdSTnByMDEyVnpBd2NnaUJUb3JHSTYxY1pLR1NDVFltSlNpQkJVWnkxYXJIc3hnRFpNUGtxV2dxd0lGV0p3UVZJM3ZTZm5Wb0dwdwpPdDg4c1ArSFJ0TmRweW84dlRNNVgxWURGV0FRNHVHSmZBeEVkbG1KQUN1bjUwK0NRN0VGc1ZGMHQzUVVaZ0FsVWYrUHZUY0JiS0pNCi84ZWZPVEk1bXpSdDZVRnBLVWM1QzNLREJRU3NJZ3FLNE9MQnNxeGZ3ZnYrZVN1NktxNHNycnNxdTdxcmk2am80cldMcUtDQ0ZBb0MKRmdzVUtGQW9MUzA5YUZwbzA0WWNNOGxrNXY4Kzd5UnRXZ3BGUlNuNzc0ZlNKSlBKSk0zTTUvMDh6L00rNy9OVUt0WVRqRng0bCtlegpMZXlVejlOWkc1VERFN25oMFlPWHg4RFJiczV5S0ZuVVprUk8rdHJ4NGdrekVlamoveWsrTExDbXpKUktzalhnVEwyc1lVOUR3b1BuCm9BNTlTOHpJem5LVU9QYnREUlMvTVVweXE0cENwSGhqNEFjVFE3c3JkZkZxK2VQRVB2enZ1WDduODQwMkx6SVZTd1RLdk5YaHN2WUUKMnJocGI3N05ZWHo2NmVqV2U1NENsRGxpYy9PZ1ovNUw4d09JVGlUSjFpUnd1WnVxNVp4WFpCVHdJTElLVGE4L1BieC9lL3hQaDlOdApOQ3ZNN3JUN2FQMVJ6QzhpVnFGb3dKV2F2S09oU1h6QTZJQ3BvZUVEUjJPNTBmMVZIRjJrUUFTTVQ5L0xoZlhMQlM1WS9PelRSS3dlCmVUMm5YOXk2NzhPZkl2M3dZZVNYQnRTdWF2eXBwdXdic252SVNKaEluOW1OdWZZZWM4NUVURkFFZytKL2VOY3VudVdQMmwxSGlINmwKdnRxOGhQdUJWeDk0NVRteVR6VVNwMDA4QkV0K3lBa1FpYXpReTNwcGJaZUwwYmZiOGMxdnl1QytwMXZ2KzdOeDM2UDNKSmllQkd0ZgpHSWNMRlZ3TGFoSU10akhBVUpjTXhOZzYvTGE4cHZIbk9BdXlBNkFOQmFNU2hpeGo5VzZMczFkTVREMFUxZytzTUFXemZQM1d0OTYzCkxjeWFCQlhmN00xcnVvUkhHOVBmeWkrSkNPS2ZSd3o5V3NBNkNkaFBSVzR6aGhpQ3ZPbUpMZlhSSmthRVlMeElwS28ybm15TUx4TU4KNmNlQVY1RmZETmtxQkRIRzRVd3J5RXNxYUtDRjM1QVNpZXpVNUdPWVEwVTlzQlNoRGkxeGJSSU1GdWQrVzFUZmUxNXBMRlRLRTNQSApsV0VpQ0VGOWVqME5hZWlJS0VJVVZFZTVDYi9jZmc3bnlxSmlBMmJ3WUxiaDdpSGtGdmxGL2lHL25NTStkVENNemE3WW1Qajg1RVpiClVCc3d5Y2NRMFlaTVgzM1BOampEaE5iWGUxMkxMaDg2N3JCY3FSU3lZdVgwQkZQaXU0NWw5Z2RlYUwzak9jQU4yeGRQMVErT203LzgKbml2WDNSTG5IbnROYm4xRGlRbEx2MEtkTCtDTExiV1FQMzcrLzFUOFVFTmJCQ01HQnBZYlV4bFdIL0I1aVpsSUFMVUJabnp4TzM4OApUUkpIQ3d4L2UyOTVoRFpLMXl5dm5GMXc4cEkrZ3pwQUZMSG5NWW1sSzVuSnJ4Wkx1RnVETzdCZ1EzMDB6NHYxL1lsY0dDbkI5bFhaCmdSQk0xb25BdW9tQUNYNGtsTkhlTURIM3hvUE5xK1FNRTdsVjRFR0pzVzBXdXlVWHNFRXMrWUw0eDZaVlIrcDdENWlvN09jcVJJT3YKZkhZZXJ4RXNQU1JnVmtLd2FqZXU2SEFJYm81Rnd6TGRIREI3aUIyMTI1R1l1RHVSOHN0enJBeHIvMDg0V1dFT010Rm1ZQlI5b09kMgpTOGhDeEErQ3hRL2NYeTM2ckFvYXpwaVQ4Zlc2clZ2L1B2d1NoeWdlOFdaditmTE40L1dwOS8wUy9JS3Y3NG5INmZVdkRCOGFsaElKCmsyRDhGVHRkSXNPYjZuelk3b3Exbmd3eUR6emUrbFgvQXpnMXlJSFFxeUNwaWl4dzRIWHNQa0w3UTFnTmFQRnRlR0ZCNjMxUHdheC8KdDNob2Z0QUpydVhYemFuanV0elo0b256QXBWV1BtL1RNRzZGaHNYbFNjV1RHcUpobjczRjlwRVlRaUFDQnJnd0YyTVFUbUIwY0ZDbApEanh1VFN4MnZ3NWFCQ1RXYVg4ZTY5eG8vRnBzbWJlL3V2ZTRhU09nbGdhTCt0bVhhNGZFTldIaGU4UkF4T2lHMitMaklKTzhMaDBYCk5KZzludDFEeUwwaEhuSVhQSGt3MG1Ed1dHSFkyNzE5M2NqUUwvcEx6WjR4RHMxQ0RCUDlBZklubEQ4QzhONlNwa08zalZzZWVqcS8KOHFrLzN2NTdteTd0OFQ5V25udjdrQ0tCdXU5M0F5Qy9YQUF2dmtoY1RlWW8yb2llV0xOQnRIWjk5SDhtZ3o0U2JTb1lqb0JNVUdabAo0UFY2dDd2T0lUbU91S1ZvZVRPVWJoZzdwVDBSRzNJa3d2U1M5TFBxUHdIckxSYS84UGJPL0J2UHU0WWR1QjNuQ29nd3FLM3pFRTlCCjRMWEhkMjFMNC9sai9ZMUV3WWlFN1lQNks2T2pJUGtZUU8ya01neHhhQXN2b3VSdXU4YVZZZGQzYWlVYTBrdzhGVEM3MFZPZjZDQUMKUnF5QmpQaUhkbjk5eU4xN25qVzkxdU9KUHpSNXY1R3BNbFdLVVZGNGlIUnR5Z3N5N01UdElnTG1DR0pUTTZnQVZTTmV3SHdBb2c1SAprZHZBdHVSangwWWVxNWY3akNqc3ZxUCtQM2FzTXlYRGdyOWF0M2EzaEFXTXdVMjVNZVZiWC9pd0J0ejcycGhzUGdWZmI5eTYxZUZxCjNMcXg5UlBuQ3V0dXNlbmpJT21McFFCMStJRytBOHhCTk5TWmhJQ1piNVM1bTFlMEdZMjU0TkcyZ2hFTkU0aUlCV1ZlNFd4VzN1djEKV3EzV2dmU0NYUFRVNCsySTJJcGJ1YWJVM3Z2bTMvbyt4ajA4Ny9IeWczUHVYUkd4MjNsQ21SZlZ4SUpWZjl0TlFINzZUdnRoeGhiOQpHWEdtY1BtdmhueWd0WkdjVFNHT3BHckRKaGlFU2thUm1OZ3ZSNlk1dHVyVnhmQW5ySG9TN0QvWVZiSmdaM0hTSTZNQ1VFdUxZUkJZClBUUHNvWU1jSnNEYkhCcWJKL0tsYllZZzVaY1pEdThPbDQvTEl3TEtGeGlpczZCK3dnNXg5ZSs3WWxUakFRSEdIZW1lam00YUlkZVQKMm1zZkFBRWFLb21FbFM4TUhlMjh3cXBKMkZKYWpDR0VPakNhL0JEck9hQ3ozdjhMQ2VkNXgya1VqSURuNUNEckR4b0RMR013a05QSQpIYjFWQzNGczJkeU9KNVo3WTk4cFkzcFBUTS9zTnFqaEk1cmNJUTFNOVgrYXR6ZTM5WjduQVFOR0hDQVhvVi9GTUZ5N2x1TFdOM2NmCklYNllCOVVybmxBak5sNk1TZ0tId283TW9RSkdGU3pLSFJ1czU0alZad1Fua1RITHhYeE5MWVlmN1V6M1hRa25DdFNNaElTNS8zRVYKMVNmZEdXdjAwTldkWms5WjFnOXcyNnEwbzN5NE9DQmQxNW1SSnFMN0JZSlAyMGI1ZFRqMlFEMk40dE13U0hKZXJTSlV4bzI0ZFo4QQpoeFd6V2c4NlVIWXlmMDh1N2JMaWRRdndEUEMwdUR0Uk1LNHF1Qlc5TUNnOWZaemoxNE5FSkN5WkRFOUpoRllTdklnQ0JxWTZrNHVyCllIWEdlZitqOGdWbkloaU5kWENzcEFhTktzT3dpaUR2R0JwYWRMbmhpWWxuU3VpQWdvTzV1WHUzNzkxeGNIODRkNlBnNEVHWTBmOWcKaTczT0R3cjd4QnlYR2RZZ2NVR21IUnVSWU5XakJSVnh4eFZQYlVadExjb09JUmprRDYxMTlOQXNSSTFndXQ1NWRzVlBDRVkwVEV5TAowNit5dW5IRmlpSGpVM2pEYVU1b2ZQQlAzMVRXOTU0WHBoY2hXS0hUZXh6U2NnZUZDWmF1cFVYRk95SEo3UmJjd1pkcC9vV21YNWdxCmhVbGJkSjRNOG9lZmtDL3BicEtKcENWbGxEMHg5V0Mxam5VTWkyMDRFRXhjRXhzMEFJT0RCazZ5a0ZOYkZZUVJYOTZ6RFJxc0hTS0EKZThNTG8rSlFuOUZDSEU4SVZtZXFpd1dUeThpTy83OEhXdS83djRQVG1ZZ1Vla0ZTR0ZWMWlhTEl5eTZMMnpJNWxFMndhR0U3Wm1KYgpTRndkeW1NNHYvaTBTenJHRWEyTXZxblR3eG53MUsycGgyYzNuRGk4ano1cU5oUTEwRHdMbkNPTHhhSVltbzE0a1NYUm9kMzFRdStYClMrNHNxTDdLQi9QSGphcEM0ekNFaTgwbFdEaDRVRVJtQTBFdndDT1NyeGtlSnZkZXhrMkhRYk1kQ1FjMWZnMHRPSG1GYml2NU5EbnMKeGczSnlmY25LdzZmOCtHMWc4ZEF3aVEySE9HZ3lrd3Yyc1dMMEtuNjdoY3BBZkJqY2Q4bDFCbEVDL0ZGWWk0U2RzVkNuVTkvK2FNZgpuTnUwa1k2Rk15a1lBU2R4dEdTZ0txa1E4TTFPTnMrWXdwYmdFNXVmUHFPR3RZVWQwL2UwM25SZXNIL1VSUWNVVUlNTXRwQnBEOUZyCmJ2S3RmV0N2cUVVaGF1TkZkMVJTUHJpSmdybERlUndRSlkvS2pxazJhbGxrMFduNmQyVzY1TkxPK090alZlZmZHb2g0U1NlZ3NiSFIKRmo2bzJaVjJFSmlMUzBzYVk0UDBHUFRvdmJCVkJkRXZpMllncmtNQm83bjBGUFYrOG43NTQ3NFkxb3R2VEtrOWtUdnRTenVJV1Y5RQpPNDdkeEQ5NHAzK3g1WENwQ1JpR2J5Q2pvUUg3VCs4Q29tQXdZdlh3OG80aVlYdkxNdUtvZ0ZGdnpBVGdrL2xicHkvOG43VU9LZG9oCkdCa01LY1ZVN0tBbHJOOVVzdTJMeXg3d0pGVDhKSWFkTnd1eFZZbmFnd05IQjQ4ekVEeDlzbTh6UkQ0ZlluUGptR09VQXhuRWN5UEUKS3A2RVNWTWhnaVdCM0QxM1ptVW9UZE5nTVVHbFFiTVE4NkQrUkgzU2pWa05XalpGcW5iRWVBK1kvZmE5akxQdXFwSW9MZ2dZUnFRSApqMEhQU1FDL0g2MktseW0vRHRmam1qVGFqYVE3ZWJ1ODRkM2pTa3BMOTdwbDM4VnIrbm9Dd2s1dkY0ZnA2TEovNWRaWHJMYW9kYnZVCkxnMmVRRUF3c0FvdmM1UmdXeGZ0SmlmTDgxeUh1SW9mZVc3T0lmVEFxQU5XeDhneHQxNzVRQWR3RDM4bVptWmtuR0d0WTNzRVF4R1QKWlRrWUNBWURVYXd1R05SOXY5STFEMVZzN0piV2UzWll0RFlGQzNhTW5kUzkwT3dKOG1ZaEVHNnBjMXI0SGxrenVVeWtJUWFpWUVudQpMWW1PSGhFRWl3SjVZTzZ3WXMzYXN4dEhWaDhSRFRTUmFVQ0JmYzZ3TE04SmpWNEFtb1JoQk5Ic3J5OWpSdVJsYllpRklERUthZmlpCmx4TUpoZ0pHNTh6V0JhRyt2bDRyTTgyWjNTQzRDYkdYRkI1NzlIMitOaEZ1U056ZWcvaHpBYXMxcVlnUjNqMEpROFRvRTBPcTVuMlYKNnZRSGc0cGlVSUVRakJiQUg5RlBMSWY2d1Z0REgrSzhZbDNQVkQzT2dSRVBySTRKek1sNmI5MEZUeS9yTlJPc1FUNXVSTXF3bzYydgpNZzJ0cmk2elZzU3NCYlRDa0NvWmMxaWE4Z3kxRHo4RDYyRFJIMytDSC9acll0a3R5OXhZdzdFdEMvOFRtSDFGMTVNVmc1ZkNmVTZvCldHY1BGVzlyRzZtd01aN21tNk9iVlExWGhqeXZTTmhEZVdIcTFicXZHc2dEY2tEVkJOZTEwR3lxWVBHMTVCOXN1aVZISGJBT3B3c0YKZjJpV3VRUTlNSFRBTkFPUnNpejlzTnZpOXVGOUN5U1o2NDVPbmJyck55Y2dzWEgweG5xTFU4Q3pGYWdLMUR3Q2Z4NTNDSmN1WTdJSgoxajMxUTBUTzZPSkZPQlh3M3BMN21qZWRQL3pmUTM4aGZ2aUw0UE4ybTNrdVM1dis2aUNYL2d0RXU5WlBTVDVCQmxubUFCbG5yejJaCkhaNXdYR0J3VzBUY2dZREJpc3RoU0NaRkVrNnRQeHFTQUwxWndkbFBCRytvSTcrZjFnN1I4YkFNbk41RHovbG84NTVDV0RsbXFMM04Ka3prN1FMT0t3TmQxZVIyUmo5Tnl6R0lybjUrWGJNYzRSd1lLMWU0aGRzaHhvbkdJVkVzQ2NkYXJqL3diMDRLSkMvYmJ3Q2VNMWU4agpibXREMStKSHZzZHRGMzkvTWIybERFTjZRYTFwcTB2OTdaOG5sd2hhTWdpTlgvUkNpaEhsYzJOczgrVUg2U3ZvSk5vckR5SzlQRkZyCkVrNnFoRjZPNitHVHJsaDZUakJIeTdmbjEzelViVWdqWEYyd3FhN1hEb0RoTlZqOVY3RmJWRkdBOG5JOHhHTlEvU3A1SWw4NzRIbUIKRldXTDNybm11NFV2a2hGamRzS0ZuTFd4UVA0QnNpRUx1T0hFdDJab3FaVEJzTHp4WHFmNGlmWnNOdTZWZFduSzRSZGFtWWg2bGVHQgpiOE5td3BhNndhQ1JMcmxBS01xdzdoVWQxRWhjZGtuOERSa1pRNmZiWTFKUERQendQL0NYZjc2cFBQZEVXK3NPQ3c3c0p5Z29PSmcrCmFuaXhTemMwdFU1b00vM1gvN2VjYmRaZSthbmRheUVlUGExRXlPMlJSc1RKVGJNd3FJazR0b0M2WUhaYmw0MSt1Q1pZUzc3MkVYa3cKdGhJdXJpVHNva1ppcWczOUwvUDRQZVpoeGJvS2tTbU9RU3B4UVhjRXY0aU5HS1J4M1pETDlNbzY0dnh1RmR6ZG9idlQvSmVEWGZjbQpXdUlHSEQxc1lkR2lzRWFEc2lXdnQxbm9XblNZNVkvTzJYWGJWc0hpbDBIbVZhTkpZZUgyRmZSMGJaMjJRNjRIOGNXMnZvRmZDUkkyCm1LQjM5dDYra0I4L09XdkJlZnd3UHhjdmpNcXR5aTRGS0MwdDZiK2pDMVBoY2cxT1dMdDF1MS85TGo5cFJpNDhucnVjbHRhQTBnMmYKWWRaVEJNSE10SkFacTU3RzkrZDVBV3ROYTFEcUxvMHIyZkxqNHh5L05KWkZmWll3NlVxclR2K1BzWThlZjNUVWl6UCtQZ051dittVwpvUytHWW5GdG82Qm93cmd4K1JWSCthR3BoR1Nuc216Vm05dktDNko3N1UvdURscXdNTkZJSXpaYUVER0NZSWJwZXgyTXdiNE96WUliCnN1M2txcXJVMkVXQUhwaG5TblcxR1pJMjdBdkt0cUo1KzFDcmdsRnU2dDQ1ZTBGSkRNaGFoSVB5aTFOaFBhaXMyZTFQZjZ6d1dLK3EKcldLQnhUY29iWTBnMHNVT2RtSUhLbnhjOUo0bk44V001aS81WkZUamg1Q3NNaXlyeUp4aTlYSzN3eGRJc1B1M1o5K3gxUW5pT2UwSQorMk9CRmJJMXpKc3lZdkhHRGhGeCtZbDRZY1B5VW8xQmNPdUh4VWZHSmxCMlFYUkRVTldYRmMyd2ZCaDZFckhsaW9rYklnaEdEU1pnCjFOUGw2Sm1kRXU3c3BUMCtsQU56dVpLT0ptRkxZbSs0d1doVldVK2c1cFBDQWYwVHVHL1Vta0ZEdmxwNnlMWHJ6SmVYRkN5dWVXem8KeUI1YmpoNDBEazA2bFdXcjlIL2NXMTRRMWV2WlRXZ2kya1c3MDlnMGEwNElkbWwybUdDK0VmdVpPMnJwTXVLMFhDTTZSVTBnQnVJVQpWMUkxREt0TzhxUVZ3dlRjdEtvMFlqa0ZxMmtRTWFQV0dVUE1WTjZMQkZ1SEk5MHJYeE41WTltZ0g1WVdadk9TVkY1OG9uRkkwdllxCms0eG1yV0xIeEY2RnViWElmWEdlWEI1WVUzNjRTSGpZaGJVSldFWEhtdVM3NENrM0Vtdzd3R1VOUVRLK3RMM3k4dGVCSklVRHVaOS8KZmg0L3hqbkFnczNVL2tNc2Y1YmpndHZ6OHZ5S3ZVRjJxM295NmczZlBrZEhaN0ZDV00vTWl6UVJzZVlSY1I1T0Y3NFdUSGp5dldCMQpVNFp0blp2ZHNTUnM0ZExCTTZKWWhyQkxaSmllWEQrclhEbHJ4cUJyUHIzbUVFaTVaeVlZVktUSU80cHFSbzZZbE5samMxMVZLVTlaCkZzRXhjZDE5YVE1MzNnY0NPcWdpMFRFamhCbEdDRFlxZTBBeEpaaVkxSEJjVFRQdmJ6QTZEUU56N2VqWWhZQUc0aFJJMmtYb2xmVE4KZS8zS1lFaWgzWU0xbjRpQ0ljRnFrV0ZrUHhNNWpwR3VwbG1QM2RKVkZaYldQQlBGNndLQnFFTkR1cDBvNTNsTWhPSVZRU0FFSTFRYgo4ZTZZYjFWR1lDRnFEbnY5NGpSY0trQjBMVXFRUjBQV0Y4SFVRYWt6eG16UHZwTkltTHVtbmEvZ2wwVnppTzJjdGZVN0gxaXdzRm1nCjRuWUZDVnRFVHV6aVVBSHBCVkErdkhDcU41VHVSRkY2UlFUQkpBR1grVEtNM0hZS2tkbnJJZnQ2clhyUVU0WloxZ2ZnaWpNbkpmNksKV0pJNThoR0RIangrdjVQUjZlU3MyU214TWxqTm0wdHZPMVQzOExxdFE5cWJhYTEwQSt3c0FBQmVTa2xFUVZRZ1NEcFVYTFRDUHZlNgpnVm5KbXl2S2pvNUdpalU1cEZzS0dwL3JXbFNVa09ZbUNtWTBPcHNZRmdYSGxaS1R0WGJDREh1Q2Fic1J1cGozaXlJUWdpV0djM1lKCmJDaGZHQkZKMnBWOW9ueDJ1YWZreWwwY0pSaFFna0dVc3hjeEVTSE44Zkk2MlloNUlTcW5xcjg1TU5UNllwUzVXeUFBTyt6S3VNMnUKV2l1eXlxQUlabHlhb29DNnc5SW5lYXRCcDVnc3oveHAvYUtqZExKQTRRMUlNUGdpT2RWZjFSL0diS2NTWnY1THg0aUpYOWo4YXI2Zgo2U2dMeWdIaThrS0FvMFgzRVhYSGg1eUlsRER3UmhBc0tHQXNuc0hJVmNRZVRSQVV3YXVEZ0lFWWtubzNNUk1seisxeGNSM0dSang4CjNYUVRza3NVamJLaVpIR1h4Y2pZTWZ6elhuWHc4RE9iMktudGVOVlA2RXMxa2tIU29SM0Y3KzU2OXVMTFJoL2VQaXExTG1KUkpyZWgKNEptaVNxZE93QVdZNkdWcERJc0NONkgwU1hUT2pMMlRpSFhJRHYyQjNDY0VpMmtpR05HditDUU1seE1reWJ2MEJRMDJsK0pPdytBYQp6alRUTE41YU5CRWgyckVPWHY2S1ZWOVp6d1ovYzJqWGdQV1ZHUTZoWHZmVWVuSGN1cU1PTDFoQU1iQTZEZ1FNeGVPSHUvTmpZMEUzCmxWR1lMNE5iWHowYVlBRmJUdDgwTnBQSTZYWEZ3QjBhK2RxWU1YKzg4ODh2US8xQmpQeDI0dWNnTStKNjd5KzVmWHFNL2tYYWV3RWgKZDNaem01VE1pcXlwTkdhbElTYWNtZGl5MVdNWUhoM1c5N0toeGpGV2JBZHYrbmhPNjMzT0c1WTk0d0czMCtrRW8xR0dyQ3dKSGdaagpnT1BjcWM4OURQRDhNOGFXYXliYndPVHduVzBFa1BuNTExL20zdjNDL3ExRHg1bTFUaUJBT3pRK05kY3cxa0lMYzFDcG1JRy9pQS9sCk45ZHA3S21JcUp1VTBIUVB3L05UaGpVOTFCVlBGV0d1T0VMQStHNFQ5dlhTUnI2aEFBOFBIVHJpNGN6TXVOY3I2K3lENGtXTGZmelIKV3dhVi9nME9NcEFJTWhub2dId29iYXFMWWQ2RU1tRlVyUXBxMmJ3Ny9ubXNXSmJCOEloVzZBTGdkcmo5VHJnZkgxdzBueEQ3by9CNwpkZUluNG9lSSsrdUtoN1l4b1FWTStYUXRZVGNUbGsrSzNmdFFpeUFIOWluR2x1aHRlV0ZtTjA5OEVqSjJBa3NzU2NMQmdPN2tGdmZOCkhjSUpXemJpNzFmdkhFWDhENk5PVnJLV1MwRXJXOU85NjliRGg5TjZYTFZ5dzRKTkUwNUdTSHVibUxJK0l2Z1RNaGgzRk0yYnhQMUgKMGJreGFLZTEzb0V0ZHkwaFJxTG1oQkVReXlzcENxS3FyVldKV041UWJJd3JGdzEyMjM2alVUU016bFpEUVE0YnNRK2JEZzN3VnpkeAp3ZEtxU2xQbzdCQkhiRVNhS2VYc1JjYUdOQ2pybitSd1ZCMGJMc0ZYMHZYSFpWRXc5Q3c4UE5YL01UazVSalZSRmxpQncxWEFoRjhOCm9va2wwSE14dThEaXF5elB2dkgzbzJmbnhQQXdOaTBCT0pBTnhFTVRsL1VoaHg3enh4ZStPbWFPbjlJQmx1TmQyT2dSY1pWa3p2cDgKZEYzQTNDcmtIQkMycDJXdUI4aTZvMnZPbDFBbEs1RkJEaGFURGpITXdiZEJNSUhGRklPQXdERWlyekxJTUoxT1NSelFFWnl3WlMrKwo5RHY3MFg0SzBtdjZVc21NblVPVWdsbHAzVXRLdThKMTY3Y3AzN1ZuSWNLY1YxcHZRWko1ajlYUEcvTWRHMmt4WDVsZFBrRncyMmxICjVKeTArQnE2YWtVM2E5c3dXZ1hBWGt0c1IzdlgvUTJFZ2dkMXg3WHN3OVR5RzRwN054M2dnOXdEZHJjRVE1eU5NYlN3TmM0MGE1bkUKemlqc0RkdFE2Z2l5SS9jV0ZpWFdySHRmU1Q0MEl1NkhaYnMvUHNyZ3pCZmhsMHJraTVpSEJtaW9Dd1JPbmp4WjE5RFE0T0xNdWtvSAp4K1g2YjN3K1FjY280M3dXSkJpZXc5MUZSY2l3N1JrWGlRNDE5OFdPNFlWZHNGalFYMXNSU1ZFeE9XV0xTeksybnRNSm1QZmxXTjFSCmxXdlZCcUdFK000UkppSm9TVHJZZG9RNTFVaXN4L1d5Sml0Zzd4Q1dzSkF1UFpuVWFxZnpndzJyRERBZmcyOXlWbGFkWGxzVFkyN00KZ1Exang4THUzZVBIUFdac04yL2dXRmJyTFlodDYzemY1VDQ3UXFzdHBuMGxaVW53WGxTU2sxcUNobDI1WUJjSkVxcGdBSDNXU1hpUQptS290UzNGTmhZdnBIVWo5SmlKZVA4Y0I4eHNodzJrS1dZaDBHYklHa2RpNCtVNzc4TnBlbjE4bERqNldNQitXK2liWDNtcDlqcTVuClVCUGpXRUVRcUh3MU5GUTF1aEdpZ21WUS9aWXlCMWIvRlJhanBmcFk4MUZwYUpQZ2ZvaE9jcFllQ2M4c2RPSW5Bci9hTUJhTG9CZ1QKbWwyQ01EemdHemlKOVptMmFLdi9JaFhNR2xBWmxEQ0dPVFhPSVJteEhXSEE1QmRCRFJoVTFEQzNUdGsyb1ZuQlprM3E4ZXQzZDFnUworL3gzZDk1dGQrcW1KMmZkUEgwcFNPRWxaNHgvZFc5MGZoeUZnNUlnZVdPTEY3V0J6TWl4S1FJVkpVbnYzcE03RENQMkNqV2M4Ky9hCkl1WmVaaCtnbWdzSEhBb3lsNDhhTkdoUXpLVGFBdDVKcDZBSjIrSUdST09rbUdnSWxnOHdOV29DTnI3cGdCL2s3Z1pMTFZ4dTNKWUcKTnNxd1lKUmJUL25RcTBkcDRQaUpFVDhrRmgwZVdtMzJDdFlKK3o1UHp4YTJHeUdIakhtSkJtb2RVckxYK1JxVlkxNkUyMDEreFhRcgpkY0FvV3hYQXhkUHpqT3E0dXJVWGNWcGhjSGtaUUI5WVRVVE1QWGhzdHJqbGxJNlhuZmd4eU1SUW1JYXM1NDZ0LzhZcHlhMTVBdGhOCnNMdzhBR0ZsYTJFTENqSk9VNm9ZSjhUbTRKRXdtb0pXY0ZsRmhWRllsZHlpSTlieTFZWi9uV3BYL3JKWTBuam95cm5IZDZ5d096SEgKbGMyU3dOcnNkcHJGTjVjRHRvRWsrOTBiOGFLMjhjSjdXVTBUaUMyeExYUDlUVzlnZkUrZ2piMW9CL2cvMDJjd29sU3M3WlFFL1VveAo5RUhnZEJ4SWJiRGp3RFoxeTVwZXVDWDFHMjJuRHpBbU5PZDVlT1RmY08vYno2d21EMUkwRFV1cVRzS2pHblByQVM3YmNsVkZENkk4CmxsZWZUVjZ6N0xtaWpIMTcwREZPbEhsV3dmUmVNaXhpNC9XazZ1YXdUVkxYVXRRdmRNRDFOVDdjUGhjMDhhSUN0bm9hcklacHNQVFoKM3NYd2JjZkkrYjFRMFR6dHNsaDVxTUduTjBCcm1weUtTQVg3L2FCci9KWFVEV1BVVmhtSm5BRWIvaGlZZ01oaGVxT2s2bFJHMGdFMwp0a2tiWm1RN2JWZWVmbG5NdWNlUzJLZUhUTEhYK0kwRnlXQzgramM1dGdPbVVPSXlHU0hJajZsMjdYVkV3SWFRMGJ1OUVBZkJpUFMyCkpZeXdRQjZ4WXhpbXpmSThSanR5anE3Uzhub2o0WVpxbTRRRk9RaE5tT1BwMTI3SG1QM2E3dVUzc0kyWXdLRjVZSU9CQ3BpZHE0VzQKb2N0U2lEelM1a0ljQk4xUmVKNmloT1IzQ281RjFZaEduZUhsVDJwUFByVHhHNk14eDR1K0YxRXZsWnA5QWIvcWR4eXp1OTJvbFNMeAp4RVREd0FYL3dTUjhZMW9sSko0d3krcGpidzJ3Q0xpMFRKYnBJRENOMElzNFlrVTVmMW9CN2dPNGdxVVRQeEdaNzRadTczbnBHeWZ0CkxkZEc0bTZyc0VlRUQyWStPUDdySzdWeTEyUXpnNU9kWVhCR1lEaVc1MERRUytERDZSZGV3U1dwQVpxdlRiSEpBV3k0YnZPdmdHVUwKci91YkQzVGtHcHJvQmVNZllPZnZMQ2J0YjhVd0RlMytaYWdaZHhmQXJpNUx0SzRJWjhhQzBDelZxZGdHM1EzNVdxeWU2bU9QeTh2bgo5dWxoYnhYNHI3NkN2Q1BPRXdBa1dPb3g2Y3dablFpcmlKVmFIcThwMkFmNGYwNEp6TitYZUcvT0lOeVNVcEdDTjM1SXFxYUZBUXh3Ck81RGpHbC90VTN2TDFIVU56NUg3T1lDK0Z3WUV5WDUrMlMwZXF6cUlTMllRMGRFWjk5b3pSaHZmd0ZoS3VmRk5TRXdQeElmbjdYQW0KVHJ1M0duOVF3M1krUWx6SS8rSHFGNzgwckMrRUJ1ckpWeSt1OFlWc0pRUGo5elArbUlpWVJhczFHUkhMVmVhclI3SXpyM3llb1VWVApGQkNielMxL3ZNeTdXTjdnVmt6MWRDN2F5RmhFaGx6YzNqdVdobmF4OHJWZ25ZYnArcjhHbGxYTndHa200OHBIcXNGKysrMS95SVhBCm50ZVhoQlVjalZjQ0xFMFl4ejBCMlhocHQ0c1gxbXhydlNtRXpPbkZiMlNoUGRnTTFuYUh4WFhIKzRmNm1zQjdxTy92WUZ3NWhCZXMKNEN6WmhId1hZVnEwemVFY2x4b1JvZjlnemdlcFMzdXJ0b1BKQ1hWSXJRck5SUFRqWEZxU2hacVRUckNuSEM4ZmNkZHpUdnUrREtRWApNUTVCNHdxdGR0cmtVOXRWeUxqSVdXNExpQS9BRzFEdWVIREhtajVwUnhLSmxwcXZTeUJpcDRVMy9oVGVuZUxSV1FEcGNkdGJiT3ZFCjJTTjBYUzEreWVtbjNKREMvWGtrdmFTMk5TZUdhRFlSemZ1dUtxem9VMWdWVkltQnBlRDUxTGI3WloxT2RIdWkvS3BJbUNVSFVTQjAKYW9CbXd3Ykt0Y2dqZVkrckMwQTZQdVhYc1JHWGJGbEF5R1Q4Y3RweW5kRVluZkZsMTBKUXJxbi9keXhhaDFoMUhyQ1V1NGZZZExMWAprN1BwK3JOS0w4MU1WZWpsZmlwU3l2dHU2dEVzMVFoVjNMSmg2MnNiQ3phdVcwZCt2ZlQ2WTJYMWhYRllKNEFtQW9zMXRBbXN5Tnk4ClRUK3Z1RGdVby85ZzhPQVB2S3RnYm8xalhzSWhLbDIyaWhRMEVtblpBSGNzVFVWODdaTUsyNkJkZ2UxZ2hBTmx4S05PdElCV2hFMVIKYW4xTnJjUWcydEF3dDN0K3d4RWlXUHlXTVhuUTZNNjFWUXgwTFB6UHRVVWdES0JCZW0yL290QUxpS1ZZQkZ1dno0WDZHNzl2MnRTSgpId1ByZzNTUXpienRHVmFtTTZQMkFBOVNrSURuSVdoZ1RqVVdLWm9KTnZyNjV5cWdOS1UrQUNhZEJHWUY5eWN2a21JVTgwbnpDMVBHCjVWeGNMbkYrSnFBUGtsZXhSaWUrVU9kL0lqelR2UC9HNDI3MzhTbS9SaVI0U2VNQ2dOcVJUNjdVRWZtTjF2V1BXa21zdDk3VGxSM28KcFdqOGdrQUEyeE5oSHN2dkZyUitmWnZZUERHMXBVbzFJVVhYTFRlMUpjRmFncGUrM2Z1SytIL0hUd0RxREVZUXRlMEd0YVQrK0EyOQpRL3lhODhHYVhtdGczQmJMaUUvdTJHS2oyMXloT0NJNmNiRVFVeElENzczL1djTEhvMHUyMXBTbGxlRWZncUxNMW5xOUhrOHp1K3dHClE0YUYrWDVBWVI4N1F3WTdPZmZldkViTGdPTjlUd1ltclVtdU1rTUV3WmFGWGtLQVZKdThWWVRTODVsVmZ5RkR6OTQyMTFNQ2N6Y1cKcWFnOUV0L0lTMEY5VU05M01ScU5sc1l1VWNaR2pYZ3RFU2JZdUxxWU9zelZTWWxyeEE1VldwUnhYTS9VdWx0MjZQVlBaMzF4Nk4xRgpId2M0UDhmb1dFNW1kQ2E2Y2dWZ2lOU2tXZnV2blZoYWUrQnVXbWowRjhXeUxYL1VNZCtOODlqUnVvM1d6VnpabjN3R1pmMWR0UnNFCkRJQ0NaZ2FMdVBLUTNDbzNuZVhzNnU2NU5XMUxXTXJtUzdhMFNLMC9CVHozY3ZmR1FrTVh4UkNxTGFWQmROMnhUWmdRZWpENGc0clkKTlRBL0wzSFdxeU5XcDJuYk5INXBFbFlmNjRRWVNOaDBJTi9lY0pnSUdPVVh1TjF1andjTFJZbEpia2lLaW5MYkRVYnJ4UVBXSC8vdApaZGtYS1RxRm1CTzhQQ2F2TVpVN1lhbXZ2ZnI3N2lYeHBwNkVZS0dQMFdySXlCZE9nSHNqWFliWmlSOEg2MVhqdm5ELytlUXpZNzdiCm9QbTJ3YUNlak45Mmk5RUlEb3ZEbmVod3U5WFdGVGdrUWtHTllOTEVEWS9WMGp6N1BwZjRtd2JyY1R1Y3Y3ODRObmpUTjlJN0ZSWEEKampPWGswdVdFUXdHdlRmYVNWZUZRV0o4L3dGRENyVGRDL0o4RDIwckM5dU12eHhHM0daUnZwaEY2UVhSUnFVUWtHRGdUcnR4ZFkyZQp5bGVBMGl2azVkOTd0bTY5bERGQWJKTmhLUldYck8vWklrWDZWSEIvKzB5TWpyMjhVakpFY294S1dDR05IdTVkYzNmMFJ6Qi9SYmY0ClQrY2NTZ3Z2NEVyQlhJNmdFTXI0ZFRwcmljWU1xVUZsbm5pVUlTRGNzdk5SQ0NBL29teTBUdStlbCtmcXllWGx1YmxvTkI4WmxMQWkKcmtZeGllNnJOMjYvYW0vVVdPS0NhUUxXbW1Ed2pIVVh5TytlNVlqVGlXYk1HdlRKQWFiRU52ajluVWRDZ1VPZTJJWmRHZ20xVHJyQgp6ZEMxdDB3TGdoSHJFVzBUU2pDenNkQncyZHYwNnJyanlRYTN0cGRaS0JjZi9icjQzVksrRkovSnpIb2x0UndOVG96U1NXNnJ0bWJGCk1lanp3dkpiUnFRTTAwaVd2dHR6YjE3b0RjS3dYdGQ3VU9XcG1TRS9HVXVtSmgvUFhJWkJQQ2NaUCtTWmhVQkYxTEp1eHVmMStKRm8KRklkZVlQaDNkRjNSOU1MMnNIbkRIVXhwNjQwRUtTazk5aWFkeVVSRXJEcjZTbjE1cnU2cTRKeTEwVTBjUXdrN2VWSHUzcjE3SzJ5OQpWcXdtL09vbmxmTUdsMllnUW9XTlNoZ1hSRTJoNjVwcFErYVR4MFdqMDFqbURIR0xiQkdJeGxYclpMN3ZnQUY1T2RVM1g3M0dKelhZCjQyeTQ0cEk4U3lSc1Y0MC9VT1ptdm5SM094cTc4VG9CdDlGM2FFMndMYmQ4RExDOTAwajhzYmp6L1Qzb2RBVEtUUjRwcUJtSWVFV2YKWkFMNFBhT2hqaE5Ea1UySnBTQ09qL2dreTlpZGRpeFJOQzgxQitkYWlhVmlIcG9kQTU1eDBzenNkUkhUcjR0S2w1TFhHVGd3S0NwTwozb1FHU2ZDYXNIWGpEVzVtSmN6OGhneklON1hzRkR2RHNrWlNyNVBPWFh4eDRZMzdiOWVtV1ozcDE2NmhuMkltY2NLQXJ6djgraEl3ClUvTlEyNU5jZ0xwSGY4ek02c3dHWHh1aHhNeHRUeTBaMnZwU1BSWHY3dGRpZHIwVHB5Nk14bTdPZ0FMTEZOc0gzZ2J3VmoveTVZMHIKVGFneEhWNytYSzl3L0RBMDFheE5pR2l4OXhEb3BJSGdSNmNTZzR4MmNIYS9Zb2VqR0pLbVdyNzBhUWZQc0dIS3I0d1JGNFBIeVlKNApncmlmaWJHV2YyYStUTHU4UStzZ0lvV2UvQ0dwbGEyM2R1Sk1tR2w1di9tQlpBaG56UUdOS3pLcVFkTENpNHkrT2ZKTzl0SjJVcmxZCk1iUEJ3NUc3K1RrM2ZVZHUvdDhXQ0J6V0MvVzJrbEpHRFZjZlFQeSsvSHNlZ2p3VHBhaU1xb0FySEIxQlcxRUMzWGVtYTRwMjM3Z2IKckpuTlhwaFZndXMzYnZWSTB1NlM2ODVWR3RXQ0c3ZlBjbXVUVUVuZS9vZUlnTTBzcEJMRytnWmZ6MjVIVnlsc28vR2dQUEpnNlA1WgpvYkIwVGh0RUlpYmk5bllWakdqWWdhdEc3aUczOWVYWmFTbkp4Nm10S1BKM0hEaGVudlBOaCtXN29QZmNMWWtIWis2ODR5M0JoWjFrCk5kQmIybDRXQzVBbXVaT29PUmdielNIOHhOQ3ZaR1daSHpMUk55a3ZwenhtM3FqU3d2M0JCZ3gzSlBFeEFnNGhkSDJ6cnByd2k3YnkKTXpEUkg2dGZYQkV3MElFbklvZ1l4czNFQm0xOGJHdnJ6WjA0UFdhbS9DdmlFUjlqTkZwb01SWkE3VExHQ0RxVDFSS1VEWHdYb3hoTwprc2NPQVZnbml0empWSzQ4N0w5Ly8rNW5BQWQ5ZUdVRytBRHd0MFllR0FhL09iYk9EVUdkM3E4R0ZOYUZKUklwTktJNXdKRnZtT0hmCkIxTElDNXZadjMrL3dWbXBYYlJreGNDVTNQRCtQeE0zT3g3UitHWG80bEl2MjdjZkM3TVJqaEdDbWI3c2YvMytnK1J2REdtckFReDMKUGg3NTByUEF4Q3RPdFJJcjRKSU5aNHdpaGlBZUxIbW1td3RudytyTDY2OUp0aURIR3ZZT21sbm9KSVJJbjVMbnNjd3EzditYdHdUdwpHeWwvZkdSWW8zRjZaSmpBY2RFbVFTTVdobjRyNDQ4UWFoRnUzV0FjZTZnNHA3ejB1bjZ6MXh3T3NZdndTK3pHQmdLQ2lBeGpkRlZrCkNKVnBpckZKc0hMQ3ZNZW5hcWMwSW9nWVJqNHVPOXUvWUdQcjdaMDRMUzU5cDBXQXkraHdJOEV3WFFpTVZnNG5odnd5VHp3bmNtWkMKQlBPSGVFWVoxanpSVE16RCsvaVhIYzEycEs2bDU3VDRKYkdSMkJnTVpuOElqWlJnb2J3UFdtaWNDRmJQTkRXNzFqcUZHR3d6RXdJcgpybnNuL0N6QnJNOGlIdndzek5rUHg0OGJuRW5FYkRMYzlsNDRjNEY2WEw3WHh0LzlROU82WFlOaC90Tk56NTQxWHVEWE5adkZHakt2CmZ1YmlOcFR0VlBqMWNNdUNLYzZRc1RmLzROU2xvcG9Jdml0cVlkRENmbkJ3MkpiMEhtZ2NodlBYM09FN0lhQ3BhQW5WWGdUN3JwUUIKdGNtclRwQUhTVlBwa1VKbUowVjBOOHhNQkczZFpRTXhFQUZia2lXQ2JFa0dlYjVmRjZEZlN4c21JanorV0RGQWp6L2MwbnA3SjA2RAoyZSsybkVPV2FLUmFiNjltSU41UFU2SElnTTRya3NLQ1l0ZUtsK0U4Tkt1Z2NkRXlGeEY4T2Q4RUl1SWd5dk10QmpydlRhTis0QVNWClpTQktEUWxZd0dyUVN0NEZxS0hvMkRWbzU0MUZZNG1OT0doTmpyUzc2WlVtMDJ3dUZHcjgrU2c3NnBnelo0OHRxazRTcTRmdE1JVVkKeHBPL0QzUmZUci9jMlh1Yk5tYjhOSDdCanFIcHpCM3JXMnhLNmJXMnh4bkQ5R0VFYjltVC81cjdyaW5Kemk3a205NVZuaDE3ZWZLawpuWTExSi9hVngvbHMzdXA3SmVwOFlRTnNjaFk0RUlMa0h4VXRnb3VTdXBuajRsaERITHpzTVpUMjJPYmFrMXV3VFkyYmw1YmtQdWo4CkllZ1VteWJDd0o0V3JkQUduUUlRRFlNNkltQWlhN0ZZWkVFV0ZJT1NJUVIwdU9qb2xCZ0hZc3Z6SHhOS1ZqaGFiKy9FYVhCWnE0bW4KSUNWWTBNMUFESnBLYXBCbEZaNlhXVlZoaUloUitnUjVWbFZad0lZT0xSV3NOWXd0OHFvbXo1bnZNVnBGZzBpN1R5RzhHQTVqTWJkRApSVXVIa0c1STd4V3pqS3RjOEtDV2NCNUM0bmdHd3hEbkNLTi8xNnZibFJaZkF4QlhmdVNBcjNEVE04K0h4Z1hmd292bDUvSk9PSWtSCkdmMlQrSVZZSVA4d2FsSEU0OHpweFIrMVRqRnJBMmFQbGtGRFlKZzkva1ROT3l5Vk1udmN0YmRPdE1YdU44d1o5QUhRTXJEZ0R5ZDEKWmV6TGdIRGJJN2NGN0grQVo1T2RPY1gwWmJFVEQ0NDRVT0hDYzlTc1hCVFJjVnI4VUZzYnBna1lUcXZMV0FmSEhpMzc3aFZaU3JDMgpGRXlMYzhBcjdTNlI2NFNHdVV2YlVqQ0NHS0pScUY5ME5raGlmQXdXRlVWMzJnLzY1aHpmTXhJTTdFT2F6YVVzYnRLTFhneVZ1RXhlCld5TXhSMXhlRzB1c1RobURDU3E2NjZocTFrcy9lYkRxRTh4TWpFU3J5T0xQd2VoL21hb3FFdTkwNGRDdEE5WWZqV1J2bHQwNnlCRU8KZldES3FUUGM4MVA1QlVneGlIN3NDVm9DT1FzbXJ4dkZMamtiZ2psYm5vbVkyL3BPZU9NZFA3WHgxc0NjUFNWQ0N1V1haaGoyS3NudwpsZlF5WWoxdUlOL083M3JCbnF0V3FjUytqWjFvL3o0MS9rREZVYlQrbUlnaUh5SFlWZVJYRThFQVBES1FFeTBTcjFxODZUTWV6SmFLCk5aL1ZKTVN5cHlQWXZDZklNZE9mNmpRU3p3b3pOMmxtSDZHUWR1SWtBL1djMUFRL0cyVFFmakpnQndSWjhaTlR3b0pIVHdsR3pFT1UKTDNUVnprZ3d5ZmFnQVY2dGZma3hRSUx0SExpVlZhMW9kNUtYTzhHbWtFR1RIaDF6NVFqRk5FZHNrczcyRC9oZHBQOUY3Tmh6RmFXMwpibUZxSEFtN1pqUU90NFBCZnMwWE1EbmhmV1I0TTl4UzdIK0JuZHNnblVWWTRneFlRTDQzaTdzL0ZKSS9UNFQ5bTBQZjh1a2hNZFR3CmJyMDUrdUhaVXc1QTBxUVRGWkNDajFIQUJQQ0hmajZGLzlaQWJUSVJYQ2ZZZ2ZBcVlXT0ZYNlJucGcxcUlleVkva3ZIVEZxZG50eDQKL1BpdXlEQ0RiZUNYUFowOVNvY0FYTHR6d01pZHB5RVl6SHlDL0hyOHBkYWJPOUVXWm44YU10ZkNQUnRDcTB5TStGQUJucHdNakNsYQpaQThtL05LZE1KTFBham14N1NrWWFNZWRwNFVUQTNySndJQkpZV1dXREk4OG9aWWJCMUtHNFhrczBhY3h6SHJWOGp2LzdacTlMdExJCnY3Zm1IRm1Jby84aU9wSyt1ODd1OUErMUM3YVpBQ3NDOTcyTERnMUJYVlJWRCswT3hENXBUVitFOXRqUHhZSlFpNHhaSjNKYVB0RUcKR0U3MVJjdzBOc053ejUrU2J2aXlWK2hSUlRpeWdRelRTSWUwODFlSEdyU2NobGdVOW5CMlBVMVNvUXN3Q2Ivb1UrU0VpQVpiblVtRQpIbHV2R3JHMHNlcDlScjlqOVRSYzFua0tucjBmamRCT0kvSHNNRGRpRWd3UklwaU5VNXJvaGZHTkNIOEt4MXBOdjhocGFSSGthQXVvCkRnVVRNWGE5ZkdNZ0dKUjFqQ3BBVVBBTDVNQ2lTbmhLbkRrT0IyNkdDaU5JQjJjMTlxenEwYjg1eEFFd29hV2UvVlNNZnV1MmZWRlIKMVJjVlNSNDVydnJHL3JBeVZ4VzMvdVlJUGxjbk9XeDk2d2pGM1lMSjVNN3hlRjV1L2VxZmdzMmJ0ZHQrUGJkRXFtU2JNQWNrRzBlRwpMWnBnM1F4WlZ2c2ZxejdhcndMOVZRSlhNT2lqSENQakFzZDVkcGVYbDU4OExqbTBGWlFVa1FlTmhOMUk2R1hSeGxPTTRLc2NCcGNnClNNK2xpbjA3Z3NrRFJqcnFUSW1yRmx6NlF4WW52VE9OcHZpZWdoeU1jOEI1TFZaL0FXRmNpOVFrU2JOUkJHSzJzU3hMK1lVdEhWUVEKbTh2ZjRNSmNRZ3RnbVNoLyt3UkRLRm03eU84eHlidjRvRjVWZ3Jpc1ZwYXcyQ1ZEZkdsVjVWRFE2R29aMXEwRFpkSTdoZE0zYWdFcwo2K3dKbDR6a2JxdzhFSG0wbndqcnl0dmNUbXUxM2FUMmNUbGNtVi8wWFprYmtIaGUzalB1aUE1OG51UDJOd2R0LzAydWlWeTg3aTYzCmFsM0V6eGtLUjF5eVhWdVowUHFaWmdnNnZVRS9VQXlZak5ZZ3I2T1R4eXJvT1o2WENxN2Q0MDVxeE5Vb2dEWGNYSFNpaThNd3ZkdVAKODhvOGY3ekZrZG9FMG92SVY1TU5hZ0FrR0E2b0lWdEVKU2ZDY2lCaGoyQVZNbm9ZaXJhTVVTOS9xMC9SdExZb0ZpMFQrL204OWx1NQpnTkR0WU1RRFB3TnFVb0RuL1g1VGtKVUYzbzJlRndiNW1PWXpnMkZpSG5BMnl3S0MvNndJQnJrdkVYL2ZXMThYa0RtUU9Bdy9ZdUYwClhKWXA4Ukp2VW1oQlJVM0UzTHE4R3dvbTUycFRhTkt3cFFmaXJlK0UwNEYvRGtabnV3NmFheXlXWUxMckpGaWpaUEhmU0M5Uk52QkgKZXJocVJSQjczbG45Z0xLT1dLbStDZXZPK2FYVFE5NUx3N01oV1dwanBUZ0VoR0dWMXlmMHUyalFZY1pnMEdla0V2Z3R4dDhPbXpMdAprZ2ZmRllWZVlRbERpZ0U5RXVjVGtJWUVoR1hoNUlBMllUZFNlb1hraTRLbkJQTUh5WG5VQ0FZb2lySHA1YXF3bzN0UHg3akc2RGl2CkhZcmFwRmdSNW5PYzMzNHJGdzZPM1JGZW9pb3BRVExFeGZvRXZZa3pFd3VkeDZRaGxReHdxc2lqUWRJRVRGZkUxdWJFQ3hET2ptRDgKaGhlekllVjdQeHFNbkQvSTRVbGxHS0tOa2tvT0p1QzB0a3ZQRVZPUnhXSlRQUTRPM3gyYW96YU9IckIrWU4rWVBqK1hZZFo1TDM5dgp0dFJBVkZlUHU2dlZLaW5WMC81R0JuSFJZSWt5K2hySUJldnM4WmQ2ZmYwZmxKUE1DZDB0NXo1ZHZISnNIaHRNOG1BQ0o2WndCaW5UCldwRXNVRGZzV3l3RjBIL0NpSW1aM1hyMkhOeHYxSmdiaEIzditZclhIdmZVajk2ZXF1MUdpRWFUNkFHL1Nwd0owemFmbm1LRVhlaDcKV1N6aDJSR2VHUDhLK2NVaHZSZ1VTbm9RZ1FQQlhEM0lDVjBjMWQwbkZMd2YwNFg5ZUJyMHdaSWNMWTVIa0QrZkRKalZMMnhzdmIwVApwK0txLzFEYlR3b1NHUUc5cWxmSVYwNnVjMTRVd0MyaXNvaVlOaDlaU1ZSaXNMSWhJWmdGMnltZUZjRUFOandweUpYYXVDMHpnb0t1Cmx5K29KZnpLV0puVFpRMEVBbTVKVVZtak1qR3ZSQTRSTEdWOStzSHRSM3JKa3pPNlJ5cnRqNFIxM3QrN0hnWlBsTG12MjlWVjhucE4KQiswNk9hSEl6Yk14T3FoamlkZmk3UDFxZWowODd2TkxZdlFEZDdkKy9jK0hsRHAwYnpCQSt4QmlWSWZtU1NQSlduQ01NR3pMSlI3bwp5ZmJ5TUhxOW5tR3kzLzVzZlNsVVZKVGNzd1Y4TVM0YjRWYUZ6VWFYTW9jWWhsblQ5RjYxMXMzdkZHamFoVWthUUkwUW5sait4UG9ICmhWZnBLMm5DTnAxOXdabm53RWxUZnI4aWkzZFF0NU92L2FXNnUyRmNMVUNmUHF0Yk1Zdzh2T0dIZW9EeWp0RWF2WVBqS0UzOTh4dncKTzlZYm00VEtiM0w3RmFveCtpRDZBazM3azNNa016dzVMd3pobHhoYUQzWVcySEp5em5iTkZnbUNUTTZsS21JZ2t0R1RLNDdWcTRSZgpRWlZjNkx3cWM5ekJHWDNEcWhxWXR1N3kwY01Ed3Z0YkR6eVUyM3l3SDRmUi8rODN4NDhuV3R4UjZrbW02d2x5VUZIbmlPWjZkeTAwCkM0VG1IaG4xNjlWMHFMLy9CQzREdS95Y2hEZGFvMkpzWG9CMm42SGwvZ25QTkMzVERNYndUb0hVTHNhZVVmeVRuNjFmN3oxMDZOQTcKR0JxaVdQR3VXRCs1S041VzRRSVhrc3hGclVRTkdzSGNXamUvRmlEa1F1MENXam1BeG9UUjJaVlo3TU5NRzNVUS9SSmxHVDFxNm9kUgp4eTUrVUxrLzZsQjlDVHNzWlFkamZLY1AyWTRNYStJWXVic2FJSWV0QWFqdnJESFZQbWJ0eGQrY2pLY3BVVlVGMWl2TEJxL2ZLSXVxCklwSHZYbEpsZEkxYXZJYVhnNFJXRExFUWZXY1g1S0R3eWM0UmRHNEpCM0Z5V2RFemo2MEw5WkpSNENWRjRyQ3VHUzZYMFdjNnd5YWgKZStSWXo0Y1hyeXF1QTlqMis3NC9MZFl4K2lPdXhHSnhSRVVwYk5lb0V4QUk2dndwT2k3dVlQcTgxYTdnQ1JwMHM3MlJmcmorL2xLYwpjdWg1NDdrM0VJRksySDRxWFF6V1pxVTg2Mkp4YTFMVzdKR1ZULzd3cHZ0b25oWHQxTktFSDhSR09CR2lsY3VWQXZTZW4vUGplRWdKClJuTSttb0hVb2cxY3RDRXRrZjZtb1NTY0lXRWRGbVNWTnZsRk51RndHUnI3dUFDVWpuUjZIdXJmTzgzQ3haalp5NDVsb0lpRk9JYi8KaXFBSXB2VXB1aGJqSEEyZGFmWHRJbU0zT1VrVG5SaUQxNHNXMFMrUzArL0hXTEVpSWcrb0RhYzFCNHNBTDhzNjRrSkpqUnh6bGdRegpCMkRjdHNlWGF3L0l4U1VEbHVaQTRtTEZENFh6NGhJeDlMeURla25pQjczNyszQ1VQbjliUWR5T2VqbzY3ejR4N1Nlc1diR3V2SzBVCjdOeXhCSWVaVFRyaGpUdW9OOGlDbHhoRCtoNytGZldVWG9ZdVM2Qk11cS9DVHU3T20vb0xaU2pzenp6Z29SSVdvbG0wS0lwb01DWjUKMENNTGY4T213aEV0V2h5R1VERjlEN2o3SFV3bHRCSjhuTXRHYlVSaXVtT1lndTdRNUlIWlJhcGJHa0xSQzF5T2pxVUQ4TGZYZ2lzWApMT2lDRVY5QUMrbGp6RDdFZk1LdytKMzlTblBIdlRYQVkrTjNNNi8yaVkrblNUV0VZVGdycHJGc2RaOGlHdWVBa3VmUGVUam9mdzBECks0a0xOdjQ3T3BBeUFWQVlYeUFnYytqNlVzc3dTTmpWbWw2RUxVRWdIbE9RdzBqVTJSQk1Vc2paSzRvZm05dlVXSlhuaVhJRjZiUTEKVDJnVldnU05UNkRBamMwdHU3R29hVnJBRTA3S2R4KzlwK2RaUlR1c2VzbXE5VkN5enJzeFZwUVVYUVY0RWdpL2lIVm8waE9YTDg0SgpxWUx5M25lNGk5UDR5bFNYQkkvZ0lzeW91MTc0UmZRTDBlZml2ZXJkQndOaERaUG9MYytMeEZvRVJnNFppcWsxRThyYklCZ2tLZzBnCnhLQnNDUUxIT1YzWTk0SGpqRnpRM3lxUUtOTDVNT3p2QjVUSytFc3J5a0cza3djZU4wNDI4L2dVdGduUW9zT2FqMDBaZGpKNVVEbTcKK1g2VHovakdEUDJtQ2FYeGhHSkV4dnJndno1VXkvQmVFVjIzNGk1c05sVTcwU2I2RENLWDdNVHZxVXlSNzF5aEhobXhBTVdnU3Z5agpVTk9kVnFDOWU5R0J3SmhndXdRenUvVUMwVHNtcHZGck1TTFd6eU94OEJaL3RYRDJlZGczYjNEOTVMNjdiWVFrTFJxR1N0dk1tZTJaCmlWWUo2MS9qRDNuMTZGWGpUSUVFbDA2eHVCTlluVGZPNlRBTERBVGs0cGdlMzZ5RmYrQUFiakMvQ244WVQva2xQRGo5YkF0dy9BUVUKcEEwcDJERi9KRUdoRU5Ec1JJMXFta3NHQ2lHWkxhbExSbWxiQkN1NWZRdlVUOTRlRFJ6T01uT2NqMDc3QjMwYzU3Y0lnbkEwaWxpSgpPQ1VXMHJFd3pTaXJzSEFBM1U3TGtEaU5EQkV3K3JYVHlucll3WWpBVHltR0RBdHlwYkk1dUhtY3p6TGlqV1V2VFliZDhSQy9EdzFGCmd0VjlWdmZCV3ZYa2Q5SGpwbDNRdWZheVhVejZoQ2pGOWlDOTBCbFZDYVVCNkVBVytNaklmQXZRTVpQTzZ2RHRwMHBCUkVOWjVaUlUKdTJiUXRmb2hZRmE1N2NhNjNxK3h1dDZ0MXVBblh0cDJXcUlWczRXdEFKajloLy9KTDRJM3F5RmRJZjVKd0pHUUROVktUVUx5Q1lpcgpxa2tNbEJ6WXVSM21mQ3RHYXg5ZlBpa2FEREgvOTJQS0EveDRXSzh3Zm5qWFhpeGhnMWlPaSs1b0ZXR3RNZ1lPSkdvTTNQaXZ6RGFxCkRnRDhnZndwdlhWYURRQXRsNzVwTlJneEVpMXUvTmUwY3l0VUoya3VtbGFIQkNCQnBybFNXSW0wZWFkRW1reFBQMHVQUTFka3N6Qi8KN1Z4NGMvZmZGbDczRDNqOTd0Y0I5bVhzYTk2YllMV0U3bnZTbzUwWlUyZkU5ZG1ZaGhwT2tOY0labURwOTN6YXd2UWhVY0ZyUTk4dQp3VGg2Q1lVaFIvTG85TUNhcCtZYmowSlc5cHdIL0FIZWxkaXo3eG94WkkzYys0K1cremFUQ3lpdDBtTEovL1RETzJQdjJEelZiYSsxCmxJQXBvTEk2d2l0STBrRmNkWFZpSUlHL2xZWXBsN3hUU1g3cnU4eE1yam8wMVA0TE9WOFJ1TjVncHpHbHdVdm4wOGZMM1FxcllDdzEKVExGTHQvM2g2emI1QlpCZUJEQjdWWGU4cTUwWGNyMkhPZWJIK2h0TmU3YUJpQmlJSGRSRVhDS0JJVnNIelNIQXJWcXNrV1lCSThQMgp4WXBnajVibmd2RFUycytlVEVVZXZnNzc4QzJic1hyYXQxdklUY0xpWC81N3U1QXhleTBsbUo2bWU2cU1nb3ZJeVNuSHBTcHF1SDcyCnFkQW9SdWRRMmlGWVMzNEIzeGpUaW1GYWtuRUwzcGs5dEtqd3VJMlR1V0QyVTlBSXRhQmJZYzFhMGsrTEN0OS80dU1JVHJuQVNuNmcKZjFwWkdwU2xsUTFQSS91UC93NHVFZU1Td0dXRnc0RDhJdkpWbmFnbW53Z29STDBTdHZXNEtldzZMSHhUc3QzNTY0M0JNeXpJYU1UMgowYlNaQThBYnlDMEdFejRWRUxQMkQybXJiQTdpNkdoVTQ2WXhEKzlFWHUrYWZKMUNzMWJSeFJDL0NNRkMvRUpCUTJqaGtMaVFoZ25KCnVrRWJQR2JLTVA5dlA1MlhDSCtjUnloMjY3OWFxTmpxSjIvQnZPTGgrYzJiT25FS3JNTnpRS01LRWl5MHpndm5uQlUyTk1QU0ZzS08KRWRNZXdmd21PamlId1VZOThHMmI2MlJiZ0JBc3hMcEYyZXYrOE8wUXQ1c3hyQ0FmOWIzUnZaRVkxdUtDUFk5cWU0NU8rL2dHN1Y0Wgp3SFhROTNncDFBOEhLSVZMS3ZzbEdFUWZHSDMxeER4a1FVSDVpcXNpbDJYU3VoN1BoMmZaRUw5dVE1N3I5ZHFBRXk0TGhTUmJEbTRzClQwaStxTEU3bmppZGdCRnhKdDduQXh1YkdDUzRMWkJCRExmdzQ1Q0JHRW14VTlnRjJuS1ZDSDVwWmlOTnN3Y2tXQ2pQM3Q0NDRkOEQKYjN2cnVyWHE3NS9qMTF5RVlYNUtNZGozMnYzTngwcjhMNDBoenYyZ2VWTW5XbU9HdGxKSlFyTVEwNklvd3hUaUhEUlZwajhOS01lWQo5b0ljUVM0VUt0YWdQdkR0MVovTndjemZNeUVRV3FBVkFHa1MyL1Uvd3VxRFpZZWlOdjFMK25pMGJVSy90VnVQdmZqeTRPUFRCazhlCi9PUndzMkZrc29QNGVHWFJXYjRSRy92VUdlMTJxY0hlTGExN1pUK1B2VTRLV3BUanlDL0ZZZkVrTURLeHFMeTlEdjN0cGFySU4vdDEKa3hIMjk5TWszUVkybWxKWVUxUHpaVERJY0dhTUxtWnVlL2EwSFNRSXVUWUFqTi9lNU5FR3VhQ3ZvYmFXTU1zUFByOC96S3ZRb0ZnZApWZTF1eXlmVCtFV3JRQkM3ajZIQmtLYXdmaUtPaFRLdnFLd3YrcjhEM0htQllwTzYyK0Q2M2VxeVFZMnd3ZkxhRjE5OXRlT2Z0ZjhZCitkb1liZitQVGs3RFUxbjcrTWJ3NFR2Ukd0ZC9xRVhEZ3pJU1JkRHJlR0JOZnF4WDFHYjhNQUxhbVdUYVVUQXRKNmdaQzUrQXpFbEwKYnZyUWc3YWgxTnBjUEFYUzNaL1ZqVVBGWTdnamYzMEZ0MWl2N0ZyMlJOV09FUi9lQkI4RmRHWGJjUXNNOXlYZkRKZGYxUlY4ME8wNwo2REhnWkpRYm9peHVRYWdQZFBsc1lyQzZDb2FESThWcmlyR2MvT2NicmQ3aTE4YjFYYWg1R3Y1ZWlKQjlTK2pHeXVBM0JwL0dsWXluCnd4L2VLNFdrUVRVYWs3UjZpQ2hYWVRkTW9JL2FsaTBOZGlkZEQwYUxyR2o4Q3E4Y3MxTWJNZlNNZ2ZjVHhlK1JEUHZKL3RHeUtzTFIKZnQrUEFzQWtBY2ZyZDhQcisrQzErelVoUy93WHJUZlJHZWc0TGU1OFg3dkVKV0QwYkpSTXYyRWVaSzY5QzU4Q05hdzlna25hMCtITApTZjIvZndGa0dzY3NHZHJ2WVA3UWZHVjRhM014dk95ekNVM09HV09iL1hyelppdGVwYVBUaGpkQ2cydkM1bVdVZTRBRUkvYmhWQ2hNCjZWZDEwbXpvZ3VzQzJZQVFaVDFzd2dKV0Nmdy9kMFphaCtjSHM3cWRDTi9WdnBhdmV1NzJnczBmSERIdDZhYWQya0pLZVZPWUk0d1EKd1NJOXIyb0l4UXhQZ1dZSG9vQ0Y0aHVSS3pNMWppSEpjQW9hb0h1RHI3UzdIeGtHUWYyKzdwVEc1VGhIamUvV2JDWWVXb0cvZTkvZAp5YkEyTWVzL29UdUVZQkNEVS9wWWhjTWl1azRYUDJ3SnlyQXpFMHlUc0dZWmk5WldMbVZlaVdVdXJkazBLNGlDRUluOG5NS3ZDRERtCmU4dFdYOEVHMUxRVFZ1SGttSHhwNVZUbUkrL2wrTlJWZElldTFlOVBTUWZqM2lGOW9pVGpwdjUwOHRvRTdnVGloeEY2cGJ2WXR6b0EKdlFobSs3cmlUU2pPUXI2YjFiMTNlMjNHMi9yT1BWMGJXZzB2TFBWQ1hOL1dXMzhFdERtWUpQeFZyVGxiclVIM1NNSnpBUm1yU3E0ZwpENGliNSt2K0Z0eld0RXVMbDkzOHhPTVlhVExkMEs4emxOZ1c3ZzdiUzRSZ0pnUHdMZ3pia2tFL2FHb3BZWDdLSWlXaXBWNElVcnNFCkl4SVdvaGNOZGhoSGE5ZFFKbGpRTFovMFhVakN4dTBZa1U4cGRnWndZbnp2VmIyTHI5MW13NktOZUgwaXUyZ3NMZ1VnUCtUdVA1NXEKdFRXNm1LT3hQSmcyd1JUV0NGV0VYaWhlUHpycjRQUkJuazUwTUp4Mnp2YjhZdExhRUdVSVVXSUFHNVRUUjJ5cks0dGhNYWFvYWlWdgpXcUI5Z21uaGs2WlFJdnYyM09hbnNzQlhvRlZiTWp2L0FpdHBPYkF6Z1JQQXoxaHE3VVBKL1ExQ2pPUzFWMmZsNjZjTVhSVHVBcmt2CjQ1MzNKeHhPcnluZi9jMmZZMEJYa0poQVB0M2hidnFTcE50L05MdWdrMkFYRURvbXdhdzZHa0dFRU1GOEtGRVN6bnUydEJBbEUxcmwKS211QnErSDlGczhBWmhLMkF6M1dSMnZPZDRxTTRHVm5iVnY4a0IwWk5uUi90cHNiMzE0QTM2QWJraElML21ORGViZGw2dWRYdXczZApxOXpqRGVWL2JGUXhnWEE2d043RmQ2WkJ2dzFMTWlDRGZLNUFiS3JiNkt2c0JhYVNaenVFYmRpSi83OWhhak5mOU9EekNYcThOWHVrCmxxYWFRY0dac1h0Zzc1Q3F3TVNjeUdmSTd1MkU2UWw0S2JRMGhlek15WnZmKzZ6NXFWSllQNjZoY1dKZDBQWG9teFVWbCtxYkUzemIKZ01RSFpuRWY1ZWJtSFJTTHlvcXEvTWVPTFIzRDZQeC9QeUFIVlFHbUh6clVENm9lTXptL3Jmd2Q4UjMyVFpGWTNtSlFaTDNnejFuNQp5cEhXQnpzcnRKaGg2RVJIaGpaLzI5RWdOUlc4Q1RJeStKcG1uL2dXMTdra2lFRUIyTHplYklPaTY3TzVsUmkzVHpEYWEwcVBHYTE0Ckg5WmVVaHI1Wk1YNHJsUEgvNjdtcmF5a0NuNzRONUlTeEx6eUNGMDBDd0g2Nkw0ODdqNmpUZG1QMjI1T1RVc2IwTE03bzNzN2Qvc08KdDkvdnN3RWNJai85M3ZBMzVLVWYzVENJOEd1S0pSZ2pLbnJSTEM5NmMwdGt3dkNQUUNmQkxoaDBUSUpCai96UWxSd0VKbkRLcXE4UQpGSTduR1ZESFUxZktjMFVyWTZ0ZEh3elJJamdZV2UyWElDdVVHN1J3dFg2MzE5cUlGZUswSkVqSnlDckRkd2R0TTFmT3JFc1RHeUVRClhFbXMybWtpSi9OeGJtRCtBNXdDUXFPRWNXcE5jV05lNnVzUlQ1aHVuYjRQaUZOMlRWY25wcjlXTjJWRi9YaDArbUFYRERxbUR3WXoKblRtaGU4MHpscWNnVkdmMDNqTEFMSHY5QnkyZlBTdUN0WUEwYmlZVytnMGpDeWpmRmk5a25BYVQ0ZzhTSGl1VVlmYmZHdzA1MlRSeQpuWFhwQXJDNnJGZm9BdDNxRHNJUkw3aXNuQ3dISmNFTW5pWno5czlKc1ZCcHZIMjZsajAwNVJ2NHI4dSs1c0FIUDUxZm5RUzdjTkJCCkNRWjN2eElPSXpJYXc4eW4xbENYc0dJQWN3OU81Qk56c0V1clRJalR5TjRab00vYnVZaHRvbGg0NnFlWThRaUt4eXhnQlJxajJhTkMKOU5UWXB4WmpJT1QzOE41RTlzWGpKL1RTeDBOZ0k0RExDM2E5S05rNU5PRzB4WmhTalA2SkpJaVY5STlOUWZsQ2ZBTi81clo1LzlzWgozT2pFK1VUdEkwdEM5MVJHajdXeDZ4bmFCenlNc0czSEtqanJqKzVXNnhWZFAxN0JFSUdYdEtTZ3hYNGhteWFNWnVWaDVwdy9Kc2dSCmp5MElBUmxNZ1NHRFY4Sk1nTDBBUjdEcUZKMmF4ZUFnS3BjMkRKZzk1cUd3eFF6ellKQ3h4NEZ1QmJ1YmsxOHpYbWlzV3Y3MXo1QXYKNkZTd0N3Z2RWY0hnd2RjMFBtR3VGR1lWcUt3cU50dUtmcU5YVDB4RU1hbFIrYTJiRWt5VnYyaEpzYk1JY3JRQjd1djRKOW5TeFZtZgpyZXJhV0lJYmVoN0J3d29jSTRsb0pBb25lVmtNSEdRWS8vYy9PTHhISmNscDlBWTlQbFlKNkwxR25RSVloVEVMb3d2SDFCeTlyR3pZCjVRcXJkMjgycnNVOEhscEJJaU8rOWxsNDg2UHZmeDYvT29NY0Z3NDZhSkNEWE5oRFNtaklrQTh5dUR6Wng1bTB0ZU1Va2tFTnlqenYKWjl5YzVPaE8rTVYvbFgvczRyS21GeU4rR3NHQUY5YzU5ZXUrS3MvOGNqNkxEQ3NkY1F3VFZuVStoVkU1bDZSblZRaktTb0E3RnVSWQpINEEzaXVOWm5kR1A0WXdBL2NEajZvWldUZnAvc2QrT0dUS3NNdW52L2JyMEVSSXVEeVE1aHE1SGVrMjdmTUtuYjFadi80bkJ3eVowCkV1eUNRWWNsV01IQWdaV3NFR0IvbTQ5SlpteFVJTHhVQk1IN2VVSXZqZzhDejQ4eUFNZXZrRUNhc2FtRjIvWFRUTVF3Sk1nYW4wZHQKeEVXUENPQTNLWXJFcUViSjVPM1NnTFd0Q0JpVGpsYTJVdlVSenFGNWFML1hYNVp6T0tLcWx3dlYwUlgyUVNtVlpKZC9YOFZBUGx3bAo5bTE4Zmp0ZGtma3owV2tpWGpEb3NDWWl3Q3c1a1lWYTQxSzBFVnZuU0dGd1VjOHFFaVE2MlZzZE9sb05ZOWFHY1BvSFJXdUNVZFZvCm5WRjFldmd2M1RWYWk5TS90ZGpvTkdwOVEwd0JyejI4bUVreU1LYWdDVnplS0gvWWRoMEgvZFNlOG5mcklOT3k3bGFKS2QzMnB6NFYKUm5Vekx1QVluSkovVmZkR2VCN09TWEFqOHRzNDB4VDRMd0ZNNE94VTBETWkwbmJxd0FTam1OVjFDVzFLNUcxTkRTeldnYVRSaS9NawpvQVNiYWY0c010RFltbUJOV1ZHdGo5UTJKSWg1Y2lPVk1GaCthTEcrQVY4bDJSdkIxdFR0RWRNZGpYcm9PYTM3MFdwMzVYZmVCSkR2Ck5Yd0hic0xLaGErS0RlYTdMTFlwcmtPYk5Ib3Rnc2NITEMvN0tYbUhiZUY4RXF3VDdlSkNJdGlETHdrWWpXZDlxcjVWZlNmQ0ZLeTkKcXhwc0UzbXRqK3VNanlPNWN3ckJtdFltdGF5M2ZScElockY5anlMQkp1T2pMT1ZGRCtiMHVteENEV1RobG40SCt5MGxlMFdicmowQwpvLzZFUWNWaC9HT1RVZDZNWS83WlFDenY4VmNPNUN2ZjNEMFcwK3BURmptLzN2TW9YU3AyVHRCSnNBNk5DNGhnZE5rS2tUQVdpSTBtCm1YemhNRGlkQkF0cjJKMjFHc0dJMmpXOXNJMGdoMnhvcXI3ZW9tVkUyd2dLSndxNkpsWEE1RGw2WFhTZlRWMjN1WGxnZVNtejRHWDIKeWtUamdMNng2VytQS0FjK3FHYTlWenJWT2l6QTYxK2JLRjdacngvdjhLOEZtYmhzYnczMVB2MjNmcW1ERTc3ZG01ZjkxNHkzMzQxSQpMUDY1aURUUldrOVBkT0s4STVKVUhUYklRVEZqWllDYVlyekljbUFXZFR6b3dpVjRnMEFiRk9qbEpGKy9ZQVc5ZGcrTU9CQXhuSjlDCm9WRDlONnA4VEh1RlBVQ3ZlcVdKMzhIa2tUZlBQd1RNM3A3ZUdKdzZObVRyNVd5ZnhiMGZ3TkozNDUwZk91MzM1UzU4OVErQzRBZGoKVlBYQTV3SkdEOE5hWE95ZEp5OHBUdnl0QTM2UU5rbTNIaDF3Mll6V2grOUVKem9BR2xDdjlDRFJEQ1dQM1dsazZwdDVvYUxETFRFTwoxVjUrMlVxNnhUa3ZMR0ZTR3dvR2Z1UWN3ekNzamlNcTFvNkkrV05reTRTeVhwT3lVMWVWbCs4YVhsZnU0VGxlVlhtNFBMdWlCQnNnCmxQVHBPbkM3OUdodTlwUkI2ZnU0b0Jwb0xOenFsMFd6V1pUWW0vcWt5WmRVanZrSEZQcXQ4NmFXdnZOeDY2UC9USFFxV0lmR0JhTmcKc3pkcWlzVEx0SUoxUU5hQlR0UjQ0VzllOE0vc3VGVFdDc01Yak5DUzhDWGlvN1RSL0lGanJLRUM3SVJqY2p0MklnOENKQStvM0pPeApDaCtWMTdrTjVIdGovSnkwUHZTVkxYNHJ4YnpqdlcrOEZSTU05bTVGZFp3UzBKS2o5QUV4a0Q4b1p3bWZIclhzK0NGZTJmb3hUYlEvCnArZ2tXSWZHQlVFdzZ3MFg5UXFFR3lwZzUwb0NuYXFxUWNvTGJTcUtVa3hsNUF3cFZCYysvZEx0SVhveHA1cUlZSFppYjB3czN1QlcKd0FpS2RLWkNHOEFyMHNlUEJQZUhkaUdXSDVhYU5ZaU11b2dtVXoyMThOYVYyOGRXclZzNDhBVXZtTWcvL09FNW1aY1o0aTErTU9DaApRV3QrVGpwdkp6cnh5MkxlcTFMY2I4TVA5TWdGS2hBR0dpNm51VlAwbVZBTjlSQldQQmlEYzJFMC9uRktGSkV3eklmVk5Wa3NVV1Z3Ckt3eWgyT2tEaW94WllldGpkQzREamFyNDlTd1daclM0VlVXeS9XTnU1blJsQWI3L3VQMmhDdlcwUzNHalZkOEFyTFZSaGZ1U29leVgKckdQVEdVWHMwTGdRb29pejE5YmY5ODRWWDBmRTVURmVTRVFJc0tzVU5GdEp4TjZEeVYzQ2ZSZG1Pbk1vKy9UQW5xcGdBRDZEaW1zNApnV1dKREJyY2pGRUJUQ1J1RTRxcW1EeHE4OHdBSzRBaUdyeWc5OTkxS3p3czBQZmZBbm9kR0FLSzVNWFBad3dFR0pQblNYc3B3RTZzCmk5aUpUblJZMktvQnJsZzdjMlV6d3lnUEZMVFRrRjhSRWdicTRHUGhuVmJPNExYc1lGWnRnMkNlR0pHVy83SzZyRVRIWko1UWpPemIKdG95aDdjeURHbnAvVlRTd3JOUEtLRllYQTlJeUNVSjFyTXo1QUNQeTZVZlJTOHFmdk1sUXY2TnNPUHlTNnRXSlR2eDhXSWtwK09mNwpYZUhyTzRTSi9XcXV1cCtwRHhtRnRKRVZJcklnM21kM3Y2b2l2VlNXaXhhYXV1cUZFVERwWWhTZFR0RXBibUp6a2dPWUE4RHF1S0FXClJJbUVoSFVFV0VZVmFhR0FJTVB3cW14eDZUbS9tUkJZeFNSSTdZRGtIY3FGZW41Y1hRRGlINnllR0xVNXUySDR6bFdSQlhSK0NYUUcKT1RvMExvQWdoNVMwaCtmenIvVlhSRkxrcms5MkZPWmNZNjNrUWk2SVZqcVVBWGtBMDl4ZU11Vnk4ekdXVU1QQ3E2SXY1cFJWbWlJego1RWpQSXloaUxyQUdXZEVDTG9ZMUtoSTFRSnRoOWd1cXk4cXlCcFVZa1g2YzZBWk1CWEhaZVpsVjZTVWRFU0I1VnJYWFgwSkV0d3pXCjdDUVB6M2NKN0U1MG9uMFk1NzhQU3RMeFNINllUNUpmcmhVelp4bmVGbUtvbVJnT2NKd01MVDVHREJDK2w3QlZvc2pGR2oyNkJsdEwKRlF1WW5mVzZHRHVCMTZJb2JqMmpCRlRpeFRHWUdCK3BZZ0xMdVlEUXlxOENvOU54cklwcXBsb2tQUU1HaVFoa3NIbDM2Wldrd2NlMwo3TEtMRGJDVDJMWGJmMm4xUW5RcVdJZkdCYUJnVU5EM3NzMnl6UlpYMXJ3cGNORWV2Q25jMytmS1VYS3AxcDZOUUM4LzRxZVYvalh3CmJ6K1h6YkU4c0p4WGllMVh5ZkFSREpPQ1FWK01hMGh4RExsUEtLWW5EQ01XSXFqa1dDMFpaaFpGdllRbGJqaURIcHM5cW13VXl3ZFYKMXE4SGxUQVNHQmxDOHdCUy9JdEp4eXA5eDNvQnBkZTVTWlp2RjUwRTY5QzRFQWdHRlFsWGpWSS9ucm8xNHNQR2xHbTNCM0pUMHpKMgo2V1dNeHZOQitaSHFqNXIzZVh3NTZHYm51MnhLa09GTkFFTmduMmdLMjRsWTV4NzdWQ1hSYTdJM0x2aDNlYTNZZ3hqN2p2blVKaXZSCjdOVVNnNjFFM0JTWkVNemk1bG1XZHdrbndjYUNxQURqSXhjNTdoenpoTnIxR0FQUnUzWkNvZXZjSmZPMmg4NHdmWWZHaFJDbUo1ajEKS2ZsL0lxL0pTcFR1ajJ6Uk9xdWJzaVRHWWZld3M0TXJtall1MkVhTnhVVi9iVEFTZ3VIVXI3WG5FWThZaXJXSDhvTkZ4a3g3Q1ljWgpCa3d6d3lqRnpQWFJzcGUrd2hwUVZNQ0VmWkZYQ0E4dHgwMWVHNHVGOGhVSkNTWXRVYlZ3cHYxZjUyb2h5dG1oazJBZEdoY0V3ZTQ4CnVIYWUyN2hpMXNiK1cwSmJwRWZrV3QzcTVndDVGZ094aGpKak03MmFUS2RNR0xoS1ltSmNoR0ZXNkFuYkRBWk54QmhOcjMzQXhPTXQKWVJnY2FkWXcyZ2FhRW96UlV4ZlB4QWZ3U2haeGVwdDRZWnpJbnlTVTFRbHVVRlJDTUVoNmd0cXA1RTE3LzhySnZKMEU2OUM0QUFobQp2Zlo5d0ZJWTF6TFEvVi9ORlFaanBCbnVpQUxYcmJGZ1llaE9Ka3d2Wm1MQVJmaEFLVmJvcG9mQWRDY1dxMjByWnQxTXpBOUdFVU9HCnNiSk1Oa3FhaEpsRkZudDJnY2xycE1ZZ2Rrd3hDUzZ3Q2JMVGhGVTRrSTArU0tRWlU1aXFCWHZ3dy82YTZDUlloOFlGUUxCWi82YnUKa0ZrL09HbkZqRVQzMThkQzNwR2tOOTk2VkV1ZGJ3Ti9pcXdieXBsQTd3N295RXVjOWk3T0JpdGVpR0pBbGxrUU9JdkhYNmJPTElUNgpHTEI3Y1VxTU13UlVsb2IvZWJQSFlKRjBCRjQ3MmNoZzRROWdaQ01YTUFUb3Q2VWpHOGptdjQ0UHZROERpNFpHQkZsK0ZYUUdPVG8wCkxvQWdSK1hkbTIwQk1IdDhyaU5ULzd0ajc3VEswRGpOUXlCM1JObnBWaTZPQ0Z1VEJKazhNQ29XbURHNXJFY2c0MGc5YWhqUzFPU1IKOUg0ajc5U3ZKQ0pXM0J1VmlseXdJckFLalZ1WXdXQ2lacWpYRnVvTFI3TWdoWUFKcDVjUktwYTB2eGV3WC9paUp4WkJkY3lBbXZDYgpkcUlURndaY3grYkY3RTBCKzUvckFkMGx2bW1oRjhHL2Z4UE9QRHdETXE5a1dXMmF6QXN1UWhoSEV5azlZQklGcDJUUSsvNUpIaFVUCkE1S3dVQUVMMmR2RStjSEpoT3d2S3lpOGhRVnlHTkRyOVZnTFFOSDhQeGZ3MXJzQkZrSEtJbGhVWHc4dzhyU1Myb2xPZEZCOCt2bHIKRzVjdngyajVQMmNCckNnM056ODExakNyK2NIcGNPV3JuSjRqN3BGZVFvdFk3L1JibStlc0EyYUZVZDA4UzN5cWkrcnJZN3hLUU0rbwp2RjhuZUdTYklFVmpWZ2ZocFo2NFhoaEVCSmF1SWZQcDJKRDBCOHpzemZEMzljOHQybEx0ZHZPZ3UzNXAwNUYvTFhTYWlCMGFGNENKClNKUG5yNS80VC9KUjFVdUloelBnb3J5bWFlRHl2S3R5Vyt6YWhDbE1hZWplWktZL2J4QjVoUUdyeTB2VXlOZWk5YXdIek15UUl3NncKUmhXd2piVVlDV0VGdHhBd0I4QUV4bENZRWp2OEFtK2d5a1dldC9qUTJxVFAzRkx4dzF2RVNIeE1CUU9tL042Sjg4dWQ2TVFGaDFtZgptcHRHNnBVd3Yxa245SFZOZDF0Qzg1a1E0MThGTGtwV09FWmw5RVRFTEg2MlpiQk44RWc5VXdJK2owSGxPRlhWbWVxc0ExeUNPdUFJClRVcEVZSms0ek5qUUFXc0tNRkVDZUhVNkdoeXkzdEFZTlZZLzdRY3FhNXovd1l2ZjNSMTU0RjhIblFyV29YRUJLTmpNUVFNck1yZlMKYThmY2JUKzVySyt2TEdsT0ZkUnlwazdGNWh2MG1vUmw2dnNYOG02TEtBTVJNZFhxY3BsYkJiTTlaazh4OUlZakxsNVEvRXdVRjY4VQprNjNGbWRzMGtkS2dNZ3EyZ0piNUNPWmFvWEVsMWtUOWJVV3VBWVowc3h6VENscDFvaE1YRXE3WHIrS0hDL05Xb2pFM0E5c2MvL2FmCmtjbnVzYzEzVzRJZnBmWDBNcTdFSmNrc1dFRGtnZmhSTHB1V21kRU1zemNhL3IvMnpnVXVxakp2L0w5em1UbHo0NHlBQXFPb3FMaUcKcWFrVUZDOG1pckcxYnExU3VmdXltdi9LdHR6Szh0UEZhTTN1MmZWZmYvdTcxWGJiM05MYVd0TFNNaE52bVdscW1qY2tGUkVrUUlWaApocm1jTStmMlBzODVNekNnb0ZtdkRmaDgwWms1Wjg0QjhjT1gzKys1L1I0OERyWXp3SHR6c0Z3RzZTMkdCZlFjMFpoUGpIOEw2WkdOCkIrL3RMeHJuaXlRSzJPaEI3bk1KR1FlTGFXSitIS3dvK1NVUVp3aXNuRWliaitvaG9vaFpIRXlJTktOdWk1NHkxWTY1OHJlbGtIUDEKOCtnNzR6Uk5DdGxDTkVVak9aVjJNY3pjN05ESHdWTDZldTFSRmJmenpCWGgveDJwdFdJSHBXbWFHbDZqTXVsNGpjaGoyWGJ2Mjd1MwpkWkhNT1lha2lERk56S2VJZy9rdHdPNUwvM0R2RDY1R2V1UVI5UE84dTdKdzNEN1I3c05wWWw1bldkbUdqVGRUaC91YXl0SVRXSlRkCm9UOFcxRFJqMVpQckFsZ0FkNjYzeGk2RGtrSUl4ekQwS0FlTXJnNzg0Nnp2OHdEOFFLRkUzdzJNUU9qQ1dKNURNZWV2eDJGeVV4MTgKZmVjMDkySzhEZ3lLZ2c2cWV1c2xxZTNYVUxZRHQ1ZEswaXU4Rk1QUnlBMGpUMVExMGRybXZ0eHRKOWZFUWFRajQzeUIxb1lZeml5UgpaUHFjS3dUNzIwNG1hcDFEU0lvWTA4UjhpZ2lUZTZzZW9lVDY5emc5VGNzYldyczZIRFdLQUllUXpubGdQaWdwZFR6RjROSTNobUlDCkxzS21SSlcydC9zdmFSKzhXcUhyd2gzeUdIMVdvdkhLeVUwNGd5SHVjd0VSTEthSmZjSDRmQWNQLzhyZkVHa2QyYTdWUkpCUHE1YkIKMDNNZWZ6em9EREc0dExiTTRKWElrbXFqTlpQcWRlcGpYVWd2YzZNMXNndlJLZERzRnpVd3Z2RC9FcDZWaUo4RE51N3VubEVMejM1VgpTQnNzcG9uNU5oaUlsM3k4YWVOa3pWa1pQcGEyN3R1WGtKeWJGcTR2MmprVEFobHJyZUpvbGhQeGFoSVZmWXNxK0J5c1lHR0RRYzZQCnA0UTBKdWQySEw4Z0hYNXZudkFxL2pYa01ZSVhhb3BSWUx1cjhxbjJWeElJWFpJaWNEUmFaaXoxM3Y1RnBHOENQVy9jQ0ZQYlhIVnEKK1B2bjVNZ2dzc0RpdlkxQUJFNmxLVkJSd0xLd1FGc3lkZ2JBbG52dzFIN2hGaGp5YTlLbkRoaVp4MWFVNUd6aWNlbGdzRmtLQis0aAplaEc2Q1RQTmpRMVR0VVVBN3RudnRPbVplQTh2Y3U2Y3VaWTE2REhRdzZaWDl0V0xrR0k3Y1ZzTWh6SkdYOHZjR2RndjJBUTVEdkJaCkMwSjY0UTI1ZnhuN1JQdnJmbFZJR3l5bWlmRTJXTkcvRlhHR0hLKys1NFZDKzVMb3JTM3QxNXh1WlBjSjMzejBtTDhGSlhkNjZXekQKTUVNeGhKWjU2dENGTWNKWGhYcjNWOGErbG5qWnBxNmpiNklRVzNvUndXS2NHQmNNWnAvZzNXeEo0VkxjY3pqVEg5K3lKWkh0enZBcwppbzZZSzJPOUFBbzhlOEtDNlJNd2RNVkV2SWxmUXZTM0R2cUs1amJHMFFNbjhLVmh2L0x4bkpCaUFFZk02VVVFaTNGaVhURE1aSWdVCjJ5aGtwUlJmUW1OUGFGdCs0eFE4OGJmd2kyY2V0Q3N0bXovb2M1eU1HbS9jeFcxMFNwOWdFWTZWNE1vY2NERDlZRHBVREJ6UjczTXcKZG5NQWVOS1lnQmg3ZGdFUkxNYUplY0VtdzFtTTUwYkNGMHJ0eXBzZEFpNTlyY05ody9SK2JZNXJseUJhNUxXYkZ0WDRqa0VKQ21RSApDeWRZMWgySjZBVVFnNEdMUVBnbDRKZlBhSC9xOUxRV3ZIR0F6K0dsTFMyVDc3bHdGT1BFdG9QTDlJaUgwTlh2NHM2TSsxMUgrdGV1CjJ1c0l0dnBGSUhSWHZKTTdtYzNiQVdHL0N2SkRWVW53dVFhcXQ5MytZQ0puYjlLTHRVV2cxZnVYR1Q3bG9ML0l5cGJrVUQ5bnpZbmgKQ0VaU3hKam1URlBFYzFlcDltZWorNVhqbVByVnEvSGdCcHVxbnJRL0dKZTdzNjFmazlKTHcwYWRLbXh0S281aHZ3amRnNjdqbHo3Wgp2U0QvMmMvQkpvSU51QVlLMnU4UGx2dk42TllldzNTQUVlbVI3c0pUYzlvQk13TGg1L01Xb05USmNkTmJON1YvSTdiQS9ZY0ZsOXdiCm1aWHJ3NTBhYlZQRTNPMFBzQlZHanlIdW1pL3M5MURPcVFKWEMvbXhuQ0dTRkRHMk9jTVU4UzMzanMyRmtBRndDWUQxNFNHMmVJaFYKemZRRU1WRXcxbXdCc0xSZnhDVVVvN0NYelF0OGJuM3hpSDVTN2w4N3A2Qnp2eUFybHYwaWRBZGVlUGJwMzEwMTU0Wi9aMHg3L0NNZgp2QndBY0U4ZEZSK1RqaUd6Y3BROUViK0EwVVJvdHdsNjdwQWp2azA1RGowZW8wTmY1M2JGZWdCckU4RUlNVTNIRVN6OStTRXpQZ0ZZCkRPOC9RNVh0ZVByRnUzRDFzbXJydytOanpqRVV3QXI2TDJsTmxVd1Vuc0hZSm9KdEJORnhtcGdWVFl6N1JlZ094SG5MMzdpbWFpZnMKWloxV29KNytvVG9lSEdvZmVMbG1hdGFzOXRmK3VzaFFNTzVKM2ErQTNncnphUEgrOW0wdyszOXJSenJ0MUdqRGszUGJuNGt0U0FUcgpNblFjd1ViTjVtRUlvQ0JXWFpzSzN2MnBhV3dRa0dPZzBqNWg4VVB0ci80VlFRRnNmdGd2M2lnT3l1SE4wNWsyOHc2bDBVdmpxcU5QCmRFTCtqQmozcTgyQ1MwSk0wL0dDeXdrZnJGeVYyWERUcG9NRDBNOXNqM2pxbW1tY1NXNW1RcExaYkxsVXZYTHk1KzF2K0xVb1dBUGYKMlBCY2pRQVBISWRYSWplcmRxbmRkMmFIdjNUYzhaN2Y1cWc0SjliOUluUUhScUcvOTBLNVpSdFlyUkEwZTVoOFdaYXRicmZiNXd2QQpyWU9pZG1QNGxmRVYzTkxzUlhyaFNvWVVudFVic09HNEhOMEdDMm16NkxWUng5SGtqeGNzV1pGcGpFZ3ZCOUdMY0M2SXR6YlBld3p1CmpadnVjNExFQis4Rk1SOUtaZVNhRzcvcm55ZkhUR2ZIMUR0c3VEWU5YbjBNNEpRQ0tKUzFhNFBkWFNNUHBSOXRQWTZtR0MrbW5Hc0IKdlVoSExLNU5PUVdrRGRabDZMZ05CbE1MSHB2M2xMS1lndzBBdWVzZTdnbGU0S0FVUllZZ2dIWGg1ZmRPN3hNVGlzMHRMVDltdzM3aApEU3hWMU5wQ3IyMitCSCswWUpNK0Juam5IYjNvYjN0YU93em5kZ20zZEloZ1hZWk9CSHZoZGJDeWZ3ZjRHc2FET3NXak4yRzhuR01aClZzejBVYUVaZnZ0Z0xCajJ4SXJ2WlZ5WEJpaWdCUXZJemZpa2xmTkhkWElrcE8vRmsrYzN0cHlJWXNZamtWY2JXay9HT3FTVG84dlEKY1NjSHJPcDdqMm1BVXBmU3I5K0dBV3RYMi9VRWpHT2IzbHMwVGVYVWZTOU10a3o2MTY3Mjkvd0tqRS9kcktJY0Z2dkZobVNMYkdFawpBTHVialJMc3huK2loN0s4L3pyWnNOanZNRHdsUkxBdVF5ZUN3ZTI4SzNsdnJ4U0E2c056TEMzMW5RTHNvcEkvNXM3N0U5VWNmN0dqCjhsL3NqSFBmblRnbEw2cUEyL2o1S3U0L3hINzVWQkExTXc1aEZrcGd4aldZeldiY2ZmL1gyako4NFlha1NlME55eC9mSmYwaWduVWQKT2hOczJzdlpVSk5jbHdMOTVnYWR4cUo3d0VFc0VIeFBLN0lvcWhCZitYS1A2M3U3cnovWFhmYUh0NDFzalozanYwWUJqS05BTlh1QgpVbWxOc1lrOGgxcUx6SEV4MitYcTkrT2ZCeTdTL2RKaldIaDdvekJkMVM4aVdOZWhNOEdXVFJnSUxoekMvbHlYcUZlMXdJVThFUndqCi9ENlVObm02TEJ3YTdoTmQrUmRuVlozVE1GWjR0S251dC9zalIzbFlNQXZRSVFIOUd6Vk5aRXljUm9ObVloOFBzUUJiSnkxcXZmRUoKbUpzMTM2aG1nK3pLY2doZDFLOXdpUkZDVnlkcndlTmZtT0N2dXl3V1F5NHFyQmhyYzB4YkFROC9HZ3prbFlCc2tvSXZCenpuc0V2UgpRa1BkK3BhaktnblgzMVhONktVcWNpSm4xanR1VktERzRXNlpMMXV1Q3pOWDN4WDIyeXpveXVOZHBGeDJsNkd6Q0FZd05SL21LeWZRCmozUjREL0xJYjA3ZnJOc3ZNc0dsajc3Mm1odGN6eFVHMGFuNmo4K1pZbE9XZXlGSmppd0huZkdxRFNtdldYeGFVRjhHbGhDZ0hZS3MKOGhTSG85VFRiZTRNTXpkR2kwV2RNVVN3TGtQbmdpMTRWaEx3VmxwNHFwRmUxWjB5UXRpQk4zTitaNExDSDN0LzBBVGdEaXMyK3h4TgpBaTdjVUllcmswWU9FL1JkekRsQnBZSTR6bkpPTDJxSnFUYTNMbGhYYldTZEJpSllsNkZ6d2ZqYjN0R2ZCZXdZR0lhaE1PYWIrdUNLCnAyVDBvdzRsRWpJTTNKQzhMZ25nVmVlNU1HenkrbU9RTXI3RnI3blA2aytCK0tBcUFwaEZLMmlpT2ZlYngyajhuWFZUdndqZEJlOEYKK3U5S0FRUmNoUk92c3RLd1luQUI4NUMrdkxHazBJVFZpNCt2ei9qYVpKMzk3VnRSOS80dk1mUERZMGwzRmJUdTA3VnZwUDVrRTYybwpoY2d4dWwvdzNSUEZ5eGcyNWxlZG5EV2tGN0hMY0pyK3FHWEYzNkpIRnRra3l5eElFdTVLb0h5RG52OTRCUktyc0FUS3dNNWk5NnpXCnR5OGNyRjcwYlVjemFuODVLdnozcmQwYTJSeTU2SUpoNXNZNi9Db2c5ZkE0clJ5bGFDQ3p1WGs3RGxVekQ0MTdwUFcyN2dVUnJNdHcKR3NGZzdXL3d1SzBlcnZEMGROMHdLVEgvUmg2Rk5qeThWTGlYWStHNEZTbTIrUDNyVWxJditBVzc2L2xyaG96Ryt6TzM0ZlkxTU1RWQpBeXRLSDVlOWRQZkJDL1ZPOXdEUE5RRFNTOVpFQmRoK24wd1hxeWs5cmUyZWtEWllsNkh6TmhqaWhSY2xZOTlqQ1BkMitHSFc3WU1UCmRlVndEQU4yNHRJRDhmakE3WHJ0d3ZkL3VaV1lVN2ovVU54RVg5c2kydGN2UWVKZFdRS0ZtdU1EWExheFpUdGxsZ0VGS0ZvQVJlQUEKWmd3b1B2MTNSaURFQVBmTWJ2MTFhVFRFWnQyK1RqOHFSRzB3OUNoTHZnSDZjWHp0TmQ5YzEzTHR6MlhLMHJlOW5tTnZyNStpNzBJZQpvU2Q2ZlcwSlAvUG9pdksyWlJ1OXFvdzdPQjE2OGlSQ0h3Q21UVkdPN2dWSkVic01wMHNSQVZZVjc1SnhJd3pEZ2lCZjhkaTZ1M2ljCnBCZ1RrRElPNUh3akpjbjRBcXZ3ellWWEwydTk4MmRSWUF3bCs4Y1BLT2czYUdoR2h2SFZLaHJSVnh4WnNhVU85SlpYYXdVNms0K1QKRlVwbFF5aUdPWE8reUZoUEJDUEVBcWNYRE5iZXUwdjNCM0JQUjJMZXdnMTNXU090Z01JeXBObklYWXJWS2grM0N2SHBjYzJSTFJoKwpOcTd3ZE40dHV6ZnQzSmYxYVZaMlA2Ulk0WDR4NlJxcW9rbHZtUVdrTUxwbGtsVUJWUlkxaGFJNDk0TnpTUVFqeEFSbklCZzJ6T2ptCkFQZlVDNHM5MC9CS1JwWEZpcFZCNFFIUDRCVW1PWkRnc0QrUzhHbmRMN1orWmE1djlHRzg3c1JncDdpdGF0QmVnTHp2cjkxMjRaSUcKdlFDSC9pYlBXVGhSRjh6a3M5bEVpdExNalBtZVN6K3JKb0lSWW9JekVRd2JocHBmYm12UEt4Kzg3SnNaK2twaEd0UjVPSWtyODErNAozR29SRk5ZYS9KdnJzb2FhZG5lZU5SdDJwdytxMTFmeGgvRmR1Um40UVFNK0xEcmNvQWN2NEMwV2ptUFFkMkRCZFc2UVlhckcwSGF3Cmg0SmIvOC8rUS9oODFOM2RETktMMkdVNHc3NjJ4Lysva0pnWG1Eb2tsQWVKTFNkeFZHT2J6Q291ank1WStGZnErdllKM0xLbDlhYWYKQ2U0eGpDSko5azdwOCtLVU5iaHZJMUloUUFaV1prSDEySGpVSm5ONmJBRWVSQTFzRDY1VlNra0VJOFFDWnhUQlVBeExkQ1k4ZjNuOApwRmU0SHEwbmFSWFlhV2xWNXV1cUJBR09yMHIrTnFtY0twcjVYdnVocTdObFdHUTQyV0RLVnJpODRZSzFldCtoeEhNVVE3RTBLOGkyCkVFMloyQVpmUEFjMjJrSnhJcTFsTGV1dEhTYUNFV0tCTXhRTXJsNTQ0ZUU3WHdrbTRvRm1PR3h2MHNlZmFGb1orWlp5SFF5cGtCVmgKSm1TeFgvYy9TRTNmK3d2bGlVUEc0MWtrRVZJRzd1Wkh2SDN4Z1hBQlJBcDloQVJSMDBSTlJoa3Ewb3ZTRkVhamZhQUpQM29xRDNmdgpGSkhRL1hoaHgxZUtVYnF6d1pwYWM5aWw0bFNSdXVJZHNLak9Rb0JQSmw0alEyM2ZhaGZVWGxyKzJDK1RKODUrTHVyZ1J1R0xDV0JaCnFxZWx4dThGRlVJVXFMU201N2tPd1NLd3JBQlNFRFRPdnZDRzd0M0pRZWgrck5vMTcxQVRqbDhOTnh5WlBXbmxjVE5yZ3NBbEg0RUYKUkhYSDRZenlCNDc0N0VPOERsT055ODNlL052bHYwU2UyUGNxS0x6OGtxRVYrdWZhZWVLS2o4b21JSE1EZWljTGhTZjJhNnFHc2lXYQowaWhWVkNRMUpNbUt4aW9jVERldFB1UFdKWUVRSTl5ekl3OHYrNEtMUG9MQkxvQ21XaW0xMUdJUkJBdUVtdDhlTDdoY1VLUDJEcVZvCjlkcG03dnZzOW5lZkJhWVhVMnZmWEVpRloyd0Ura0RSUWdpd09EMUVyUkRjREVGeW93OFZLQlhKcHFtVW9nbm9HZXo3OFdnM2lXQ0UKcnNiZGF4cFlMN2RsTk5jNFlYT3RGUUxOV29LVkJaeWErVjgvR0dkSzRmbGFxcmZQNTArR3Nydms4cDhieElxY0EyeGYvbTV3UlhqUApCbTdFMXZRRHVQV2xNZWpEeTFFYVRVbUtvaW1zaG10d0FJWERtQmtua0ZKMWFqWE1KNElSdWhyTEh2NitTYUZoL1FRWW5MWDFSeXZJCnBvRE5aQTFSUW8vYmVwdTRhdGVKQUpOY1EvMUdwZXJoNk1oWjlNOVJiSEx1V0kvMDhWWW1yYVJQUkxEOXdmenZiSm9VQ2dSQlVXMWUKRGloUmo2aXlvc2dtbkNiU3NyRXhzOGlrL3Fib1VTSVlvY3V4NnVvZlFCWjg2NjVLVEx3RXh6QlpRUzB4czkweU00K2lhaElsbVlGQQppczhMdEMvRmNaek9Tei83Y2VmWnIyL2JNMEs5ZUhpLzBqOThGeDV1RnFjTVc2cWlIQkJra0JsTlE0WXhnZ0ljbmxGQ2FlZ3JhNktzCkdUcytzTlliUDFsRlVrUkNGK1R1QTNqcmg5ck5XWTJEczliZ0N1bUNqNVdjNy9NMWcwUm43eWFUcERLQlpONnY4bFJkQ2h4Sys4dm0Kc3pQcytzeUZTS2phQXlQZkdERlcraXB5ZHFocmQwZ1FGVmJoV0FqUmlwMVRmSnlpc0l4ZXFGMUJ5U0tLY3ZxRnVlN21jdElHSTNSRgoxajZjdGxjR2ErMjZzYlhjTlZ2ME9jQkN5SHhkVHlHQTFHSmxrMUEzNkVRZzJhL1dKZGZITzFYMzJYVW5UbG03RVQvNS9HVnhtemZ0CmlKeTljVW5tdGlhRlUxZ3NEZ3BZTXVOSHI5RUJpdzNqWkJUTXdrcFZGYi83WDFWRU1FSVhSRnoyOVFPN1EyQTkvazJCS0U0Yys3a2IKOTVuN21XRzJYaDQ1SmNCUXJFMlFVUkR6Mit2QjZ4UlZRUjZkWnJURWVFNUVmOXA5dGxOU05HRkpRL2lsaUt1QUdOaW1MaE56TjhwYwoxTFpmUGl5VXFCdUdJaG5YOG9iZGxMZHpsNWtpQTgyRUxnbi9VczJDRUs3VkJrODlDUGZRZUJGbWo0ZTNEWjFZVloxTW13Q2sydVErCkowQlM2MVBRNjlTak5wZHd5NWJXSlpOZXZBeTVVNjQvMG5hdmNuUURUM2x1N0ZtWkF1OUdULzVGYmtYSzViY25CQmJlUjJaeUVMb3MKQzk1dUZBUkxuQkV6Z2syV0s5NkY3TXloZzB4MTJLMmVOZlhKdEF0cTZsT1FiaTc2QUxodXhaZVZBV1NnQi93WHIwWG0yeTVJYm1ISwpHbU1sWlFzNUJ5WDFyb09KNzN1UVVmbzhMUU43YTNBN0NiMWlHeEdNMElWNXk3MWpTSitha3VNNDZVdTlVUytIbVAyNlhHK3FjN2xRCitLb0ZaSnFrVXFZQURQSWx1UjByTG4rMUlYUHdnVXFBaHNySVN1aFRTemJ6WmVPWnQwd3NyNmpqWlpQNXBYZnpTNkgvKzM0UXcxMFkKcDhIdUQrZUtSREJDbCtlRlZ6emNyWkU2Ti95U3d6bElNWlFvOXF5aDZ2REVEbXdZREVaNUlkU2ZzR3lBTVYrQkV5cTNwMVdtUVdWYQpaUm5TQytkLytOYXdiWC9zK2YvMHorVGNQNnZVV3lSQkVycit5WHhHV1RWdUl5NjB3YlVKVzhaQit6elIzdWdNcjc0bWdoRzZBUXVpCmkvbG16enRjVUl2YVFDaDhvU0JHQTJxSW1SS3NRYkJhaFByOXFSdGdBTUQyQkJqUXF4eitBNUJtM1BQQkh5dkRVNE9mdldoNE9nNXAKL01FdDA5RnprYUE1SER1dmVMUWd2emppVW1kNW9VRXVYUEZTczdFY2tRaEc2SDVrenh1NjN3YVNScXYxeWFncGhnMXowYWo1NUt5dwo3MDhGN2VoaExKa2JQc3M1bUxrZEJUSUlEVzBFdXYvZzFUMmFlbFEvRFVtMmtVc2ZTQlRHVFFINDlrcEJFeUIzODMyYjg3N1VPKzNQCmlCa2Z6VmsyN2huak5lbW1KM1EvYWhaTDQ1T1lrTWo5bUVLVjExSjhqdzJqYXYwT0pVUlRQbWRjaUQvZUJNTzlrQkNYc21icEYvZWsKOUt1RlZhdTNiYU9ETzhTQ2dldXZYNmJkVnovaW8rWHJ0MzBJTUx2Z09RbWxlbFU1aTV0N2YzQTZVK3crRnZmVzI2ZVhqL2U5WGYyNwpjSFZoRXNFSTNaTHN6TnZrZXJ4bFYyQ3d0emxrd3ZsYStuSEJIOWRuZjNVR3JFQUJES3p3bzM3bDdKc3VYOC8zQU9kMlBVbU03c0MvCmZiRW5zbWozcExTd2Zhc0xjcmZUbzNhTXVtRC9qbG1iZzVzQWJ2bW5jWm9JUnVpbVpHZitSZVVQSU1WUSs2dmVnUXRvZ093b0d4dmsKbW4vWU9Samd3TXBwTHNPd3ovRERsN1kvYVNzS3VWR2I0MExlbnBXVVNmM2k5Mmt2K3p0WkZJOE1ROVpGaVRjaEg3bnBrRDgzQnRCNgo0ZjFlZ0FoRzZNYndHWG9ZczBFZkNLb3JZV3dBNUliK0d1LzBlS3VlTnE0WU5ncEFueWFQQzczaGJTaDV2SDJtSjJkcCtzRkpCNDlaCjlQbUZIWUgxR3JYdDRuRFRMSGNNeWdrZDRBUERyL3d0K2hSN21naEc2TmJ3R2EvVkRoS1Bvb2dWcks4YkxrSGpmVmVPN0pkOFlQRDYKYVRlMlhMT3llTWRLY1ZTcHkyM2pHa1BqMFlrZDdpU2Zab1pRcDM0aGNzVkN1Q2RlajJGMkdHNEZZOWRsblVVM2gydWFFY0VJM1p2cwphWk1DY0NqVjZuVWM2Z1hnZlJOZ3o2enhKcWowWFZVRWdOY2MreW5udGYwRWNQUTVJamcrL1lQcWM4ZzdlcHVob1hxbjFMN2QxUTRjCnRCemJMOFFoek81K1lVNTRWM09EK2ZlRlg1QmVSRUwzcG1hang1dnNzQW1NMlFSSW1YOGxRZEs4VVhzUzRoUGZTMGQrL2FFY0pJWXAKMzNLeGcvWTlhSzBNMWV5cC9PSGdsMXMzYi81KzlQQnQraHplRHJIbk9kK3RQdlRJMHBBdCs0QXo4MjA0SFBYZW9ydGtqbUh3V0RPSgpZSVJ1RDMvVjMrTGNEbEdLZC9QbWhTdUh3ZUxuaGg4WWFkUCtyNzVEaE4vZWFLVlI2MG4wNW96b0IrWW1BUFlKZkg2S3BYckVBdnFPCkJhQ1BMZXY3YWhxSWVEbyszc2Z5eWRXbE9kYlMvT2sxOEtsalZjdmJtUHpOZWdzTVF3UWpuQWZ3UzF3QURsLzhqNS9BU29CaHkxNFAKOUxUWXkrOXZ4Ty9oanNBUWNNNFEwQXBjcDRIamhNd3FsdVZlZ0VMR0JFNUxaV0pKWVltSEdibWRWb042MzN5SXd5VzduVjdiU1BIMwp4Z1F0NUZuVUY0UDhuWGc5cUFFUmpIQSt3RThkT3RITlh3dFhyc1JIdzJEWmE4RlVhS2lOdEpUc2ZoU2pRaHpEc29xWEI5dEF1Q0R4CnFFbjZBaTlyZVdJTmxpZS9ORDlQQ0w2RHhRbHhOSURLbU9tQUVLODlOQWZmbmgvZHZ3SFBsR3h0UFNDQ0VjNFBzcSsxVFR3UUVRb3AKdHZJOWtXdUEydmxpSXc1TCtneERPNENibzJ4dXNQRUFBMkhuSHpteFp5K1ExMDJIZDBvaHYyRE9rK1hMbTRDeXF5RUFpMHJqUVRMNwpuMTQzUGw5ckQ4Y3o2a1BSbXlJUXdRam5DZnhWTi9SeHp0MFRQaG9HTUhMNDBhR0hnN3ZoVGZEbndnNS9lTXpZamlPWlNkOVRnc2RMCk03RnFNQUp2bzFtNGE2Y3BBS3dKR0dCbGhXbkU2OEljbCtobUZlU0h6SG9zZy9uM3QrekdwME42RVFubkNXTDF2dG9SRjYwWWxuUU0KSHlVQjFPMkszOEFLWG5tazJUTm1PVDNxaDdFTlpnbEFBc2JPQnJpQXBnWmxOV2hxVU1XNndKSHZENGVhcVAxdXR3WWlqd0tYS0NpcwpSdUZwSG1wL3ZmTndrUHJhaVRzS1Z1ZmZ0S3NrYWprbWhnaEdPRjhRYStoUFQ5eVptOXlFRkJzMnFtNVV5cldxZlVCRDlSdVgxVTkyCkNoVXpidkYvbjltUVhZVXVsQ1NRN0NIZ1RUUkxtZndtRUZsR3JtZUNrbDltZ0dPOElpZURxcGdWZ1FISTFLdE5GZVMva0xYK3k2OGMKUHk2WDJ2dEVCQ09jUDlRMDczcHpUMEV1UDlZRExwZjJtVXMyQlFiM0dPQWU1dW1SSmxWc0MvYkpIL3ZhYmJZR2ZkTktITXNreVN4cQpPT09qcFdiQkw0b3l4WUN6MFNaQlVKRVptWklZQ00zU004UkJQYlZTNExSUWlHbno1VEJFTU1KNWhDaEM2dnBMSGNsSkIxelZHMkgzCkxuZi9abUVrKzRoWmRidVdaZmcyckdWdVRtU0cyL3JoTUlZSW1XaS9pZWNVazZES0hJdEEvckNDeVJaaWtUWWlLL1BLM3g3RzErVXcKLzNGVnRwOWRINFowY2hET04vaU10QnYyUFEzRjFYaUdiOSt4US9pVkh0L2YvVDBzZHorRVhISEFHT0ZsRnVwdFkxSWRydjVIbGxlQQpHQXhxTFlVNHhIZ1BPTjE2djJNUGNjNlFHL1NUQmVPZWF1eW9WQWNSakhEK3dYdWZ2ZWlxK09KcVBJbis2NUczcHNwN1AwZHRLYlhICmJmb01ETWVxWitUdmNMZmhBOS9Dd0tXQkpxVE9qUDBYN01jM2xrSnl5TVBqV2NEMkIyazlPOFJUT0FyNmwzOHRkQ0FZeVJBSjV4OWUKdUQrN2VNQ2REQWRUMGRIMG5NZXZITEhLVERIYUs0TmhSRHFBVDU1YkpNbEZRYjRVTGcxZ2MzTC9jeS8wRlk0bDhhWUo5K2F2eGZzVwppVFpoNDZYSElHa0lNaXhIV1VKMXVBMFlpV0NFODVXUFYrL3IvenBIY3g1SVdiM1JzaUh1SHlydlV6VjcwUFJuYmhFWEJITW9GSGYzCnVrc1h1T1AvKzVVeERseHQxT0hiOVBqRG9nMEN1TExVelVzbjc0Y0wzaWpldXFwZ1RERkhSUTh1UjBNNk9Ram5LeDlzemI2dTV5SEoKY1d2SkFHM0VvVDcyNUwyQ3hsTWVPYlN0ekVNRHhTaFR4OXIrWWI1MmcyVzhhbDFkalRoVURRVnJXRTFqV2NySDJIc3RyYXI2THJmcQpDZ1lHYlZQanZDZDNJT29Rd1Fqbkwzcy8yR1ppRmRmMjBmRCtRNkp0b1NTempBZWZGNEZSZmZ6MUE4M1NXdGVKUjBzR0g5L3d6R3JqCmpsVXlHMkpSTXNtS25rUDR1S3BndmVXeXFqMm1VT3NuYlFzUmpIQmVJNHJpM3EzTHJhTUgxWlEyY3d4TjJVMTJNMk15QVpqRTd6LzcKOHB1YkxuNGpTL2pFUDNYaGZmcUk4dnhWbEdLaEtLQXBPWndUMm5iMUh2Z1BnV0gwd2JOVFFOcGdCQUt1a0pNR05RdUFjbnBWNkNGNgpuZmljSHN3ZzU2QytacGw2Z2w2MmFkRk1EMGRUdUQybVVxcFJvOTR1OEZKamdqSDE5MVFRd1FnRVRIWmFPc0FBOS8zMkFBTnFFQTlyCmhUamFKRUF1MWd0QmhXNkRKYUlLbEUwR0drSmFXREN3K3luR3JGSEJVd3NtRXNFSUJJUHNUTmllbHBrQU5iYjdqYXFIZGhpMUVTS0wKbVVVSzhFSXdqUStCNW8wUHFrSmthSm1oV0ZxanhGTlV5QkdCNGtnYmpFQXdxTmxLdzZCU2FuVHZid3ZLZzJEUHJ2SlpEK2t6ZjNVVQppZ05LQTE1Z1ZLOFR4U3VGa2hWV1ZCVFZqUHdDU2hiYW15UXFsSVZzd0VjZ1JNRm5vSWRNZ0RSY3lEN0JUYlVzME5TakVRQ05mWEdEClZjOEhWUkZ2eDB6SHlhQjRlUlRWb290UTRiSWRlc0FqRVl4QWFFR3NxVW1GMnRyZVRZTHdkWEJRcG56WjhyQWZXQmdjcWVKVTVKVlQKUXFacFFPTkNWUlN0MHFDSm9vVmhvem9TOGVWV0NqU2FJb0lSQ05FZ3c3QmkwRHVZY0xTNTk1anRUYm9oQ2dXVUdkc0VtaWFhRmRyQwpXaVdOQnNwa040T3FlbEVvODRPdHhURGRMeFMrYU5aTVVrUUNvUjI4bC9kbVErYm9KdEI2LzBqTng3V25SQXB3WWtoYlFQVkFYSWlYClZWVjIrRFE5ckZHYXNXR0UyUlpPRWcyL2tIOHNUUWFhQ1lUMmlPaWpwbG5LREFMbEE4Z3RRSGtpaW1BY2NpeE9WVDAyeVNtcGdBdHoKQklNeXJTZ2FiZmhsTTd1ZE9JYmgvc1NJWDBqSnRwK2FRQ0RvZUxja29pUVBLSXJTRmlUZ1RhQ1JNalNva2cxQUFGYlRWUEFJNkgzUQpGSW0zNGJjRHRzU1dtN2x3L0FJdmlXQUV3cW41SUNXRjBsRFllbnJNbUt0MitnQTF3VUQxbWdBa3UwWDJpcHdVcENoUUZETnFsUVgxCjVwZXFTT2dadTBpeHFNbkdJZ3U5TnRJR0l4QTZZT2EvaTFzUDdxZFJVTUpscHdCTUt1MnhtZlFOd0RoQXB4MnlXNDloZkNCbzl4c2QKOVBpa2l0cG1LU1NDRVFnZDBJLzlzR1RueGpIengxUTdvVHA3S3dwS29FL3hwVm1WQWFzZjZZWHNRYkZLcFRrZnJvMGpPalRhckxLcwp6T0xhMnJRS29vM001Q0FRT3FKczB2ZEJLYmdkTms2RStSTzlXZnRWYU5hcml2bzRKRnFJWmxrODhneTBBeDF4dW5tY3dMcVprTm1rCjBaUkR4Z3VuVFJra1JTUVFPbVRhZXhwdVZMbWdlQTdjQVcrQmtRb0NDM0xBbU0yaDRYaUdaMng0alhmNE9pZEtESjJxN0JCb2RJNGYKU0FRakVEcWswUFYzbFBsWmNDS0lSY3JxKzc1K09nQzJRQytmaXJlSXhkc3lxMWcwdkJrWUdPVzJnZmVhUWc1WlFkSUZpR0FFUXNmdwpONnZQNHptRlNLRTdkZzA5TGljc0NyOFI2SVZTUlhBSXdPTEdGZ3BrNFJDRzM4bzVDSkJlVWRlcldTUHJ3UWlFenJtK3ArL29UaEF1CjdSdDM3RU4wdEJhTVllVkFISDVralhYTk9GdHNFVXozQzBNcnpScVpLa1Vnbkk0aUdUVFRZdVAxN0lXOG9SaGVEWWIxQ2krMFBOa3YKUlBvbW5naEdJSndwdkplZllQL2NDR0VzTG84WVdjYU1Ub1VGQytTTUtBbWYxQ0hkOUFUQ21TS0NXRGFFRHVnVHA5U1dXWVpla1RIaApNam1ZOW42Uk5oaUI4Tk9ZL0VXNHd6Q2c5eGkyeEM1OHh1Wm9lUjJHQ0VZZy9EU21yQlk5aGxRQmFLTVhwSnhjMzVla2lBVENUMlB2CjVDdDNNUHJjS0ZOTGFvaUNGNU1wbnFLeUZJbGdCTUpQcGlqdGVSTm9YajE4b1REbUJQQWszY2FIbGtOckQySVlJaGlCOE5PWld6R3MKb3NRWDRDazhTeXJuWU9GQWVSMER2cXVYbm1RWUVZeEFPQ3ZteWhsSGNBTkxCdk9xb0FOOG15QUhUamFNQ0VZZ25DVnpMU3YwWGtNZgpiQXFmS1JqekV0MjJvK04vQUNWZGNTMmhVaEtKQUFBQUFFbEZUa1N1UW1DQw" }]; w.__toStr = {}.toString; null == ArrayBuffer.prototype.slice && (ArrayBuffer.prototype.slice = lr.sliceImpl); var Zr = new Uint32Array(256); D.__alpha16 = Zr; for (var jj = 0; 256 > jj;) { var pk = jj++; D.__alpha16[pk] = Math.ceil(257.00392156862745 * pk) } Zr = new Uint8Array(511); D.__clamp = Zr; for (jj = 0; 255 > jj;) pk = jj++, D.__clamp[pk] = pk; for (jj = 255; 511 > jj;) pk = jj++, D.__clamp[pk] = 255; bh.available = !1; bh.enabled = !1; Qa.level = 0; "undefined" == typeof console && (console = {}); null == console.log && (console.log = function () { }); B.hitTestCanvas = Zg.get_supported() ? window.document.createElement("canvas") : null; B.hitTestContext = Zg.get_supported() ? B.hitTestCanvas.getContext("2d") : null; Ce.maxTouchPoints = 2; Ce.supportedGestures = null; Ce.supportsGestureEvents = !1; Ce.inputMode = 2; Aa.reloadListeners = []; Eb.__meta__ = {statics: {toNullVector: {SuppressWarnings: ["checkstyle:Dynamic"]}}}; Ga.__meta__ = { fields: { __cairo: {SuppressWarnings: ["checkstyle:Dynamic"]}, addEventListener: {SuppressWarnings: ["checkstyle:Dynamic"]}, removeEventListener: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Ga.__broadcastEvents = new xa; Ga.__instanceCount = 0; Ga.__tempStack = new yd(function () { return Eb.toObjectVector(null) }, function (a) { a.set_length(0) }); ua.logicalWidth = 0; ua.logicalHeight = 0; ua.windowWidth = 0; ua.windowHeight = 0; ua.leftInset = 0; ua.topInset = 0; ua.rightInset = 0; ua.bottomInset = 0; S.Element = 0; S.PCData = 1; S.CData = 2; S.Comment = 3; S.DocType = 4; S.ProcessingInstruction = 5; S.Document = 6; M.pool = []; M.pooli = 0; Xb.VERTEX = 0; Xb.FACE = 1; N.b2_nullFeature = 255; N.s_incidentEdge = N.makeClipPointVector(); N.s_clipPoints1 = N.makeClipPointVector(); N.s_clipPoints2 = N.makeClipPointVector(); N.s_edgeAO = []; N.s_edgeBO = []; N.s_localTangent = new M; N.s_localNormal = new M; N.s_planePoint = new M; N.s_normal = new M; N.s_tangent = new M; N.s_tangent2 = new M; N.s_v11 = new M; N.s_v12 = new M; N.b2CollidePolyTempVec = new M; Te.s_simplex = new ma; Te.s_saveA = []; Te.s_saveB = []; qj.currentID = 0; nh.e_circles = 1; nh.e_faceA = 2; nh.e_faceB = 4; mf.e_points = 1; mf.e_faceA = 2; mf.e_faceB = 4; Ob.b2_toiCalls = 0; Ob.b2_toiIters = 0; Ob.b2_toiMaxIters = 0; Ob.b2_toiRootIters = 0; Ob.b2_toiMaxRootIters = 0; Ob.s_cache = function (a) { a = new wk; a.useCache = !0; return a }(this); Ob.s_distanceInput = new ye; Ob.s_xfA = new af; Ob.s_xfB = new af; Ob.s_fcn = new mf; Ob.s_distanceOutput = new ze; $b.initialized = !1; $b.distanceInput = new ye; $b.proxyA = new Pg; $b.proxyB = new Pg; $b.simplexCache = new wk; $b.distanceOutput = new ze; $b.e_unknownShape = -1; $b.e_circleShape = 0; $b.e_polygonShape = 1; $b.e_edgeShape = 2; $b.e_shapeTypeCount = 3; $b.e_hitCollide = 1; $b.e_missCollide = 0; $b.e_startsInsideCollide = -1; Jb.s_mat = new Ec; Y.VERSION = "2.1alpha"; Y.USHRT_MAX = 65535; Y.b2_pi = Math.PI; Y.b2_maxManifoldPoints = 2; Y.b2_aabbExtension = .1; Y.b2_aabbMultiplier = 2; Y.b2_linearSlop = .005; Y.b2_polygonRadius = 2 * Y.b2_linearSlop; Y.b2_angularSlop = .011111111111111112 * Y.b2_pi; Y.b2_toiSlop = 8 * Y.b2_linearSlop; Y.b2_maxTOIContactsPerIsland = 32; Y.b2_maxTOIJointsPerIsland = 32; Y.b2_velocityThreshold = 1; Y.b2_maxLinearCorrection = .2; Y.b2_maxAngularCorrection = .044444444444444446 * Y.b2_pi; Y.b2_maxTranslation = 2; Y.b2_maxTranslationSquared = Y.b2_maxTranslation * Y.b2_maxTranslation; Y.b2_maxRotation = .5 * Y.b2_pi; Y.b2_maxRotationSquared = Y.b2_maxRotation * Y.b2_maxRotation; Y.b2_contactBaumgarte = .2; Y.b2_timeToSleep = .5; Y.b2_linearSleepTolerance = .01; Y.b2_angularSleepTolerance = .011111111111111112 * Y.b2_pi; O.b2Vec2_zero = new M(0, 0); O.b2Mat22_identity = Ec.fromVV(new M(1, 0), new M(0, 1)); O.b2Transform_identity = new af(O.b2Vec2_zero, O.b2Mat22_identity); pa.s_xf1 = new af; pa.e_islandFlag = 1; pa.e_awakeFlag = 2; pa.e_allowSleepFlag = 4; pa.e_bulletFlag = 8; pa.e_fixedRotationFlag = 16; pa.e_activeFlag = 32; pa.e_ignoreGravityFlag = 128; pa.e_alwaysActiveFlag = 256; pa.e_pausedFlag = 512; pa.b2_staticBody = 0; pa.b2_kinematicBody = 1; pa.b2_dynamicBody = 2; tj.b2_defaultFilter = new tj; Qg.KEY_LOCK = 0; Qg.b2_defaultListener = new Qg; yk.s_evalCP = new vf; Le.e_shapeBit = 1; Le.e_jointBit = 2; Le.e_aabbBit = 4; Le.e_pairBit = 8; Le.e_centerOfMassBit = 16; Le.e_controllerBit = 32; Kf.tempAABB1 = new fa; Kf.tempAABB2 = new fa; Lh.s_impulse = new En; ic.s_timestep2 = new vj; ic.s_xf = new af; ic.s_backupA = new oh; ic.s_backupB = new oh; ic.s_timestep = new vj; ic.s_queue = []; ic.s_jointColor = new xk(.5, .8, .8); ic.m_warmStarting = !0; ic.m_continuousPhysics = !1; ic.e_newFixture = 1; ic.e_locked = 2; cb.e_sensorFlag = 1; cb.e_continuousFlag = 2; cb.e_islandFlag = 4; cb.e_toiFlag = 8; cb.e_touchingFlag = 16; cb.e_enabledFlag = 32; cb.e_filterFlag = 64; cb.s_input = new Dn; wj.circlePointA = new M; wj.circlePointB = new M; Me.staticFix = Y.b2_maxManifoldPoints; Me.s_worldManifold = new rj; Me.s_psm = new wj; Ta.m_xf = new af; Ta.q = new M; Ta.p = new M; Ta.e = new M; Ta.temp1 = new M; Ta.temp2 = new M; Ta.m_centroidB = new M; Ta.mat = new Ec; F.m_xf = new af; F.temp = new M; F.m_centroidB = new M; F.m_lowerLimit = new M; F.m_upperLimit = new M; F.m_polygonB = new In; F.edgeAxis = new Dk; F.polygonAxis = new Dk; F.perp = new M; F.n = new M; F.rf = new Jn; F.mat = new Ec; F.temp1 = new M; F.temp2 = new M; F.ie = [new sh, new sh]; F.clipPoints1 = [new sh, new sh]; F.clipPoints2 = [new sh, new sh]; F.edge0 = new M; F.edge1 = new M; F.edge2 = new M; F.m_normal = new M; F.m_normal0 = new M; F.m_normal1 = new M; F.m_normal2 = new M; Yb.e_unknownJoint = 0; Yb.e_revoluteJoint = 1; Yb.e_prismaticJoint = 2; Yb.e_distanceJoint = 3; Yb.e_pulleyJoint = 4; Yb.e_mouseJoint = 5; Yb.e_gearJoint = 6; Yb.e_lineJoint = 7; Yb.e_weldJoint = 8; Yb.e_frictionJoint = 9; Yb.e_inactiveLimit = 0; Yb.e_atLowerLimit = 1; Yb.e_atUpperLimit = 2; Yb.e_equalLimits = 3; $c.CENTER = "center"; yg.b2_minPulleyLength = 2; eg.tImpulse = new M; Tg.FPS_ONLY = !1; Tg.GRAPH_WIDTH = 70; Tg.XPOS = 69; Tg.GRAPH_HEIGHT = 50; Tg.TEXT_HEIGHT = 50; zg.bg = 51; zg.fps = 16776960; zg.ms = 65280; zg.mem = 65535; zg.memmax = 16711792; zg.bgCSS = "#000033"; zg.msCSS = "#00ff00"; zg.fpsCSS = "#ffff00"; zg.memCSS = "#00ffff"; zg.memmaxCSS = "#ff0070"; Ag.androidAdmobAppID = ""; Ag.whirlID = ""; Ag.whirlID1 = ""; Ag.iosAdmobAppID = ""; Ag.ioswhirlID = ""; Ag.ioswhirlID1 = ""; Ag.cpmstarID = ""; Ag.newgroundsID = ""; Ag.newgroundsKey = ""; Ag.androidPublicKey = ""; aa.defines = function (a) { a = new xa; a.h.web = "1"; a.h.verbose = "1"; a.h.utf16 = "1"; a.h.usingPoki = "1"; a.h.use_tilemap = "1"; a.h.tweenxcore = "1.0.4"; a.h["true"] = "1"; a.h.tools = "7.9.1"; a.h["target.utf16"] = "true"; a.h["target.unicode"] = "true"; a.h["target.name"] = "js"; a.h.stencyl = "4.1.0"; a.h["source-header"] = "Generated by Haxe 4.2.1+bf9ff69"; a.h.polygonal_ds = "2.1.1"; a.h["polygonal-ds"] = "2.1.1"; a.h.openfl_html5 = "1"; a.h.openfl_enable_handle_error = "1"; a.h["openfl-html5"] = "1"; a.h["openfl-enable-handle-error"] = "1"; a.h.openfl = "9.1.0"; a.h.no_traces = "1"; a.h.no_compilation = "1"; a.h["no-compilation"] = "1"; a.h.mbs = "0.2.1"; a.h.lime_webgl = "1"; a.h.lime_html5 = "1"; a.h.lime_howlerjs = "1"; a.h.lime_dom = "1"; a.h.lime_canvas = "1"; a.h["lime-webgl"] = "1"; a.h["lime-html5"] = "1"; a.h["lime-howlerjs"] = "1"; a.h["lime-dom"] = "1"; a.h["lime-canvas"] = "1"; a.h.lime = "7.9.1"; a.h.js_es5 = "1"; a.h.js_es = "5"; a.h["js-es5"] = "1"; a.h.js = "1"; a.h.html5 = "1"; a.h.hscript = "2.4.0"; a.h.howlerjs = "1"; a.h.haxe_ver = "4.201"; a.h.haxe4 = "1"; a.h.haxe3 = "1"; a.h.haxe = "4.2.1"; a.h.debug_console = "0.0.0"; a.h["debug-console"] = "0.0.0"; a.h.debug = "1"; a.h.dce = "std"; a.h.cloner = "1.0.0"; a.h.box2d = "0.0.0"; a.h.actuate_manual_update = "1"; a.h.actuate_manual_time = "1"; return a }(this); kd.TYPE_ADS = 1; kd.TYPE_PURCHASES = 2; kd.TYPE_GAMECENTER = 3; kd.TYPE_KEYBOARD = 4; h.__meta__ = {fields: {getLayer: {deprecated: ["Use getLayerById or getLayerByName"]}}}; h.DOODAD = ""; h.INTERNAL_SHIFT = "iSHIFT"; h.INTERNAL_CTRL = "iCTRL"; h.INTERNAL_COMMAND = "iCOMMAND"; h.NO_PHYSICS = !1; h.DEBUG_DRAW = !1; h.IMG_BASE = ""; h.SCALE = 1; h.checkedWideScreen = !1; h.isStandardIOS = !1; h.isExtendedIOS = !1; h.isIPhone6 = !1; h.isIPhone6Plus = !1; h.isIPhoneX = !1; h.isIPhoneXMax = !1; h.isIPhoneXR = !1; h.isTabletIOS = !1; h.landscape = !1; h.limitCameraToScene = !0; h.paused = !1; h.started = !1; h.inFocus = !0; h.events = new kd; h.ITERATIONS = 3; h.physicsScale = 10; h.preservePadding = !1; h.paddingLeft = 0; h.paddingRight = 0; h.paddingTop = 0; h.paddingBottom = 0; h.STEP_SIZE = 10; h.MS_PER_SEC = 1E3; h.elapsedTime = 0; h.timeScale = 1; h.totalElapsedTime = 0; h.debug = !1; L.mouseX = 0; L.mouseY = 0; L.mouseWheelDelta = 0; L.multipleGamepadsEnabled = !1; L._enabled = !1; L._key = []; L._controlsToReset = []; L._controlMap = new xa; L._keyInput = new Rn(new eb, function (a) { return a.keys }); Ma.ANY = -1; Ma.LEFT = 37; Ma.UP = 38; Ma.RIGHT = 39; Ma.DOWN = 40; Ma.ENTER = 13; Ma.CONTROL = 17; Ma.COMMAND = 15; Ma.SPACE = 32; Ma.SHIFT = 16; Ma.BACKSPACE = 8; Ma.CAPS_LOCK = 20; Ma.DELETE = 46; Ma.END = 35; Ma.ESCAPE = 27; Ma.HOME = 36; Ma.INSERT = 45; Ma.TAB = 9; Ma.PAGE_DOWN = 34; Ma.PAGE_UP = 33; Ma.LEFT_SQUARE_BRACKET = 219; Ma.RIGHT_SQUARE_BRACKET = 221; Ma.A = 97; Ma.B = 98; Ma.C = 99; Ma.D = 100; Ma.E = 101; Ma.F = 102; Ma.G = 103; Ma.H = 104; Ma.I = 105; Ma.J = 106; Ma.K = 107; Ma.L = 108; Ma.M = 109; Ma.N = 110; Ma.O = 111; Ma.P = 112; Ma.Q = 113; Ma.R = 114; Ma.S = 115; Ma.T = 116; Ma.U = 117; Ma.V = 118; Ma.W = 119; Ma.X = 120; Ma.Y = 121; Ma.Z = 122; Ma.F1 = 112; Ma.F2 = 113; Ma.F3 = 114; Ma.F4 = 115; Ma.F5 = 116; Ma.F6 = 117; Ma.F7 = 118; Ma.F8 = 119; Ma.F9 = 120; Ma.F10 = 121; Ma.F11 = 122; Ma.F12 = 123; Ma.F13 = 124; Ma.F14 = 125; Ma.F15 = 126; Ma.DIGIT_0 = 48; Ma.DIGIT_1 = 49; Ma.DIGIT_2 = 50; Ma.DIGIT_3 = 51; Ma.DIGIT_4 = 52; Ma.DIGIT_5 = 53; Ma.DIGIT_6 = 54; Ma.DIGIT_7 = 55; Ma.DIGIT_8 = 56; Ma.DIGIT_9 = 57; Ma.NUMPAD_0 = 96; Ma.NUMPAD_1 = 97; Ma.NUMPAD_2 = 98; Ma.NUMPAD_3 = 99; Ma.NUMPAD_4 = 100; Ma.NUMPAD_5 = 101; Ma.NUMPAD_6 = 102; Ma.NUMPAD_7 = 103; Ma.NUMPAD_8 = 104; Ma.NUMPAD_9 = 105; Ma.NUMPAD_ADD = 107; Ma.NUMPAD_DECIMAL = 110; Ma.NUMPAD_DIVIDE = 111; Ma.NUMPAD_ENTER = 108; Ma.NUMPAD_MULTIPLY = 106; Ma.NUMPAD_SUBTRACT = 109; Ma.keyboardNameMap = function (a) { a = new xa; a.h.NUMBER_0 = 48; a.h.NUMBER_1 = 49; a.h.NUMBER_2 = 50; a.h.NUMBER_3 = 51; a.h.NUMBER_4 = 52; a.h.NUMBER_5 = 53; a.h.NUMBER_6 = 54; a.h.NUMBER_7 = 55; a.h.NUMBER_8 = 56; a.h.NUMBER_9 = 57; a.h.A = 65; a.h.B = 66; a.h.C = 67; a.h.D = 68; a.h.E = 69; a.h.F = 70; a.h.G = 71; a.h.H = 72; a.h.I = 73; a.h.J = 74; a.h.K = 75; a.h.L = 76; a.h.M = 77; a.h.N = 78; a.h.O = 79; a.h.P = 80; a.h.Q = 81; a.h.R = 82; a.h.S = 83; a.h.T = 84; a.h.U = 85; a.h.V = 86; a.h.W = 87; a.h.X = 88; a.h.Y = 89; a.h.Z = 90; a.h.NUMPAD_0 = 96; a.h.NUMPAD_1 = 97; a.h.NUMPAD_2 = 98; a.h.NUMPAD_3 = 99; a.h.NUMPAD_4 = 100; a.h.NUMPAD_5 = 101; a.h.NUMPAD_6 = 102; a.h.NUMPAD_7 = 103; a.h.NUMPAD_8 = 104; a.h.NUMPAD_9 = 105; a.h.NUMPAD_MULTIPLY = 106; a.h.NUMPAD_ADD = 107; a.h.NUMPAD_ENTER = 108; a.h.NUMPAD_SUBTRACT = 109; a.h.NUMPAD_DECIMAL = 110; a.h.NUMPAD_DIVIDE = 111; a.h.F1 = 112; a.h.F2 = 113; a.h.F3 = 114; a.h.F4 = 115; a.h.F5 = 116; a.h.F6 = 117; a.h.F7 = 118; a.h.F8 = 119; a.h.F9 = 120; a.h.F10 = 121; a.h.F11 = 122; a.h.F12 = 123; a.h.F13 = 124; a.h.F14 = 125; a.h.F15 = 126; a.h.BACKSPACE = 8; a.h.TAB = 9; a.h.ALTERNATE = 18; a.h.ENTER = 13; a.h.COMMAND = 15; a.h.SHIFT = 16; a.h.CONTROL = 17; a.h.BREAK = 19; a.h.CAPS_LOCK = 20; a.h.NUMPAD = 21; a.h.ESCAPE = 27; a.h.SPACE = 32; a.h.PAGE_UP = 33; a.h.PAGE_DOWN = 34; a.h.END = 35; a.h.HOME = 36; a.h.LEFT = 37; a.h.RIGHT = 39; a.h.UP = 38; a.h.DOWN = 40; a.h.INSERT = 45; a.h.DELETE = 46; a.h.NUMLOCK = 144; a.h.SEMICOLON = 186; a.h.EQUAL = 187; a.h.COMMA = 188; a.h.MINUS = 189; a.h.PERIOD = 190; a.h.SLASH = 191; a.h.BACKQUOTE = 192; a.h.LEFTBRACKET = 219; a.h.BACKSLASH = 220; a.h.RIGHTBRACKET = 221; a.h.QUOTE = 222; return a }(this); na.__pool = new yd(function () { return new na }, function (a) { a.setTo(0, 0) }); ba.__pool = new yd(function () { return new ba }, function (a) { a.setTo(0, 0, 0, 0) }); f.FRONT = 0; f.MIDDLE = 1; f.BACK = 2; f.CHANNELS = 32; f.mpx = 0; f.mpy = 0; f.mrx = 0; f.mry = 0; f.dummyVec = new M; f.imageApiAutoscale = !0; f.dummyRect = new ba(0, 0, 1, 1); f.dummyPoint = new na(0, 0); f.BASE_64_ENCODINGS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; f.BASE_64_PADDING = "="; vh.fieldMaps = new xa; Xc.AD_USER_OPEN = 100; Xc.AD_USER_CLOSE = 101; Xc.AD_LOADED = 102; Xc.AD_FAILED = 103; Xc.AD_CLICKED = 104; Xc.FULL_AD_USER_OPEN = 105; Xc.FULL_AD_USER_CLOSE = 106; Xc.FULL_AD_LOADED = 107; Xc.FULL_AD_FAILED = 108; Xc.FULL_AD_CLICKED = 109; Xc.PURCHASE_READY = 200; Xc.PURCHASE_SUCCESS = 201; Xc.PURCHASE_FAIL = 202; Xc.PURCHASE_RESTORE = 203; Xc.PURCHASE_CANCEL = 204; Xc.PURCHASE_PRODUCTS_VERIFIED = 205; Xc.PURCHASE_PRODUCT_VALIDATED = 206; Xc.GAME_CENTER_READY = 300; Xc.GAME_CENTER_SCORE = 301; Xc.GAME_CENTER_ACHIEVEMENT = 302; Xc.GAME_CENTER_ACHIEVEMENT_RESET = 303; Xc.GAME_CENTER_READY_FAIL = 304; Xc.GAME_CENTER_SCORE_FAIL = 305; Xc.GAME_CENTER_ACHIEVEMENT_FAIL = 306; Xc.GAME_CENTER_ACHIEVEMENT_RESET_FAIL = 307; Xc.KEYBOARD_EVENT = 400; Xc.KEYBOARD_DONE = 401; Xc.KEYBOARD_SHOW = 402; Xc.KEYBOARD_HIDE = 403; vb.TOUCH_POINT = 1; vb.GESTURE = 2; vb.GESTURE_CAPTURE = 3; vb.PAN_X = 1; vb.PAN_Y = 2; vb.PAN_XY = 3; vb.READY = 0; vb.BEGIN = 1; vb.TWO_FINGER_MOVE = 2; vb.MOVE = 4; vb.R2D = 180 / Math.PI; vb.SWIPE_SCROLL_TIME = 2; vb.SWIPE_SAMPLE_TIME = .2; vb.VELOCITY_RATIO = .25; vb.touchEvents = "touchBegin touchEnd touchMove touchOver touchOut touchRollOver touchRollOut touchTap".split(" "); vb.mouseEvents = "mouseDown mouseUp mouseMove mouseOver mouseOut rollOver rollOut click".split(" "); vb.geTouchEvents = ["touchBegin", "touchEnd", "touchMove", "touchOut"]; vb.geMouseEvents = ["mouseDown", "mouseUp", "mouseMove", "mouseOut"]; vb.initialized = !1; vb.moveToleSqr = 1; vb.MAP = "mouseDown rox_touch_begin mouseUp rox_touch_end mouseMove rox_touch_move mouseOver rox_touch_over mouseOut rox_touch_out rollOver rox_touch_roll_over rollOut rox_touch_roll_in click rox_touch_tap touchBegin rox_touch_begin touchEnd rox_touch_end touchMove rox_touch_move touchOver rox_touch_over touchOut rox_touch_out touchRollOver rox_touch_roll_over touchRollOut rox_touch_roll_in touchTap rox_touch_tap".split(" "); vb.typeMap = function (a) { a = new xa; for (var b = 0, c = vb.MAP.length >> 1; b < c;) { var d = b++; a.h[vb.MAP[d << 1]] = vb.MAP[(d << 1) + 1] } return a }(this); oa.ACTIVATE = "activate"; oa.ADDED = "added"; oa.ADDED_TO_STAGE = "addedToStage"; oa.CANCEL = "cancel"; oa.CHANGE = "change"; oa.CLEAR = "clear"; oa.CLOSE = "close"; oa.COMPLETE = "complete"; oa.CONNECT = "connect"; oa.CONTEXT3D_CREATE = "context3DCreate"; oa.COPY = "copy"; oa.CUT = "cut"; oa.DEACTIVATE = "deactivate"; oa.ENTER_FRAME = "enterFrame"; oa.EXIT_FRAME = "exitFrame"; oa.FRAME_CONSTRUCTED = "frameConstructed"; oa.FRAME_LABEL = "frameLabel"; oa.FULLSCREEN = "fullScreen"; oa.ID3 = "id3"; oa.INIT = "init"; oa.MOUSE_LEAVE = "mouseLeave"; oa.OPEN = "open"; oa.PASTE = "paste"; oa.REMOVED = "removed"; oa.REMOVED_FROM_STAGE = "removedFromStage"; oa.RENDER = "render"; oa.RESIZE = "resize"; oa.SCROLL = "scroll"; oa.SELECT = "select"; oa.SELECT_ALL = "selectAll"; oa.SOUND_COMPLETE = "soundComplete"; oa.TAB_CHILDREN_CHANGE = "tabChildrenChange"; oa.TAB_ENABLED_CHANGE = "tabEnabledChange"; oa.TAB_INDEX_CHANGE = "tabIndexChange"; oa.TEXTURE_READY = "textureReady"; oa.UNLOAD = "unload"; ad.TOUCH_BEGIN = "rox_touch_begin"; ad.TOUCH_END = "rox_touch_end"; ad.TOUCH_MOVE = "rox_touch_move"; ad.TOUCH_OVER = "rox_touch_over"; ad.TOUCH_OUT = "rox_touch_out"; ad.TOUCH_ROLL_OVER = "rox_touch_roll_over"; ad.TOUCH_ROLL_OUT = "rox_touch_roll_in"; ad.TOUCH_TAP = "rox_touch_tap"; ad.GESTURE_TAP = "rox_gesture_tap"; ad.GESTURE_LONG_PRESS = "rox_gesture_long_press"; ad.GESTURE_PAN = "rox_gesture_pan"; ad.GESTURE_SWIPE = "rox_gesture_swipe"; ad.GESTURE_BEGIN = "rox_gesture_begin"; ad.GESTURE_PINCH = "rox_gesture_pinch"; ad.GESTURE_ROTATION = "rox_gesture_rotation"; ad.GESTURE_END = "rox_gesture_end"; fl.stringBlendMap = function (a) { a = new xa; a.h.add = 0; a.h.alpha = 1; a.h.darken = 2; a.h.difference = 3; a.h.erase = 4; a.h.hardlight = 5; a.h.invert = 6; a.h.lighten = 8; a.h.multiply = 9; a.h.normal = 10; a.h.overlay = 11; a.h.screen = 12; a.h.subtract = 14; return a }(this); ca.drawnStringCache = new xa; ca.drawnStringCacheKeys = []; ld.MAX_TEXTURE_CAP = 4096; Ld._1X = new Ld(1); Ld._1_5X = new Ld(1.5); Ld._2X = new Ld(2); Ld._3X = new Ld(3); Ld._4X = new Ld(4); yj.NO_SCALING = 0; yj.FULLSCREEN = 1; yj.STRETCH_TO_FIT = 2; yj.SCALE_TO_FIT_LETTERBOX = 3; yj.SCALE_TO_FIT_FILL = 4; yj.SCALE_TO_FIT_FULLSCREEN = 5; Cg._storedFonts = new xa; Cg.ZERO_POINT = new na; Vn.LEFT = 1; Vn.RIGHT = 2; Vn.CENTER = 3; vd.CONTEXT_LOST = "glcontextlost"; vd.CONTEXT_RESTORED = "glcontextrestored"; vd.vertexShader = "\n#ifdef GL_ES\n\tprecision mediump float;\n#endif\n\nattribute vec4 aVertex;\n\nattribute vec2 aTexCoord;\nvarying vec2 vTexCoord;\n\nvoid main() {\n\tvTexCoord = aTexCoord;\n\tgl_Position = vec4(aVertex.x, aVertex.y, 0.0, 1.0);\n}"; sb.IN = "in"; sb.OUT = "out"; sb.THROUGH = "through"; Ue.SLIDE_UP = "up"; Ue.SLIDE_DOWN = "down"; Ue.SLIDE_LEFT = "left"; Ue.SLIDE_RIGHT = "right"; G.BOOLEAN = new xf("boolean", 1); G.INTEGER = new xf("integer", 4); G.FLOAT = new xf("float", 4); G.STRING = new xf("string", 4); G.LIST = new xf("list", 4); G.DYNAMIC = new xf("dynamic", 8); G.NULL = new xf("null", 0); Rh.basicTypes = function (a) { a = []; a.push(G.BOOLEAN); a.push(G.INTEGER); a.push(G.FLOAT); a.push(G.STRING); a.push(G.LIST); a.push(G.DYNAMIC); a.push(G.NULL); Bc.initializeType(); Sc.initializeType(); ed.initializeType(); a.push(Bc.MBS_HEADER); a.push(Sc.MBS_TYPE_INFO); a.push(ed.MBS_FIELD_INFO); return a }(this); wb.GROUP_OFFSET = 1E6; wb.manifold = new rj; zb.INHERIT_ID = -1E3; zb.REGION_ID = -2; zb.PLAYER_ID = 0; zb.TERRAIN_ID = 1; zb.DOODAD_ID = 2; zb.ACTOR_ID = 3; Na.fixedCenter = 0; Na.showWherePressed = 1; Na.viewOffsetX = 0; Na.viewOffsetY = 0; Na.initialized = !1; Nn.NORMAL_PHYSICS = 0; Nn.SIMPLE_PHYSICS = 1; Nn.MINIMAL_PHYSICS = 2; ud.UNSET_ID = -1; il.MAX_VERTICES = 200; ac.muted = !1; ac.masterVolume = 1; Rg.UNSET_ID = -1; xe.allAnimations = []; Ac.recycledCollisions = []; Ac.collisionResponses = new eb; Ud.freedCollisionPoints = []; Nf.WHITE = -1; Nf.TRANSPARENT = -2; Ff.infoArray = []; Ne.NO_AUTOTILE_DATA = 0; Ne.CORNER_TL = 1; Ne.CORNER_TR = 2; Ne.CORNER_BR = 4; Ne.CORNER_BL = 8; Ne.SIDE_L = 16; Ne.SIDE_T = 32; Ne.SIDE_R = 64; Ne.SIDE_B = 128; Rc.dummyRect = new ba; re.TILESET_CACHE_MULTIPLIER = 1E6; re.cacheSource = new eb; re.autotileFlagPointMap = function (a) { a = new eb; var b = Ne.CORNER_TL, c = new na(-1, -1); a.h[b] = c; b = Ne.CORNER_TR; c = new na(1, -1); a.h[b] = c; b = Ne.CORNER_BL; c = new na(-1, 1); a.h[b] = c; b = Ne.CORNER_BR; c = new na(1, 1); a.h[b] = c; b = Ne.SIDE_T; c = new na(0, -1); a.h[b] = c; b = Ne.SIDE_B; c = new na(0, 1); a.h[b] = c; b = Ne.SIDE_L; c = new na(-1, 0); a.h[b] = c; b = Ne.SIDE_R; c = new na(1, 0); a.h[b] = c; return a }(this); wf.temp = new ba; Tc.BLACK = -16777216; Tc.WHITE = -1; Tc.RED = -65536; Tc.GREEN = -16711936; Tc.BLUE = -16776961; Tc.CYAN = -16711681; Tc.MAGENTA = -65281; Tc.YELLOW = -256; bb.LUMA_R = .212671; bb.LUMA_G = .71516; bb.LUMA_B = .072169; bb.LUMA_R2 = .3086; bb.LUMA_G2 = .6094; bb.LUMA_B2 = .082; bb.INV3 = .3333333333333333; Od.BLACK = 0; Od.WHITE = 16777215; Od.RED = 16711680; Od.GREEN = 65280; Od.BLUE = 255; Od.CYAN = 65535; Od.MAGENTA = 16711935; Od.YELLOW = 16776960; of.__meta__ = {fields: {clone: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}}; Uh.__identity = new Uh; Ja.__meta__ = { fields: { equals: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, to3DString: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, toMozString: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; Ja.__identity = new Ja; Ja.__pool = new yd(function () { return new Ja }, function (a) { a.identity() }); Ja.__matrix3 = new Uh; Pc.__pool = new yd(function () { return new Pc }, function (a) { a.__identity() }); X.INTEGER_MAX = 1E8; X.NUMBER_MAX_VALUE = 1.79769313486231E308; X.blackColor = -16777216; X.rate = 1; X.camera = new na; X.cloner = new Mn; X._bitmap = new xa; X._seed = 0; X._volume = 1; X._pan = 0; X._soundTransform = new of; X.DEG = 57.29577951308402; X.RAD = .01745329251994278; X.point = new na; X.point2 = new na; X.zero = new na; X.rect = new ba; X.matrix = new Ja; X.sprite = new Ca; X.collision = new Ac; Wa.linear = new Il; Wa.sineIn = new Vl; Wa.sineOut = new Xl; Wa.sineInOut = new Wl; Wa.sineOutIn = new Yl; Wa.quadIn = new Jl; Wa.quadOut = new Ll; Wa.quadInOut = new Kl; Wa.quadOutIn = new Ml; Wa.cubicIn = new wl; Wa.cubicOut = new yl; Wa.cubicInOut = new xl; Wa.cubicOutIn = new zl; Wa.quartIn = new Nl; Wa.quartOut = new Pl; Wa.quartInOut = new Ol; Wa.quartOutIn = new Ql; Wa.quintIn = new Rl; Wa.quintOut = new Tl; Wa.quintInOut = new Sl; Wa.quintOutIn = new Ul; Wa.expoIn = new El; Wa.expoOut = new Gl; Wa.expoInOut = new Fl; Wa.expoOutIn = new Hl; Wa.circIn = new sl; Wa.circOut = new ul; Wa.circInOut = new tl; Wa.circOutIn = new vl; Wa.bounceIn = new ol; Wa.bounceOut = new ql; Wa.bounceInOut = new pl; Wa.bounceOutIn = new rl; Wa.backIn = new kl; Wa.backOut = new ml; Wa.backInOut = new ll; Wa.backOutIn = new nl; Wa.elasticIn = new Al; Wa.elasticOut = new Cl; Wa.elasticInOut = new Bl; Wa.elasticOutIn = new Dl; Wa.warpOut = new am; Wa.warpIn = new Zl; Wa.warpInOut = new $l; Wa.warpOutIn = new bm; Vh.PI = 3.141592653589793; Vh.PI_H = 1.5707963267948966; Vh.LN_2 = .6931471805599453; Vh.LN_2_10 = 6.931471805599453; Vh.overshoot = 1.70158; Vh.amplitude = 1; Vh.period = 3E-4; nb.activeObjects = []; nb.finishedObjects = []; Ge.USE_CACHE = !1; Ge.USE_ENUM_INDEX = !1; Ge.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; Oe.DEFAULT_RESOLVER = new dm; Oe.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; Ah.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; Ah.BYTES = lb.ofString(Ah.CHARS); ee.i64tmp = new db(0, 0); ee.helper = new DataView(new ArrayBuffer(8)); mh.escapes = function (a) { a = new xa; a.h.lt = "<"; a.h.gt = ">"; a.h.amp = "&"; a.h.quot = '"'; a.h.apos = "'"; return a }(this); He.LEN_EXTRA_BITS_TBL = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, -1, -1]; He.LEN_BASE_VAL_TBL = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258]; He.DIST_EXTRA_BITS_TBL = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, -1, -1]; He.DIST_BASE_VAL_TBL = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577]; He.CODE_LENGTHS_POS = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; Ua.OPTION_REVOKE_URL = 1; Ua.activeRequests = 0; Ua.requestLimit = 17; Ua.requestQueue = new E; rb.dummyCharacter = "\u007f"; rb.windowID = 0; Tf.DICTIONARY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); Tf.EXTENDED_DICTIONARY = function (a) { a = []; for (var b = 0, c = Tf.DICTIONARY; b < c.length;) { var d = c[b]; ++b; for (var e = 0, f = Tf.DICTIONARY; e < f.length;) { var h = f[e]; ++e; a.push(d + h) } } return a }(this); ff.MUL_TABLE = [1, 171, 205, 293, 57, 373, 79, 137, 241, 27, 391, 357, 41, 19, 283, 265, 497, 469, 443, 421, 25, 191, 365, 349, 335, 161, 155, 149, 9, 278, 269, 261, 505, 245, 475, 231, 449, 437, 213, 415, 405, 395, 193, 377, 369, 361, 353, 345, 169, 331, 325, 319, 313, 307, 301, 37, 145, 285, 281, 69, 271, 267, 263, 259, 509, 501, 493, 243, 479, 118, 465, 459, 113, 446, 55, 435, 429, 423, 209, 413, 51, 403, 199, 393, 97, 3, 379, 375, 371, 367, 363, 359, 355, 351, 347, 43, 85, 337, 333, 165, 327, 323, 5, 317, 157, 311, 77, 305, 303, 75, 297, 294, 73, 289, 287, 71, 141, 279, 277, 275, 68, 135, 67, 133, 33, 262, 260, 129, 511, 507, 503, 499, 495, 491, 61, 121, 481, 477, 237, 235, 467, 232, 115, 457, 227, 451, 7, 445, 221, 439, 218, 433, 215, 427, 425, 211, 419, 417, 207, 411, 409, 203, 202, 401, 399, 396, 197, 49, 389, 387, 385, 383, 95, 189, 47, 187, 93, 185, 23, 183, 91, 181, 45, 179, 89, 177, 11, 175, 87, 173, 345, 343, 341, 339, 337, 21, 167, 83, 331, 329, 327, 163, 81, 323, 321, 319, 159, 79, 315, 313, 39, 155, 309, 307, 153, 305, 303, 151, 75, 299, 149, 37, 295, 147, 73, 291, 145, 289, 287, 143, 285, 71, 141, 281, 35, 279, 139, 69, 275, 137, 273, 17, 271, 135, 269, 267, 133, 265, 33, 263, 131, 261, 130, 259, 129, 257, 1]; ff.SHG_TABLE = [0, 9, 10, 11, 9, 12, 10, 11, 12, 9, 13, 13, 10, 9, 13, 13, 14, 14, 14, 14, 10, 13, 14, 14, 14, 13, 13, 13, 9, 14, 14, 14, 15, 14, 15, 14, 15, 15, 14, 15, 15, 15, 14, 15, 15, 15, 15, 15, 14, 15, 15, 15, 15, 15, 15, 12, 14, 15, 15, 13, 15, 15, 15, 15, 16, 16, 16, 15, 16, 14, 16, 16, 14, 16, 13, 16, 16, 16, 15, 16, 13, 16, 15, 16, 14, 9, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 14, 16, 16, 15, 16, 16, 10, 16, 15, 16, 14, 16, 16, 14, 16, 16, 14, 16, 16, 14, 15, 16, 16, 16, 14, 15, 14, 15, 13, 16, 16, 15, 17, 17, 17, 17, 17, 17, 14, 15, 17, 17, 16, 16, 17, 16, 15, 17, 16, 17, 11, 17, 16, 17, 16, 17, 16, 17, 17, 16, 17, 17, 16, 17, 17, 16, 16, 17, 17, 17, 16, 14, 17, 17, 17, 17, 15, 16, 14, 16, 15, 16, 13, 16, 15, 16, 14, 16, 15, 16, 12, 16, 15, 16, 17, 17, 17, 17, 17, 13, 16, 15, 17, 17, 17, 16, 15, 17, 17, 17, 16, 15, 17, 17, 14, 16, 17, 17, 16, 17, 17, 16, 15, 17, 16, 14, 17, 16, 15, 17, 16, 17, 17, 16, 17, 15, 16, 17, 14, 17, 16, 15, 17, 16, 17, 13, 17, 16, 17, 17, 16, 17, 14, 17, 16, 17, 16, 17, 16, 17, 9]; Vf.minCodePoint = 0; Vf.maxCodePoint = 1114111; Vf.minHighSurrogate = 55296; Vf.maxHighSurrogate = 56319; Vf.minLowSurrogate = 56320; Vf.maxLowSurrogate = 57343; l.DEPTH_BUFFER_BIT = 256; l.STENCIL_BUFFER_BIT = 1024; l.COLOR_BUFFER_BIT = 16384; l.POINTS = 0; l.LINES = 1; l.LINE_LOOP = 2; l.LINE_STRIP = 3; l.TRIANGLES = 4; l.TRIANGLE_STRIP = 5; l.TRIANGLE_FAN = 6; l.ZERO = 0; l.ONE = 1; l.SRC_COLOR = 768; l.ONE_MINUS_SRC_COLOR = 769; l.SRC_ALPHA = 770; l.ONE_MINUS_SRC_ALPHA = 771; l.DST_ALPHA = 772; l.ONE_MINUS_DST_ALPHA = 773; l.DST_COLOR = 774; l.ONE_MINUS_DST_COLOR = 775; l.SRC_ALPHA_SATURATE = 776; l.FUNC_ADD = 32774; l.BLEND_EQUATION = 32777; l.BLEND_EQUATION_RGB = 32777; l.BLEND_EQUATION_ALPHA = 34877; l.FUNC_SUBTRACT = 32778; l.FUNC_REVERSE_SUBTRACT = 32779; l.BLEND_DST_RGB = 32968; l.BLEND_SRC_RGB = 32969; l.BLEND_DST_ALPHA = 32970; l.BLEND_SRC_ALPHA = 32971; l.CONSTANT_COLOR = 32769; l.ONE_MINUS_CONSTANT_COLOR = 32770; l.CONSTANT_ALPHA = 32771; l.ONE_MINUS_CONSTANT_ALPHA = 32772; l.BLEND_COLOR = 32773; l.ARRAY_BUFFER = 34962; l.ELEMENT_ARRAY_BUFFER = 34963; l.ARRAY_BUFFER_BINDING = 34964; l.ELEMENT_ARRAY_BUFFER_BINDING = 34965; l.STREAM_DRAW = 35040; l.STATIC_DRAW = 35044; l.DYNAMIC_DRAW = 35048; l.BUFFER_SIZE = 34660; l.BUFFER_USAGE = 34661; l.CURRENT_VERTEX_ATTRIB = 34342; l.FRONT = 1028; l.BACK = 1029; l.FRONT_AND_BACK = 1032; l.CULL_FACE = 2884; l.BLEND = 3042; l.DITHER = 3024; l.STENCIL_TEST = 2960; l.DEPTH_TEST = 2929; l.SCISSOR_TEST = 3089; l.POLYGON_OFFSET_FILL = 32823; l.SAMPLE_ALPHA_TO_COVERAGE = 32926; l.SAMPLE_COVERAGE = 32928; l.NO_ERROR = 0; l.INVALID_ENUM = 1280; l.INVALID_VALUE = 1281; l.INVALID_OPERATION = 1282; l.OUT_OF_MEMORY = 1285; l.CW = 2304; l.CCW = 2305; l.LINE_WIDTH = 2849; l.ALIASED_POINT_SIZE_RANGE = 33901; l.ALIASED_LINE_WIDTH_RANGE = 33902; l.CULL_FACE_MODE = 2885; l.FRONT_FACE = 2886; l.DEPTH_RANGE = 2928; l.DEPTH_WRITEMASK = 2930; l.DEPTH_CLEAR_VALUE = 2931; l.DEPTH_FUNC = 2932; l.STENCIL_CLEAR_VALUE = 2961; l.STENCIL_FUNC = 2962; l.STENCIL_FAIL = 2964; l.STENCIL_PASS_DEPTH_FAIL = 2965; l.STENCIL_PASS_DEPTH_PASS = 2966; l.STENCIL_REF = 2967; l.STENCIL_VALUE_MASK = 2963; l.STENCIL_WRITEMASK = 2968; l.STENCIL_BACK_FUNC = 34816; l.STENCIL_BACK_FAIL = 34817; l.STENCIL_BACK_PASS_DEPTH_FAIL = 34818; l.STENCIL_BACK_PASS_DEPTH_PASS = 34819; l.STENCIL_BACK_REF = 36003; l.STENCIL_BACK_VALUE_MASK = 36004; l.STENCIL_BACK_WRITEMASK = 36005; l.VIEWPORT = 2978; l.SCISSOR_BOX = 3088; l.COLOR_CLEAR_VALUE = 3106; l.COLOR_WRITEMASK = 3107; l.UNPACK_ALIGNMENT = 3317; l.PACK_ALIGNMENT = 3333; l.MAX_TEXTURE_SIZE = 3379; l.MAX_VIEWPORT_DIMS = 3386; l.SUBPIXEL_BITS = 3408; l.RED_BITS = 3410; l.GREEN_BITS = 3411; l.BLUE_BITS = 3412; l.ALPHA_BITS = 3413; l.DEPTH_BITS = 3414; l.STENCIL_BITS = 3415; l.POLYGON_OFFSET_UNITS = 10752; l.POLYGON_OFFSET_FACTOR = 32824; l.TEXTURE_BINDING_2D = 32873; l.SAMPLE_BUFFERS = 32936; l.SAMPLES = 32937; l.SAMPLE_COVERAGE_VALUE = 32938; l.SAMPLE_COVERAGE_INVERT = 32939; l.NUM_COMPRESSED_TEXTURE_FORMATS = 34466; l.COMPRESSED_TEXTURE_FORMATS = 34467; l.DONT_CARE = 4352; l.FASTEST = 4353; l.NICEST = 4354; l.GENERATE_MIPMAP_HINT = 33170; l.BYTE = 5120; l.UNSIGNED_BYTE = 5121; l.SHORT = 5122; l.UNSIGNED_SHORT = 5123; l.INT = 5124; l.UNSIGNED_INT = 5125; l.FLOAT = 5126; l.DEPTH_COMPONENT = 6402; l.ALPHA = 6406; l.RGB = 6407; l.RGBA = 6408; l.LUMINANCE = 6409; l.LUMINANCE_ALPHA = 6410; l.UNSIGNED_SHORT_4_4_4_4 = 32819; l.UNSIGNED_SHORT_5_5_5_1 = 32820; l.UNSIGNED_SHORT_5_6_5 = 33635; l.FRAGMENT_SHADER = 35632; l.VERTEX_SHADER = 35633; l.MAX_VERTEX_ATTRIBS = 34921; l.MAX_VERTEX_UNIFORM_VECTORS = 36347; l.MAX_VARYING_VECTORS = 36348; l.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661; l.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660; l.MAX_TEXTURE_IMAGE_UNITS = 34930; l.MAX_FRAGMENT_UNIFORM_VECTORS = 36349; l.SHADER_TYPE = 35663; l.DELETE_STATUS = 35712; l.LINK_STATUS = 35714; l.VALIDATE_STATUS = 35715; l.ATTACHED_SHADERS = 35717; l.ACTIVE_UNIFORMS = 35718; l.ACTIVE_ATTRIBUTES = 35721; l.SHADING_LANGUAGE_VERSION = 35724; l.CURRENT_PROGRAM = 35725; l.NEVER = 512; l.LESS = 513; l.EQUAL = 514; l.LEQUAL = 515; l.GREATER = 516; l.NOTEQUAL = 517; l.GEQUAL = 518; l.ALWAYS = 519; l.KEEP = 7680; l.REPLACE = 7681; l.INCR = 7682; l.DECR = 7683; l.INVERT = 5386; l.INCR_WRAP = 34055; l.DECR_WRAP = 34056; l.VENDOR = 7936; l.RENDERER = 7937; l.VERSION = 7938; l.EXTENSIONS = 7939; l.NEAREST = 9728; l.LINEAR = 9729; l.NEAREST_MIPMAP_NEAREST = 9984; l.LINEAR_MIPMAP_NEAREST = 9985; l.NEAREST_MIPMAP_LINEAR = 9986; l.LINEAR_MIPMAP_LINEAR = 9987; l.TEXTURE_MAG_FILTER = 10240; l.TEXTURE_MIN_FILTER = 10241; l.TEXTURE_WRAP_S = 10242; l.TEXTURE_WRAP_T = 10243; l.TEXTURE_2D = 3553; l.TEXTURE = 5890; l.TEXTURE_CUBE_MAP = 34067; l.TEXTURE_BINDING_CUBE_MAP = 34068; l.TEXTURE_CUBE_MAP_POSITIVE_X = 34069; l.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070; l.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071; l.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072; l.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073; l.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074; l.MAX_CUBE_MAP_TEXTURE_SIZE = 34076; l.TEXTURE0 = 33984; l.TEXTURE1 = 33985; l.TEXTURE2 = 33986; l.TEXTURE3 = 33987; l.TEXTURE4 = 33988; l.TEXTURE5 = 33989; l.TEXTURE6 = 33990; l.TEXTURE7 = 33991; l.TEXTURE8 = 33992; l.TEXTURE9 = 33993; l.TEXTURE10 = 33994; l.TEXTURE11 = 33995; l.TEXTURE12 = 33996; l.TEXTURE13 = 33997; l.TEXTURE14 = 33998; l.TEXTURE15 = 33999; l.TEXTURE16 = 34E3; l.TEXTURE17 = 34001; l.TEXTURE18 = 34002; l.TEXTURE19 = 34003; l.TEXTURE20 = 34004; l.TEXTURE21 = 34005; l.TEXTURE22 = 34006; l.TEXTURE23 = 34007; l.TEXTURE24 = 34008; l.TEXTURE25 = 34009; l.TEXTURE26 = 34010; l.TEXTURE27 = 34011; l.TEXTURE28 = 34012; l.TEXTURE29 = 34013; l.TEXTURE30 = 34014; l.TEXTURE31 = 34015; l.ACTIVE_TEXTURE = 34016; l.REPEAT = 10497; l.CLAMP_TO_EDGE = 33071; l.MIRRORED_REPEAT = 33648; l.FLOAT_VEC2 = 35664; l.FLOAT_VEC3 = 35665; l.FLOAT_VEC4 = 35666; l.INT_VEC2 = 35667; l.INT_VEC3 = 35668; l.INT_VEC4 = 35669; l.BOOL = 35670; l.BOOL_VEC2 = 35671; l.BOOL_VEC3 = 35672; l.BOOL_VEC4 = 35673; l.FLOAT_MAT2 = 35674; l.FLOAT_MAT3 = 35675; l.FLOAT_MAT4 = 35676; l.SAMPLER_2D = 35678; l.SAMPLER_CUBE = 35680; l.VERTEX_ATTRIB_ARRAY_ENABLED = 34338; l.VERTEX_ATTRIB_ARRAY_SIZE = 34339; l.VERTEX_ATTRIB_ARRAY_STRIDE = 34340; l.VERTEX_ATTRIB_ARRAY_TYPE = 34341; l.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922; l.VERTEX_ATTRIB_ARRAY_POINTER = 34373; l.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975; l.IMPLEMENTATION_COLOR_READ_TYPE = 35738; l.IMPLEMENTATION_COLOR_READ_FORMAT = 35739; l.VERTEX_PROGRAM_POINT_SIZE = 34370; l.POINT_SPRITE = 34913; l.COMPILE_STATUS = 35713; l.LOW_FLOAT = 36336; l.MEDIUM_FLOAT = 36337; l.HIGH_FLOAT = 36338; l.LOW_INT = 36339; l.MEDIUM_INT = 36340; l.HIGH_INT = 36341; l.FRAMEBUFFER = 36160; l.RENDERBUFFER = 36161; l.RGBA4 = 32854; l.RGB5_A1 = 32855; l.RGB565 = 36194; l.DEPTH_COMPONENT16 = 33189; l.STENCIL_INDEX = 6401; l.STENCIL_INDEX8 = 36168; l.DEPTH_STENCIL = 34041; l.RENDERBUFFER_WIDTH = 36162; l.RENDERBUFFER_HEIGHT = 36163; l.RENDERBUFFER_INTERNAL_FORMAT = 36164; l.RENDERBUFFER_RED_SIZE = 36176; l.RENDERBUFFER_GREEN_SIZE = 36177; l.RENDERBUFFER_BLUE_SIZE = 36178; l.RENDERBUFFER_ALPHA_SIZE = 36179; l.RENDERBUFFER_DEPTH_SIZE = 36180; l.RENDERBUFFER_STENCIL_SIZE = 36181; l.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048; l.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049; l.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050; l.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051; l.COLOR_ATTACHMENT0 = 36064; l.DEPTH_ATTACHMENT = 36096; l.STENCIL_ATTACHMENT = 36128; l.DEPTH_STENCIL_ATTACHMENT = 33306; l.NONE = 0; l.FRAMEBUFFER_COMPLETE = 36053; l.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; l.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; l.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057; l.FRAMEBUFFER_UNSUPPORTED = 36061; l.FRAMEBUFFER_BINDING = 36006; l.RENDERBUFFER_BINDING = 36007; l.MAX_RENDERBUFFER_SIZE = 34024; l.INVALID_FRAMEBUFFER_OPERATION = 1286; l.UNPACK_FLIP_Y_WEBGL = 37440; l.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441; l.CONTEXT_LOST_WEBGL = 37442; l.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443; l.BROWSER_DEFAULT_WEBGL = 37444; l.READ_BUFFER = 3074; l.UNPACK_ROW_LENGTH = 3314; l.UNPACK_SKIP_ROWS = 3315; l.UNPACK_SKIP_PIXELS = 3316; l.PACK_ROW_LENGTH = 3330; l.PACK_SKIP_ROWS = 3331; l.PACK_SKIP_PIXELS = 3332; l.TEXTURE_BINDING_3D = 32874; l.UNPACK_SKIP_IMAGES = 32877; l.UNPACK_IMAGE_HEIGHT = 32878; l.MAX_3D_TEXTURE_SIZE = 32883; l.MAX_ELEMENTS_VERTICES = 33E3; l.MAX_ELEMENTS_INDICES = 33001; l.MAX_TEXTURE_LOD_BIAS = 34045; l.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657; l.MAX_VERTEX_UNIFORM_COMPONENTS = 35658; l.MAX_ARRAY_TEXTURE_LAYERS = 35071; l.MIN_PROGRAM_TEXEL_OFFSET = 35076; l.MAX_PROGRAM_TEXEL_OFFSET = 35077; l.MAX_VARYING_COMPONENTS = 35659; l.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723; l.RASTERIZER_DISCARD = 35977; l.VERTEX_ARRAY_BINDING = 34229; l.MAX_VERTEX_OUTPUT_COMPONENTS = 37154; l.MAX_FRAGMENT_INPUT_COMPONENTS = 37157; l.MAX_SERVER_WAIT_TIMEOUT = 37137; l.MAX_ELEMENT_INDEX = 36203; l.RED = 6403; l.RGB8 = 32849; l.RGBA8 = 32856; l.RGB10_A2 = 32857; l.TEXTURE_3D = 32879; l.TEXTURE_WRAP_R = 32882; l.TEXTURE_MIN_LOD = 33082; l.TEXTURE_MAX_LOD = 33083; l.TEXTURE_BASE_LEVEL = 33084; l.TEXTURE_MAX_LEVEL = 33085; l.TEXTURE_COMPARE_MODE = 34892; l.TEXTURE_COMPARE_FUNC = 34893; l.SRGB = 35904; l.SRGB8 = 35905; l.SRGB8_ALPHA8 = 35907; l.COMPARE_REF_TO_TEXTURE = 34894; l.RGBA32F = 34836; l.RGB32F = 34837; l.RGBA16F = 34842; l.RGB16F = 34843; l.TEXTURE_2D_ARRAY = 35866; l.TEXTURE_BINDING_2D_ARRAY = 35869; l.R11F_G11F_B10F = 35898; l.RGB9_E5 = 35901; l.RGBA32UI = 36208; l.RGB32UI = 36209; l.RGBA16UI = 36214; l.RGB16UI = 36215; l.RGBA8UI = 36220; l.RGB8UI = 36221; l.RGBA32I = 36226; l.RGB32I = 36227; l.RGBA16I = 36232; l.RGB16I = 36233; l.RGBA8I = 36238; l.RGB8I = 36239; l.RED_INTEGER = 36244; l.RGB_INTEGER = 36248; l.RGBA_INTEGER = 36249; l.R8 = 33321; l.RG8 = 33323; l.R16F = 33325; l.R32F = 33326; l.RG16F = 33327; l.RG32F = 33328; l.R8I = 33329; l.R8UI = 33330; l.R16I = 33331; l.R16UI = 33332; l.R32I = 33333; l.R32UI = 33334; l.RG8I = 33335; l.RG8UI = 33336; l.RG16I = 33337; l.RG16UI = 33338; l.RG32I = 33339; l.RG32UI = 33340; l.R8_SNORM = 36756; l.RG8_SNORM = 36757; l.RGB8_SNORM = 36758; l.RGBA8_SNORM = 36759; l.RGB10_A2UI = 36975; l.TEXTURE_IMMUTABLE_FORMAT = 37167; l.TEXTURE_IMMUTABLE_LEVELS = 33503; l.UNSIGNED_INT_2_10_10_10_REV = 33640; l.UNSIGNED_INT_10F_11F_11F_REV = 35899; l.UNSIGNED_INT_5_9_9_9_REV = 35902; l.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269; l.UNSIGNED_INT_24_8 = 34042; l.HALF_FLOAT = 5131; l.RG = 33319; l.RG_INTEGER = 33320; l.INT_2_10_10_10_REV = 36255; l.CURRENT_QUERY = 34917; l.QUERY_RESULT = 34918; l.QUERY_RESULT_AVAILABLE = 34919; l.ANY_SAMPLES_PASSED = 35887; l.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202; l.MAX_DRAW_BUFFERS = 34852; l.DRAW_BUFFER0 = 34853; l.DRAW_BUFFER1 = 34854; l.DRAW_BUFFER2 = 34855; l.DRAW_BUFFER3 = 34856; l.DRAW_BUFFER4 = 34857; l.DRAW_BUFFER5 = 34858; l.DRAW_BUFFER6 = 34859; l.DRAW_BUFFER7 = 34860; l.DRAW_BUFFER8 = 34861; l.DRAW_BUFFER9 = 34862; l.DRAW_BUFFER10 = 34863; l.DRAW_BUFFER11 = 34864; l.DRAW_BUFFER12 = 34865; l.DRAW_BUFFER13 = 34866; l.DRAW_BUFFER14 = 34867; l.DRAW_BUFFER15 = 34868; l.MAX_COLOR_ATTACHMENTS = 36063; l.COLOR_ATTACHMENT1 = 36065; l.COLOR_ATTACHMENT2 = 36066; l.COLOR_ATTACHMENT3 = 36067; l.COLOR_ATTACHMENT4 = 36068; l.COLOR_ATTACHMENT5 = 36069; l.COLOR_ATTACHMENT6 = 36070; l.COLOR_ATTACHMENT7 = 36071; l.COLOR_ATTACHMENT8 = 36072; l.COLOR_ATTACHMENT9 = 36073; l.COLOR_ATTACHMENT10 = 36074; l.COLOR_ATTACHMENT11 = 36075; l.COLOR_ATTACHMENT12 = 36076; l.COLOR_ATTACHMENT13 = 36077; l.COLOR_ATTACHMENT14 = 36078; l.COLOR_ATTACHMENT15 = 36079; l.SAMPLER_3D = 35679; l.SAMPLER_2D_SHADOW = 35682; l.SAMPLER_2D_ARRAY = 36289; l.SAMPLER_2D_ARRAY_SHADOW = 36292; l.SAMPLER_CUBE_SHADOW = 36293; l.INT_SAMPLER_2D = 36298; l.INT_SAMPLER_3D = 36299; l.INT_SAMPLER_CUBE = 36300; l.INT_SAMPLER_2D_ARRAY = 36303; l.UNSIGNED_INT_SAMPLER_2D = 36306; l.UNSIGNED_INT_SAMPLER_3D = 36307; l.UNSIGNED_INT_SAMPLER_CUBE = 36308; l.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311; l.MAX_SAMPLES = 36183; l.SAMPLER_BINDING = 35097; l.PIXEL_PACK_BUFFER = 35051; l.PIXEL_UNPACK_BUFFER = 35052; l.PIXEL_PACK_BUFFER_BINDING = 35053; l.PIXEL_UNPACK_BUFFER_BINDING = 35055; l.COPY_READ_BUFFER = 36662; l.COPY_WRITE_BUFFER = 36663; l.COPY_READ_BUFFER_BINDING = 36662; l.COPY_WRITE_BUFFER_BINDING = 36663; l.FLOAT_MAT2x3 = 35685; l.FLOAT_MAT2x4 = 35686; l.FLOAT_MAT3x2 = 35687; l.FLOAT_MAT3x4 = 35688; l.FLOAT_MAT4x2 = 35689; l.FLOAT_MAT4x3 = 35690; l.UNSIGNED_INT_VEC2 = 36294; l.UNSIGNED_INT_VEC3 = 36295; l.UNSIGNED_INT_VEC4 = 36296; l.UNSIGNED_NORMALIZED = 35863; l.SIGNED_NORMALIZED = 36764; l.VERTEX_ATTRIB_ARRAY_INTEGER = 35069; l.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070; l.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967; l.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968; l.TRANSFORM_FEEDBACK_VARYINGS = 35971; l.TRANSFORM_FEEDBACK_BUFFER_START = 35972; l.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973; l.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976; l.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978; l.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979; l.INTERLEAVED_ATTRIBS = 35980; l.SEPARATE_ATTRIBS = 35981; l.TRANSFORM_FEEDBACK_BUFFER = 35982; l.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983; l.TRANSFORM_FEEDBACK = 36386; l.TRANSFORM_FEEDBACK_PAUSED = 36387; l.TRANSFORM_FEEDBACK_ACTIVE = 36388; l.TRANSFORM_FEEDBACK_BINDING = 36389; l.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296; l.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297; l.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298; l.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299; l.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300; l.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301; l.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302; l.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303; l.FRAMEBUFFER_DEFAULT = 33304; l.DEPTH24_STENCIL8 = 35056; l.DRAW_FRAMEBUFFER_BINDING = 36006; l.READ_FRAMEBUFFER = 36008; l.DRAW_FRAMEBUFFER = 36009; l.READ_FRAMEBUFFER_BINDING = 36010; l.RENDERBUFFER_SAMPLES = 36011; l.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052; l.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182; l.UNIFORM_BUFFER = 35345; l.UNIFORM_BUFFER_BINDING = 35368; l.UNIFORM_BUFFER_START = 35369; l.UNIFORM_BUFFER_SIZE = 35370; l.MAX_VERTEX_UNIFORM_BLOCKS = 35371; l.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373; l.MAX_COMBINED_UNIFORM_BLOCKS = 35374; l.MAX_UNIFORM_BUFFER_BINDINGS = 35375; l.MAX_UNIFORM_BLOCK_SIZE = 35376; l.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377; l.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379; l.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380; l.ACTIVE_UNIFORM_BLOCKS = 35382; l.UNIFORM_TYPE = 35383; l.UNIFORM_SIZE = 35384; l.UNIFORM_BLOCK_INDEX = 35386; l.UNIFORM_OFFSET = 35387; l.UNIFORM_ARRAY_STRIDE = 35388; l.UNIFORM_MATRIX_STRIDE = 35389; l.UNIFORM_IS_ROW_MAJOR = 35390; l.UNIFORM_BLOCK_BINDING = 35391; l.UNIFORM_BLOCK_DATA_SIZE = 35392; l.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394; l.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395; l.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396; l.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398; l.OBJECT_TYPE = 37138; l.SYNC_CONDITION = 37139; l.SYNC_STATUS = 37140; l.SYNC_FLAGS = 37141; l.SYNC_FENCE = 37142; l.SYNC_GPU_COMMANDS_COMPLETE = 37143; l.UNSIGNALED = 37144; l.SIGNALED = 37145; l.ALREADY_SIGNALED = 37146; l.TIMEOUT_EXPIRED = 37147; l.CONDITION_SATISFIED = 37148; l.WAIT_FAILED = 37149; l.SYNC_FLUSH_COMMANDS_BIT = 1; l.COLOR = 6144; l.DEPTH = 6145; l.STENCIL = 6146; l.MIN = 32775; l.MAX = 32776; l.DEPTH_COMPONENT24 = 33190; l.STREAM_READ = 35041; l.STREAM_COPY = 35042; l.STATIC_READ = 35045; l.STATIC_COPY = 35046; l.DYNAMIC_READ = 35049; l.DYNAMIC_COPY = 35050; l.DEPTH_COMPONENT32F = 36012; l.DEPTH32F_STENCIL8 = 36013; l.INVALID_INDEX = -1; l.TIMEOUT_IGNORED = -1; l.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447; Qd.__identity = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; wa.__identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; Dc.audioSources = []; Dc.sourcesToRemove = []; Tj.ID = 0; C.NONE = 0; C.FALSE = 0; C.TRUE = 1; C.SOURCE_RELATIVE = 514; C.CONE_INNER_ANGLE = 4097; C.CONE_OUTER_ANGLE = 4098; C.PITCH = 4099; C.POSITION = 4100; C.DIRECTION = 4101; C.VELOCITY = 4102; C.LOOPING = 4103; C.BUFFER = 4105; C.GAIN = 4106; C.MIN_GAIN = 4109; C.MAX_GAIN = 4110; C.ORIENTATION = 4111; C.SOURCE_STATE = 4112; C.INITIAL = 4113; C.PLAYING = 4114; C.PAUSED = 4115; C.STOPPED = 4116; C.BUFFERS_QUEUED = 4117; C.BUFFERS_PROCESSED = 4118; C.REFERENCE_DISTANCE = 4128; C.ROLLOFF_FACTOR = 4129; C.CONE_OUTER_GAIN = 4130; C.MAX_DISTANCE = 4131; C.SEC_OFFSET = 4132; C.SAMPLE_OFFSET = 4133; C.BYTE_OFFSET = 4134; C.SOURCE_TYPE = 4135; C.STATIC = 4136; C.STREAMING = 4137; C.UNDETERMINED = 4144; C.FORMAT_MONO8 = 4352; C.FORMAT_MONO16 = 4353; C.FORMAT_STEREO8 = 4354; C.FORMAT_STEREO16 = 4355; C.FREQUENCY = 8193; C.BITS = 8194; C.CHANNELS = 8195; C.SIZE = 8196; C.NO_ERROR = 0; C.INVALID_NAME = 40961; C.INVALID_ENUM = 40962; C.INVALID_VALUE = 40963; C.INVALID_OPERATION = 40964; C.OUT_OF_MEMORY = 40965; C.VENDOR = 45057; C.VERSION = 45058; C.RENDERER = 45059; C.EXTENSIONS = 45060; C.DOPPLER_FACTOR = 49152; C.SPEED_OF_SOUND = 49155; C.DOPPLER_VELOCITY = 49153; C.DISTANCE_MODEL = 53248; C.INVERSE_DISTANCE = 53249; C.INVERSE_DISTANCE_CLAMPED = 53250; C.LINEAR_DISTANCE = 53251; C.LINEAR_DISTANCE_CLAMPED = 53252; C.EXPONENT_DISTANCE = 53253; C.EXPONENT_DISTANCE_CLAMPED = 53254; C.METERS_PER_UNIT = 131076; C.DIRECT_FILTER = 131077; C.AUXILIARY_SEND_FILTER = 131078; C.AIR_ABSORPTION_FACTOR = 131079; C.ROOM_ROLLOFF_FACTOR = 131080; C.CONE_OUTER_GAINHF = 131081; C.DIRECT_FILTER_GAINHF_AUTO = 131082; C.AUXILIARY_SEND_FILTER_GAIN_AUTO = 131083; C.AUXILIARY_SEND_FILTER_GAINHF_AUTO = 131084; C.REVERB_DENSITY = 1; C.REVERB_DIFFUSION = 2; C.REVERB_GAIN = 3; C.REVERB_GAINHF = 4; C.REVERB_DECAY_TIME = 5; C.REVERB_DECAY_HFRATIO = 6; C.REVERB_REFLECTIONS_GAIN = 7; C.REVERB_REFLECTIONS_DELAY = 8; C.REVERB_LATE_REVERB_GAIN = 9; C.REVERB_LATE_REVERB_DELAY = 10; C.REVERB_AIR_ABSORPTION_GAINHF = 11; C.REVERB_ROOM_ROLLOFF_FACTOR = 12; C.REVERB_DECAY_HFLIMIT = 13; C.EAXREVERB_DENSITY = 1; C.EAXREVERB_DIFFUSION = 2; C.EAXREVERB_GAIN = 3; C.EAXREVERB_GAINHF = 4; C.EAXREVERB_GAINLF = 5; C.EAXREVERB_DECAY_TIME = 6; C.EAXREVERB_DECAY_HFRATIO = 7; C.EAXREVERB_DECAY_LFRATIO = 8; C.EAXREVERB_REFLECTIONS_GAIN = 9; C.EAXREVERB_REFLECTIONS_DELAY = 10; C.EAXREVERB_REFLECTIONS_PAN = 11; C.EAXREVERB_LATE_REVERB_GAIN = 12; C.EAXREVERB_LATE_REVERB_DELAY = 13; C.EAXREVERB_LATE_REVERB_PAN = 14; C.EAXREVERB_ECHO_TIME = 15; C.EAXREVERB_ECHO_DEPTH = 16; C.EAXREVERB_MODULATION_TIME = 17; C.EAXREVERB_MODULATION_DEPTH = 18; C.EAXREVERB_AIR_ABSORPTION_GAINHF = 19; C.EAXREVERB_HFREFERENCE = 20; C.EAXREVERB_LFREFERENCE = 21; C.EAXREVERB_ROOM_ROLLOFF_FACTOR = 22; C.EAXREVERB_DECAY_HFLIMIT = 23; C.CHORUS_WAVEFORM = 1; C.CHORUS_PHASE = 2; C.CHORUS_RATE = 3; C.CHORUS_DEPTH = 4; C.CHORUS_FEEDBACK = 5; C.CHORUS_DELAY = 6; C.DISTORTION_EDGE = 1; C.DISTORTION_GAIN = 2; C.DISTORTION_LOWPASS_CUTOFF = 3; C.DISTORTION_EQCENTER = 4; C.DISTORTION_EQBANDWIDTH = 5; C.ECHO_DELAY = 1; C.ECHO_LRDELAY = 2; C.ECHO_DAMPING = 3; C.ECHO_FEEDBACK = 4; C.ECHO_SPREAD = 5; C.FLANGER_WAVEFORM = 1; C.FLANGER_PHASE = 2; C.FLANGER_RATE = 3; C.FLANGER_DEPTH = 4; C.FLANGER_FEEDBACK = 5; C.FLANGER_DELAY = 6; C.FREQUENCY_SHIFTER_FREQUENCY = 1; C.FREQUENCY_SHIFTER_LEFT_DIRECTION = 2; C.FREQUENCY_SHIFTER_RIGHT_DIRECTION = 3; C.VOCAL_MORPHER_PHONEMEA = 1; C.VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 2; C.VOCAL_MORPHER_PHONEMEB = 3; C.VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 4; C.VOCAL_MORPHER_WAVEFORM = 5; C.VOCAL_MORPHER_RATE = 6; C.PITCH_SHIFTER_COARSE_TUNE = 1; C.PITCH_SHIFTER_FINE_TUNE = 2; C.RING_MODULATOR_FREQUENCY = 1; C.RING_MODULATOR_HIGHPASS_CUTOFF = 2; C.RING_MODULATOR_WAVEFORM = 3; C.AUTOWAH_ATTACK_TIME = 1; C.AUTOWAH_RELEASE_TIME = 2; C.AUTOWAH_RESONANCE = 3; C.AUTOWAH_PEAK_GAIN = 4; C.COMPRESSOR_ONOFF = 1; C.EQUALIZER_LOW_GAIN = 1; C.EQUALIZER_LOW_CUTOFF = 2; C.EQUALIZER_MID1_GAIN = 3; C.EQUALIZER_MID1_CENTER = 4; C.EQUALIZER_MID1_WIDTH = 5; C.EQUALIZER_MID2_GAIN = 6; C.EQUALIZER_MID2_CENTER = 7; C.EQUALIZER_MID2_WIDTH = 8; C.EQUALIZER_HIGH_GAIN = 9; C.EQUALIZER_HIGH_CUTOFF = 10; C.EFFECT_FIRST_PARAMETER = 0; C.EFFECT_LAST_PARAMETER = 32768; C.EFFECT_TYPE = 32769; C.EFFECT_NULL = 0; C.EFFECT_EAXREVERB = 32768; C.EFFECT_REVERB = 1; C.EFFECT_CHORUS = 2; C.EFFECT_DISTORTION = 3; C.EFFECT_ECHO = 4; C.EFFECT_FLANGER = 5; C.EFFECT_FREQUENCY_SHIFTER = 6; C.EFFECT_VOCAL_MORPHER = 7; C.EFFECT_PITCH_SHIFTER = 8; C.EFFECT_RING_MODULATOR = 9; C.FFECT_AUTOWAH = 10; C.EFFECT_COMPRESSOR = 11; C.EFFECT_EQUALIZER = 12; C.EFFECTSLOT_EFFECT = 1; C.EFFECTSLOT_GAIN = 2; C.EFFECTSLOT_AUXILIARY_SEND_AUTO = 3; C.LOWPASS_GAIN = 1; C.LOWPASS_GAINHF = 2; C.HIGHPASS_GAIN = 1; C.HIGHPASS_GAINLF = 2; C.BANDPASS_GAIN = 1; C.BANDPASS_GAINLF = 2; C.BANDPASS_GAINHF = 3; C.FILTER_FIRST_PARAMETER = 0; C.FILTER_LAST_PARAMETER = 32768; C.FILTER_TYPE = 32769; C.FILTER_NULL = 0; C.FILTER_LOWPASS = 1; C.FILTER_HIGHPASS = 2; C.FILTER_BANDPASS = 3; Mb.FALSE = 0; Mb.TRUE = 1; Mb.FREQUENCY = 4103; Mb.REFRESH = 4104; Mb.SYNC = 4105; Mb.MONO_SOURCES = 4112; Mb.STEREO_SOURCES = 4113; Mb.NO_ERROR = 0; Mb.INVALID_DEVICE = 40961; Mb.INVALID_CONTEXT = 40962; Mb.INVALID_ENUM = 40963; Mb.INVALID_VALUE = 40964; Mb.OUT_OF_MEMORY = 40965; Mb.ATTRIBUTES_SIZE = 4098; Mb.ALL_ATTRIBUTES = 4099; Mb.DEFAULT_DEVICE_SPECIFIER = 4100; Mb.DEVICE_SPECIFIER = 4101; Mb.EXTENSIONS = 4102; Mb.ENUMERATE_ALL_EXT = 1; Mb.DEFAULT_ALL_DEVICES_SPECIFIER = 4114; Mb.ALL_DEVICES_SPECIFIER = 4115; oe.onUpdate = new Rd; Ee.alreadyCreated = new xa; Ee.initialized = !1; Sf.sensorByID = new eb; Sf.sensors = []; $a.__directories = new eb; Pd.devices = new eb; Pd.onConnect = new Lo; bd.devices = new eb; bd.onConnect = new Mo; Gb.NONE = 0; Gb.LEFT_SHIFT = 1; Gb.RIGHT_SHIFT = 2; Gb.LEFT_CTRL = 64; Gb.RIGHT_CTRL = 128; Gb.LEFT_ALT = 256; Gb.RIGHT_ALT = 512; Gb.LEFT_META = 1024; Gb.RIGHT_META = 2048; Gb.NUM_LOCK = 4096; Gb.CAPS_LOCK = 8192; Gb.MODE = 16384; Gb.CTRL = 192; Gb.SHIFT = 3; Gb.ALT = 768; Gb.META = 3072; sd.onCancel = new Mi; sd.onEnd = new Mi; sd.onMove = new Mi; sd.onStart = new Mi; ta.cache = new To; ta.onChange = new Rd; ta.bundlePaths = new xa; ta.libraries = new xa; ta.libraryPaths = new xa; $g.BYTES_PER_ELEMENT = 4; Qa.throwErrors = !0; Wr.VERSION = 2; Oa.__lastTimerID = 0; Oa.__sentWarnings = new xa; Oa.__timers = new eb; ch.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Gf.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {toJSON: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; If.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: { toJSON: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Jf.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {toJSON: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Hf.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {toJSON: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; uf.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: { concat: {SuppressWarnings: ["checkstyle:Dynamic"]}, toJSON: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; kj.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ka.__meta__ = { fields: { image: {SuppressWarnings: ["checkstyle:Dynamic"]}, __framebufferContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, __indexBufferContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, __surface: {SuppressWarnings: ["checkstyle:Dynamic"]}, __textureContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, __vertexBufferContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, compare: {SuppressWarnings: ["checkstyle:Dynamic"]}, getSurface: {SuppressWarnings: ["checkstyle:Dynamic"]}, __fromImage: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; ka.VERTEX_BUFFER_STRIDE = 14; ka.__tempVector = new be; Ye.__meta__ = { fields: { __context: {SuppressWarnings: ["checkstyle:Dynamic"]}, __type: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Dm.__meta__ = { fields: { cairo: {SuppressWarnings: ["checkstyle:Dynamic"]}, __matrix3: {SuppressWarnings: ["checkstyle:Dynamic"]}, applyMatrix: {SuppressWarnings: ["checkstyle:Dynamic"]}, __setBlendModeCairo: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Fg.__meta__ = { fields: { context: {SuppressWarnings: ["checkstyle:Dynamic"]}, applySmoothing: {SuppressWarnings: ["checkstyle:Dynamic"]}, setTransform: {SuppressWarnings: ["checkstyle:Dynamic"]}, __setBlendModeContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Gr.NONE = 0; Gr.ROUND = 1; Gr.SQUARE = 2; Hm.__meta__ = { fields: { __element: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Pi.__meta__ = { fields: { element: {SuppressWarnings: ["checkstyle:Dynamic"]}, applyStyle: {SuppressWarnings: ["checkstyle:Dynamic"]}, clearStyle: {SuppressWarnings: ["checkstyle:Dynamic"]}, _: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; jf.__meta__ = {fields: {glProgram: {SuppressWarnings: ["checkstyle:Dynamic"]}}}; $e.__meta__ = {fields: {overrideBlendMode: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}}; Ri.SIN45 = .7071067811865476; Ri.TAN22 = .41421356237309503; Jr.BEVEL = 0; Jr.MITER = 1; Jr.ROUND = 2; Fj.__meta__ = {fields: {BitmapData_onError: {SuppressWarnings: ["checkstyle:Dynamic"]}}}; hg.__meta__ = { statics: {create: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}, fields: {parameters: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; hg.__rootURL = Zg.get_supported() ? window.document.URL : ""; Ib.__meta__ = { fields: { gl: {SuppressWarnings: ["checkstyle:Dynamic"]}, __gl: {SuppressWarnings: ["checkstyle:Dynamic"]}, __matrix: {SuppressWarnings: ["checkstyle:Dynamic"]}, __projection: {SuppressWarnings: ["checkstyle:Dynamic"]}, __projectionFlipped: {SuppressWarnings: ["checkstyle:Dynamic"]}, getMatrix: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Ib.__alphaValue = [1]; Ib.__colorMultipliersValue = [0, 0, 0, 0]; Ib.__colorOffsetsValue = [0, 0, 0, 0]; Ib.__defaultColorMultipliersValue = [1, 1, 1, 1]; Ib.__emptyColorValue = [0, 0, 0, 0]; Ib.__emptyAlphaValue = [1]; Ib.__hasColorTransformValue = [!1]; Ib.__scissorRectangle = new ba; Ib.__textureSizeValue = [0, 0]; $o.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {onComplete: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Xm.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Km.__meta__ = { fields: { index: {SuppressWarnings: ["checkstyle:Dynamic"]}, name: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; Qi.__meta__ = { fields: { index: {SuppressWarnings: ["checkstyle:Dynamic"]}, name: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; Ui.__meta__ = { fields: { __broadcastEvent: {SuppressWarnings: ["checkstyle:Dynamic"]}, __dispatchEvent: {SuppressWarnings: [["checkstyle:Dynamic", "checkstyle:LeftCurly"]]}, __dispatchStack: { SuppressWarnings: [["checkstyle:Dynamic", "checkstyle:LeftCurly"]] }, __dispatchTarget: {SuppressWarnings: ["checkstyle:Dynamic"]}, __handleError: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; kg.__meta__ = {fields: {data: {SuppressWarnings: ["checkstyle:Dynamic"]}}}; Ym.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Yj.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {_: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Xi.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Zm.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; $m.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; an.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; bn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; cn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ei.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, statics: {renderTileContainer: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Oi.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Eh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Ie.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {o: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Ie.empty = new Ie; B.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, statics: { windingRule: {SuppressWarnings: ["checkstyle:Dynamic"]}, createBitmapFill: {SuppressWarnings: ["checkstyle:Dynamic"]}, createGradientPattern: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; B.SIN45 = .7071067811865476; B.TAN22 = .41421356237309503; B.fillCommands = new Ie; B.strokeCommands = new Ie; Or.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; U.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Yf.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, statics: {renderTileContainer: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; $h.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; zf.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Gh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Gh.MAX_INDEX_BUFFER_LENGTH = 65535; Gh.MAX_QUADS_PER_INDEX_BUFFER = 10922; Gh.MAX_QUAD_INDEX_BUFFER_LENGTH = 65532; eh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Uc.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Uc.blankBitmapData = new ka(1, 1, !1, 0); Uc.tempColorTransform = new Pc(1, 1, 1, 1, 0, 0, 0, 0); ai.opaqueBitmapData = new ka(1, 1, !1, 0); cg.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; fh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ha.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Af.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Af.__textureSizeValue = [0, 0]; Vc.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Zf.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; sf.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; gc.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; gc.__regexColor = new fb("color=(\"#([^\"]+)\"|'#([^']+)')", "i"); gc.__regexFace = new fb("face=(\"([^\"]+)\"|'([^']+)')", "i"); gc.__regexFont = new fb("]+)>", "gi"); gc.__regexCloseFont = new fb("", "gi"); gc.__regexSize = new fb("size=(\"([^\"]+)\"|'([^']+)')", "i"); Gg.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; dh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; $f.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {obj: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Hh.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; fi.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; fi.alphaColorTransform = new Pc; fi.bitmap = new dd; fi.destPoint = new na; fi.sourceRect = new ba; Zh.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, statics: {P: {SuppressWarnings: ["checkstyle:ConstantName"]}} }; Zh.P = [151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180, 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180]; Wg.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Mm.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {overrideIntValues: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; cc.supportsVideoTexture = !0; cc.__glDepthStencil = -1; cc.__glMaxTextureMaxAnisotropy = -1; cc.__glMaxViewportDims = -1; cc.__glMemoryCurrentAvailable = -1; cc.__glMemoryTotalAvailable = -1; cc.__glTextureMaxAnisotropy = -1; Pr.DYNAMIC_DRAW = 0; Pr.STATIC_DRAW = 1; Qr.FRAGMENT = 0; Qr.VERTEX = 1; ck.BGR_PACKED = 0; ck.BGRA = 1; ck.BGRA_PACKED = 2; ck.COMPRESSED = 3; ck.COMPRESSED_ALPHA = 4; ck.RGBA_HALF_FLOAT = 5; fn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; dk.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Je.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Je.limitedProfile = !0; Zi.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; gn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; $i.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; hi.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ek.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ak.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; hc.__meta__ = { fields: { __textureContext: {SuppressWarnings: ["checkstyle:Dynamic"]}, __getGLFramebuffer: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; gi.__lowMemoryMode = !1; id.DEFAULT_TO_STRING = "Error"; ih.ACTIVITY = "activity"; kf.LINK = "link"; kf.TEXT_INPUT = "textInput"; Ze.ERROR = "error"; mj.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; lj.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; bg.FOCUS_IN = "focusIn"; bg.FOCUS_OUT = "focusOut"; bg.KEY_FOCUS_CHANGE = "keyFocusChange"; bg.MOUSE_FOCUS_CHANGE = "mouseFocusChange"; gh.FULL_SCREEN = "fullScreen"; gh.FULL_SCREEN_INTERACTIVE_ACCEPTED = "fullScreenInteractiveAccepted"; Jg.DEVICE_ADDED = "deviceAdded"; Jg.DEVICE_REMOVED = "deviceRemoved"; Jg.DEVICE_UNUSABLE = "deviceUnusable"; ii.HTTP_RESPONSE_STATUS = "httpResponseStatus"; ii.HTTP_STATUS = "httpStatus"; sg.IO_ERROR = "ioError"; ci.KEY_DOWN = "keyDown"; ci.KEY_UP = "keyUp"; Qb.CLICK = "click"; Qb.DOUBLE_CLICK = "doubleClick"; Qb.MIDDLE_CLICK = "middleClick"; Qb.MIDDLE_MOUSE_DOWN = "middleMouseDown"; Qb.MIDDLE_MOUSE_UP = "middleMouseUp"; Qb.MOUSE_DOWN = "mouseDown"; Qb.MOUSE_MOVE = "mouseMove"; Qb.MOUSE_OUT = "mouseOut"; Qb.MOUSE_OVER = "mouseOver"; Qb.MOUSE_UP = "mouseUp"; Qb.MOUSE_WHEEL = "mouseWheel"; Qb.RELEASE_OUTSIDE = "releaseOutside"; Qb.RIGHT_CLICK = "rightClick"; Qb.RIGHT_MOUSE_DOWN = "rightMouseDown"; Qb.RIGHT_MOUSE_UP = "rightMouseUp"; Qb.ROLL_OUT = "rollOut"; Qb.ROLL_OVER = "rollOver"; ji.NET_STATUS = "netStatus"; Hg.PROGRESS = "progress"; Hg.SOCKET_DATA = "socketData"; wg.CLEAR_DOM = "clearDOM"; wg.RENDER_CAIRO = "renderCairo"; wg.RENDER_CANVAS = "renderCanvas"; wg.RENDER_DOM = "renderDOM"; wg.RENDER_OPENGL = "renderOpenGL"; bj.SECURITY_ERROR = "securityError"; $d.__meta__ = {fields: {delta: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}}; $d.TOUCH_BEGIN = "touchBegin"; $d.TOUCH_END = "touchEnd"; $d.TOUCH_MOVE = "touchMove"; $d.TOUCH_OUT = "touchOut"; $d.TOUCH_OVER = "touchOver"; $d.TOUCH_ROLL_OUT = "touchRollOut"; $d.TOUCH_ROLL_OVER = "touchRollOver"; $d.TOUCH_TAP = "touchTap"; Vi.UNCAUGHT_ERROR = "uncaughtError"; fk.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; jg.__colorMatrixShader = new fk; he.__meta__ = { statics: { create2D: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, createABCD: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, createOrtho: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; xd.MAX_ACTIVE_CHANNELS = 32; xd.__soundChannels = []; xd.__soundTransform = new of; jn.VERTEX_BUFFER_STRIDE = 5; gk.__meta__ = {statics: {CONNECT_SUCCESS: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}}; gk.CONNECT_SUCCESS = "NetConnection.Connect.Success"; kn.__meta__ = { fields: { audioCodec: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, decodedFrames: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, speed: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, requestVideoStatus: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; qd.defaultObjectEncoding = 10; Ih.followRedirects = !0; Ih.idleTimeout = 0; Ih.manageCookies = !1; Si.currentDomain = new Si(null); Cc.avHardwareDisable = !0; Cc.hasAccessibility = !1; Cc.hasAudio = !0; Cc.hasAudioEncoder = !1; Cc.hasEmbeddedVideo = !1; Cc.hasIME = !1; Cc.hasMP3 = !1; Cc.hasPrinting = !0; Cc.hasScreenBroadcast = !1; Cc.hasScreenPlayback = !1; Cc.hasStreamingAudio = !1; Cc.hasStreamingVideo = !1; Cc.hasTLS = !0; Cc.hasVideoEncoder = !0; Cc.isDebugger = !0; Cc.isEmbeddedInAcrobat = !1; Cc.localFileReadDisable = !0; Cc.maxLevelIDC = 0; Cc.playerType = "PlugIn"; Cc.screenColor = "color"; Cc.serverString = ""; Cc.supports32BitProcesses = !1; Cc.supports64BitProcesses = !1; Cc.touchscreenType = 0; Cc.__standardDensities = [120, 160, 240, 320, 480, 640, 800, 960]; hk.__meta__ = {obj: {SuppressWarnings: ["checkstyle:UnnecessaryConstructor"]}}; hk.currentDomain = new hk; fg.useCodePage = !1; Wc.__fontByName = new xa; Wc.__registeredFonts = []; cf.__missingFontWarning = new xa; Sg.__meta__ = {fields: {clone: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}}; ik.CENTER = 0; ik.END = 1; ik.JUSTIFY = 2; ik.LEFT = 3; ik.RIGHT = 4; ik.START = 5; jp.__meta__ = {obj: {SuppressWarnings: [["checkstyle:FieldDocComment", "checkstyle:Dynamic"]]}}; Db.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Db.__regexAlign = new fb("align\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexBreakTag = new fb("", "gi"); Db.__regexBlockIndent = new fb("blockindent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexColor = new fb("color\\s?=\\s?(\"#([^\"]+)\"|'#([^']+)')", "i"); Db.__regexEntities = [new fb(""", "g"), new fb("'", "g"), new fb("&", "g"), new fb("<", "g"), new fb(">", "g"), new fb(" ", "g")]; Db.__regexFace = new fb("face\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexHTMLTag = new fb("<.*?>", "g"); Db.__regexHref = new fb("href\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexIndent = new fb(" indent\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexLeading = new fb("leading\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexLeftMargin = new fb("leftmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexRightMargin = new fb("rightmargin\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexSize = new fb("size\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Db.__regexTabStops = new fb("tabstops\\s?=\\s?(\"([^\"]+)\"|'([^']+)')", "i"); Wb.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {__cairoFont: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; Wb.GUTTER = 2; Wb.UTF8_TAB = 9; Wb.UTF8_ENDLINE = 10; Wb.UTF8_SPACE = 32; Wb.UTF8_HYPHEN = 45; Wb.__defaultFonts = new xa; Yd.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: { glyphs: {SuppressWarnings: ["checkstyle:Dynamic"]}, __handle: {SuppressWarnings: ["checkstyle:Dynamic"]}, __hbBuffer: {SuppressWarnings: ["checkstyle:Dynamic"]}, __hbFont: {SuppressWarnings: ["checkstyle:Dynamic"]}, get_glyphs: {SuppressWarnings: ["checkstyle:Dynamic"]} } }; Yd.FT_LOAD_DEFAULT = 0; Yd.FT_LOAD_NO_SCALE = 1; Yd.FT_LOAD_NO_HINTING = 2; Yd.FT_LOAD_RENDER = 4; Yd.FT_LOAD_NO_BITMAP = 8; Yd.FT_LOAD_VERTICAL_LAYOUT = 16; Yd.FT_LOAD_FORCE_AUTOHINT = 32; Yd.FT_LOAD_CROP_BITMAP = 64; Yd.FT_LOAD_PEDANTIC = 128; Yd.FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 256; Yd.FT_LOAD_NO_RECURSE = 512; Yd.FT_LOAD_IGNORE_TRANSFORM = 1024; Yd.FT_LOAD_MONOCHROME = 2048; Yd.FT_LOAD_LINEAR_DESIGN = 4096; Yd.FT_LOAD_NO_AUTOHINT = 8192; Yd.FT_LOAD_COLOR = 16384; Yd.FT_LOAD_COMPUTE_METRICS = 32768; Yd.FT_LOAD_BITMAP_METRICS_ONLY = 65536; Yd.FT_LOAD_TARGET_NORMAL = 0; Yd.FT_LOAD_TARGET_LIGHT = 0; ln.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; dc.__meta__ = {fields: {addEventListener: {SuppressWarnings: ["checkstyle:Dynamic"]}}}; dc.isSupported = !0; dc.numDevices = 0; dc.__deviceList = []; dc.__instances = []; dc.__devices = new Oc; mn.MAX_BUFFER_SIZE = 32E3; Fa.__meta__ = { statics: { BREAK: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, NUMLOCK: {SuppressWarnings: ["checkstyle:FieldDocComment"]} } }; Fa.NUMBER_0 = 48; Fa.NUMBER_1 = 49; Fa.NUMBER_2 = 50; Fa.NUMBER_3 = 51; Fa.NUMBER_4 = 52; Fa.NUMBER_5 = 53; Fa.NUMBER_6 = 54; Fa.NUMBER_7 = 55; Fa.NUMBER_8 = 56; Fa.NUMBER_9 = 57; Fa.A = 65; Fa.B = 66; Fa.C = 67; Fa.D = 68; Fa.E = 69; Fa.F = 70; Fa.G = 71; Fa.H = 72; Fa.I = 73; Fa.J = 74; Fa.K = 75; Fa.L = 76; Fa.M = 77; Fa.N = 78; Fa.O = 79; Fa.P = 80; Fa.Q = 81; Fa.R = 82; Fa.S = 83; Fa.T = 84; Fa.U = 85; Fa.V = 86; Fa.W = 87; Fa.X = 88; Fa.Y = 89; Fa.Z = 90; Fa.NUMPAD_0 = 96; Fa.NUMPAD_1 = 97; Fa.NUMPAD_2 = 98; Fa.NUMPAD_3 = 99; Fa.NUMPAD_4 = 100; Fa.NUMPAD_5 = 101; Fa.NUMPAD_6 = 102; Fa.NUMPAD_7 = 103; Fa.NUMPAD_8 = 104; Fa.NUMPAD_9 = 105; Fa.NUMPAD_MULTIPLY = 106; Fa.NUMPAD_ADD = 107; Fa.NUMPAD_ENTER = 108; Fa.NUMPAD_SUBTRACT = 109; Fa.NUMPAD_DECIMAL = 110; Fa.NUMPAD_DIVIDE = 111; Fa.F1 = 112; Fa.F2 = 113; Fa.F3 = 114; Fa.F4 = 115; Fa.F5 = 116; Fa.F6 = 117; Fa.F7 = 118; Fa.F8 = 119; Fa.F9 = 120; Fa.F10 = 121; Fa.F11 = 122; Fa.F12 = 123; Fa.F13 = 124; Fa.F14 = 125; Fa.F15 = 126; Fa.BACKSPACE = 8; Fa.TAB = 9; Fa.ALTERNATE = 18; Fa.ENTER = 13; Fa.COMMAND = 15; Fa.SHIFT = 16; Fa.CONTROL = 17; Fa.BREAK = 19; Fa.CAPS_LOCK = 20; Fa.NUMPAD = 21; Fa.ESCAPE = 27; Fa.SPACE = 32; Fa.PAGE_UP = 33; Fa.PAGE_DOWN = 34; Fa.END = 35; Fa.HOME = 36; Fa.LEFT = 37; Fa.RIGHT = 39; Fa.UP = 38; Fa.DOWN = 40; Fa.INSERT = 45; Fa.DELETE = 46; Fa.NUMLOCK = 144; Fa.SEMICOLON = 186; Fa.EQUAL = 187; Fa.COMMA = 188; Fa.MINUS = 189; Fa.PERIOD = 190; Fa.SLASH = 191; Fa.BACKQUOTE = 192; Fa.LEFTBRACKET = 219; Fa.BACKSLASH = 220; Fa.RIGHTBRACKET = 221; Fa.QUOTE = 222; ve.supportsCursor = !0; ve.supportsNativeCursor = !0; ve.__cursor = "auto"; Bf.ARROW = "arrow"; Bf.AUTO = "auto"; Bf.BUTTON = "button"; Bf.HAND = "hand"; Bf.IBEAM = "ibeam"; Bf.__CROSSHAIR = "crosshair"; Bf.__CUSTOM = "custom"; Bf.__MOVE = "move"; Bf.__RESIZE_NESW = "resize_nesw"; Bf.__RESIZE_NS = "resize_ns"; Bf.__RESIZE_NWSE = "resize_nwse"; Bf.__RESIZE_WE = "resize_we"; Bf.__WAIT = "wait"; Bf.__WAIT_ARROW = "waitarrow"; W.__meta__ = {obj: {SuppressWarnings: [["checkstyle:ConstantName", "checkstyle:FieldDocComment"]]}}; W.OPMAP = new xa; W.REGMAP = new xa; W.SAMPLEMAP = new xa; W.MAX_NESTING = 4; W.MAX_OPCODES = 4096; W.FRAGMENT = "fragment"; W.VERTEX = "vertex"; W.SAMPLER_TYPE_SHIFT = 8; W.SAMPLER_DIM_SHIFT = 12; W.SAMPLER_SPECIAL_SHIFT = 16; W.SAMPLER_REPEAT_SHIFT = 20; W.SAMPLER_MIPMAP_SHIFT = 24; W.SAMPLER_FILTER_SHIFT = 28; W.REG_WRITE = 1; W.REG_READ = 2; W.REG_FRAG = 32; W.REG_VERT = 64; W.OP_SCALAR = 1; W.OP_SPECIAL_TEX = 8; W.OP_SPECIAL_MATRIX = 16; W.OP_FRAG_ONLY = 32; W.OP_VERT_ONLY = 64; W.OP_NO_DEST = 128; W.OP_VERSION2 = 256; W.OP_INCNEST = 512; W.OP_DECNEST = 1024; W.MOV = "mov"; W.ADD = "add"; W.SUB = "sub"; W.MUL = "mul"; W.DIV = "div"; W.RCP = "rcp"; W.MIN = "min"; W.MAX = "max"; W.FRC = "frc"; W.SQT = "sqt"; W.RSQ = "rsq"; W.POW = "pow"; W.LOG = "log"; W.EXP = "exp"; W.NRM = "nrm"; W.SIN = "sin"; W.COS = "cos"; W.CRS = "crs"; W.DP3 = "dp3"; W.DP4 = "dp4"; W.ABS = "abs"; W.NEG = "neg"; W.SAT = "sat"; W.M33 = "m33"; W.M44 = "m44"; W.M34 = "m34"; W.DDX = "ddx"; W.DDY = "ddy"; W.IFE = "ife"; W.INE = "ine"; W.IFG = "ifg"; W.IFL = "ifl"; W.IEG = "ieg"; W.IEL = "iel"; W.ELS = "els"; W.EIF = "eif"; W.TED = "ted"; W.KIL = "kil"; W.TEX = "tex"; W.SGE = "sge"; W.SLT = "slt"; W.SGN = "sgn"; W.SEQ = "seq"; W.SNE = "sne"; W.VA = "va"; W.VC = "vc"; W.VT = "vt"; W.VO = "vo"; W.VI = "vi"; W.FC = "fc"; W.FT = "ft"; W.FS = "fs"; W.FO = "fo"; W.FD = "fd"; W.IID = "iid"; W.D2 = "2d"; W.D3 = "3d"; W.CUBE = "cube"; W.MIPNEAREST = "mipnearest"; W.MIPLINEAR = "miplinear"; W.MIPNONE = "mipnone"; W.NOMIP = "nomip"; W.NEAREST = "nearest"; W.LINEAR = "linear"; W.ANISOTROPIC2X = "anisotropic2x"; W.ANISOTROPIC4X = "anisotropic4x"; W.ANISOTROPIC8X = "anisotropic8x"; W.ANISOTROPIC16X = "anisotropic16x"; W.CENTROID = "centroid"; W.SINGLE = "single"; W.IGNORESAMPLER = "ignoresampler"; W.REPEAT = "repeat"; W.WRAP = "wrap"; W.CLAMP = "clamp"; W.REPEAT_U_CLAMP_V = "repeat_u_clamp_v"; W.CLAMP_U_REPEAT_V = "clamp_u_repeat_v"; W.RGBA = "rgba"; W.COMPRESSED = "compressed"; W.COMPRESSEDALPHA = "compressedalpha"; W.DXT1 = "dxt1"; W.DXT5 = "dxt5"; W.VIDEO = "video"; W.initialized = !1; ec.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; tf.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; cd.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Da.cache = new on; Da.dispatcher = new jb; Fb.__bytePointer = new Xf(null, 0); uc.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; uc.defaultObjectEncoding = 10; gj.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; ej.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; fj.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Xr.BIG_ENDIAN = 0; Xr.LITTLE_ENDIAN = 1; rn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; sn.__meta__ = {obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}}; Ic.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, statics: {notImplemented: {SuppressWarnings: ["checkstyle:NullableParameter"]}} }; Ic.__sentWarnings = new xa; di.__meta__ = { obj: {SuppressWarnings: ["checkstyle:FieldDocComment"]}, fields: {touch: {SuppressWarnings: ["checkstyle:Dynamic"]}} }; di.__pool = new yd(function () { return new di }, function (a) { a.reset() }); Mg.VAL_ABSENT = -2147483648; Mg.EMPTY_SLOT = -1; Mg.NULL_POINTER = -1; vg.KEY_ABSENT = -2147483648; vg.VAL_ABSENT = -2147483648; vg.EMPTY_SLOT = -1; vg.NULL_POINTER = -1; gb.DEFAULT_PRECISION = 6; gb.DEFAULT_NUM_EXP_DIGITS = 2; gb._initialized = !1; gb.PAD_0 = 0; gb.PAD_SPACE = 20; Kg.FIXED = 0; Kg.MILD = -1; Kg.NORMAL = -2; Kg.DOUBLE = -3; Nb.PI = 3.141592653589793; Nb.PI_H = 1.5707963267948966; Nb.LN_2 = .6931471805599453; Nb.LN_2_10 = 6.931471805599453; Nb.overshoot = 1.70158; Nb.amplitude = 1; Nb.period = 3E-4; Aa.main() })("undefined" != typeof y ? y : "undefined" != typeof window ? window : "undefined" != typeof self ? self : this, "undefined" != typeof window ? window : "undefined" != typeof H ? H : "undefined" != typeof self ? self : this) }; la.lime.embed = function (R) { var H = {}, Q = la.lime.$scripts[R]; if (!Q) throw Error('Cannot find project name "' + R + '"'); Q(H, y); for (var ia in H) la[ia] = la[ia] || H[ia]; (Q = H.lime || window.lime) && Q.embed && this != Q.embed && Q.embed.apply(Q, arguments); return H }; "function" == typeof define && define.amd && (define([], function () { return la.lime }), define.__amd = define.amd, define.amd = null) })("undefined" != typeof exports ? exports : "function" == typeof define && define.amd ? {} : "undefined" != typeof window ? window : "undefined" != typeof self ? self : this, "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this); !function () { var la = function () { this.init() }; la.prototype = { init: function () { var k = this || y; return k._counter = 1E3, k._html5AudioPool = [], k.html5PoolSize = 10, k._codecs = {}, k._howls = [], k._muted = !1, k._volume = 1, k._canPlayEvent = "canplaythrough", k._navigator = "undefined" != typeof window && window.navigator ? window.navigator : null, k.masterGain = null, k.noAudio = !1, k.usingWebAudio = !0, k.autoSuspend = !0, k.ctx = null, k.autoUnlock = !0, k._setup(), k }, volume: function (t) { var q = this || y; if (t = parseFloat(t), q.ctx || k(), void 0 !== t && 0 <= t && 1 >= t) { if (q._volume = t, q._muted) return q; q.usingWebAudio && q.masterGain.gain.setValueAtTime(t, y.ctx.currentTime); for (var u = 0; u < q._howls.length; u++) if (!q._howls[u]._webAudio) for (var Aa = q._howls[u]._getSoundIds(), fb = 0; fb < Aa.length; fb++) { var za = q._howls[u]._soundById(Aa[fb]); za && za._node && (za._node.volume = za._volume * t) } return q } return q._volume }, mute: function (t) { var q = this || y; q.ctx || k(); q._muted = t; q.usingWebAudio && q.masterGain.gain.setValueAtTime(t ? 0 : q._volume, y.ctx.currentTime); for (var u = 0; u < q._howls.length; u++) if (!q._howls[u]._webAudio) for (var Aa = q._howls[u]._getSoundIds(), fb = 0; fb < Aa.length; fb++) { var za = q._howls[u]._soundById(Aa[fb]); za && za._node && (za._node.muted = !!t || za._muted) } return q }, unload: function () { for (var t = this || y, q = t._howls.length - 1; 0 <= q; q--) t._howls[q].unload(); return t.usingWebAudio && t.ctx && void 0 !== t.ctx.close && (t.ctx.close(), t.ctx = null, k()), t }, codecs: function (k) { return (this || y)._codecs[k.replace(/^x-/, "")] }, _setup: function () { var k = this || y; if (k.state = k.ctx ? k.ctx.state || "suspended" : "suspended", k._autoSuspend(), !k.usingWebAudio) if ("undefined" != typeof Audio) try { var q = new Audio; void 0 === q.oncanplaythrough && (k._canPlayEvent = "canplay") } catch (x) { k.noAudio = !0 } else k.noAudio = !0; try { q = new Audio, q.muted && (k.noAudio = !0) } catch (x) { } return k.noAudio || k._setupCodecs(), k }, _setupCodecs: function () { var k = this || y, q = null; try { q = "undefined" != typeof Audio ? new Audio : null } catch (fb) { return k } if (!q || "function" != typeof q.canPlayType) return k; var u = q.canPlayType("audio/mpeg;").replace(/^no$/, ""), Aa = k._navigator && k._navigator.userAgent.match(/OPR\/([0-6].)/g); Aa = Aa && 33 > parseInt(Aa[0].split("/")[1], 10); return k._codecs = { mp3: !(Aa || !u && !q.canPlayType("audio/mp3;").replace(/^no$/, "")), mpeg: !!u, opus: !!q.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""), ogg: !!q.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), oga: !!q.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), wav: !!q.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), aac: !!q.canPlayType("audio/aac;").replace(/^no$/, ""), caf: !!q.canPlayType("audio/x-caf;").replace(/^no$/, ""), m4a: !!(q.canPlayType("audio/x-m4a;") || q.canPlayType("audio/m4a;") || q.canPlayType("audio/aac;")).replace(/^no$/, ""), mp4: !!(q.canPlayType("audio/x-mp4;") || q.canPlayType("audio/mp4;") || q.canPlayType("audio/aac;")).replace(/^no$/, ""), weba: !!q.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""), webm: !!q.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""), dolby: !!q.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ""), flac: !!(q.canPlayType("audio/x-flac;") || q.canPlayType("audio/flac;")).replace(/^no$/, "") }, k }, _unlockAudio: function () { var k = this || y, q = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome|Safari/i.test(k._navigator && k._navigator.userAgent); if (!k._audioUnlocked && k.ctx && q) { k._audioUnlocked = !1; k.autoUnlock = !1; k._mobileUnloaded || 44100 === k.ctx.sampleRate || (k._mobileUnloaded = !0, k.unload()); k._scratchBuffer = k.ctx.createBuffer(1, 1, 22050); var u = function (t) { for (t = 0; t < k.html5PoolSize; t++) { var q = new Audio; q._unlocked = !0; k._releaseHtml5Audio(q) } for (t = 0; t < k._howls.length; t++) if (!k._howls[t]._webAudio) { q = k._howls[t]._getSoundIds(); for (var x = 0; x < q.length; x++) { var A = k._howls[t]._soundById(q[x]); A && A._node && !A._node._unlocked && (A._node._unlocked = !0, A._node.load()) } } k._autoResume(); var y = k.ctx.createBufferSource(); y.buffer = k._scratchBuffer; y.connect(k.ctx.destination); void 0 === y.start ? y.noteOn(0) : y.start(0); "function" == typeof k.ctx.resume && k.ctx.resume(); y.onended = function () { y.disconnect(0); k._audioUnlocked = !0; document.removeEventListener("touchstart", u, !0); document.removeEventListener("touchend", u, !0); document.removeEventListener("click", u, !0); for (var t = 0; t < k._howls.length; t++) k._howls[t]._emit("unlock") } }; return document.addEventListener("touchstart", u, !0), document.addEventListener("touchend", u, !0), document.addEventListener("click", u, !0), k } }, _obtainHtml5Audio: function () { var k = this || y; if (k._html5AudioPool.length) return k._html5AudioPool.pop(); k = (new Audio).play(); return k && "undefined" != typeof Promise && (k instanceof Promise || "function" == typeof k.then) && k.catch(function () { console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.") }), new Audio }, _releaseHtml5Audio: function (k) { var t = this || y; return k._unlocked && t._html5AudioPool.push(k), t }, _autoSuspend: function () { var k = this; if (k.autoSuspend && k.ctx && void 0 !== k.ctx.suspend && y.usingWebAudio) { for (var q = 0; q < k._howls.length; q++) if (k._howls[q]._webAudio) for (var u = 0; u < k._howls[q]._sounds.length; u++) if (!k._howls[q]._sounds[u]._paused) return k; return k._suspendTimer && clearTimeout(k._suspendTimer), k._suspendTimer = setTimeout(function () { k.autoSuspend && (k._suspendTimer = null, k.state = "suspending", k.ctx.suspend().then(function () { k.state = "suspended"; k._resumeAfterSuspend && (delete k._resumeAfterSuspend, k._autoResume()) })) }, 3E4), k } }, _autoResume: function () { var k = this; if (k.ctx && void 0 !== k.ctx.resume && y.usingWebAudio) return "running" === k.state && k._suspendTimer ? (clearTimeout(k._suspendTimer), k._suspendTimer = null) : "suspended" === k.state ? (k.ctx.resume().then(function () { k.state = "running"; for (var t = 0; t < k._howls.length; t++) k._howls[t]._emit("resume") }), k._suspendTimer && (clearTimeout(k._suspendTimer), k._suspendTimer = null)) : "suspending" === k.state && (k._resumeAfterSuspend = !0), k } }; var y = new la, R = function (k) { if (!k.src || 0 === k.src.length) return void console.error("An array of source files must be passed with any new Howl."); this.init(k) }; R.prototype = { init: function (t) { var q = this; return y.ctx || k(), q._autoplay = t.autoplay || !1, q._format = "string" != typeof t.format ? t.format : [t.format], q._html5 = t.html5 || !1, q._muted = t.mute || !1, q._loop = t.loop || !1, q._pool = t.pool || 5, q._preload = "boolean" != typeof t.preload || t.preload, q._rate = t.rate || 1, q._sprite = t.sprite || {}, q._src = "string" != typeof t.src ? t.src : [t.src], q._volume = void 0 !== t.volume ? t.volume : 1, q._xhrWithCredentials = t.xhrWithCredentials || !1, q._duration = 0, q._state = "unloaded", q._sounds = [], q._endTimers = {}, q._queue = [], q._playLock = !1, q._onend = t.onend ? [{fn: t.onend}] : [], q._onfade = t.onfade ? [{fn: t.onfade}] : [], q._onload = t.onload ? [{fn: t.onload}] : [], q._onloaderror = t.onloaderror ? [{fn: t.onloaderror}] : [], q._onplayerror = t.onplayerror ? [{fn: t.onplayerror}] : [], q._onpause = t.onpause ? [{fn: t.onpause}] : [], q._onplay = t.onplay ? [{fn: t.onplay}] : [], q._onstop = t.onstop ? [{fn: t.onstop}] : [], q._onmute = t.onmute ? [{fn: t.onmute}] : [], q._onvolume = t.onvolume ? [{fn: t.onvolume}] : [], q._onrate = t.onrate ? [{fn: t.onrate}] : [], q._onseek = t.onseek ? [{fn: t.onseek}] : [], q._onunlock = t.onunlock ? [{fn: t.onunlock}] : [], q._onresume = [], q._webAudio = y.usingWebAudio && !q._html5, void 0 !== y.ctx && y.ctx && y.autoUnlock && y._unlockAudio(), y._howls.push(q), q._autoplay && q._queue.push({ event: "play", action: function () { q.play() } }), q._preload && q.load(), q }, load: function () { var k = null; if (y.noAudio) return void this._emit("loaderror", null, "No audio support."); "string" == typeof this._src && (this._src = [this._src]); for (var q = 0; q < this._src.length; q++) { var u; if (this._format && this._format[q]) var Aa = this._format[q]; else { if ("string" != typeof (u = this._src[q])) { this._emit("loaderror", null, "Non-string found in selected audio sources - ignoring."); continue } (Aa = /^data:audio\/([^;,]+);/i.exec(u)) || (Aa = /\.([^.]+)$/.exec(u.split("?", 1)[0])); Aa && (Aa = Aa[1].toLowerCase()) } if (Aa || console.warn('No file extension was found. Consider using the "format" property or specify an extension.'), Aa && y.codecs(Aa)) { k = this._src[q]; break } } return k ? (this._src = k, this._state = "loading", "https:" === window.location.protocol && "http:" === k.slice(0, 5) && (this._html5 = !0, this._webAudio = !1), new H(this), this._webAudio && ia(this), this) : void this._emit("loaderror", null, "No codec support for selected audio sources.") }, play: function (k, q) { var t = this, u = null; if ("number" == typeof k) u = k, k = null; else { if ("string" == typeof k && "loaded" === t._state && !t._sprite[k]) return null; if (void 0 === k && (k = "__default", !t._playLock)) { for (var A = 0, za = 0; za < t._sounds.length; za++) t._sounds[za]._paused && !t._sounds[za]._ended && (A++, u = t._sounds[za]._id); 1 === A ? k = null : u = null } } var K = u ? t._soundById(u) : t._inactiveSound(); if (!K) return null; if (u && !k && (k = K._sprite || "__default"), "loaded" !== t._state) { K._sprite = k; K._ended = !1; var H = K._id; return t._queue.push({ event: "play", action: function () { t.play(H) } }), H } if (u && !K._paused) return q || t._loadQueue("play"), K._id; t._webAudio && y._autoResume(); var Q = Math.max(0, 0 < K._seek ? K._seek : t._sprite[k][0] / 1E3), R = Math.max(0, (t._sprite[k][0] + t._sprite[k][1]) / 1E3 - Q), la = 1E3 * R / Math.abs(K._rate), V = t._sprite[k][0] / 1E3, z = (t._sprite[k][0] + t._sprite[k][1]) / 1E3, ia = !(!K._loop && !t._sprite[k][2]); K._sprite = k; K._ended = !1; var Sa = function () { K._paused = !1; K._seek = Q; K._start = V; K._stop = z; K._loop = ia }; if (Q >= z) return void t._ended(K); var T = K._node; if (t._webAudio) u = function () { t._playLock = !1; Sa(); t._refreshBuffer(K); T.gain.setValueAtTime(K._muted || t._muted ? 0 : K._volume, y.ctx.currentTime); K._playStart = y.ctx.currentTime; void 0 === T.bufferSource.start ? K._loop ? T.bufferSource.noteGrainOn(0, Q, 86400) : T.bufferSource.noteGrainOn(0, Q, R) : K._loop ? T.bufferSource.start(0, Q, 86400) : T.bufferSource.start(0, Q, R); la !== 1 / 0 && (t._endTimers[K._id] = setTimeout(t._ended.bind(t, K), la)); q || setTimeout(function () { t._emit("play", K._id); t._loadQueue() }, 0) }, "running" === y.state ? u() : (t._playLock = !0, t.once("resume", u), t._clearTimer(K._id)); else { var xb = function () { T.currentTime = Q; T.muted = K._muted || t._muted || y._muted || T.muted; T.volume = K._volume * y.volume(); T.playbackRate = K._rate; try { var u = T.play(); if (u && "undefined" != typeof Promise && (u instanceof Promise || "function" == typeof u.then) ? (t._playLock = !0, Sa(), u.then(function () { t._playLock = !1; T._unlocked = !0; q || (t._emit("play", K._id), t._loadQueue()) }).catch(function () { t._playLock = !1; t._emit("playerror", K._id, "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."); K._ended = !0; K._paused = !0 })) : q || (t._playLock = !1, Sa(), t._emit("play", K._id), t._loadQueue()), T.playbackRate = K._rate, T.paused) return void t._emit("playerror", K._id, "Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."); "__default" !== k || K._loop ? t._endTimers[K._id] = setTimeout(t._ended.bind(t, K), la) : (t._endTimers[K._id] = function () { t._ended(K); T.removeEventListener("ended", t._endTimers[K._id], !1) }, T.addEventListener("ended", t._endTimers[K._id], !1)) } catch (te) { t._emit("playerror", K._id, te) } }; u = window && window.ejecta || !T.readyState && y._navigator.isCocoonJS; if (3 <= T.readyState || u) xb(); else { t._playLock = !0; var Ha = function () { xb(); T.removeEventListener(y._canPlayEvent, Ha, !1) }; T.addEventListener(y._canPlayEvent, Ha, !1); t._clearTimer(K._id) } } return K._id }, pause: function (k, q) { var t = this; if ("loaded" !== t._state || t._playLock) return t._queue.push({ event: "pause", action: function () { t.pause(k) } }), t; for (var u = t._getSoundIds(k), A = 0; A < u.length; A++) { t._clearTimer(u[A]); var y = t._soundById(u[A]); if (y && !y._paused && (y._seek = t.seek(u[A]), y._rateSeek = 0, y._paused = !0, t._stopFade(u[A]), y._node)) if (t._webAudio) { if (!y._node.bufferSource) continue; void 0 === y._node.bufferSource.stop ? y._node.bufferSource.noteOff(0) : y._node.bufferSource.stop(0); t._cleanBuffer(y._node) } else isNaN(y._node.duration) && y._node.duration !== 1 / 0 || y._node.pause(); q || t._emit("pause", y ? y._id : null) } return t }, stop: function (k, q) { var t = this; if ("loaded" !== t._state || t._playLock) return t._queue.push({ event: "stop", action: function () { t.stop(k) } }), t; for (var u = t._getSoundIds(k), A = 0; A < u.length; A++) { t._clearTimer(u[A]); var y = t._soundById(u[A]); y && (y._seek = y._start || 0, y._rateSeek = 0, y._paused = !0, y._ended = !0, t._stopFade(u[A]), y._node && (t._webAudio ? y._node.bufferSource && (void 0 === y._node.bufferSource.stop ? y._node.bufferSource.noteOff(0) : y._node.bufferSource.stop(0), t._cleanBuffer(y._node)) : isNaN(y._node.duration) && y._node.duration !== 1 / 0 || (y._node.currentTime = y._start || 0, y._node.pause())), q || t._emit("stop", y._id)) } return t }, mute: function (k, q) { var t = this; if ("loaded" !== t._state || t._playLock) return t._queue.push({ event: "mute", action: function () { t.mute(k, q) } }), t; if (void 0 === q) { if ("boolean" != typeof k) return t._muted; t._muted = k } for (var u = t._getSoundIds(q), A = 0; A < u.length; A++) { var H = t._soundById(u[A]); H && (H._muted = k, H._interval && t._stopFade(H._id), t._webAudio && H._node ? H._node.gain.setValueAtTime(k ? 0 : H._volume, y.ctx.currentTime) : H._node && (H._node.muted = !!y._muted || k), t._emit("mute", H._id)) } return t }, volume: function () { var k, q, u = this, H = arguments; if (0 === H.length) return u._volume; 1 === H.length || 2 === H.length && void 0 === H[1] ? 0 <= u._getSoundIds().indexOf(H[0]) ? q = parseInt(H[0], 10) : k = parseFloat(H[0]) : 2 <= H.length && (k = parseFloat(H[0]), q = parseInt(H[1], 10)); var Q; if (!(void 0 !== k && 0 <= k && 1 >= k)) return Q = q ? u._soundById(q) : u._sounds[0], Q ? Q._volume : 0; if ("loaded" !== u._state || u._playLock) return u._queue.push({ event: "volume", action: function () { u.volume.apply(u, H) } }), u; void 0 === q && (u._volume = k); q = u._getSoundIds(q); for (var za = 0; za < q.length; za++) (Q = u._soundById(q[za])) && (Q._volume = k, H[2] || u._stopFade(q[za]), u._webAudio && Q._node && !Q._muted ? Q._node.gain.setValueAtTime(k, y.ctx.currentTime) : Q._node && !Q._muted && (Q._node.volume = k * y.volume()), u._emit("volume", Q._id)); return u }, fade: function (k, q, u, H) { var t = this; if ("loaded" !== t._state || t._playLock) return t._queue.push({ event: "fade", action: function () { t.fade(k, q, u, H) } }), t; k = parseFloat(k); q = parseFloat(q); u = parseFloat(u); t.volume(k, H); for (var x = t._getSoundIds(H), A = 0; A < x.length; A++) { var Q = t._soundById(x[A]); if (Q) { if (H || t._stopFade(x[A]), t._webAudio && !Q._muted) { var Aa = y.ctx.currentTime, R = Aa + u / 1E3; Q._volume = k; Q._node.gain.setValueAtTime(k, Aa); Q._node.gain.linearRampToValueAtTime(q, R) } t._startFadeInterval(Q, k, q, u, x[A], void 0 === H) } } return t }, _startFadeInterval: function (k, q, u, y, H, Q) { var t = this, x = q, A = u - q; H = Math.abs(A / .01); H = Math.max(4, 0 < H ? y / H : y); var Aa = Date.now(); k._fadeTo = u; k._interval = setInterval(function () { var K = (Date.now() - Aa) / y; Aa = Date.now(); x += A * K; x = Math.max(0, x); x = Math.min(1, x); x = Math.round(100 * x) / 100; t._webAudio ? k._volume = x : t.volume(x, k._id, !0); Q && (t._volume = x); (u < q && x <= u || u > q && x >= u) && (clearInterval(k._interval), k._interval = null, k._fadeTo = null, t.volume(u, k._id), t._emit("fade", k._id)) }, H) }, _stopFade: function (k) { var t = this._soundById(k); return t && t._interval && (this._webAudio && t._node.gain.cancelScheduledValues(y.ctx.currentTime), clearInterval(t._interval), t._interval = null, this.volume(t._fadeTo, k), t._fadeTo = null, this._emit("fade", k)), this }, loop: function () { var k, q, u, y = arguments; if (0 === y.length) return this._loop; if (1 === y.length) { if ("boolean" != typeof y[0]) return !!(u = this._soundById(parseInt(y[0], 10))) && u._loop; this._loop = k = y[0] } else 2 === y.length && (k = y[0], q = parseInt(y[1], 10)); q = this._getSoundIds(q); for (y = 0; y < q.length; y++) (u = this._soundById(q[y])) && (u._loop = k, this._webAudio && u._node && u._node.bufferSource && (u._node.bufferSource.loop = k, k && (u._node.bufferSource.loopStart = u._start || 0, u._node.bufferSource.loopEnd = u._stop))); return this }, rate: function () { var k, q, u = this, H = arguments; 0 === H.length ? q = u._sounds[0]._id : 1 === H.length ? 0 <= u._getSoundIds().indexOf(H[0]) ? q = parseInt(H[0], 10) : k = parseFloat(H[0]) : 2 === H.length && (k = parseFloat(H[0]), q = parseInt(H[1], 10)); var Q; if ("number" != typeof k) return Q = u._soundById(q), Q ? Q._rate : u._rate; if ("loaded" !== u._state || u._playLock) return u._queue.push({ event: "rate", action: function () { u.rate.apply(u, H) } }), u; void 0 === q && (u._rate = k); q = u._getSoundIds(q); for (var R = 0; R < q.length; R++) if (Q = u._soundById(q[R])) { u.playing(q[R]) && (Q._rateSeek = u.seek(q[R]), Q._playStart = u._webAudio ? y.ctx.currentTime : Q._playStart); Q._rate = k; u._webAudio && Q._node && Q._node.bufferSource ? Q._node.bufferSource.playbackRate.setValueAtTime(k, y.ctx.currentTime) : Q._node && (Q._node.playbackRate = k); var K = u.seek(q[R]); K = 1E3 * ((u._sprite[Q._sprite][0] + u._sprite[Q._sprite][1]) / 1E3 - K) / Math.abs(Q._rate); !u._endTimers[q[R]] && Q._paused || (u._clearTimer(q[R]), u._endTimers[q[R]] = setTimeout(u._ended.bind(u, Q), K)); u._emit("rate", Q._id) } return u }, seek: function () { var k, q, u = this, H = arguments; 0 === H.length ? q = u._sounds[0]._id : 1 === H.length ? 0 <= u._getSoundIds().indexOf(H[0]) ? q = parseInt(H[0], 10) : u._sounds.length && (q = u._sounds[0]._id, k = parseFloat(H[0])) : 2 === H.length && (k = parseFloat(H[0]), q = parseInt(H[1], 10)); if (void 0 === q) return u; if ("loaded" !== u._state || u._playLock) return u._queue.push({ event: "seek", action: function () { u.seek.apply(u, H) } }), u; var Q = u._soundById(q); if (Q) { if (!("number" == typeof k && 0 <= k)) return u._webAudio ? (k = u.playing(q) ? y.ctx.currentTime - Q._playStart : 0, Q._seek + ((Q._rateSeek ? Q._rateSeek - Q._seek : 0) + k * Math.abs(Q._rate))) : Q._node.currentTime; var R = u.playing(q); R && u.pause(q, !0); Q._seek = k; Q._ended = !1; u._clearTimer(q); u._webAudio || !Q._node || isNaN(Q._node.duration) || (Q._node.currentTime = k); var K = function () { u._emit("seek", q); R && u.play(q, !0) }; if (R && !u._webAudio) { var la = function () { u._playLock ? setTimeout(la, 0) : K() }; setTimeout(la, 0) } else K() } return u }, playing: function (k) { if ("number" == typeof k) return k = this._soundById(k), !!k && !k._paused; for (k = 0; k < this._sounds.length; k++) if (!this._sounds[k]._paused) return !0; return !1 }, duration: function (k) { var q = this._duration; k = this._soundById(k); return k && (q = this._sprite[k._sprite][1] / 1E3), q }, state: function () { return this._state }, unload: function () { for (var k = this._sounds, q = 0; q < k.length; q++) (k[q]._paused || this.stop(k[q]._id), this._webAudio) || (/MSIE |Trident\//.test(y._navigator && y._navigator.userAgent) || (k[q]._node.src = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"), k[q]._node.removeEventListener("error", k[q]._errorFn, !1), k[q]._node.removeEventListener(y._canPlayEvent, k[q]._loadFn, !1), y._releaseHtml5Audio(k[q]._node)), delete k[q]._node, this._clearTimer(k[q]._id); q = y._howls.indexOf(this); 0 <= q && y._howls.splice(q, 1); k = !0; for (q = 0; q < y._howls.length; q++) if (y._howls[q]._src === this._src || 0 <= this._src.indexOf(y._howls[q]._src)) { k = !1; break } return Q && k && delete Q[this._src], y.noAudio = !1, this._state = "unloaded", this._sounds = [], null }, on: function (k, q, u, y) { k = this["_on" + k]; return "function" == typeof q && k.push(y ? {id: u, fn: q, once: y} : {id: u, fn: q}), this }, off: function (k, q, u) { var t = this["_on" + k]; if ("number" == typeof q && (u = q, q = null), q || u) for (k = 0; k < t.length; k++) { var x = u === t[k].id; if (q === t[k].fn && x || !q && x) { t.splice(k, 1); break } } else if (k) this["_on" + k] = []; else for (q = Object.keys(this), k = 0; k < q.length; k++) 0 === q[k].indexOf("_on") && Array.isArray(this[q[k]]) && (this[q[k]] = []); return this }, once: function (k, q, u) { return this.on(k, q, u, 1), this }, _emit: function (k, q, u) { for (var t = this["_on" + k], x = t.length - 1; 0 <= x; x--) t[x].id && t[x].id !== q && "load" !== k || (setTimeout(function (k) { k.call(this, q, u) }.bind(this, t[x].fn), 0), t[x].once && this.off(k, t[x].fn, t[x].id)); return this._loadQueue(k), this }, _loadQueue: function (k) { if (0 < this._queue.length) { var q = this._queue[0]; q.event === k && (this._queue.shift(), this._loadQueue()); k || q.action() } return this }, _ended: function (k) { var q = k._sprite; if (!this._webAudio && k._node && !k._node.paused && !k._node.ended && k._node.currentTime < k._stop) return setTimeout(this._ended.bind(this, k), 100), this; q = !(!k._loop && !this._sprite[q][2]); if (this._emit("end", k._id), !this._webAudio && q && this.stop(k._id, !0).play(k._id), this._webAudio && q) { this._emit("play", k._id); k._seek = k._start || 0; k._rateSeek = 0; k._playStart = y.ctx.currentTime; var t = 1E3 * (k._stop - k._start) / Math.abs(k._rate); this._endTimers[k._id] = setTimeout(this._ended.bind(this, k), t) } return this._webAudio && !q && (k._paused = !0, k._ended = !0, k._seek = k._start || 0, k._rateSeek = 0, this._clearTimer(k._id), this._cleanBuffer(k._node), y._autoSuspend()), this._webAudio || q || this.stop(k._id, !0), this }, _clearTimer: function (k) { if (this._endTimers[k]) { if ("function" != typeof this._endTimers[k]) clearTimeout(this._endTimers[k]); else { var q = this._soundById(k); q && q._node && q._node.removeEventListener("ended", this._endTimers[k], !1) } delete this._endTimers[k] } return this }, _soundById: function (k) { for (var q = 0; q < this._sounds.length; q++) if (k === this._sounds[q]._id) return this._sounds[q]; return null }, _inactiveSound: function () { this._drain(); for (var k = 0; k < this._sounds.length; k++) if (this._sounds[k]._ended) return this._sounds[k].reset(); return new H(this) }, _drain: function () { var k = this._pool, q = 0, u; if (!(this._sounds.length < k)) { for (u = 0; u < this._sounds.length; u++) this._sounds[u]._ended && q++; for (u = this._sounds.length - 1; 0 <= u && !(q <= k); u--) this._sounds[u]._ended && (this._webAudio && this._sounds[u]._node && this._sounds[u]._node.disconnect(0), this._sounds.splice(u, 1), q--) } }, _getSoundIds: function (k) { if (void 0 === k) { k = []; for (var q = 0; q < this._sounds.length; q++) k.push(this._sounds[q]._id); return k } return [k] }, _refreshBuffer: function (k) { return k._node.bufferSource = y.ctx.createBufferSource(), k._node.bufferSource.buffer = Q[this._src], k._panner ? k._node.bufferSource.connect(k._panner) : k._node.bufferSource.connect(k._node), k._node.bufferSource.loop = k._loop, k._loop && (k._node.bufferSource.loopStart = k._start || 0, k._node.bufferSource.loopEnd = k._stop || 0), k._node.bufferSource.playbackRate.setValueAtTime(k._rate, y.ctx.currentTime), this }, _cleanBuffer: function (k) { var q = y._navigator && 0 <= y._navigator.vendor.indexOf("Apple"); if (y._scratchBuffer && k.bufferSource && (k.bufferSource.onended = null, k.bufferSource.disconnect(0), q)) try { k.bufferSource.buffer = y._scratchBuffer } catch (x) { } return k.bufferSource = null, this } }; var H = function (k) { this._parent = k; this.init() }; H.prototype = { init: function () { var k = this._parent; return this._muted = k._muted, this._loop = k._loop, this._volume = k._volume, this._rate = k._rate, this._seek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++y._counter, k._sounds.push(this), this.create(), this }, create: function () { var k = this._parent, q = y._muted || this._muted || this._parent._muted ? 0 : this._volume; return k._webAudio ? (this._node = void 0 === y.ctx.createGain ? y.ctx.createGainNode() : y.ctx.createGain(), this._node.gain.setValueAtTime(q, y.ctx.currentTime), this._node.paused = !0, this._node.connect(y.masterGain)) : (this._node = y._obtainHtml5Audio(), this._errorFn = this._errorListener.bind(this), this._node.addEventListener("error", this._errorFn, !1), this._loadFn = this._loadListener.bind(this), this._node.addEventListener(y._canPlayEvent, this._loadFn, !1), this._node.src = k._src, this._node.preload = "auto", this._node.volume = q * y.volume(), this._node.load()), this }, reset: function () { var k = this._parent; return this._muted = k._muted, this._loop = k._loop, this._volume = k._volume, this._rate = k._rate, this._seek = 0, this._rateSeek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++y._counter, this }, _errorListener: function () { this._parent._emit("loaderror", this._id, this._node.error ? this._node.error.code : 0); this._node.removeEventListener("error", this._errorFn, !1) }, _loadListener: function () { var k = this._parent; k._duration = Math.ceil(10 * this._node.duration) / 10; 0 === Object.keys(k._sprite).length && (k._sprite = {__default: [0, 1E3 * k._duration]}); "loaded" !== k._state && (k._state = "loaded", k._emit("load"), k._loadQueue()); this._node.removeEventListener(y._canPlayEvent, this._loadFn, !1) } }; var Q = {}, ia = function (k) { var t = k._src; if (Q[t]) return k._duration = Q[t].duration, void q(k); if (/^data:[^;]+;base64,/.test(t)) { for (var x = atob(t.split(",")[1]), y = new Uint8Array(x.length), H = 0; H < x.length; ++H) y[H] = x.charCodeAt(H); hb(y.buffer, k) } else { var R = new XMLHttpRequest; R.open("GET", t, !0); R.withCredentials = k._xhrWithCredentials; R.responseType = "arraybuffer"; R.onload = function () { var q = (R.status + "")[0]; if ("0" !== q && "2" !== q && "3" !== q) return void k._emit("loaderror", null, "Failed loading audio file with status: " + R.status + "."); hb(R.response, k) }; R.onerror = function () { k._webAudio && (k._html5 = !0, k._webAudio = !1, k._sounds = [], delete Q[t], k.load()) }; u(R) } }, u = function (k) { try { k.send() } catch (A) { k.onerror() } }, hb = function (k, u) { var t = function () { u._emit("loaderror", null, "Decoding audio data failed.") }, A = function (k) { k && 0 < u._sounds.length ? (Q[u._src] = k, q(u, k)) : t() }; "undefined" != typeof Promise && 1 === y.ctx.decodeAudioData.length ? y.ctx.decodeAudioData(k).then(A).catch(t) : y.ctx.decodeAudioData(k, A, t) }, q = function (k, q) { q && !k._duration && (k._duration = q.duration); 0 === Object.keys(k._sprite).length && (k._sprite = { __default: [0, 1E3 * k._duration] }); "loaded" !== k._state && (k._state = "loaded", k._emit("load"), k._loadQueue()) }, k = function () { if (y.usingWebAudio) { try { "undefined" != typeof AudioContext ? y.ctx = new AudioContext : "undefined" != typeof webkitAudioContext ? y.ctx = new webkitAudioContext : y.usingWebAudio = !1 } catch (x) { y.usingWebAudio = !1 } y.ctx || (y.usingWebAudio = !1); var k = /iP(hone|od|ad)/.test(y._navigator && y._navigator.platform), q = y._navigator && y._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); q = q ? parseInt(q[1], 10) : null; k && q && 9 > q && (k = /safari/.test(y._navigator && y._navigator.userAgent.toLowerCase()), (y._navigator && y._navigator.standalone && !k || y._navigator && !y._navigator.standalone && !k) && (y.usingWebAudio = !1)); y.usingWebAudio && (y.masterGain = void 0 === y.ctx.createGain ? y.ctx.createGainNode() : y.ctx.createGain(), y.masterGain.gain.setValueAtTime(y._muted ? 0 : 1, y.ctx.currentTime), y.masterGain.connect(y.ctx.destination)); y._setup() } }; "function" == typeof define && define.amd && define([], function () { return {Howler: y, Howl: R} }); "undefined" != typeof exports && (exports.Howler = y, exports.Howl = R); "undefined" != typeof window ? (window.HowlerGlobal = la, window.Howler = y, window.Howl = R, window.Sound = H) : "undefined" != typeof global && (global.HowlerGlobal = la, global.Howler = y, global.Howl = R, global.Sound = H) }(); !function () { HowlerGlobal.prototype._pos = [0, 0, 0]; HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0]; HowlerGlobal.prototype.stereo = function (y) { if (!this.ctx || !this.ctx.listener) return this; for (var R = this._howls.length - 1; 0 <= R; R--) this._howls[R].stereo(y); return this }; HowlerGlobal.prototype.pos = function (y, R, H) { return this.ctx && this.ctx.listener ? (R = "number" != typeof R ? this._pos[1] : R, H = "number" != typeof H ? this._pos[2] : H, "number" != typeof y ? this._pos : (this._pos = [y, R, H], void 0 !== this.ctx.listener.positionX ? (this.ctx.listener.positionX.setTargetAtTime(this._pos[0], Howler.ctx.currentTime, .1), this.ctx.listener.positionY.setTargetAtTime(this._pos[1], Howler.ctx.currentTime, .1), this.ctx.listener.positionZ.setTargetAtTime(this._pos[2], Howler.ctx.currentTime, .1)) : this.ctx.listener.setPosition(this._pos[0], this._pos[1], this._pos[2]), this)) : this }; HowlerGlobal.prototype.orientation = function (y, R, H, Q, la, u) { if (!this.ctx || !this.ctx.listener) return this; var ia = this._orientation; return R = "number" != typeof R ? ia[1] : R, H = "number" != typeof H ? ia[2] : H, Q = "number" != typeof Q ? ia[3] : Q, la = "number" != typeof la ? ia[4] : la, u = "number" != typeof u ? ia[5] : u, "number" != typeof y ? ia : (this._orientation = [y, R, H, Q, la, u], void 0 !== this.ctx.listener.forwardX ? (this.ctx.listener.forwardX.setTargetAtTime(y, Howler.ctx.currentTime, .1), this.ctx.listener.forwardY.setTargetAtTime(R, Howler.ctx.currentTime, .1), this.ctx.listener.forwardZ.setTargetAtTime(H, Howler.ctx.currentTime, .1), this.ctx.listener.upX.setTargetAtTime(y, Howler.ctx.currentTime, .1), this.ctx.listener.upY.setTargetAtTime(R, Howler.ctx.currentTime, .1), this.ctx.listener.upZ.setTargetAtTime(H, Howler.ctx.currentTime, .1)) : this.ctx.listener.setOrientation(y, R, H, Q, la, u), this) }; Howl.prototype.init = function (y) { return function (R) { return this._orientation = R.orientation || [1, 0, 0], this._stereo = R.stereo || null, this._pos = R.pos || null, this._pannerAttr = { coneInnerAngle: void 0 !== R.coneInnerAngle ? R.coneInnerAngle : 360, coneOuterAngle: void 0 !== R.coneOuterAngle ? R.coneOuterAngle : 360, coneOuterGain: void 0 !== R.coneOuterGain ? R.coneOuterGain : 0, distanceModel: void 0 !== R.distanceModel ? R.distanceModel : "inverse", maxDistance: void 0 !== R.maxDistance ? R.maxDistance : 1E4, panningModel: void 0 !== R.panningModel ? R.panningModel : "HRTF", refDistance: void 0 !== R.refDistance ? R.refDistance : 1, rolloffFactor: void 0 !== R.rolloffFactor ? R.rolloffFactor : 1 }, this._onstereo = R.onstereo ? [{fn: R.onstereo}] : [], this._onpos = R.onpos ? [{fn: R.onpos}] : [], this._onorientation = R.onorientation ? [{fn: R.onorientation}] : [], y.call(this, R) } }(Howl.prototype.init); Howl.prototype.stereo = function (y, R) { var H = this; if (!H._webAudio) return H; if ("loaded" !== H._state) return H._queue.push({ event: "stereo", action: function () { H.stereo(y, R) } }), H; var Q = void 0 === Howler.ctx.createStereoPanner ? "spatial" : "stereo"; if (void 0 === R) { if ("number" != typeof y) return H._stereo; H._stereo = y; H._pos = [y, 0, 0] } for (var ia = H._getSoundIds(R), u = 0; u < ia.length; u++) { var hb = H._soundById(ia[u]); if (hb) { if ("number" != typeof y) return hb._stereo; hb._stereo = y; hb._pos = [y, 0, 0]; hb._node && (hb._pannerAttr.panningModel = "equalpower", hb._panner && hb._panner.pan || la(hb, Q), "spatial" === Q ? void 0 !== hb._panner.positionX ? (hb._panner.positionX.setValueAtTime(y, Howler.ctx.currentTime), hb._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime), hb._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime)) : hb._panner.setPosition(y, 0, 0) : hb._panner.pan.setValueAtTime(y, Howler.ctx.currentTime)); H._emit("stereo", hb._id) } } return H }; Howl.prototype.pos = function (y, R, H, Q) { var ia = this; if (!ia._webAudio) return ia; if ("loaded" !== ia._state) return ia._queue.push({ event: "pos", action: function () { ia.pos(y, R, H, Q) } }), ia; if (R = "number" != typeof R ? 0 : R, H = "number" != typeof H ? -.5 : H, void 0 === Q) { if ("number" != typeof y) return ia._pos; ia._pos = [y, R, H] } for (var u = ia._getSoundIds(Q), hb = 0; hb < u.length; hb++) { var q = ia._soundById(u[hb]); if (q) { if ("number" != typeof y) return q._pos; q._pos = [y, R, H]; q._node && (q._panner && !q._panner.pan || la(q, "spatial"), void 0 !== q._panner.positionX ? (q._panner.positionX.setValueAtTime(y, Howler.ctx.currentTime), q._panner.positionY.setValueAtTime(R, Howler.ctx.currentTime), q._panner.positionZ.setValueAtTime(H, Howler.ctx.currentTime)) : q._panner.setPosition(y, R, H)); ia._emit("pos", q._id) } } return ia }; Howl.prototype.orientation = function (y, R, H, Q) { var ia = this; if (!ia._webAudio) return ia; if ("loaded" !== ia._state) return ia._queue.push({ event: "orientation", action: function () { ia.orientation(y, R, H, Q) } }), ia; if (R = "number" != typeof R ? ia._orientation[1] : R, H = "number" != typeof H ? ia._orientation[2] : H, void 0 === Q) { if ("number" != typeof y) return ia._orientation; ia._orientation = [y, R, H] } for (var u = ia._getSoundIds(Q), hb = 0; hb < u.length; hb++) { var q = ia._soundById(u[hb]); if (q) { if ("number" != typeof y) return q._orientation; q._orientation = [y, R, H]; q._node && (q._panner || (q._pos || (q._pos = ia._pos || [0, 0, -.5]), la(q, "spatial")), void 0 !== q._panner.orientationX ? (q._panner.orientationX.setValueAtTime(y, Howler.ctx.currentTime), q._panner.orientationY.setValueAtTime(R, Howler.ctx.currentTime), q._panner.orientationZ.setValueAtTime(H, Howler.ctx.currentTime)) : q._panner.setOrientation(y, R, H)); ia._emit("orientation", q._id) } } return ia }; Howl.prototype.pannerAttr = function () { var y, R, H = arguments; if (!this._webAudio) return this; if (0 === H.length) return this._pannerAttr; if (1 === H.length) { if ("object" != typeof H[0]) return R = this._soundById(parseInt(H[0], 10)), R ? R._pannerAttr : this._pannerAttr; var Q = H[0]; void 0 === y && (Q.pannerAttr || (Q.pannerAttr = { coneInnerAngle: Q.coneInnerAngle, coneOuterAngle: Q.coneOuterAngle, coneOuterGain: Q.coneOuterGain, distanceModel: Q.distanceModel, maxDistance: Q.maxDistance, refDistance: Q.refDistance, rolloffFactor: Q.rolloffFactor, panningModel: Q.panningModel }), this._pannerAttr = { coneInnerAngle: void 0 !== Q.pannerAttr.coneInnerAngle ? Q.pannerAttr.coneInnerAngle : this._coneInnerAngle, coneOuterAngle: void 0 !== Q.pannerAttr.coneOuterAngle ? Q.pannerAttr.coneOuterAngle : this._coneOuterAngle, coneOuterGain: void 0 !== Q.pannerAttr.coneOuterGain ? Q.pannerAttr.coneOuterGain : this._coneOuterGain, distanceModel: void 0 !== Q.pannerAttr.distanceModel ? Q.pannerAttr.distanceModel : this._distanceModel, maxDistance: void 0 !== Q.pannerAttr.maxDistance ? Q.pannerAttr.maxDistance : this._maxDistance, refDistance: void 0 !== Q.pannerAttr.refDistance ? Q.pannerAttr.refDistance : this._refDistance, rolloffFactor: void 0 !== Q.pannerAttr.rolloffFactor ? Q.pannerAttr.rolloffFactor : this._rolloffFactor, panningModel: void 0 !== Q.pannerAttr.panningModel ? Q.pannerAttr.panningModel : this._panningModel }) } else 2 === H.length && (Q = H[0], y = parseInt(H[1], 10)); y = this._getSoundIds(y); for (H = 0; H < y.length; H++) if (R = this._soundById(y[H])) { var ia = R._pannerAttr; ia = { coneInnerAngle: void 0 !== Q.coneInnerAngle ? Q.coneInnerAngle : ia.coneInnerAngle, coneOuterAngle: void 0 !== Q.coneOuterAngle ? Q.coneOuterAngle : ia.coneOuterAngle, coneOuterGain: void 0 !== Q.coneOuterGain ? Q.coneOuterGain : ia.coneOuterGain, distanceModel: void 0 !== Q.distanceModel ? Q.distanceModel : ia.distanceModel, maxDistance: void 0 !== Q.maxDistance ? Q.maxDistance : ia.maxDistance, refDistance: void 0 !== Q.refDistance ? Q.refDistance : ia.refDistance, rolloffFactor: void 0 !== Q.rolloffFactor ? Q.rolloffFactor : ia.rolloffFactor, panningModel: void 0 !== Q.panningModel ? Q.panningModel : ia.panningModel }; var u = R._panner; u ? (u.coneInnerAngle = ia.coneInnerAngle, u.coneOuterAngle = ia.coneOuterAngle, u.coneOuterGain = ia.coneOuterGain, u.distanceModel = ia.distanceModel, u.maxDistance = ia.maxDistance, u.refDistance = ia.refDistance, u.rolloffFactor = ia.rolloffFactor, u.panningModel = ia.panningModel) : (R._pos || (R._pos = this._pos || [0, 0, -.5]), la(R, "spatial")) } return this }; Sound.prototype.init = function (y) { return function () { var R = this._parent; this._orientation = R._orientation; this._stereo = R._stereo; this._pos = R._pos; this._pannerAttr = R._pannerAttr; y.call(this); this._stereo ? R.stereo(this._stereo) : this._pos && R.pos(this._pos[0], this._pos[1], this._pos[2], this._id) } }(Sound.prototype.init); Sound.prototype.reset = function (y) { return function () { var R = this._parent; return this._orientation = R._orientation, this._stereo = R._stereo, this._pos = R._pos, this._pannerAttr = R._pannerAttr, this._stereo ? R.stereo(this._stereo) : this._pos ? R.pos(this._pos[0], this._pos[1], this._pos[2], this._id) : this._panner && (this._panner.disconnect(0), this._panner = void 0, R._refreshBuffer(this)), y.call(this) } }(Sound.prototype.reset); var la = function (y, R) { "spatial" === (R || "spatial") ? (y._panner = Howler.ctx.createPanner(), y._panner.coneInnerAngle = y._pannerAttr.coneInnerAngle, y._panner.coneOuterAngle = y._pannerAttr.coneOuterAngle, y._panner.coneOuterGain = y._pannerAttr.coneOuterGain, y._panner.distanceModel = y._pannerAttr.distanceModel, y._panner.maxDistance = y._pannerAttr.maxDistance, y._panner.refDistance = y._pannerAttr.refDistance, y._panner.rolloffFactor = y._pannerAttr.rolloffFactor, y._panner.panningModel = y._pannerAttr.panningModel, void 0 !== y._panner.positionX ? (y._panner.positionX.setValueAtTime(y._pos[0], Howler.ctx.currentTime), y._panner.positionY.setValueAtTime(y._pos[1], Howler.ctx.currentTime), y._panner.positionZ.setValueAtTime(y._pos[2], Howler.ctx.currentTime)) : y._panner.setPosition(y._pos[0], y._pos[1], y._pos[2]), void 0 !== y._panner.orientationX ? (y._panner.orientationX.setValueAtTime(y._orientation[0], Howler.ctx.currentTime), y._panner.orientationY.setValueAtTime(y._orientation[1], Howler.ctx.currentTime), y._panner.orientationZ.setValueAtTime(y._orientation[2], Howler.ctx.currentTime)) : y._panner.setOrientation(y._orientation[0], y._orientation[1], y._orientation[2])) : (y._panner = Howler.ctx.createStereoPanner(), y._panner.pan.setValueAtTime(y._stereo, Howler.ctx.currentTime)); y._panner.connect(y._node); y._paused || y._parent.pause(y._id, !0).play(y._id, !0) } }(); !function (la) { "object" == typeof exports && "undefined" != typeof module ? module.exports = la() : "function" == typeof define && define.amd ? define([], la) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).pako = la() }(function () { return function Q(y, R, H) { function ia(q, k) { if (!R[q]) { if (!y[q]) { var t = "function" == typeof require && require; if (!k && t) return t(q, !0); if (u) return u(q, !0); k = Error("Cannot find module '" + q + "'"); throw k.code = "MODULE_NOT_FOUND", k; } k = R[q] = {exports: {}}; y[q][0].call(k.exports, function (k) { var t = y[q][1][k]; return ia(t ? t : k) }, k, k.exports, Q, y, R, H) } return R[q].exports } for (var u = "function" == typeof require && require, hb = 0; hb < H.length; hb++) ia(H[hb]); return ia }({ 1: [function (y, R, H) { function Q(y) { if (!(this instanceof Q)) return new Q(y); y = this.options = hb.assign({ level: Aa, method: za, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: fb, to: "" }, y || {}); y.raw && 0 < y.windowBits ? y.windowBits = -y.windowBits : y.gzip && 0 < y.windowBits && 16 > y.windowBits && (y.windowBits += 16); this.err = 0; this.msg = ""; this.ended = !1; this.chunks = []; this.strm = new t; this.strm.avail_out = 0; var K = u.deflateInit2(this.strm, y.level, y.method, y.windowBits, y.memLevel, y.strategy); if (K !== x) throw Error(k[K]); if (y.header && u.deflateSetHeader(this.strm, y.header), y.dictionary) { var H; if (H = "string" == typeof y.dictionary ? q.string2buf(y.dictionary) : "[object ArrayBuffer]" === A.call(y.dictionary) ? new Uint8Array(y.dictionary) : y.dictionary, K = u.deflateSetDictionary(this.strm, H), K !== x) throw Error(k[K]); this._dict_set = !0 } } function ia(k, q) { q = new Q(q); if (q.push(k, !0), q.err) throw q.msg; return q.result } var u = y("./zlib/deflate"), hb = y("./utils/common"), q = y("./utils/strings"), k = y("./zlib/messages"), t = y("./zlib/zstream"), A = Object.prototype.toString, x = 0, Aa = -1, fb = 0, za = 8; Q.prototype.push = function (k, t) { var y, K = this.strm, H = this.options.chunkSize; if (this.ended) return !1; t = t === ~~t ? t : !0 === t ? 4 : 0; "string" == typeof k ? K.input = q.string2buf(k) : "[object ArrayBuffer]" === A.call(k) ? K.input = new Uint8Array(k) : K.input = k; K.next_in = 0; K.avail_in = K.input.length; do { if (0 === K.avail_out && (K.output = new hb.Buf8(H), K.next_out = 0, K.avail_out = H), y = u.deflate(K, t), 1 !== y && y !== x) return this.onEnd(y), this.ended = !0, !1; 0 !== K.avail_out && (0 !== K.avail_in || 4 !== t && 2 !== t) || ("string" === this.options.to ? this.onData(q.buf2binstring(hb.shrinkBuf(K.output, K.next_out))) : this.onData(hb.shrinkBuf(K.output, K.next_out))) } while ((0 < K.avail_in || 0 === K.avail_out) && 1 !== y); return 4 === t ? (y = u.deflateEnd(this.strm), this.onEnd(y), this.ended = !0, y === x) : 2 !== t || (this.onEnd(x), K.avail_out = 0, !0) }; Q.prototype.onData = function (k) { this.chunks.push(k) }; Q.prototype.onEnd = function (k) { k === x && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = hb.flattenChunks(this.chunks)); this.chunks = []; this.err = k; this.msg = this.strm.msg }; H.Deflate = Q; H.deflate = ia; H.deflateRaw = function (k, q) { return q = q || {}, q.raw = !0, ia(k, q) }; H.gzip = function (k, q) { return q = q || {}, q.gzip = !0, ia(k, q) } }, { "./utils/common": 3, "./utils/strings": 4, "./zlib/deflate": 8, "./zlib/messages": 13, "./zlib/zstream": 15 }], 2: [function (y, R, H) { function Q(q) { if (!(this instanceof Q)) return new Q(q); var y = this.options = hb.assign({chunkSize: 16384, windowBits: 0, to: ""}, q || {}); y.raw && 0 <= y.windowBits && 16 > y.windowBits && (y.windowBits = -y.windowBits, 0 === y.windowBits && (y.windowBits = -15)); !(0 <= y.windowBits && 16 > y.windowBits) || q && q.windowBits || (y.windowBits += 32); 15 < y.windowBits && 48 > y.windowBits && 0 === (15 & y.windowBits) && (y.windowBits |= 15); this.err = 0; this.msg = ""; this.ended = !1; this.chunks = []; this.strm = new A; this.strm.avail_out = 0; q = u.inflateInit2(this.strm, y.windowBits); if (q !== k.Z_OK) throw Error(t[q]); this.header = new x; u.inflateGetHeader(this.strm, this.header) } function ia(k, q) { q = new Q(q); if (q.push(k, !0), q.err) throw q.msg; return q.result } var u = y("./zlib/inflate"), hb = y("./utils/common"), q = y("./utils/strings"), k = y("./zlib/constants"), t = y("./zlib/messages"), A = y("./zlib/zstream"), x = y("./zlib/gzheader"), Aa = Object.prototype.toString; Q.prototype.push = function (t, x) { var A, y, H, Q, R, V = this.strm, z = this.options.chunkSize, za = this.options.dictionary, Sa = !1; if (this.ended) return !1; x = x === ~~x ? x : !0 === x ? k.Z_FINISH : k.Z_NO_FLUSH; "string" == typeof t ? V.input = q.binstring2buf(t) : "[object ArrayBuffer]" === Aa.call(t) ? V.input = new Uint8Array(t) : V.input = t; V.next_in = 0; V.avail_in = V.input.length; do { if (0 === V.avail_out && (V.output = new hb.Buf8(z), V.next_out = 0, V.avail_out = z), A = u.inflate(V, k.Z_NO_FLUSH), A === k.Z_NEED_DICT && za && (R = "string" == typeof za ? q.string2buf(za) : "[object ArrayBuffer]" === Aa.call(za) ? new Uint8Array(za) : za, A = u.inflateSetDictionary(this.strm, R)), A === k.Z_BUF_ERROR && !0 === Sa && (A = k.Z_OK, Sa = !1), A !== k.Z_STREAM_END && A !== k.Z_OK) return this.onEnd(A), this.ended = !0, !1; V.next_out && (0 !== V.avail_out && A !== k.Z_STREAM_END && (0 !== V.avail_in || x !== k.Z_FINISH && x !== k.Z_SYNC_FLUSH) || ("string" === this.options.to ? (y = q.utf8border(V.output, V.next_out), H = V.next_out - y, Q = q.buf2string(V.output, y), V.next_out = H, V.avail_out = z - H, H && hb.arraySet(V.output, V.output, y, H, 0), this.onData(Q)) : this.onData(hb.shrinkBuf(V.output, V.next_out)))); 0 === V.avail_in && 0 === V.avail_out && (Sa = !0) } while ((0 < V.avail_in || 0 === V.avail_out) && A !== k.Z_STREAM_END); return A === k.Z_STREAM_END && (x = k.Z_FINISH), x === k.Z_FINISH ? (A = u.inflateEnd(this.strm), this.onEnd(A), this.ended = !0, A === k.Z_OK) : x !== k.Z_SYNC_FLUSH || (this.onEnd(k.Z_OK), V.avail_out = 0, !0) }; Q.prototype.onData = function (k) { this.chunks.push(k) }; Q.prototype.onEnd = function (q) { q === k.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = hb.flattenChunks(this.chunks)); this.chunks = []; this.err = q; this.msg = this.strm.msg }; H.Inflate = Q; H.inflate = ia; H.inflateRaw = function (k, q) { return q = q || {}, q.raw = !0, ia(k, q) }; H.ungzip = ia }, { "./utils/common": 3, "./utils/strings": 4, "./zlib/constants": 6, "./zlib/gzheader": 9, "./zlib/inflate": 11, "./zlib/messages": 13, "./zlib/zstream": 15 }], 3: [function (y, R, H) { y = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; H.assign = function (u) { for (var y = Array.prototype.slice.call(arguments, 1); y.length;) { var q = y.shift(); if (q) { if ("object" != typeof q) throw new TypeError(q + "must be non-object"); for (var k in q) q.hasOwnProperty(k) && (u[k] = q[k]) } } return u }; H.shrinkBuf = function (u, y) { return u.length === y ? u : u.subarray ? u.subarray(0, y) : (u.length = y, u) }; var Q = { arraySet: function (u, y, q, k, t) { if (y.subarray && u.subarray) return void u.set(y.subarray(q, q + k), t); for (var A = 0; A < k; A++) u[t + A] = y[q + A] }, flattenChunks: function (u) { var y, q; var k = q = 0; for (y = u.length; k < y; k++) q += u[k].length; var t = new Uint8Array(q); k = q = 0; for (y = u.length; k < y; k++) { var A = u[k]; t.set(A, q); q += A.length } return t } }, ia = { arraySet: function (u, y, q, k, t) { for (var A = 0; A < k; A++) u[t + A] = y[q + A] }, flattenChunks: function (u) { return [].concat.apply([], u) } }; H.setTyped = function (u) { u ? (H.Buf8 = Uint8Array, H.Buf16 = Uint16Array, H.Buf32 = Int32Array, H.assign(H, Q)) : (H.Buf8 = Array, H.Buf16 = Array, H.Buf32 = Array, H.assign(H, ia)) }; H.setTyped(y) }, {}], 4: [function (y, R, H) { function Q(k, q) { if (65537 > q && (k.subarray && hb || !k.subarray && u)) return String.fromCharCode.apply(null, ia.shrinkBuf(k, q)); for (var t = "", x = 0; x < q; x++) t += String.fromCharCode(k[x]); return t } var ia = y("./common"), u = !0, hb = !0; try { String.fromCharCode.apply(null, [0]) } catch (k) { u = !1 } try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (k) { hb = !1 } var q = new ia.Buf8(256); for (y = 0; 256 > y; y++) q[y] = 252 <= y ? 6 : 248 <= y ? 5 : 240 <= y ? 4 : 224 <= y ? 3 : 192 <= y ? 2 : 1; q[254] = q[254] = 1; H.string2buf = function (k) { var q, u, x, y = k.length, H = 0; for (u = 0; u < y; u++) { var Q = k.charCodeAt(u); 55296 === (64512 & Q) && u + 1 < y && (q = k.charCodeAt(u + 1), 56320 === (64512 & q) && (Q = 65536 + (Q - 55296 << 10) + (q - 56320), u++)); H += 128 > Q ? 1 : 2048 > Q ? 2 : 65536 > Q ? 3 : 4 } var K = new ia.Buf8(H); for (u = x = 0; x < H; u++) Q = k.charCodeAt(u), 55296 === (64512 & Q) && u + 1 < y && (q = k.charCodeAt(u + 1), 56320 === (64512 & q) && (Q = 65536 + (Q - 55296 << 10) + (q - 56320), u++)), 128 > Q ? K[x++] = Q : 2048 > Q ? (K[x++] = 192 | Q >>> 6, K[x++] = 128 | 63 & Q) : 65536 > Q ? (K[x++] = 224 | Q >>> 12, K[x++] = 128 | Q >>> 6 & 63, K[x++] = 128 | 63 & Q) : (K[x++] = 240 | Q >>> 18, K[x++] = 128 | Q >>> 12 & 63, K[x++] = 128 | Q >>> 6 & 63, K[x++] = 128 | 63 & Q); return K }; H.buf2binstring = function (k) { return Q(k, k.length) }; H.binstring2buf = function (k) { for (var q = new ia.Buf8(k.length), u = 0, x = q.length; u < x; u++) q[u] = k.charCodeAt(u); return q }; H.buf2string = function (k, t) { var u, x, y, H = t || k.length, R = Array(2 * H); for (t = u = 0; t < H;) if (x = k[t++], 128 > x) R[u++] = x; else if (y = q[x], 4 < y) R[u++] = 65533, t += y - 1; else { for (x &= 2 === y ? 31 : 3 === y ? 15 : 7; 1 < y && t < H;) x = x << 6 | 63 & k[t++], y--; 1 < y ? R[u++] = 65533 : 65536 > x ? R[u++] = x : (x -= 65536, R[u++] = 55296 | x >> 10 & 1023, R[u++] = 56320 | 1023 & x) } return Q(R, u) }; H.utf8border = function (k, t) { var u; t = t || k.length; t > k.length && (t = k.length); for (u = t - 1; 0 <= u && 128 === (192 & k[u]);) u--; return 0 > u ? t : 0 === u ? t : u + q[k[u]] > t ? u : t } }, {"./common": 3}], 5: [function (y, R, H) { R.exports = function (y, H, u, R) { var q = 65535 & y | 0; y = y >>> 16 & 65535 | 0; for (var k; 0 !== u;) { k = 2E3 < u ? 2E3 : u; u -= k; do q = q + H[R++] | 0, y = y + q | 0; while (--k); q %= 65521; y %= 65521 } return q | y << 16 | 0 } }, {}], 6: [function (y, R, H) { R.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 } }, {}], 7: [function (y, R, H) { var Q = function () { for (var y, u = [], H = 0; 256 > H; H++) { y = H; for (var q = 0; 8 > q; q++) y = 1 & y ? 3988292384 ^ y >>> 1 : y >>> 1; u[H] = y } return u }(); R.exports = function (y, u, H, q) { H = q + H; for (y ^= -1; q < H; q++) y = y >>> 8 ^ Q[255 & (y ^ u[q])]; return y ^ -1 } }, {}], 8: [function (y, R, H) { function Q(k, q) { return k.msg = Kd[q], q } function ia(k) { for (var q = k.length; 0 <= --q;) k[q] = 0 } function u(k) { var q = k.state, t = q.pending; t > k.avail_out && (t = k.avail_out); 0 !== t && (Rb.arraySet(k.output, q.pending_buf, q.pending_out, t, k.next_out), k.next_out += t, q.pending_out += t, k.total_out += t, k.avail_out -= t, q.pending -= t, 0 === q.pending && (q.pending_out = 0)) } function hb(k, q) { ya._tr_flush_block(k, 0 <= k.block_start ? k.block_start : -1, k.strstart - k.block_start, q); k.block_start = k.strstart; u(k.strm) } function q(k, q) { k.pending_buf[k.pending++] = q } function k(k, q) { k.pending_buf[k.pending++] = q >>> 8 & 255; k.pending_buf[k.pending++] = 255 & q } function t(k, q) { var t, u, x = k.max_chain_length, N = k.strstart, A = k.prev_length, y = k.nice_match, z = k.strstart > k.w_size - ua ? k.strstart - (k.w_size - ua) : 0, E = k.window, K = k.w_mask, H = k.prev, M = k.strstart + Ca, Q = E[N + A - 1], T = E[N + A]; k.prev_length >= k.good_match && (x >>= 2); y > k.lookahead && (y = k.lookahead); do if (t = q, E[t + A] === T && E[t + A - 1] === Q && E[t] === E[N] && E[++t] === E[N + 1]) { N += 2; for (t++; E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && E[++N] === E[++t] && N < M;) ; if (u = Ca - (M - N), N = M - Ca, u > A) { if (k.match_start = q, A = u, u >= y) break; Q = E[N + A - 1]; T = E[N + A] } } while ((q = H[q & K]) > z && 0 !== --x); return A <= k.lookahead ? A : k.lookahead } function A(k) { var q, t, u = k.w_size; do { if (t = k.window_size - k.lookahead - k.strstart, k.strstart >= u + (u - ua)) { Rb.arraySet(k.window, k.window, u, u, 0); k.match_start -= u; k.strstart -= u; k.block_start -= u; var x = q = k.hash_size; do { var N = k.head[--x]; k.head[x] = N >= u ? N - u : 0 } while (--q); x = q = u; do N = k.prev[--x], k.prev[x] = N >= u ? N - u : 0; while (--q); t += u } if (0 === k.strm.avail_in) break; x = k.strm; N = k.window; var A = k.strstart + k.lookahead, y = x.avail_in; if (q = (y > t && (y = t), 0 === y ? 0 : (x.avail_in -= y, Rb.arraySet(N, x.input, x.next_in, y, A), 1 === x.state.wrap ? x.adler = V(x.adler, N, y, A) : 2 === x.state.wrap && (x.adler = z(x.adler, N, y, A)), x.next_in += y, x.total_in += y, y)), k.lookahead += q, k.lookahead + k.insert >= ab) for (t = k.strstart - k.insert, k.ins_h = k.window[t], k.ins_h = (k.ins_h << k.hash_shift ^ k.window[t + 1]) & k.hash_mask; k.insert && (k.ins_h = (k.ins_h << k.hash_shift ^ k.window[t + ab - 1]) & k.hash_mask, k.prev[t & k.w_mask] = k.head[k.ins_h], k.head[k.ins_h] = t, t++, k.insert--, !(k.lookahead + k.insert < ab));) ; } while (k.lookahead < ua && 0 !== k.strm.avail_in) } function x(k, q) { for (var u, x; ;) { if (k.lookahead < ua) { if (A(k), k.lookahead < ua && q === Sa) return fa; if (0 === k.lookahead) break } if (u = 0, k.lookahead >= ab && (k.ins_h = (k.ins_h << k.hash_shift ^ k.window[k.strstart + ab - 1]) & k.hash_mask, u = k.prev[k.strstart & k.w_mask] = k.head[k.ins_h], k.head[k.ins_h] = k.strstart), 0 !== u && k.strstart - u <= k.w_size - ua && (k.match_length = t(k, u)), k.match_length >= ab) if (x = ya._tr_tally(k, k.strstart - k.match_start, k.match_length - ab), k.lookahead -= k.match_length, k.match_length <= k.max_lazy_match && k.lookahead >= ab) { k.match_length--; do k.strstart++, k.ins_h = (k.ins_h << k.hash_shift ^ k.window[k.strstart + ab - 1]) & k.hash_mask, u = k.prev[k.strstart & k.w_mask] = k.head[k.ins_h], k.head[k.ins_h] = k.strstart; while (0 !== --k.match_length); k.strstart++ } else k.strstart += k.match_length, k.match_length = 0, k.ins_h = k.window[k.strstart], k.ins_h = (k.ins_h << k.hash_shift ^ k.window[k.strstart + 1]) & k.hash_mask; else x = ya._tr_tally(k, 0, k.window[k.strstart]), k.lookahead--, k.strstart++; if (x && (hb(k, !1), 0 === k.strm.avail_out)) return fa } return k.insert = k.strstart < ab - 1 ? k.strstart : ab - 1, q === T ? (hb(k, !0), 0 === k.strm.avail_out ? qc : Xb) : k.last_lit && (hb(k, !1), 0 === k.strm.avail_out) ? fa : M } function Aa(k, q) { for (var u, x, y; ;) { if (k.lookahead < ua) { if (A(k), k.lookahead < ua && q === Sa) return fa; if (0 === k.lookahead) break } if (u = 0, k.lookahead >= ab && (k.ins_h = (k.ins_h << k.hash_shift ^ k.window[k.strstart + ab - 1]) & k.hash_mask, u = k.prev[k.strstart & k.w_mask] = k.head[k.ins_h], k.head[k.ins_h] = k.strstart), k.prev_length = k.match_length, k.prev_match = k.match_start, k.match_length = ab - 1, 0 !== u && k.prev_length < k.max_lazy_match && k.strstart - u <= k.w_size - ua && (k.match_length = t(k, u), 5 >= k.match_length && (k.strategy === te || k.match_length === ab && 4096 < k.strstart - k.match_start) && (k.match_length = ab - 1)), k.prev_length >= ab && k.match_length <= k.prev_length) { y = k.strstart + k.lookahead - ab; x = ya._tr_tally(k, k.strstart - 1 - k.prev_match, k.prev_length - ab); k.lookahead -= k.prev_length - 1; k.prev_length -= 2; do ++k.strstart <= y && (k.ins_h = (k.ins_h << k.hash_shift ^ k.window[k.strstart + ab - 1]) & k.hash_mask, u = k.prev[k.strstart & k.w_mask] = k.head[k.ins_h], k.head[k.ins_h] = k.strstart); while (0 !== --k.prev_length); if (k.match_available = 0, k.match_length = ab - 1, k.strstart++, x && (hb(k, !1), 0 === k.strm.avail_out)) return fa } else if (k.match_available) { if (x = ya._tr_tally(k, 0, k.window[k.strstart - 1]), x && hb(k, !1), k.strstart++, k.lookahead--, 0 === k.strm.avail_out) return fa } else k.match_available = 1, k.strstart++, k.lookahead-- } return k.match_available && (ya._tr_tally(k, 0, k.window[k.strstart - 1]), k.match_available = 0), k.insert = k.strstart < ab - 1 ? k.strstart : ab - 1, q === T ? (hb(k, !0), 0 === k.strm.avail_out ? qc : Xb) : k.last_lit && (hb(k, !1), 0 === k.strm.avail_out) ? fa : M } function fb(k, q, t, u, x) { this.good_length = k; this.max_lazy = q; this.nice_length = t; this.max_chain = u; this.func = x } function za() { this.strm = null; this.status = 0; this.pending_buf = null; this.wrap = this.pending = this.pending_out = this.pending_buf_size = 0; this.gzhead = null; this.gzindex = 0; this.method = Eb; this.last_flush = -1; this.w_mask = this.w_bits = this.w_size = 0; this.window = null; this.window_size = 0; this.head = this.prev = null; this.nice_match = this.good_match = this.strategy = this.level = this.max_lazy_match = this.max_chain_length = this.prev_length = this.lookahead = this.match_start = this.strstart = this.match_available = this.prev_match = this.match_length = this.block_start = this.hash_shift = this.hash_mask = this.hash_bits = this.hash_size = this.ins_h = 0; this.dyn_ltree = new Rb.Buf16(2 * Ga); this.dyn_dtree = new Rb.Buf16(2 * (2 * Oc + 1)); this.bl_tree = new Rb.Buf16(2 * (2 * E + 1)); ia(this.dyn_ltree); ia(this.dyn_dtree); ia(this.bl_tree); this.bl_desc = this.d_desc = this.l_desc = null; this.bl_count = new Rb.Buf16(Bb + 1); this.heap = new Rb.Buf16(2 * jd + 1); ia(this.heap); this.heap_max = this.heap_len = 0; this.depth = new Rb.Buf16(2 * jd + 1); ia(this.depth); this.bi_valid = this.bi_buf = this.insert = this.matches = this.static_len = this.opt_len = this.d_buf = this.last_lit = this.lit_bufsize = this.l_buf = 0 } function K(k) { var q; return k && k.state ? (k.total_in = k.total_out = 0, k.data_type = ue, q = k.state, q.pending = 0, q.pending_out = 0, 0 > q.wrap && (q.wrap = -q.wrap), q.status = q.wrap ? sa : S, k.adler = 2 === q.wrap ? 0 : 1, q.last_flush = Sa, ya._tr_init(q), xb) : Q(k, Ha) } function Jd(k) { var q = K(k); q === xb && (k = k.state, k.window_size = 2 * k.w_size, ia(k.head), k.max_lazy_match = sc[k.level].max_lazy, k.good_match = sc[k.level].good_length, k.nice_match = sc[k.level].nice_length, k.max_chain_length = sc[k.level].max_chain, k.strstart = 0, k.block_start = 0, k.lookahead = 0, k.insert = 0, k.match_length = k.prev_length = ab - 1, k.match_available = 0, k.ins_h = 0); return q } function se(k, q, t, u, x, A) { if (!k) return Ha; var y = 1; if (q === Ba && (q = 6), 0 > u ? (y = 0, u = -u) : 15 < u && (y = 2, u -= 16), 1 > x || x > yd || t !== Eb || 8 > u || 15 < u || 0 > q || 9 < q || 0 > A || A > jb) return Q(k, Ha); 8 === u && (u = 9); var z = new za; return k.state = z, z.strm = k, z.wrap = y, z.gzhead = null, z.w_bits = u, z.w_size = 1 << z.w_bits, z.w_mask = z.w_size - 1, z.hash_bits = x + 7, z.hash_size = 1 << z.hash_bits, z.hash_mask = z.hash_size - 1, z.hash_shift = ~~((z.hash_bits + ab - 1) / ab), z.window = new Rb.Buf8(2 * z.w_size), z.head = new Rb.Buf16(z.hash_size), z.prev = new Rb.Buf16(z.w_size), z.lit_bufsize = 1 << x + 6, z.pending_buf_size = 4 * z.lit_bufsize, z.pending_buf = new Rb.Buf8(z.pending_buf_size), z.d_buf = 1 * z.lit_bufsize, z.l_buf = 3 * z.lit_bufsize, z.level = q, z.strategy = A, z.method = t, Jd(k) } var Rb = y("../utils/common"), ya = y("./trees"), V = y("./adler32"), z = y("./crc32"), Kd = y("./messages"), Sa = 0, T = 4, xb = 0, Ha = -2, Ba = -1, te = 1, jb = 4, ue = 2, Eb = 8, yd = 9, jd = 286, Oc = 30, E = 19, Ga = 2 * jd + 1, Bb = 15, ab = 3, Ca = 258, ua = Ca + ab + 1, sa = 42, S = 113, fa = 1, M = 2, qc = 3, Xb = 4; var sc = [new fb(0, 0, 0, 0, function (k, q) { var t = 65535; for (t > k.pending_buf_size - 5 && (t = k.pending_buf_size - 5); ;) { if (1 >= k.lookahead) { if (A(k), 0 === k.lookahead && q === Sa) return fa; if (0 === k.lookahead) break } k.strstart += k.lookahead; k.lookahead = 0; var u = k.block_start + t; if ((0 === k.strstart || k.strstart >= u) && (k.lookahead = k.strstart - u, k.strstart = u, hb(k, !1), 0 === k.strm.avail_out) || k.strstart - k.block_start >= k.w_size - ua && (hb(k, !1), 0 === k.strm.avail_out)) return fa } return k.insert = 0, q === T ? (hb(k, !0), 0 === k.strm.avail_out ? qc : Xb) : (k.strstart > k.block_start && hb(k, !1), fa) }), new fb(4, 4, 8, 4, x), new fb(4, 5, 16, 8, x), new fb(4, 6, 32, 32, x), new fb(4, 4, 16, 16, Aa), new fb(8, 16, 32, 32, Aa), new fb(8, 16, 128, 128, Aa), new fb(8, 32, 128, 256, Aa), new fb(32, 128, 258, 1024, Aa), new fb(32, 258, 258, 4096, Aa)]; H.deflateInit = function (k, q) { return se(k, q, Eb, 15, 8, 0) }; H.deflateInit2 = se; H.deflateReset = Jd; H.deflateResetKeep = K; H.deflateSetHeader = function (k, q) { return k && k.state ? 2 !== k.state.wrap ? Ha : (k.state.gzhead = q, xb) : Ha }; H.deflate = function (t, x) { var y, J; if (!t || !t.state || 5 < x || 0 > x) return t ? Q(t, Ha) : Ha; if (J = t.state, !t.output || !t.input && 0 !== t.avail_in || 666 === J.status && x !== T) return Q(t, 0 === t.avail_out ? -5 : Ha); if (J.strm = t, y = J.last_flush, J.last_flush = x, J.status === sa) if (2 === J.wrap) t.adler = 0, q(J, 31), q(J, 139), q(J, 8), J.gzhead ? (q(J, (J.gzhead.text ? 1 : 0) + (J.gzhead.hcrc ? 2 : 0) + (J.gzhead.extra ? 4 : 0) + (J.gzhead.name ? 8 : 0) + (J.gzhead.comment ? 16 : 0)), q(J, 255 & J.gzhead.time), q(J, J.gzhead.time >> 8 & 255), q(J, J.gzhead.time >> 16 & 255), q(J, J.gzhead.time >> 24 & 255), q(J, 9 === J.level ? 2 : 2 <= J.strategy || 2 > J.level ? 4 : 0), q(J, 255 & J.gzhead.os), J.gzhead.extra && J.gzhead.extra.length && (q(J, 255 & J.gzhead.extra.length), q(J, J.gzhead.extra.length >> 8 & 255)), J.gzhead.hcrc && (t.adler = z(t.adler, J.pending_buf, J.pending, 0)), J.gzindex = 0, J.status = 69) : (q(J, 0), q(J, 0), q(J, 0), q(J, 0), q(J, 0), q(J, 9 === J.level ? 2 : 2 <= J.strategy || 2 > J.level ? 4 : 0), q(J, 3), J.status = S); else { var E = Eb + (J.w_bits - 8 << 4) << 8; E |= (2 <= J.strategy || 2 > J.level ? 0 : 6 > J.level ? 1 : 6 === J.level ? 2 : 3) << 6; 0 !== J.strstart && (E |= 32); J.status = S; k(J, E + (31 - E % 31)); 0 !== J.strstart && (k(J, t.adler >>> 16), k(J, 65535 & t.adler)); t.adler = 1 } if (69 === J.status) if (J.gzhead.extra) { for (E = J.pending; J.gzindex < (65535 & J.gzhead.extra.length) && (J.pending !== J.pending_buf_size || (J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)), u(t), E = J.pending, J.pending !== J.pending_buf_size));) q(J, 255 & J.gzhead.extra[J.gzindex]), J.gzindex++; J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)); J.gzindex === J.gzhead.extra.length && (J.gzindex = 0, J.status = 73) } else J.status = 73; if (73 === J.status) if (J.gzhead.name) { E = J.pending; do { if (J.pending === J.pending_buf_size && (J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)), u(t), E = J.pending, J.pending === J.pending_buf_size)) { var K = 1; break } K = J.gzindex < J.gzhead.name.length ? 255 & J.gzhead.name.charCodeAt(J.gzindex++) : 0; q(J, K) } while (0 !== K); J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)); 0 === K && (J.gzindex = 0, J.status = 91) } else J.status = 91; if (91 === J.status) if (J.gzhead.comment) { E = J.pending; do { if (J.pending === J.pending_buf_size && (J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)), u(t), E = J.pending, J.pending === J.pending_buf_size)) { K = 1; break } K = J.gzindex < J.gzhead.comment.length ? 255 & J.gzhead.comment.charCodeAt(J.gzindex++) : 0; q(J, K) } while (0 !== K); J.gzhead.hcrc && J.pending > E && (t.adler = z(t.adler, J.pending_buf, J.pending - E, E)); 0 === K && (J.status = 103) } else J.status = 103; if (103 === J.status && (J.gzhead.hcrc ? (J.pending + 2 > J.pending_buf_size && u(t), J.pending + 2 <= J.pending_buf_size && (q(J, 255 & t.adler), q(J, t.adler >> 8 & 255), t.adler = 0, J.status = S)) : J.status = S), 0 !== J.pending) { if (u(t), 0 === t.avail_out) return J.last_flush = -1, xb } else if (0 === t.avail_in && (x << 1) - (4 < x ? 9 : 0) <= (y << 1) - (4 < y ? 9 : 0) && x !== T) return Q(t, -5); if (666 === J.status && 0 !== t.avail_in) return Q(t, -5); if (0 !== t.avail_in || 0 !== J.lookahead || x !== Sa && 666 !== J.status) { if (2 === J.strategy) a:{ for (var H; ;) { if (0 === J.lookahead && (A(J), 0 === J.lookahead)) { if (x === Sa) { var N = fa; break a } break } if (J.match_length = 0, H = ya._tr_tally(J, 0, J.window[J.strstart]), J.lookahead--, J.strstart++, H && (hb(J, !1), 0 === J.strm.avail_out)) { N = fa; break a } } N = (J.insert = 0, x === T ? (hb(J, !0), 0 === J.strm.avail_out ? qc : Xb) : J.last_lit && (hb(J, !1), 0 === J.strm.avail_out) ? fa : M) } else if (3 === J.strategy) a:{ var R, V; for (H = J.window; ;) { if (J.lookahead <= Ca) { if (A(J), J.lookahead <= Ca && x === Sa) { N = fa; break a } if (0 === J.lookahead) break } if (J.match_length = 0, J.lookahead >= ab && 0 < J.strstart && (V = J.strstart - 1, R = H[V], R === H[++V] && R === H[++V] && R === H[++V])) { for (y = J.strstart + Ca; R === H[++V] && R === H[++V] && R === H[++V] && R === H[++V] && R === H[++V] && R === H[++V] && R === H[++V] && R === H[++V] && V < y;) ; J.match_length = Ca - (y - V); J.match_length > J.lookahead && (J.match_length = J.lookahead) } if (J.match_length >= ab ? (N = ya._tr_tally(J, 1, J.match_length - ab), J.lookahead -= J.match_length, J.strstart += J.match_length, J.match_length = 0) : (N = ya._tr_tally(J, 0, J.window[J.strstart]), J.lookahead--, J.strstart++), N && (hb(J, !1), 0 === J.strm.avail_out)) { N = fa; break a } } N = (J.insert = 0, x === T ? (hb(J, !0), 0 === J.strm.avail_out ? qc : Xb) : J.last_lit && (hb(J, !1), 0 === J.strm.avail_out) ? fa : M) } else N = sc[J.level].func(J, x); if (N !== qc && N !== Xb || (J.status = 666), N === fa || N === qc) return 0 === t.avail_out && (J.last_flush = -1), xb; if (N === M && (1 === x ? ya._tr_align(J) : 5 !== x && (ya._tr_stored_block(J, 0, 0, !1), 3 === x && (ia(J.head), 0 === J.lookahead && (J.strstart = 0, J.block_start = 0, J.insert = 0))), u(t), 0 === t.avail_out)) return J.last_flush = -1, xb } return x !== T ? xb : 0 >= J.wrap ? 1 : (2 === J.wrap ? (q(J, 255 & t.adler), q(J, t.adler >> 8 & 255), q(J, t.adler >> 16 & 255), q(J, t.adler >> 24 & 255), q(J, 255 & t.total_in), q(J, t.total_in >> 8 & 255), q(J, t.total_in >> 16 & 255), q(J, t.total_in >> 24 & 255)) : (k(J, t.adler >>> 16), k(J, 65535 & t.adler)), u(t), 0 < J.wrap && (J.wrap = -J.wrap), 0 !== J.pending ? xb : 1) }; H.deflateEnd = function (k) { var q; return k && k.state ? (q = k.state.status, q !== sa && 69 !== q && 73 !== q && 91 !== q && 103 !== q && q !== S && 666 !== q ? Q(k, Ha) : (k.state = null, q === S ? Q(k, -3) : xb)) : Ha }; H.deflateSetDictionary = function (k, q) { var t, u, x; var y = q.length; if (!k || !k.state || (t = k.state, u = t.wrap, 2 === u || 1 === u && t.status !== sa || t.lookahead)) return Ha; 1 === u && (k.adler = V(k.adler, q, y, 0)); t.wrap = 0; y >= t.w_size && (0 === u && (ia(t.head), t.strstart = 0, t.block_start = 0, t.insert = 0), x = new Rb.Buf8(t.w_size), Rb.arraySet(x, q, y - t.w_size, t.w_size, 0), q = x, y = t.w_size); x = k.avail_in; var z = k.next_in; var E = k.input; k.avail_in = y; k.next_in = 0; k.input = q; for (A(t); t.lookahead >= ab;) { q = t.strstart; y = t.lookahead - (ab - 1); do t.ins_h = (t.ins_h << t.hash_shift ^ t.window[q + ab - 1]) & t.hash_mask, t.prev[q & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = q, q++; while (--y); t.strstart = q; t.lookahead = ab - 1; A(t) } return t.strstart += t.lookahead, t.block_start = t.strstart, t.insert = t.lookahead, t.lookahead = 0, t.match_length = t.prev_length = ab - 1, t.match_available = 0, k.next_in = z, k.input = E, k.avail_in = x, t.wrap = u, xb }; H.deflateInfo = "pako deflate (from Nodeca project)" }, {"../utils/common": 3, "./adler32": 5, "./crc32": 7, "./messages": 13, "./trees": 14}], 9: [function (y, R, H) { R.exports = function () { this.os = this.xflags = this.time = this.text = 0; this.extra = null; this.extra_len = 0; this.comment = this.name = ""; this.hcrc = 0; this.done = !1 } }, {}], 10: [function (y, R, H) { R.exports = function (y, H) { var u, Q, q; var k = y.state; var t = y.next_in; var A = y.input; var x = t + (y.avail_in - 5); var R = y.next_out; var ia = y.output; H = R - (H - y.avail_out); var za = R + (y.avail_out - 257); var K = k.dmax; var Jd = k.wsize; var se = k.whave; var Rb = k.wnext; var ya = k.window; var V = k.hold; var z = k.bits; var Kd = k.lencode; var Sa = k.distcode; var T = (1 << k.lenbits) - 1; var xb = (1 << k.distbits) - 1; a:do { 15 > z && (V += A[t++] << z, z += 8, V += A[t++] << z, z += 8); var Ha = Kd[V & T]; b:for (; ;) { if (u = Ha >>> 24, V >>>= u, z -= u, u = Ha >>> 16 & 255, 0 === u) ia[R++] = 65535 & Ha; else { if (!(16 & u)) { if (0 === (64 & u)) { Ha = Kd[(65535 & Ha) + (V & (1 << u) - 1)]; continue b } if (32 & u) { k.mode = 12; break a } y.msg = "invalid literal/length code"; k.mode = 30; break a } var Ba = 65535 & Ha; (u &= 15) && (z < u && (V += A[t++] << z, z += 8), Ba += V & (1 << u) - 1, V >>>= u, z -= u); 15 > z && (V += A[t++] << z, z += 8, V += A[t++] << z, z += 8); Ha = Sa[V & xb]; c:for (; ;) { if (u = Ha >>> 24, V >>>= u, z -= u, u = Ha >>> 16 & 255, !(16 & u)) { if (0 === (64 & u)) { Ha = Sa[(65535 & Ha) + (V & (1 << u) - 1)]; continue c } y.msg = "invalid distance code"; k.mode = 30; break a } if (Q = 65535 & Ha, u &= 15, z < u && (V += A[t++] << z, z += 8, z < u && (V += A[t++] << z, z += 8)), Q += V & (1 << u) - 1, Q > K) { y.msg = "invalid distance too far back"; k.mode = 30; break a } if (V >>>= u, z -= u, u = R - H, Q > u) { if (u = Q - u, u > se && k.sane) { y.msg = "invalid distance too far back"; k.mode = 30; break a } if (Ha = 0, q = ya, 0 === Rb) { if (Ha += Jd - u, u < Ba) { Ba -= u; do ia[R++] = ya[Ha++]; while (--u); Ha = R - Q; q = ia } } else if (Rb < u) { if (Ha += Jd + Rb - u, u -= Rb, u < Ba) { Ba -= u; do ia[R++] = ya[Ha++]; while (--u); if (Ha = 0, Rb < Ba) { u = Rb; Ba -= u; do ia[R++] = ya[Ha++]; while (--u); Ha = R - Q; q = ia } } } else if (Ha += Rb - u, u < Ba) { Ba -= u; do ia[R++] = ya[Ha++]; while (--u); Ha = R - Q; q = ia } for (; 2 < Ba;) ia[R++] = q[Ha++], ia[R++] = q[Ha++], ia[R++] = q[Ha++], Ba -= 3; Ba && (ia[R++] = q[Ha++], 1 < Ba && (ia[R++] = q[Ha++])) } else { Ha = R - Q; do ia[R++] = ia[Ha++], ia[R++] = ia[Ha++], ia[R++] = ia[Ha++], Ba -= 3; while (2 < Ba); Ba && (ia[R++] = ia[Ha++], 1 < Ba && (ia[R++] = ia[Ha++])) } break } } break } } while (t < x && R < za); Ba = z >> 3; t -= Ba; z -= Ba << 3; y.next_in = t; y.next_out = R; y.avail_in = t < x ? 5 + (x - t) : 5 - (t - x); y.avail_out = R < za ? 257 + (za - R) : 257 - (R - za); k.hold = V & (1 << z) - 1; k.bits = z } }, {}], 11: [function (y, R, H) { function Q(k) { return (k >>> 24 & 255) + (k >>> 8 & 65280) + ((65280 & k) << 8) + ((255 & k) << 24) } function ia() { this.mode = 0; this.last = !1; this.wrap = 0; this.havedict = !1; this.total = this.check = this.dmax = this.flags = 0; this.head = null; this.wnext = this.whave = this.wsize = this.wbits = 0; this.window = null; this.extra = this.offset = this.length = this.bits = this.hold = 0; this.distcode = this.lencode = null; this.have = this.ndist = this.nlen = this.ncode = this.distbits = this.lenbits = 0; this.next = null; this.lens = new Aa.Buf16(320); this.work = new Aa.Buf16(288); this.distdyn = this.lendyn = null; this.was = this.back = this.sane = 0 } function u(k) { var q; return k && k.state ? (q = k.state, k.total_in = k.total_out = q.total = 0, k.msg = "", q.wrap && (k.adler = 1 & q.wrap), q.mode = ya, q.last = 0, q.havedict = 0, q.dmax = 32768, q.head = null, q.hold = 0, q.bits = 0, q.lencode = q.lendyn = new Aa.Buf32(V), q.distcode = q.distdyn = new Aa.Buf32(z), q.sane = 1, q.back = -1, se) : Rb } function hb(k) { var q; return k && k.state ? (q = k.state, q.wsize = 0, q.whave = 0, q.wnext = 0, u(k)) : Rb } function q(k, q) { var t, u; return k && k.state ? (u = k.state, 0 > q ? (t = 0, q = -q) : (t = (q >> 4) + 1, 48 > q && (q &= 15)), q && (8 > q || 15 < q) ? Rb : (null !== u.window && u.wbits !== q && (u.window = null), u.wrap = t, u.wbits = q, hb(k))) : Rb } function k(k, t) { var u, x; return k ? (x = new ia, k.state = x, x.window = null, u = q(k, t), u !== se && (k.state = null), u) : Rb } function t(k, q, t, u) { var x; k = k.state; return null === k.window && (k.wsize = 1 << k.wbits, k.wnext = 0, k.whave = 0, k.window = new Aa.Buf8(k.wsize)), u >= k.wsize ? (Aa.arraySet(k.window, q, t - k.wsize, k.wsize, 0), k.wnext = 0, k.whave = k.wsize) : (x = k.wsize - k.wnext, x > u && (x = u), Aa.arraySet(k.window, q, t - u, x, k.wnext), u -= x, u ? (Aa.arraySet(k.window, q, t - u, u, 0), k.wnext = u, k.whave = k.wsize) : (k.wnext += x, k.wnext === k.wsize && (k.wnext = 0), k.whave < k.wsize && (k.whave += x))), 0 } var A, x, Aa = y("../utils/common"), fb = y("./adler32"), za = y("./crc32"), K = y("./inffast"), Jd = y("./inftrees"), se = 0, Rb = -2, ya = 1, V = 852, z = 592, Kd = !0; H.inflateReset = hb; H.inflateReset2 = q; H.inflateResetKeep = u; H.inflateInit = function (q) { return k(q, 15) }; H.inflateInit2 = k; H.inflate = function (k, q) { var u, y, z, H, R, T, V, ia = 0, Sa = new Aa.Buf8(4), hb = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; if (!k || !k.state || !k.output || !k.input && 0 !== k.avail_in) return Rb; var E = k.state; 12 === E.mode && (E.mode = 13); var Ga = k.next_out; var Bb = k.output; var ab = k.avail_out; var Ca = k.next_in; var ua = k.input; var sa = k.avail_in; var S = E.hold; var fa = E.bits; var M = sa; var qc = ab; var Xb = se; a:for (; ;) switch (E.mode) { case ya: if (0 === E.wrap) { E.mode = 13; break } for (; 16 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (2 & E.wrap && 35615 === S) { E.check = 0; Sa[0] = 255 & S; Sa[1] = S >>> 8 & 255; E.check = za(E.check, Sa, 2, 0); fa = S = 0; E.mode = 2; break } if (E.flags = 0, E.head && (E.head.done = !1), !(1 & E.wrap) || (((255 & S) << 8) + (S >> 8)) % 31) { k.msg = "incorrect header check"; E.mode = 30; break } if (8 !== (15 & S)) { k.msg = "unknown compression method"; E.mode = 30; break } if (S >>>= 4, fa -= 4, T = (15 & S) + 8, 0 === E.wbits) E.wbits = T; else if (T > E.wbits) { k.msg = "invalid window size"; E.mode = 30; break } E.dmax = 1 << T; k.adler = E.check = 1; E.mode = 512 & S ? 10 : 12; fa = S = 0; break; case 2: for (; 16 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (E.flags = S, 8 !== (255 & E.flags)) { k.msg = "unknown compression method"; E.mode = 30; break } if (57344 & E.flags) { k.msg = "unknown header flags set"; E.mode = 30; break } E.head && (E.head.text = S >> 8 & 1); 512 & E.flags && (Sa[0] = 255 & S, Sa[1] = S >>> 8 & 255, E.check = za(E.check, Sa, 2, 0)); fa = S = 0; E.mode = 3; case 3: for (; 32 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.head && (E.head.time = S); 512 & E.flags && (Sa[0] = 255 & S, Sa[1] = S >>> 8 & 255, Sa[2] = S >>> 16 & 255, Sa[3] = S >>> 24 & 255, E.check = za(E.check, Sa, 4, 0)); fa = S = 0; E.mode = 4; case 4: for (; 16 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.head && (E.head.xflags = 255 & S, E.head.os = S >> 8); 512 & E.flags && (Sa[0] = 255 & S, Sa[1] = S >>> 8 & 255, E.check = za(E.check, Sa, 2, 0)); fa = S = 0; E.mode = 5; case 5: if (1024 & E.flags) { for (; 16 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.length = S; E.head && (E.head.extra_len = S); 512 & E.flags && (Sa[0] = 255 & S, Sa[1] = S >>> 8 & 255, E.check = za(E.check, Sa, 2, 0)); fa = S = 0 } else E.head && (E.head.extra = null); E.mode = 6; case 6: if (1024 & E.flags && (u = E.length, u > sa && (u = sa), u && (E.head && (T = E.head.extra_len - E.length, E.head.extra || (E.head.extra = Array(E.head.extra_len)), Aa.arraySet(E.head.extra, ua, Ca, u, T)), 512 & E.flags && (E.check = za(E.check, ua, u, Ca)), sa -= u, Ca += u, E.length -= u), E.length)) break a; E.length = 0; E.mode = 7; case 7: if (2048 & E.flags) { if (0 === sa) break a; u = 0; do T = ua[Ca + u++], E.head && T && 65536 > E.length && (E.head.name += String.fromCharCode(T)); while (T && u < sa); if (512 & E.flags && (E.check = za(E.check, ua, u, Ca)), sa -= u, Ca += u, T) break a } else E.head && (E.head.name = null); E.length = 0; E.mode = 8; case 8: if (4096 & E.flags) { if (0 === sa) break a; u = 0; do T = ua[Ca + u++], E.head && T && 65536 > E.length && (E.head.comment += String.fromCharCode(T)); while (T && u < sa); if (512 & E.flags && (E.check = za(E.check, ua, u, Ca)), sa -= u, Ca += u, T) break a } else E.head && (E.head.comment = null); E.mode = 9; case 9: if (512 & E.flags) { for (; 16 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (S !== (65535 & E.check)) { k.msg = "header crc mismatch"; E.mode = 30; break } fa = S = 0 } E.head && (E.head.hcrc = E.flags >> 9 & 1, E.head.done = !0); k.adler = E.check = 0; E.mode = 12; break; case 10: for (; 32 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } k.adler = E.check = Q(S); fa = S = 0; E.mode = 11; case 11: if (0 === E.havedict) return k.next_out = Ga, k.avail_out = ab, k.next_in = Ca, k.avail_in = sa, E.hold = S, E.bits = fa, 2; k.adler = E.check = 1; E.mode = 12; case 12: if (5 === q || 6 === q) break a; case 13: if (E.last) { S >>>= 7 & fa; fa -= 7 & fa; E.mode = 27; break } for (; 3 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } switch (E.last = 1 & S, S >>>= 1, --fa, 3 & S) { case 0: E.mode = 14; break; case 1: var sc = E; if (Kd) { A = new Aa.Buf32(512); x = new Aa.Buf32(32); for (z = 0; 144 > z;) sc.lens[z++] = 8; for (; 256 > z;) sc.lens[z++] = 9; for (; 280 > z;) sc.lens[z++] = 7; for (; 288 > z;) sc.lens[z++] = 8; Jd(1, sc.lens, 0, 288, A, 0, sc.work, {bits: 9}); for (z = 0; 32 > z;) sc.lens[z++] = 5; Jd(2, sc.lens, 0, 32, x, 0, sc.work, {bits: 5}); Kd = !1 } sc.lencode = A; sc.lenbits = 9; sc.distcode = x; sc.distbits = 5; if (E.mode = 20, 6 === q) { S >>>= 2; fa -= 2; break a } break; case 2: E.mode = 17; break; case 3: k.msg = "invalid block type", E.mode = 30 } S >>>= 2; fa -= 2; break; case 14: S >>>= 7 & fa; for (fa -= 7 & fa; 32 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if ((65535 & S) !== (S >>> 16 ^ 65535)) { k.msg = "invalid stored block lengths"; E.mode = 30; break } if (E.length = 65535 & S, S = 0, fa = 0, E.mode = 15, 6 === q) break a; case 15: E.mode = 16; case 16: if (u = E.length) { if (u > sa && (u = sa), u > ab && (u = ab), 0 === u) break a; Aa.arraySet(Bb, ua, Ca, u, Ga); sa -= u; Ca += u; ab -= u; Ga += u; E.length -= u; break } E.mode = 12; break; case 17: for (; 14 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (E.nlen = (31 & S) + 257, S >>>= 5, fa -= 5, E.ndist = (31 & S) + 1, S >>>= 5, fa -= 5, E.ncode = (15 & S) + 4, S >>>= 4, fa -= 4, 286 < E.nlen || 30 < E.ndist) { k.msg = "too many length or distance symbols"; E.mode = 30; break } E.have = 0; E.mode = 18; case 18: for (; E.have < E.ncode;) { for (; 3 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.lens[hb[E.have++]] = 7 & S; S >>>= 3; fa -= 3 } for (; 19 > E.have;) E.lens[hb[E.have++]] = 0; if (E.lencode = E.lendyn, E.lenbits = 7, V = {bits: E.lenbits}, Xb = Jd(0, E.lens, 0, 19, E.lencode, 0, E.work, V), E.lenbits = V.bits, Xb) { k.msg = "invalid code lengths set"; E.mode = 30; break } E.have = 0; E.mode = 19; case 19: for (; E.have < E.nlen + E.ndist;) { for (; ia = E.lencode[S & (1 << E.lenbits) - 1], H = ia >>> 24, sc = 65535 & ia, !(H <= fa);) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (16 > sc) S >>>= H, fa -= H, E.lens[E.have++] = sc; else { if (16 === sc) { for (z = H + 2; fa < z;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (S >>>= H, fa -= H, 0 === E.have) { k.msg = "invalid bit length repeat"; E.mode = 30; break } T = E.lens[E.have - 1]; u = 3 + (3 & S); S >>>= 2; fa -= 2 } else if (17 === sc) { for (z = H + 3; fa < z;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } S >>>= H; fa -= H; T = 0; u = 3 + (7 & S); S >>>= 3; fa -= 3 } else { for (z = H + 7; fa < z;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } S >>>= H; fa -= H; T = 0; u = 11 + (127 & S); S >>>= 7; fa -= 7 } if (E.have + u > E.nlen + E.ndist) { k.msg = "invalid bit length repeat"; E.mode = 30; break } for (; u--;) E.lens[E.have++] = T } } if (30 === E.mode) break; if (0 === E.lens[256]) { k.msg = "invalid code -- missing end-of-block"; E.mode = 30; break } if (E.lenbits = 9, V = {bits: E.lenbits}, Xb = Jd(1, E.lens, 0, E.nlen, E.lencode, 0, E.work, V), E.lenbits = V.bits, Xb) { k.msg = "invalid literal/lengths set"; E.mode = 30; break } if (E.distbits = 6, E.distcode = E.distdyn, V = {bits: E.distbits}, Xb = Jd(2, E.lens, E.nlen, E.ndist, E.distcode, 0, E.work, V), E.distbits = V.bits, Xb) { k.msg = "invalid distances set"; E.mode = 30; break } if (E.mode = 20, 6 === q) break a; case 20: E.mode = 21; case 21: if (6 <= sa && 258 <= ab) { k.next_out = Ga; k.avail_out = ab; k.next_in = Ca; k.avail_in = sa; E.hold = S; E.bits = fa; K(k, qc); Ga = k.next_out; Bb = k.output; ab = k.avail_out; Ca = k.next_in; ua = k.input; sa = k.avail_in; S = E.hold; fa = E.bits; 12 === E.mode && (E.back = -1); break } for (E.back = 0; ia = E.lencode[S & (1 << E.lenbits) - 1], H = ia >>> 24, z = ia >>> 16 & 255, sc = 65535 & ia, !(H <= fa);) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (z && 0 === (240 & z)) { var N = H; var vf = z; for (R = sc; ia = E.lencode[R + ((S & (1 << N + vf) - 1) >> N)], H = ia >>> 24, z = ia >>> 16 & 255, sc = 65535 & ia, !(N + H <= fa);) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } S >>>= N; fa -= N; E.back += N } if (S >>>= H, fa -= H, E.back += H, E.length = sc, 0 === z) { E.mode = 26; break } if (32 & z) { E.back = -1; E.mode = 12; break } if (64 & z) { k.msg = "invalid literal/length code"; E.mode = 30; break } E.extra = 15 & z; E.mode = 22; case 22: if (E.extra) { for (z = E.extra; fa < z;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.length += S & (1 << E.extra) - 1; S >>>= E.extra; fa -= E.extra; E.back += E.extra } E.was = E.length; E.mode = 23; case 23: for (; ia = E.distcode[S & (1 << E.distbits) - 1], H = ia >>> 24, z = ia >>> 16 & 255, sc = 65535 & ia, !(H <= fa);) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (0 === (240 & z)) { N = H; vf = z; for (R = sc; ia = E.distcode[R + ((S & (1 << N + vf) - 1) >> N)], H = ia >>> 24, z = ia >>> 16 & 255, sc = 65535 & ia, !(N + H <= fa);) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } S >>>= N; fa -= N; E.back += N } if (S >>>= H, fa -= H, E.back += H, 64 & z) { k.msg = "invalid distance code"; E.mode = 30; break } E.offset = sc; E.extra = 15 & z; E.mode = 24; case 24: if (E.extra) { for (z = E.extra; fa < z;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } E.offset += S & (1 << E.extra) - 1; S >>>= E.extra; fa -= E.extra; E.back += E.extra } if (E.offset > E.dmax) { k.msg = "invalid distance too far back"; E.mode = 30; break } E.mode = 25; case 25: if (0 === ab) break a; if (u = qc - ab, E.offset > u) { if (u = E.offset - u, u > E.whave && E.sane) { k.msg = "invalid distance too far back"; E.mode = 30; break } u > E.wnext ? (u -= E.wnext, y = E.wsize - u) : y = E.wnext - u; u > E.length && (u = E.length); z = E.window } else z = Bb, y = Ga - E.offset, u = E.length; u > ab && (u = ab); ab -= u; E.length -= u; do Bb[Ga++] = z[y++]; while (--u); 0 === E.length && (E.mode = 21); break; case 26: if (0 === ab) break a; Bb[Ga++] = E.length; ab--; E.mode = 21; break; case 27: if (E.wrap) { for (; 32 > fa;) { if (0 === sa) break a; sa--; S |= ua[Ca++] << fa; fa += 8 } if (qc -= ab, k.total_out += qc, E.total += qc, qc && (k.adler = E.check = E.flags ? za(E.check, Bb, qc, Ga - qc) : fb(E.check, Bb, qc, Ga - qc)), qc = ab, (E.flags ? S : Q(S)) !== E.check) { k.msg = "incorrect data check"; E.mode = 30; break } fa = S = 0 } E.mode = 28; case 28: if (E.wrap && E.flags) { for (; 32 > fa;) { if (0 === sa) break a; sa--; S += ua[Ca++] << fa; fa += 8 } if (S !== (4294967295 & E.total)) { k.msg = "incorrect length check"; E.mode = 30; break } fa = S = 0 } E.mode = 29; case 29: Xb = 1; break a; case 30: Xb = -3; break a; case 31: return -4; default: return Rb } return k.next_out = Ga, k.avail_out = ab, k.next_in = Ca, k.avail_in = sa, E.hold = S, E.bits = fa, (E.wsize || qc !== k.avail_out && 30 > E.mode && (27 > E.mode || 4 !== q)) && t(k, k.output, k.next_out, qc - k.avail_out) ? (E.mode = 31, -4) : (M -= k.avail_in, qc -= k.avail_out, k.total_in += M, k.total_out += qc, E.total += qc, E.wrap && qc && (k.adler = E.check = E.flags ? za(E.check, Bb, qc, k.next_out - qc) : fb(E.check, Bb, qc, k.next_out - qc)), k.data_type = E.bits + (E.last ? 64 : 0) + (12 === E.mode ? 128 : 0) + (20 === E.mode || 15 === E.mode ? 256 : 0), (0 === M && 0 === qc || 4 === q) && Xb === se && (Xb = -5), Xb) }; H.inflateEnd = function (k) { if (!k || !k.state) return Rb; var q = k.state; return q.window && (q.window = null), k.state = null, se }; H.inflateGetHeader = function (k, q) { var t; return k && k.state ? (t = k.state, 0 === (2 & t.wrap) ? Rb : (t.head = q, q.done = !1, se)) : Rb }; H.inflateSetDictionary = function (k, q) { var u, x, y = q.length; return k && k.state ? (u = k.state, 0 !== u.wrap && 11 !== u.mode ? Rb : 11 === u.mode && (x = 1, x = fb(x, q, y, 0), x !== u.check) ? -3 : t(k, q, y, y) ? (u.mode = 31, -4) : (u.havedict = 1, se)) : Rb }; H.inflateInfo = "pako inflate (from Nodeca project)" }, {"../utils/common": 3, "./adler32": 5, "./crc32": 7, "./inffast": 10, "./inftrees": 12}], 12: [function (y, R, H) { var Q = y("../utils/common"), ia = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0], u = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78], hb = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0], q = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]; R.exports = function (k, t, y, x, H, R, za, K) { var A, Aa, fb, ya, V, z, Kd = K.bits, Sa, T, xb, Ha, Ba, te = 0, jb, ue = null, Eb = 0, yd = new Q.Buf16(16); var jd = new Q.Buf16(16); var Oc = null, E = 0; for (Sa = 0; 15 >= Sa; Sa++) yd[Sa] = 0; for (T = 0; T < x; T++) yd[t[y + T]]++; var Ga = Kd; for (xb = 15; 1 <= xb && 0 === yd[xb]; xb--) ; if (Ga > xb && (Ga = xb), 0 === xb) return H[R++] = 20971520, H[R++] = 20971520, K.bits = 1, 0; for (Kd = 1; Kd < xb && 0 === yd[Kd]; Kd++) ; Ga < Kd && (Ga = Kd); for (Sa = A = 1; 15 >= Sa; Sa++) if (A <<= 1, A -= yd[Sa], 0 > A) return -1; if (0 < A && (0 === k || 1 !== xb)) return -1; jd[1] = 0; for (Sa = 1; 15 > Sa; Sa++) jd[Sa + 1] = jd[Sa] + yd[Sa]; for (T = 0; T < x; T++) 0 !== t[y + T] && (za[jd[t[y + T]]++] = T); if (0 === k ? (ue = Oc = za, ya = 19) : 1 === k ? (ue = ia, Eb -= 257, Oc = u, E -= 257, ya = 256) : (ue = hb, Oc = q, ya = -1), jb = 0, T = 0, Sa = Kd, jd = R, Ha = Ga, Ba = 0, fb = -1, te = 1 << Ga, x = te - 1, 1 === k && 852 < te || 2 === k && 592 < te) return 1; for (var Bb = 0; ;) { Bb++; var ab = Sa - Ba; za[T] < ya ? (V = 0, z = za[T]) : za[T] > ya ? (V = Oc[E + za[T]], z = ue[Eb + za[T]]) : (V = 96, z = 0); A = 1 << Sa - Ba; Kd = Aa = 1 << Ha; do Aa -= A, H[jd + (jb >> Ba) + Aa] = ab << 24 | V << 16 | z | 0; while (0 !== Aa); for (A = 1 << Sa - 1; jb & A;) A >>= 1; if (0 !== A ? (jb &= A - 1, jb += A) : jb = 0, T++, 0 === --yd[Sa]) { if (Sa === xb) break; Sa = t[y + za[T]] } if (Sa > Ga && (jb & x) !== fb) { 0 === Ba && (Ba = Ga); jd += Kd; Ha = Sa - Ba; for (A = 1 << Ha; Ha + Ba < xb && (A -= yd[Ha + Ba], !(0 >= A));) Ha++, A <<= 1; if (te += 1 << Ha, 1 === k && 852 < te || 2 === k && 592 < te) return 1; fb = jb & x; H[fb] = Ga << 24 | Ha << 16 | jd - R | 0 } } return 0 !== jb && (H[jd + jb] = Sa - Ba << 24 | 4194304), K.bits = Ga, 0 } }, {"../utils/common": 3}], 13: [function (y, R, H) { R.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" } }, {}], 14: [function (y, R, H) { function Q(k) { for (var q = k.length; 0 <= --q;) k[q] = 0 } function ia(k, q, t, u, x) { this.static_tree = k; this.extra_bits = q; this.extra_base = t; this.elems = u; this.max_length = x; this.has_stree = k && k.length } function u(k, q) { this.dyn_tree = k; this.max_code = 0; this.stat_desc = q } function hb(k, q) { k.pending_buf[k.pending++] = 255 & q; k.pending_buf[k.pending++] = q >>> 8 & 255 } function q(k, q, t) { k.bi_valid > Eb - t ? (k.bi_buf |= q << k.bi_valid & 65535, hb(k, k.bi_buf), k.bi_buf = q >> Eb - k.bi_valid, k.bi_valid += t - Eb) : (k.bi_buf |= q << k.bi_valid & 65535, k.bi_valid += t) } function k(k, t, u) { q(k, u[2 * t], u[2 * t + 1]) } function t(k, q) { var t = 0; do t |= 1 & k, k >>>= 1, t <<= 1; while (0 < --q); return t >>> 1 } function A(k, q, u) { var x, y = Array(ue + 1), z = 0; for (x = 1; x <= ue; x++) y[x] = z = z + u[x - 1] << 1; for (u = 0; u <= q; u++) x = k[2 * u + 1], 0 !== x && (k[2 * u] = t(y[x]++, x)) } function x(k) { var q; for (q = 0; q < Ha; q++) k.dyn_ltree[2 * q] = 0; for (q = 0; q < Ba; q++) k.dyn_dtree[2 * q] = 0; for (q = 0; q < te; q++) k.bl_tree[2 * q] = 0; k.dyn_ltree[2 * yd] = 1; k.opt_len = k.static_len = 0; k.last_lit = k.matches = 0 } function Aa(k) { 8 < k.bi_valid ? hb(k, k.bi_buf) : 0 < k.bi_valid && (k.pending_buf[k.pending++] = k.bi_buf); k.bi_buf = 0; k.bi_valid = 0 } function fb(k, q, t, u) { var x = 2 * q, y = 2 * t; return k[x] < k[y] || k[x] === k[y] && u[q] <= u[t] } function za(k, q, t) { for (var u = k.heap[t], x = t << 1; x <= k.heap_len && (x < k.heap_len && fb(q, k.heap[x + 1], k.heap[x], k.depth) && x++, !fb(q, u, k.heap[x], k.depth));) k.heap[t] = k.heap[x], t = x, x <<= 1; k.heap[t] = u } function K(t, u, x) { var y, z, A = 0; if (0 !== t.last_lit) { do { var J = t.pending_buf[t.d_buf + 2 * A] << 8 | t.pending_buf[t.d_buf + 2 * A + 1]; var E = t.pending_buf[t.l_buf + A]; A++; 0 === J ? k(t, E, u) : (y = fa[E], k(t, y + xb + 1, u), z = Ga[y], 0 !== z && (E -= M[y], q(t, E, z)), J--, y = 256 > J ? S[J] : S[256 + (J >>> 7)], k(t, y, x), z = Bb[y], 0 !== z && (J -= qc[y], q(t, J, z))) } while (A < t.last_lit) } k(t, yd, u) } function Jd(k, q) { var t, u = q.dyn_tree; var x = q.stat_desc.static_tree; var y = q.stat_desc.has_stree, z = q.stat_desc.elems, E = -1; k.heap_len = 0; k.heap_max = jb; for (t = 0; t < z; t++) 0 !== u[2 * t] ? (k.heap[++k.heap_len] = E = t, k.depth[t] = 0) : u[2 * t + 1] = 0; for (; 2 > k.heap_len;) { var J = k.heap[++k.heap_len] = 2 > E ? ++E : 0; u[2 * J] = 1; k.depth[J] = 0; k.opt_len--; y && (k.static_len -= x[2 * J + 1]) } q.max_code = E; for (t = k.heap_len >> 1; 1 <= t; t--) za(k, u, t); J = z; do t = k.heap[1], k.heap[1] = k.heap[k.heap_len--], za(k, u, 1), x = k.heap[1], k.heap[--k.heap_max] = t, k.heap[--k.heap_max] = x, u[2 * J] = u[2 * t] + u[2 * x], k.depth[J] = (k.depth[t] >= k.depth[x] ? k.depth[t] : k.depth[x]) + 1, u[2 * t + 1] = u[2 * x + 1] = J, k.heap[1] = J++, za(k, u, 1); while (2 <= k.heap_len); k.heap[--k.heap_max] = k.heap[1]; var H, K; t = q.dyn_tree; J = q.max_code; z = q.stat_desc.static_tree; var M = q.stat_desc.has_stree, N = q.stat_desc.extra_bits, Q = q.stat_desc.extra_base, R = q.stat_desc.max_length, S = 0; for (y = 0; y <= ue; y++) k.bl_count[y] = 0; t[2 * k.heap[k.heap_max] + 1] = 0; for (q = k.heap_max + 1; q < jb; q++) x = k.heap[q], y = t[2 * t[2 * x + 1] + 1] + 1, y > R && (y = R, S++), t[2 * x + 1] = y, x > J || (k.bl_count[y]++, H = 0, x >= Q && (H = N[x - Q]), K = t[2 * x], k.opt_len += K * (y + H), M && (k.static_len += K * (z[2 * x + 1] + H))); if (0 !== S) { do { for (y = R - 1; 0 === k.bl_count[y];) y--; k.bl_count[y]--; k.bl_count[y + 1] += 2; k.bl_count[R]--; S -= 2 } while (0 < S); for (y = R; 0 !== y; y--) for (x = k.bl_count[y]; 0 !== x;) H = k.heap[--q], H > J || (t[2 * H + 1] !== y && (k.opt_len += (y - t[2 * H + 1]) * t[2 * H], t[2 * H + 1] = y), x--) } A(u, E, k.bl_count) } function se(k, q, t) { var u, x = -1, y = q[1], z = 0, A = 7, J = 4; 0 === y && (A = 138, J = 3); q[2 * (t + 1) + 1] = 65535; for (u = 0; u <= t; u++) { var H = y; y = q[2 * (u + 1) + 1]; ++z < A && H === y || (z < J ? k.bl_tree[2 * H] += z : 0 !== H ? (H !== x && k.bl_tree[2 * H]++, k.bl_tree[2 * jd]++) : 10 >= z ? k.bl_tree[2 * Oc]++ : k.bl_tree[2 * E]++, z = 0, x = H, 0 === y ? (A = 138, J = 3) : H === y ? (A = 6, J = 3) : (A = 7, J = 4)) } } function Rb(t, u, x) { var y, z, A = -1, J = u[1], H = 0, K = 7, M = 4; 0 === J && (K = 138, M = 3); for (y = 0; y <= x; y++) if (z = J, J = u[2 * (y + 1) + 1], !(++H < K && z === J)) { if (H < M) { do k(t, z, t.bl_tree); while (0 !== --H) } else 0 !== z ? (z !== A && (k(t, z, t.bl_tree), H--), k(t, jd, t.bl_tree), q(t, H - 3, 2)) : 10 >= H ? (k(t, Oc, t.bl_tree), q(t, H - 3, 3)) : (k(t, E, t.bl_tree), q(t, H - 11, 7)); H = 0; A = z; 0 === J ? (K = 138, M = 3) : z === J ? (K = 6, M = 3) : (K = 7, M = 4) } } function ya(k) { var q, t = 4093624447; for (q = 0; 31 >= q; q++, t >>>= 1) if (1 & t && 0 !== k.dyn_ltree[2 * q]) return Kd; if (0 !== k.dyn_ltree[18] || 0 !== k.dyn_ltree[20] || 0 !== k.dyn_ltree[26]) return Sa; for (q = 32; q < xb; q++) if (0 !== k.dyn_ltree[2 * q]) return Sa; return Kd } function V(k, t, u, x) { q(k, (T << 1) + (x ? 1 : 0), 3); Aa(k); hb(k, u); hb(k, ~u); z.arraySet(k.pending_buf, k.window, t, u, k.pending); k.pending += u } var z = y("../utils/common"), Kd = 0, Sa = 1, T = 0, xb = 256, Ha = xb + 1 + 29, Ba = 30, te = 19, jb = 2 * Ha + 1, ue = 15, Eb = 16, yd = 256, jd = 16, Oc = 17, E = 18, Ga = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0], Bb = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13], ab = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], Ca = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], ua = Array(2 * (Ha + 2)); Q(ua); var sa = Array(2 * Ba); Q(sa); var S = Array(512); Q(S); var fa = Array(256); Q(fa); var M = Array(29); Q(M); var qc = Array(Ba); Q(qc); var Xb, sc, N, vf = !1; H._tr_init = function (k) { if (!vf) { var q, y, z, E = Array(ue + 1); for (z = y = 0; 28 > z; z++) for (M[z] = y, q = 0; q < 1 << Ga[z]; q++) fa[y++] = z; fa[y - 1] = z; for (z = y = 0; 16 > z; z++) for (qc[z] = y, q = 0; q < 1 << Bb[z]; q++) S[y++] = z; for (y >>= 7; z < Ba; z++) for (qc[z] = y << 7, q = 0; q < 1 << Bb[z] - 7; q++) S[256 + y++] = z; for (q = 0; q <= ue; q++) E[q] = 0; for (q = 0; 143 >= q;) ua[2 * q + 1] = 8, q++, E[8]++; for (; 255 >= q;) ua[2 * q + 1] = 9, q++, E[9]++; for (; 279 >= q;) ua[2 * q + 1] = 7, q++, E[7]++; for (; 287 >= q;) ua[2 * q + 1] = 8, q++, E[8]++; A(ua, Ha + 1, E); for (q = 0; q < Ba; q++) sa[2 * q + 1] = 5, sa[2 * q] = t(q, 5); Xb = new ia(ua, Ga, xb + 1, Ha, ue); sc = new ia(sa, Bb, 0, Ba, ue); N = new ia([], ab, 0, te, 7); vf = !0 } k.l_desc = new u(k.dyn_ltree, Xb); k.d_desc = new u(k.dyn_dtree, sc); k.bl_desc = new u(k.bl_tree, N); k.bi_buf = 0; k.bi_valid = 0; x(k) }; H._tr_stored_block = V; H._tr_flush_block = function (k, t, u, y) { var z = 0; if (0 < k.level) { 2 === k.strm.data_type && (k.strm.data_type = ya(k)); Jd(k, k.l_desc); Jd(k, k.d_desc); se(k, k.dyn_ltree, k.l_desc.max_code); se(k, k.dyn_dtree, k.d_desc.max_code); Jd(k, k.bl_desc); for (z = te - 1; 3 <= z && 0 === k.bl_tree[2 * Ca[z] + 1]; z--) ; z = (k.opt_len += 3 * (z + 1) + 14, z); var A = k.opt_len + 3 + 7 >>> 3; var E = k.static_len + 3 + 7 >>> 3; E <= A && (A = E) } else A = E = u + 5; if (u + 4 <= A && -1 !== t) V(k, t, u, y); else if (4 === k.strategy || E === A) q(k, 2 + (y ? 1 : 0), 3), K(k, ua, sa); else { q(k, 4 + (y ? 1 : 0), 3); t = k.l_desc.max_code + 1; u = k.d_desc.max_code + 1; z += 1; q(k, t - 257, 5); q(k, u - 1, 5); q(k, z - 4, 4); for (A = 0; A < z; A++) q(k, k.bl_tree[2 * Ca[A] + 1], 3); Rb(k, k.dyn_ltree, t - 1); Rb(k, k.dyn_dtree, u - 1); K(k, k.dyn_ltree, k.dyn_dtree) } x(k); y && Aa(k) }; H._tr_tally = function (k, q, t) { return k.pending_buf[k.d_buf + 2 * k.last_lit] = q >>> 8 & 255, k.pending_buf[k.d_buf + 2 * k.last_lit + 1] = 255 & q, k.pending_buf[k.l_buf + k.last_lit] = 255 & t, k.last_lit++, 0 === q ? k.dyn_ltree[2 * t]++ : (k.matches++, q--, k.dyn_ltree[2 * (fa[t] + xb + 1)]++, k.dyn_dtree[2 * (256 > q ? S[q] : S[256 + (q >>> 7)])]++), k.last_lit === k.lit_bufsize - 1 }; H._tr_align = function (t) { q(t, 2, 3); k(t, yd, ua); 16 === t.bi_valid ? (hb(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : 8 <= t.bi_valid && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) } }, {"../utils/common": 3}], 15: [function (y, R, H) { R.exports = function () { this.input = null; this.total_in = this.avail_in = this.next_in = 0; this.output = null; this.total_out = this.avail_out = this.next_out = 0; this.msg = ""; this.state = null; this.data_type = 2; this.adler = 0 } }, {}], "/": [function (y, R, H) { H = y("./lib/utils/common").assign; var Q = y("./lib/deflate"), ia = y("./lib/inflate"); y = y("./lib/zlib/constants"); var u = {}; H(u, Q, ia, y); R.exports = u }, {"./lib/deflate": 1, "./lib/inflate": 2, "./lib/utils/common": 3, "./lib/zlib/constants": 6}] }, {}, [])("/") }); var saveAs = saveAs || function (la) { if (!("undefined" === typeof la || "undefined" !== typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent))) { var y = la.document.createElementNS("http://www.w3.org/1999/xhtml", "a"), R = "download" in y, H = /constructor/i.test(la.HTMLElement) || la.safari, Q = /CriOS\/[\d]+/.test(navigator.userAgent), ia = function (k) { (la.setImmediate || la.setTimeout)(function () { throw k; }, 0) }, u = function (k) { setTimeout(function () { "string" === typeof k ? (la.URL || la.webkitURL || la).revokeObjectURL(k) : k.remove() }, 4E4) }, hb = function (k) { return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(k.type) ? new Blob([String.fromCharCode(65279), k], {type: k.type}) : k }, q = function (k, q, x) { x || (k = hb(k)); var t = this, A = "application/octet-stream" === k.type, za = function () { var k = ["writestart", "progress", "write", "writeend"]; k = [].concat(k); for (var q = k.length; q--;) { var u = t["on" + k[q]]; if ("function" === typeof u) try { u.call(t, t) } catch (ya) { ia(ya) } } }; t.readyState = t.INIT; if (R) { var K = (la.URL || la.webkitURL || la).createObjectURL(k); setTimeout(function () { y.href = K; y.download = q; var k = new MouseEvent("click"); y.dispatchEvent(k); za(); u(K); t.readyState = t.DONE }) } else (function () { if ((Q || A && H) && la.FileReader) { var q = new FileReader; q.onloadend = function () { var k = Q ? q.result : q.result.replace(/^data:[^;]*;/, "data:attachment/file;"); la.open(k, "_blank") || (la.location.href = k); t.readyState = t.DONE; za() }; q.readAsDataURL(k); t.readyState = t.INIT } else K || (K = (la.URL || la.webkitURL || la).createObjectURL(k)), A ? la.location.href = K : la.open(K, "_blank") || (la.location.href = K), t.readyState = t.DONE, za(), u(K) })() }, k = q.prototype; if ("undefined" !== typeof navigator && navigator.msSaveOrOpenBlob) return function (k, q, u) { q = q || k.name || "download"; u || (k = hb(k)); return navigator.msSaveOrOpenBlob(k, q) }; k.abort = function () { }; k.readyState = k.INIT = 0; k.WRITING = 1; k.DONE = 2; k.error = k.onwritestart = k.onprogress = k.onwrite = k.onabort = k.onerror = k.onwriteend = null; return function (k, u, x) { return new q(k, u || k.name || "download", x) } } }("undefined" !== typeof self && self || "undefined" !== typeof window && window || this.content); "undefined" !== typeof module && module.exports ? module.exports.saveAs = saveAs : "undefined" !== typeof define && null !== define && null !== define.amd && define("FileSaver.js", function () { return saveAs }); "function" == typeof define && define.__amd && (define.amd = define.__amd, delete define.__amd); //# sourceMappingURL=Into_The_Pit_EasyMode.js.map