var jellimaticApp = function(t) {
    var e = {};

    function n(r) {
        if (e[r]) return e[r].exports;
        var i = e[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports
    }
    return n.m = t, n.c = e, n.i = function(t) {
        return t
    }, n.d = function(t, e, r) {
        n.o(t, e) || Object.defineProperty(t, e, {
            configurable: !1,
            enumerable: !0,
            get: r
        })
    }, n.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return n.d(e, "a", e), e
    }, n.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, n.p = "", n(n.s = 85)
}([function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.VERSION = "4.8.1", e.PI_2 = 2 * Math.PI, e.RAD_TO_DEG = 180 / Math.PI, e.DEG_TO_RAD = Math.PI / 180, e.RENDERER_TYPE = {
        UNKNOWN: 0,
        WEBGL: 1,
        CANVAS: 2
    }, e.BLEND_MODES = {
        NORMAL: 0,
        ADD: 1,
        MULTIPLY: 2,
        SCREEN: 3,
        OVERLAY: 4,
        DARKEN: 5,
        LIGHTEN: 6,
        COLOR_DODGE: 7,
        COLOR_BURN: 8,
        HARD_LIGHT: 9,
        SOFT_LIGHT: 10,
        DIFFERENCE: 11,
        EXCLUSION: 12,
        HUE: 13,
        SATURATION: 14,
        COLOR: 15,
        LUMINOSITY: 16,
        NORMAL_NPM: 17,
        ADD_NPM: 18,
        SCREEN_NPM: 19
    }, e.DRAW_MODES = {
        POINTS: 0,
        LINES: 1,
        LINE_LOOP: 2,
        LINE_STRIP: 3,
        TRIANGLES: 4,
        TRIANGLE_STRIP: 5,
        TRIANGLE_FAN: 6
    }, e.SCALE_MODES = {
        LINEAR: 0,
        NEAREST: 1
    }, e.WRAP_MODES = {
        CLAMP: 0,
        REPEAT: 1,
        MIRRORED_REPEAT: 2
    }, e.GC_MODES = {
        AUTO: 0,
        MANUAL: 1
    }, e.URL_FILE_EXTENSION = /\.(\w{3,4})(?:$|\?|#)/i, e.DATA_URI = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i, e.SVG_SIZE = /<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i, e.SHAPES = {
        POLY: 0,
        RECT: 1,
        CIRC: 2,
        ELIP: 3,
        RREC: 4
    }, e.PRECISION = {
        LOW: "lowp",
        MEDIUM: "mediump",
        HIGH: "highp"
    }, e.TRANSFORM_MODE = {
        STATIC: 0,
        DYNAMIC: 1
    }, e.TEXT_GRADIENT = {
        LINEAR_VERTICAL: 0,
        LINEAR_HORIZONTAL: 1
    }, e.UPDATE_PRIORITY = {
        INTERACTION: 50,
        HIGH: 25,
        NORMAL: 0,
        LOW: -25,
        UTILITY: -50
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.autoDetectRenderer = e.Application = e.Filter = e.SpriteMaskFilter = e.Quad = e.RenderTarget = e.ObjectRenderer = e.WebGLManager = e.Shader = e.CanvasRenderTarget = e.TextureUvs = e.VideoBaseTexture = e.BaseRenderTexture = e.RenderTexture = e.BaseTexture = e.TextureMatrix = e.Texture = e.Spritesheet = e.CanvasGraphicsRenderer = e.GraphicsRenderer = e.GraphicsData = e.Graphics = e.TextMetrics = e.TextStyle = e.Text = e.SpriteRenderer = e.CanvasTinter = e.CanvasSpriteRenderer = e.Sprite = e.TransformBase = e.TransformStatic = e.Transform = e.Container = e.DisplayObject = e.Bounds = e.glCore = e.WebGLRenderer = e.CanvasRenderer = e.ticker = e.utils = e.settings = void 0;
    var r = n(0);
    Object.keys(r).forEach(function(t) {
        "default" !== t && "__esModule" !== t && Object.defineProperty(e, t, {
            enumerable: !0,
            get: function() {
                return r[t]
            }
        })
    });
    var i = n(5);
    Object.keys(i).forEach(function(t) {
        "default" !== t && "__esModule" !== t && Object.defineProperty(e, t, {
            enumerable: !0,
            get: function() {
                return i[t]
            }
        })
    });
    var o = n(9);
    Object.defineProperty(e, "glCore", {
        enumerable: !0,
        get: function() {
            return Y(o).default
        }
    });
    var s = n(73);
    Object.defineProperty(e, "Bounds", {
        enumerable: !0,
        get: function() {
            return Y(s).default
        }
    });
    var a = n(156);
    Object.defineProperty(e, "DisplayObject", {
        enumerable: !0,
        get: function() {
            return Y(a).default
        }
    });
    var u = n(29);
    Object.defineProperty(e, "Container", {
        enumerable: !0,
        get: function() {
            return Y(u).default
        }
    });
    var l = n(157);
    Object.defineProperty(e, "Transform", {
        enumerable: !0,
        get: function() {
            return Y(l).default
        }
    });
    var c = n(158);
    Object.defineProperty(e, "TransformStatic", {
        enumerable: !0,
        get: function() {
            return Y(c).default
        }
    });
    var h = n(74);
    Object.defineProperty(e, "TransformBase", {
        enumerable: !0,
        get: function() {
            return Y(h).default
        }
    });
    var f = n(78);
    Object.defineProperty(e, "Sprite", {
        enumerable: !0,
        get: function() {
            return Y(f).default
        }
    });
    var d = n(411);
    Object.defineProperty(e, "CanvasSpriteRenderer", {
        enumerable: !0,
        get: function() {
            return Y(d).default
        }
    });
    var p = n(79);
    Object.defineProperty(e, "CanvasTinter", {
        enumerable: !0,
        get: function() {
            return Y(p).default
        }
    });
    var v = n(413);
    Object.defineProperty(e, "SpriteRenderer", {
        enumerable: !0,
        get: function() {
            return Y(v).default
        }
    });
    var _ = n(415);
    Object.defineProperty(e, "Text", {
        enumerable: !0,
        get: function() {
            return Y(_).default
        }
    });
    var g = n(169);
    Object.defineProperty(e, "TextStyle", {
        enumerable: !0,
        get: function() {
            return Y(g).default
        }
    });
    var y = n(168);
    Object.defineProperty(e, "TextMetrics", {
        enumerable: !0,
        get: function() {
            return Y(y).default
        }
    });
    var m = n(383);
    Object.defineProperty(e, "Graphics", {
        enumerable: !0,
        get: function() {
            return Y(m).default
        }
    });
    var b = n(159);
    Object.defineProperty(e, "GraphicsData", {
        enumerable: !0,
        get: function() {
            return Y(b).default
        }
    });
    var x = n(386);
    Object.defineProperty(e, "GraphicsRenderer", {
        enumerable: !0,
        get: function() {
            return Y(x).default
        }
    });
    var w = n(384);
    Object.defineProperty(e, "CanvasGraphicsRenderer", {
        enumerable: !0,
        get: function() {
            return Y(w).default
        }
    });
    var T = n(416);
    Object.defineProperty(e, "Spritesheet", {
        enumerable: !0,
        get: function() {
            return Y(T).default
        }
    });
    var E = n(15);
    Object.defineProperty(e, "Texture", {
        enumerable: !0,
        get: function() {
            return Y(E).default
        }
    });
    var S = n(171);
    Object.defineProperty(e, "TextureMatrix", {
        enumerable: !0,
        get: function() {
            return Y(S).default
        }
    });
    var P = n(22);
    Object.defineProperty(e, "BaseTexture", {
        enumerable: !0,
        get: function() {
            return Y(P).default
        }
    });
    var O = n(80);
    Object.defineProperty(e, "RenderTexture", {
        enumerable: !0,
        get: function() {
            return Y(O).default
        }
    });
    var M = n(170);
    Object.defineProperty(e, "BaseRenderTexture", {
        enumerable: !0,
        get: function() {
            return Y(M).default
        }
    });
    var C = n(173);
    Object.defineProperty(e, "VideoBaseTexture", {
        enumerable: !0,
        get: function() {
            return Y(C).default
        }
    });
    var A = n(172);
    Object.defineProperty(e, "TextureUvs", {
        enumerable: !0,
        get: function() {
            return Y(A).default
        }
    });
    var I = n(163);
    Object.defineProperty(e, "CanvasRenderTarget", {
        enumerable: !0,
        get: function() {
            return Y(I).default
        }
    });
    var R = n(28);
    Object.defineProperty(e, "Shader", {
        enumerable: !0,
        get: function() {
            return Y(R).default
        }
    });
    var D = n(31);
    Object.defineProperty(e, "WebGLManager", {
        enumerable: !0,
        get: function() {
            return Y(D).default
        }
    });
    var L = n(48);
    Object.defineProperty(e, "ObjectRenderer", {
        enumerable: !0,
        get: function() {
            return Y(L).default
        }
    });
    var k = n(49);
    Object.defineProperty(e, "RenderTarget", {
        enumerable: !0,
        get: function() {
            return Y(k).default
        }
    });
    var j = n(167);
    Object.defineProperty(e, "Quad", {
        enumerable: !0,
        get: function() {
            return Y(j).default
        }
    });
    var N = n(166);
    Object.defineProperty(e, "SpriteMaskFilter", {
        enumerable: !0,
        get: function() {
            return Y(N).default
        }
    });
    var B = n(165);
    Object.defineProperty(e, "Filter", {
        enumerable: !0,
        get: function() {
            return Y(B).default
        }
    });
    var F = n(154);
    Object.defineProperty(e, "Application", {
        enumerable: !0,
        get: function() {
            return Y(F).default
        }
    });
    var U = n(155);
    Object.defineProperty(e, "autoDetectRenderer", {
        enumerable: !0,
        get: function() {
            return U.autoDetectRenderer
        }
    });
    var z = V(n(2)),
        X = V(n(81)),
        G = Y(n(3)),
        W = Y(n(30)),
        H = Y(n(47));

    function V(t) {
        if (t && t.__esModule) return t;
        var e = {};
        if (null != t)
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e.default = t, e
    }

    function Y(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    e.settings = G.default, e.utils = z, e.ticker = X, e.CanvasRenderer = W.default, e.WebGLRenderer = H.default
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.premultiplyBlendMode = e.BaseTextureCache = e.TextureCache = e.earcut = e.mixins = e.pluginTarget = e.EventEmitter = e.removeItems = e.isMobile = void 0, e.uid = function() {
        return ++p
    }, e.hex2rgb = function(t, e) {
        return (e = e || [])[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255, e
    }, e.hex2string = function(t) {
        return t = t.toString(16), "#" + ("000000".substr(0, 6 - t.length) + t)
    }, e.rgb2hex = function(t) {
        return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0)
    }, e.getResolutionOfUrl = function(t, e) {
        var n = i.default.RETINA_PREFIX.exec(t);
        return n ? parseFloat(n[1]) : void 0 !== e ? e : 1
    }, e.decomposeDataUri = function(t) {
        var e = r.DATA_URI.exec(t);
        if (e) return {
            mediaType: e[1] ? e[1].toLowerCase() : void 0,
            subType: e[2] ? e[2].toLowerCase() : void 0,
            charset: e[3] ? e[3].toLowerCase() : void 0,
            encoding: e[4] ? e[4].toLowerCase() : void 0,
            data: e[5]
        }
    }, e.getUrlFileExtension = function(t) {
        var e = r.URL_FILE_EXTENSION.exec(t);
        if (e) return e[1].toLowerCase()
    }, e.getSvgSize = function(t) {
        var e = r.SVG_SIZE.exec(t),
            n = {};
        return e && (n[e[1]] = Math.round(parseFloat(e[3])), n[e[5]] = Math.round(parseFloat(e[7]))), n
    }, e.skipHello = function() {
        v = !0
    }, e.sayHello = function(t) {
        if (!v) {
            if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
                var e = ["\n %c %c %c PixiJS " + r.VERSION + " - ✰ " + t + " ✰  %c  %c  http://www.pixijs.com/  %c %c ♥%c♥%c♥ \n\n", "background: #ff66a5; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff66a5; background: #030307; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "background: #ffc3dc; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;"];
                window.console.log.apply(console, e)
            } else window.console && window.console.log("PixiJS " + r.VERSION + " - " + t + " - http://www.pixijs.com/");
            v = !0
        }
    }, e.isWebGLSupported = function() {
        var t = {
            stencil: !0,
            failIfMajorPerformanceCaveat: !0
        };
        try {
            if (!window.WebGLRenderingContext) return !1;
            var e = document.createElement("canvas"),
                n = e.getContext("webgl", t) || e.getContext("experimental-webgl", t),
                r = !(!n || !n.getContextAttributes().stencil);
            if (n) {
                var i = n.getExtension("WEBGL_lose_context");
                i && i.loseContext()
            }
            return n = null, r
        } catch (t) {
            return !1
        }
    }, e.sign = function(t) {
        return 0 === t ? 0 : t < 0 ? -1 : 1
    }, e.destroyTextureCache = function() {
        var t = void 0;
        for (t in _) _[t].destroy();
        for (t in g) g[t].destroy()
    }, e.clearTextureCache = function() {
        var t = void 0;
        for (t in _) delete _[t];
        for (t in g) delete g[t]
    }, e.correctBlendMode = function(t, e) {
        return y[e ? 1 : 0][t]
    }, e.premultiplyTint = function(t, e) {
        if (1 === e) return (255 * e << 24) + t;
        if (0 === e) return 0;
        var n = t >> 16 & 255,
            r = t >> 8 & 255,
            i = 255 & t;
        return (255 * e << 24) + ((n = n * e + .5 | 0) << 16) + ((r = r * e + .5 | 0) << 8) + (i * e + .5 | 0)
    }, e.premultiplyRgba = function(t, e, n, r) {
        return n = n || new Float32Array(4), r || void 0 === r ? (n[0] = t[0] * e, n[1] = t[1] * e, n[2] = t[2] * e) : (n[0] = t[0], n[1] = t[1], n[2] = t[2]), n[3] = e, n
    }, e.premultiplyTintToRgba = function(t, e, n, r) {
        return (n = n || new Float32Array(4))[0] = (t >> 16 & 255) / 255, n[1] = (t >> 8 & 255) / 255, n[2] = (255 & t) / 255, (r || void 0 === r) && (n[0] *= e, n[1] *= e, n[2] *= e), n[3] = e, n
    };
    var r = n(0),
        i = d(n(3)),
        o = d(n(16)),
        s = d(n(423)),
        a = f(n(422)),
        u = f(n(53)),
        l = d(n(471)),
        c = d(n(420)),
        h = d(n(52));

    function f(t) {
        if (t && t.__esModule) return t;
        var e = {};
        if (null != t)
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e.default = t, e
    }

    function d(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var p = 0,
        v = !1;
    e.isMobile = u, e.removeItems = l.default, e.EventEmitter = o.default, e.pluginTarget = s.default, e.mixins = a, e.earcut = h.default;
    var _ = e.TextureCache = Object.create(null),
        g = e.BaseTextureCache = Object.create(null),
        y = e.premultiplyBlendMode = (0, c.default)()
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = o(n(421)),
        i = o(n(419));

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    e.default = {
        TARGET_FPMS: .06,
        MIPMAP_TEXTURES: !0,
        RESOLUTION: 1,
        FILTER_RESOLUTION: 1,
        SPRITE_MAX_TEXTURES: (0, r.default)(32),
        SPRITE_BATCH_SIZE: 4096,
        RETINA_PREFIX: /@([0-9\.]+)x/,
        RENDER_OPTIONS: {
            view: null,
            antialias: !1,
            forceFXAA: !1,
            autoResize: !1,
            transparent: !1,
            backgroundColor: 0,
            clearBeforeRender: !0,
            preserveDrawingBuffer: !1,
            roundPixels: !1,
            width: 800,
            height: 600,
            legacy: !1
        },
        TRANSFORM_MODE: 0,
        GC_MODE: 0,
        GC_MAX_IDLE: 3600,
        GC_MAX_CHECK_COUNT: 600,
        WRAP_MODE: 0,
        SCALE_MODE: 0,
        PRECISION_VERTEX: "highp",
        PRECISION_FRAGMENT: "mediump",
        CAN_UPLOAD_SAME_BUFFER: (0, i.default)(),
        MESH_CANVAS_PADDING: 0
    }
}, function(t, e, n) {
    "use strict";
    (function(t) {
        e.__esModule = !0, e.loader = e.prepare = e.particles = e.mesh = e.loaders = e.interaction = e.filters = e.extras = e.extract = e.accessibility = void 0;
        var r = n(460);
        Object.keys(r).forEach(function(t) {
            "default" !== t && "__esModule" !== t && Object.defineProperty(e, t, {
                enumerable: !0,
                get: function() {
                    return r[t]
                }
            })
        });
        var i = n(1);
        Object.keys(i).forEach(function(t) {
            "default" !== t && "__esModule" !== t && Object.defineProperty(e, t, {
                enumerable: !0,
                get: function() {
                    return i[t]
                }
            })
        });
        var o, s = (o = n(425)) && o.__esModule ? o : {
                default: o
            },
            a = _(n(382)),
            u = _(n(427)),
            l = _(n(175)),
            c = _(n(441)),
            h = _(n(444)),
            f = _(n(445)),
            d = _(n(450)),
            p = _(n(453)),
            v = _(n(463));

        function _(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }
        i.utils.mixins.performMixins();
        var g = f.shared || null;
        e.accessibility = a, e.extract = u, e.extras = l, e.filters = c, e.interaction = h, e.loaders = f, e.mesh = d, e.particles = p, e.prepare = v, e.loader = g, "function" == typeof s.default && (0, s.default)(e), t.PIXI = e
    }).call(e, n(18))
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(76);
    Object.defineProperty(e, "Point", {
        enumerable: !0,
        get: function() {
            return f(r).default
        }
    });
    var i = n(161);
    Object.defineProperty(e, "ObservablePoint", {
        enumerable: !0,
        get: function() {
            return f(i).default
        }
    });
    var o = n(75);
    Object.defineProperty(e, "Matrix", {
        enumerable: !0,
        get: function() {
            return f(o).default
        }
    });
    var s = n(160);
    Object.defineProperty(e, "GroupD8", {
        enumerable: !0,
        get: function() {
            return f(s).default
        }
    });
    var a = n(393);
    Object.defineProperty(e, "Circle", {
        enumerable: !0,
        get: function() {
            return f(a).default
        }
    });
    var u = n(394);
    Object.defineProperty(e, "Ellipse", {
        enumerable: !0,
        get: function() {
            return f(u).default
        }
    });
    var l = n(395);
    Object.defineProperty(e, "Polygon", {
        enumerable: !0,
        get: function() {
            return f(l).default
        }
    });
    var c = n(77);
    Object.defineProperty(e, "Rectangle", {
        enumerable: !0,
        get: function() {
            return f(c).default
        }
    });
    var h = n(396);

    function f(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "RoundedRectangle", {
        enumerable: !0,
        get: function() {
            return f(h).default
        }
    })
}, function(t, e, n) {
    var r = n(126),
        i = "object" == typeof self && self && self.Object === Object && self,
        o = r || i || Function("return this")();
    t.exports = o
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(10),
        i = n(240),
        o = n(213),
        s = {};
    e.get = function(t) {
        return s.hasOwnProperty(t) ? s[t].data : null
    }, e.getMessage = function(t) {
        var e = o.en[t];
        return void 0 === e ? null : e
    }, e.loadPreloaderAssets = function(t, e) {
        t.add("back_tile.png", "img/back_tile.png"), t.add("img/preloader.json"), t.load(function(t, n) {
            i.default(s, n), e()
        })
    }, e.load = function(t, e) {
        t.add("img/spritesheet.json"), t.add("font/game.fnt", {
            xhrType: PIXI.loaders.Resource.XHR_RESPONSE_TYPE.DOCUMENT
        }), r.settings.init(), r.load(t, [{
            id: "click_fwd",
            volume: .5
        }, {
            id: "click_back",
            volume: .5
        }, {
            id: "bubbles",
            volume: .5
        }, {
            id: "bubbleburst",
            volume: .5
        }, {
            id: "makemaze",
            volume: .7
        }, {
            id: "level_complete",
            volume: 1
        }, {
            id: "mazestop",
            volume: .3
        }, {
            id: "coin",
            volume: .5
        }, {
            id: "winddown",
            volume: .5
        }, {
            id: "droplet",
            volume: .3
        }]), t.load(function(t, n) {
            i.default(s, n), e()
        })
    }
}, function(t, e) {
    var n = Array.isArray;
    t.exports = n
}, function(t, e, n) {
    var r = {
        createContext: n(379),
        setVertexAttribArrays: n(145),
        GLBuffer: n(375),
        GLFramebuffer: n(376),
        GLShader: n(377),
        GLTexture: n(144),
        VertexArrayObject: n(378),
        shader: n(380)
    };
    void 0 !== t && t.exports && (t.exports = r), "undefined" != typeof window && (window.PIXI = window.PIXI || {}, window.PIXI.glCore = r)
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
            value: !0
        }),
        function(t) {
            for (var n in t) e.hasOwnProperty(n) || (e[n] = t[n])
        }(n(498));
    var r = n(497);
    e.playSound = r.play;
    var i = n(499);
    e.playMusic = i.play;
    var o = n(496);
    e.settings = o.instance
}, function(t, e) {
    t.exports = function() {
        throw new Error("define cannot be used indirect")
    }
}, function(t, e, n) {
    (function(t) {
        function n(t, e) {
            for (var n = 0, r = t.length - 1; r >= 0; r--) {
                var i = t[r];
                "." === i ? t.splice(r, 1) : ".." === i ? (t.splice(r, 1), n++) : n && (t.splice(r, 1), n--)
            }
            if (e)
                for (; n--; n) t.unshift("..");
            return t
        }
        var r = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
            i = function(t) {
                return r.exec(t).slice(1)
            };

        function o(t, e) {
            if (t.filter) return t.filter(e);
            for (var n = [], r = 0; r < t.length; r++) e(t[r], r, t) && n.push(t[r]);
            return n
        }
        e.resolve = function() {
            for (var e = "", r = !1, i = arguments.length - 1; i >= -1 && !r; i--) {
                var s = i >= 0 ? arguments[i] : t.cwd();
                if ("string" != typeof s) throw new TypeError("Arguments to path.resolve must be strings");
                s && (e = s + "/" + e, r = "/" === s.charAt(0))
            }
            return (r ? "/" : "") + (e = n(o(e.split("/"), function(t) {
                return !!t
            }), !r).join("/")) || "."
        }, e.normalize = function(t) {
            var r = e.isAbsolute(t),
                i = "/" === s(t, -1);
            return (t = n(o(t.split("/"), function(t) {
                return !!t
            }), !r).join("/")) || r || (t = "."), t && i && (t += "/"), (r ? "/" : "") + t
        }, e.isAbsolute = function(t) {
            return "/" === t.charAt(0)
        }, e.join = function() {
            var t = Array.prototype.slice.call(arguments, 0);
            return e.normalize(o(t, function(t, e) {
                if ("string" != typeof t) throw new TypeError("Arguments to path.join must be strings");
                return t
            }).join("/"))
        }, e.relative = function(t, n) {
            function r(t) {
                for (var e = 0; e < t.length && "" === t[e]; e++);
                for (var n = t.length - 1; n >= 0 && "" === t[n]; n--);
                return e > n ? [] : t.slice(e, n - e + 1)
            }
            t = e.resolve(t).substr(1), n = e.resolve(n).substr(1);
            for (var i = r(t.split("/")), o = r(n.split("/")), s = Math.min(i.length, o.length), a = s, u = 0; u < s; u++)
                if (i[u] !== o[u]) {
                    a = u;
                    break
                }
            var l = [];
            for (u = a; u < i.length; u++) l.push("..");
            return (l = l.concat(o.slice(a))).join("/")
        }, e.sep = "/", e.delimiter = ":", e.dirname = function(t) {
            var e = i(t),
                n = e[0],
                r = e[1];
            return n || r ? (r && (r = r.substr(0, r.length - 1)), n + r) : "."
        }, e.basename = function(t, e) {
            var n = i(t)[2];
            return e && n.substr(-1 * e.length) === e && (n = n.substr(0, n.length - e.length)), n
        }, e.extname = function(t) {
            return i(t)[3]
        };
        var s = "b" === "ab".substr(-1) ? function(t, e, n) {
            return t.substr(e, n)
        } : function(t, e, n) {
            return e < 0 && (e = t.length + e), t.substr(e, n)
        }
    }).call(e, n(466))
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(194);
    e.createIconButton = function(t, e, n, i) {
        var o = new r.default(e, function() {
            n()
        });
        return i && (o.name = i), t && t.addChild(o), o
    }, e.formatSeconds = function(t) {
        var e = Math.floor(t / 60),
            n = Math.floor(t % 60);
        return (e > 9 ? e : "0" + e) + (n > 9 ? ":" + n : ":0" + n)
    }
}, function(t, e) {
    t.exports = function(t) {
        return t.webpackPolyfill || (t.deprecate = function() {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, "loaded", {
            enumerable: !0,
            get: function() {
                return t.l
            }
        }), Object.defineProperty(t, "id", {
            enumerable: !0,
            get: function() {
                return t.i
            }
        }), t.webpackPolyfill = 1), t
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = h(n(22)),
        o = h(n(173)),
        s = h(n(172)),
        a = h(n(16)),
        u = n(5),
        l = n(2),
        c = h(n(3));

    function h(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var f = function(t) {
        function e(n, r, i, o, s) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var a = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this));
            if (a.noFrame = !1, r || (a.noFrame = !0, r = new u.Rectangle(0, 0, 1, 1)), n instanceof e && (n = n.baseTexture), a.baseTexture = n, a._frame = r, a.trim = o, a.valid = !1, a.requiresUpdate = !1, a._uvs = null, a.orig = i || r, a._rotate = Number(s || 0), !0 === s) a._rotate = 2;
            else if (a._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");
            return n.hasLoaded ? (a.noFrame && (r = new u.Rectangle(0, 0, n.width, n.height), n.on("update", a.onBaseTextureUpdated, a)), a.frame = r) : n.once("loaded", a.onBaseTextureLoaded, a), a._updateID = 0, a.transform = null, a.textureCacheIds = [], a
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.update = function() {
            this.baseTexture.update()
        }, e.prototype.onBaseTextureLoaded = function(t) {
            this._updateID++, this.noFrame ? this.frame = new u.Rectangle(0, 0, t.width, t.height) : this.frame = this._frame, this.baseTexture.on("update", this.onBaseTextureUpdated, this), this.emit("update", this)
        }, e.prototype.onBaseTextureUpdated = function(t) {
            this._updateID++, this._frame.width = t.width, this._frame.height = t.height, this.emit("update", this)
        }, e.prototype.destroy = function(t) {
            this.baseTexture && (t && (l.TextureCache[this.baseTexture.imageUrl] && e.removeFromCache(this.baseTexture.imageUrl), this.baseTexture.destroy()), this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture.off("loaded", this.onBaseTextureLoaded, this), this.baseTexture = null), this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, e.removeFromCache(this), this.textureCacheIds = null
        }, e.prototype.clone = function() {
            return new e(this.baseTexture, this.frame, this.orig, this.trim, this.rotate)
        }, e.prototype._updateUvs = function() {
            this._uvs || (this._uvs = new s.default), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++
        }, e.fromImage = function(t, n, r, o) {
            var s = l.TextureCache[t];
            return s || (s = new e(i.default.fromImage(t, n, r, o)), e.addToCache(s, t)), s
        }, e.fromFrame = function(t) {
            var e = l.TextureCache[t];
            if (!e) throw new Error('The frameId "' + t + '" does not exist in the texture cache');
            return e
        }, e.fromCanvas = function(t, n) {
            var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
            return new e(i.default.fromCanvas(t, n, r))
        }, e.fromVideo = function(t, n) {
            return "string" == typeof t ? e.fromVideoUrl(t, n) : new e(o.default.fromVideo(t, n))
        }, e.fromVideoUrl = function(t, n) {
            return new e(o.default.fromUrl(t, n))
        }, e.from = function(t) {
            return "string" == typeof t ? l.TextureCache[t] || (null !== t.match(/\.(mp4|webm|ogg|h264|avi|mov)$/) ? e.fromVideoUrl(t) : e.fromImage(t)) : t instanceof HTMLImageElement ? new e(i.default.from(t)) : t instanceof HTMLCanvasElement ? e.fromCanvas(t, c.default.SCALE_MODE, "HTMLCanvasElement") : t instanceof HTMLVideoElement ? e.fromVideo(t) : t instanceof i.default ? new e(t) : t
        }, e.fromLoader = function(t, n, r) {
            var o = new i.default(t, void 0, (0, l.getResolutionOfUrl)(n)),
                s = new e(o);
            return o.imageUrl = n, r || (r = n), i.default.addToCache(s.baseTexture, r), e.addToCache(s, r), r !== n && (i.default.addToCache(s.baseTexture, n), e.addToCache(s, n)), s
        }, e.addToCache = function(t, e) {
            e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), l.TextureCache[e], l.TextureCache[e] = t)
        }, e.removeFromCache = function(t) {
            if ("string" == typeof t) {
                var e = l.TextureCache[t];
                if (e) {
                    var n = e.textureCacheIds.indexOf(t);
                    return n > -1 && e.textureCacheIds.splice(n, 1), delete l.TextureCache[t], e
                }
            } else if (t && t.textureCacheIds) {
                for (var r = 0; r < t.textureCacheIds.length; ++r) l.TextureCache[t.textureCacheIds[r]] === t && delete l.TextureCache[t.textureCacheIds[r]];
                return t.textureCacheIds.length = 0, t
            }
            return null
        }, r(e, [{
            key: "frame",
            get: function() {
                return this._frame
            },
            set: function(t) {
                this._frame = t, this.noFrame = !1;
                var e = t.x,
                    n = t.y,
                    r = t.width,
                    i = t.height,
                    o = e + r > this.baseTexture.width,
                    s = n + i > this.baseTexture.height;
                if (o || s) {
                    var a = o && s ? "and" : "or",
                        u = "X: " + e + " + " + r + " = " + (e + r) + " > " + this.baseTexture.width,
                        l = "Y: " + n + " + " + i + " = " + (n + i) + " > " + this.baseTexture.height;
                    throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: " + u + " " + a + " " + l)
                }
                this.valid = r && i && this.baseTexture.hasLoaded, this.trim || this.rotate || (this.orig = t), this.valid && this._updateUvs()
            }
        }, {
            key: "rotate",
            get: function() {
                return this._rotate
            },
            set: function(t) {
                this._rotate = t, this.valid && this._updateUvs()
            }
        }, {
            key: "width",
            get: function() {
                return this.orig.width
            }
        }, {
            key: "height",
            get: function() {
                return this.orig.height
            }
        }]), e
    }(a.default);

    function d(t) {
        t.destroy = function() {}, t.on = function() {}, t.once = function() {}, t.emit = function() {}
    }
    e.default = f, f.EMPTY = new f(new i.default), d(f.EMPTY), d(f.EMPTY.baseTexture), f.WHITE = function() {
        var t = document.createElement("canvas");
        t.width = 10, t.height = 10;
        var e = t.getContext("2d");
        return e.fillStyle = "white", e.fillRect(0, 0, 10, 10), new f(new i.default(t))
    }(), d(f.WHITE), d(f.WHITE.baseTexture)
}, function(t, e, n) {
    "use strict";
    var r = Object.prototype.hasOwnProperty,
        i = "~";

    function o() {}

    function s(t, e, n) {
        this.fn = t, this.context = e, this.once = n || !1
    }

    function a() {
        this._events = new o, this._eventsCount = 0
    }
    Object.create && (o.prototype = Object.create(null), (new o).__proto__ || (i = !1)), a.prototype.eventNames = function() {
        var t, e, n = [];
        if (0 === this._eventsCount) return n;
        for (e in t = this._events) r.call(t, e) && n.push(i ? e.slice(1) : e);
        return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n
    }, a.prototype.listeners = function(t, e) {
        var n = i ? i + t : t,
            r = this._events[n];
        if (e) return !!r;
        if (!r) return [];
        if (r.fn) return [r.fn];
        for (var o = 0, s = r.length, a = new Array(s); o < s; o++) a[o] = r[o].fn;
        return a
    }, a.prototype.emit = function(t, e, n, r, o, s) {
        var a = i ? i + t : t;
        if (!this._events[a]) return !1;
        var u, l, c = this._events[a],
            h = arguments.length;
        if (c.fn) {
            switch (c.once && this.removeListener(t, c.fn, void 0, !0), h) {
                case 1:
                    return c.fn.call(c.context), !0;
                case 2:
                    return c.fn.call(c.context, e), !0;
                case 3:
                    return c.fn.call(c.context, e, n), !0;
                case 4:
                    return c.fn.call(c.context, e, n, r), !0;
                case 5:
                    return c.fn.call(c.context, e, n, r, o), !0;
                case 6:
                    return c.fn.call(c.context, e, n, r, o, s), !0
            }
            for (l = 1, u = new Array(h - 1); l < h; l++) u[l - 1] = arguments[l];
            c.fn.apply(c.context, u)
        } else {
            var f, d = c.length;
            for (l = 0; l < d; l++) switch (c[l].once && this.removeListener(t, c[l].fn, void 0, !0), h) {
                case 1:
                    c[l].fn.call(c[l].context);
                    break;
                case 2:
                    c[l].fn.call(c[l].context, e);
                    break;
                case 3:
                    c[l].fn.call(c[l].context, e, n);
                    break;
                case 4:
                    c[l].fn.call(c[l].context, e, n, r);
                    break;
                default:
                    if (!u)
                        for (f = 1, u = new Array(h - 1); f < h; f++) u[f - 1] = arguments[f];
                    c[l].fn.apply(c[l].context, u)
            }
        }
        return !0
    }, a.prototype.on = function(t, e, n) {
        var r = new s(e, n || this),
            o = i ? i + t : t;
        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], r] : this._events[o].push(r) : (this._events[o] = r, this._eventsCount++), this
    }, a.prototype.once = function(t, e, n) {
        var r = new s(e, n || this, !0),
            o = i ? i + t : t;
        return this._events[o] ? this._events[o].fn ? this._events[o] = [this._events[o], r] : this._events[o].push(r) : (this._events[o] = r, this._eventsCount++), this
    }, a.prototype.removeListener = function(t, e, n, r) {
        var s = i ? i + t : t;
        if (!this._events[s]) return this;
        if (!e) return 0 == --this._eventsCount ? this._events = new o : delete this._events[s], this;
        var a = this._events[s];
        if (a.fn) a.fn !== e || r && !a.once || n && a.context !== n || (0 == --this._eventsCount ? this._events = new o : delete this._events[s]);
        else {
            for (var u = 0, l = [], c = a.length; u < c; u++)(a[u].fn !== e || r && !a[u].once || n && a[u].context !== n) && l.push(a[u]);
            l.length ? this._events[s] = 1 === l.length ? l[0] : l : 0 == --this._eventsCount ? this._events = new o : delete this._events[s]
        }
        return this
    }, a.prototype.removeAllListeners = function(t) {
        var e;
        return t ? (e = i ? i + t : t, this._events[e] && (0 == --this._eventsCount ? this._events = new o : delete this._events[e])) : (this._events = new o, this._eventsCount = 0), this
    }, a.prototype.off = a.prototype.removeListener, a.prototype.addListener = a.prototype.on, a.prototype.setMaxListeners = function() {
        return this
    }, a.prefixed = i, a.EventEmitter = a, t.exports = a
}, function(t, e, n) {
    var r = n(279),
        i = n(310);
    t.exports = function(t, e) {
        var n = i(t, e);
        return r(n) ? n : void 0
    }
}, function(t, e) {
    var n;
    n = function() {
        return this
    }();
    try {
        n = n || Function("return this")() || (0, eval)("this")
    } catch (t) {
        "object" == typeof window && (n = window)
    }
    t.exports = n
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        var e = typeof t;
        return null != t && ("object" == e || "function" == e)
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = typeof t;
        return null != t && ("object" == e || "function" == e)
    }
}, function(t, e) {
    t.exports = function(t) {
        return null != t && "object" == typeof t
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(2),
        i = u(n(3)),
        o = u(n(16)),
        s = u(n(174)),
        a = u(n(51));

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var l = function(t) {
        function e(n, o, s) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var a = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this));
            return a.uid = (0, r.uid)(), a.touched = 0, a.resolution = s || i.default.RESOLUTION, a.width = 100, a.height = 100, a.realWidth = 100, a.realHeight = 100, a.scaleMode = void 0 !== o ? o : i.default.SCALE_MODE, a.hasLoaded = !1, a.isLoading = !1, a.source = null, a.origSource = null, a.imageType = null, a.sourceScale = 1, a.premultipliedAlpha = !0, a.imageUrl = null, a.isPowerOfTwo = !1, a.mipmap = i.default.MIPMAP_TEXTURES, a.wrapMode = i.default.WRAP_MODE, a._glTextures = {}, a._enabled = 0, a._virtalBoundId = -1, a._destroyed = !1, a.textureCacheIds = [], n && a.loadSource(n), a
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.update = function() {
            "svg" !== this.imageType && (this.realWidth = this.source.naturalWidth || this.source.videoWidth || this.source.width, this.realHeight = this.source.naturalHeight || this.source.videoHeight || this.source.height, this._updateDimensions()), this.emit("update", this)
        }, e.prototype._updateDimensions = function() {
            this.width = this.realWidth / this.resolution, this.height = this.realHeight / this.resolution, this.isPowerOfTwo = a.default.isPow2(this.realWidth) && a.default.isPow2(this.realHeight)
        }, e.prototype.loadSource = function(t) {
            var e = this.isLoading;
            this.hasLoaded = !1, this.isLoading = !1, e && this.source && (this.source.onload = null, this.source.onerror = null);
            var n = !this.source;
            if (this.source = t, (t.src && t.complete || t.getContext) && t.width && t.height) this._updateImageType(), "svg" === this.imageType ? this._loadSvgSource() : this._sourceLoaded(), n && this.emit("loaded", this);
            else if (!t.getContext) {
                this.isLoading = !0;
                var r = this;
                if (t.onload = function() {
                        r._updateImageType(), t.onload = null, t.onerror = null, r.isLoading && (r.isLoading = !1, r._sourceLoaded(), "svg" !== r.imageType ? r.emit("loaded", r) : r._loadSvgSource())
                    }, t.onerror = function() {
                        t.onload = null, t.onerror = null, r.isLoading && (r.isLoading = !1, r.emit("error", r))
                    }, t.complete && t.src) {
                    if (t.onload = null, t.onerror = null, "svg" === r.imageType) return void r._loadSvgSource();
                    this.isLoading = !1, t.width && t.height ? (this._sourceLoaded(), e && this.emit("loaded", this)) : e && this.emit("error", this)
                }
            }
        }, e.prototype._updateImageType = function() {
            if (this.imageUrl) {
                var t = (0, r.decomposeDataUri)(this.imageUrl),
                    e = void 0;
                if (t && "image" === t.mediaType) {
                    var n = t.subType.split("+")[0];
                    if (!(e = (0, r.getUrlFileExtension)("." + n))) throw new Error("Invalid image type in data URI.")
                } else(e = (0, r.getUrlFileExtension)(this.imageUrl)) || (e = "png");
                this.imageType = e
            }
        }, e.prototype._loadSvgSource = function() {
            if ("svg" === this.imageType) {
                var t = (0, r.decomposeDataUri)(this.imageUrl);
                t ? this._loadSvgSourceUsingDataUri(t) : this._loadSvgSourceUsingXhr()
            }
        }, e.prototype._loadSvgSourceUsingDataUri = function(t) {
            var e = void 0;
            if ("base64" === t.encoding) {
                if (!atob) throw new Error("Your browser doesn't support base64 conversions.");
                e = atob(t.data)
            } else e = t.data;
            this._loadSvgSourceUsingString(e)
        }, e.prototype._loadSvgSourceUsingXhr = function() {
            var t = this,
                e = new XMLHttpRequest;
            e.onload = function() {
                if (e.readyState !== e.DONE || 200 !== e.status) throw new Error("Failed to load SVG using XHR.");
                t._loadSvgSourceUsingString(e.response)
            }, e.onerror = function() {
                return t.emit("error", t)
            }, e.open("GET", this.imageUrl, !0), e.send()
        }, e.prototype._loadSvgSourceUsingString = function(t) {
            var n = (0, r.getSvgSize)(t),
                i = n.width,
                o = n.height;
            if (!i || !o) throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");
            this.realWidth = Math.round(i * this.sourceScale), this.realHeight = Math.round(o * this.sourceScale), this._updateDimensions();
            var s = document.createElement("canvas");
            s.width = this.realWidth, s.height = this.realHeight, s._pixiId = "canvas_" + (0, r.uid)(), s.getContext("2d").drawImage(this.source, 0, 0, i, o, 0, 0, this.realWidth, this.realHeight), this.origSource = this.source, this.source = s, e.addToCache(this, s._pixiId), this.isLoading = !1, this._sourceLoaded(), this.emit("loaded", this)
        }, e.prototype._sourceLoaded = function() {
            this.hasLoaded = !0, this.update()
        }, e.prototype.destroy = function() {
            this.imageUrl && (delete r.TextureCache[this.imageUrl], this.imageUrl = null, navigator.isCocoonJS || (this.source.src = "")), this.source = null, this.dispose(), e.removeFromCache(this), this.textureCacheIds = null, this._destroyed = !0
        }, e.prototype.dispose = function() {
            this.emit("dispose", this)
        }, e.prototype.updateSourceImage = function(t) {
            this.source.src = t, this.loadSource(this.source)
        }, e.fromImage = function(t, n, i, o) {
            var a = r.BaseTextureCache[t];
            if (!a) {
                var u = new Image;
                void 0 === n && 0 !== t.indexOf("data:") ? u.crossOrigin = (0, s.default)(t) : n && (u.crossOrigin = "string" == typeof n ? n : "anonymous"), (a = new e(u, i)).imageUrl = t, o && (a.sourceScale = o), a.resolution = (0, r.getResolutionOfUrl)(t), u.src = t, e.addToCache(a, t)
            }
            return a
        }, e.fromCanvas = function(t, n) {
            var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "canvas";
            t._pixiId || (t._pixiId = i + "_" + (0, r.uid)());
            var o = r.BaseTextureCache[t._pixiId];
            return o || (o = new e(t, n), e.addToCache(o, t._pixiId)), o
        }, e.from = function(t, n, i) {
            if ("string" == typeof t) return e.fromImage(t, void 0, n, i);
            if (t instanceof HTMLImageElement) {
                var o = t.src,
                    s = r.BaseTextureCache[o];
                return s || ((s = new e(t, n)).imageUrl = o, i && (s.sourceScale = i), s.resolution = (0, r.getResolutionOfUrl)(o), e.addToCache(s, o)), s
            }
            return t instanceof HTMLCanvasElement ? e.fromCanvas(t, n) : t
        }, e.addToCache = function(t, e) {
            e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), r.BaseTextureCache[e], r.BaseTextureCache[e] = t)
        }, e.removeFromCache = function(t) {
            if ("string" == typeof t) {
                var e = r.BaseTextureCache[t];
                if (e) {
                    var n = e.textureCacheIds.indexOf(t);
                    return n > -1 && e.textureCacheIds.splice(n, 1), delete r.BaseTextureCache[t], e
                }
            } else if (t && t.textureCacheIds) {
                for (var i = 0; i < t.textureCacheIds.length; ++i) delete r.BaseTextureCache[t.textureCacheIds[i]];
                return t.textureCacheIds.length = 0, t
            }
            return null
        }, e
    }(o.default);
    e.default = l
}, function(t, e) {
    (function(e) {
        t.exports = e
    }).call(e, {})
}, function(t, e, n) {
    var r = n(6).Symbol;
    t.exports = r
}, function(t, e, n) {
    var r = n(24),
        i = n(307),
        o = n(339),
        s = r ? r.toStringTag : void 0;
    t.exports = function(t) {
        return null == t ? void 0 === t ? "[object Undefined]" : "[object Null]" : s && s in Object(t) ? i(t) : o(t)
    }
}, function(t, e, n) {
    var r = n(45);
    t.exports = function(t) {
        if ("string" == typeof t || r(t)) return t;
        var e = t + "";
        return "0" == e && 1 / t == -1 / 0 ? "-0" : e
    }
}, function(t, e) {
    t.exports = function(t) {
        return t
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = n(9),
        o = (r = n(3)) && r.__esModule ? r : {
            default: r
        };

    function s(t, e) {
        if (t instanceof Array) {
            if ("precision" !== t[0].substring(0, 9)) {
                var n = t.slice(0);
                return n.unshift("precision " + e + " float;"), n
            }
        } else if ("precision" !== t.trim().substring(0, 9)) return "precision " + e + " float;\n" + t;
        return t
    }
    var a = function(t) {
        function e(n, r, i, a, u) {
            return function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e),
                function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n, s(r, u || o.default.PRECISION_VERTEX), s(i, u || o.default.PRECISION_FRAGMENT), void 0, a))
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e
    }(i.GLShader);
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = n(2),
        s = function(t) {
            function e() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var n = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return n.children = [], n
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.onChildrenChange = function() {}, e.prototype.addChild = function(t) {
                var e = arguments.length;
                if (e > 1)
                    for (var n = 0; n < e; n++) this.addChild(arguments[n]);
                else t.parent && t.parent.removeChild(t), t.parent = this, t.transform._parentID = -1, this.children.push(t), this._boundsID++, this.onChildrenChange(this.children.length - 1), t.emit("added", this);
                return t
            }, e.prototype.addChildAt = function(t, e) {
                if (e < 0 || e > this.children.length) throw new Error(t + "addChildAt: The index " + e + " supplied is out of bounds " + this.children.length);
                return t.parent && t.parent.removeChild(t), t.parent = this, t.transform._parentID = -1, this.children.splice(e, 0, t), this._boundsID++, this.onChildrenChange(e), t.emit("added", this), t
            }, e.prototype.swapChildren = function(t, e) {
                if (t !== e) {
                    var n = this.getChildIndex(t),
                        r = this.getChildIndex(e);
                    this.children[n] = e, this.children[r] = t, this.onChildrenChange(n < r ? n : r)
                }
            }, e.prototype.getChildIndex = function(t) {
                var e = this.children.indexOf(t);
                if (-1 === e) throw new Error("The supplied DisplayObject must be a child of the caller");
                return e
            }, e.prototype.setChildIndex = function(t, e) {
                if (e < 0 || e >= this.children.length) throw new Error("The index " + e + " supplied is out of bounds " + this.children.length);
                var n = this.getChildIndex(t);
                (0, o.removeItems)(this.children, n, 1), this.children.splice(e, 0, t), this.onChildrenChange(e)
            }, e.prototype.getChildAt = function(t) {
                if (t < 0 || t >= this.children.length) throw new Error("getChildAt: Index (" + t + ") does not exist.");
                return this.children[t]
            }, e.prototype.removeChild = function(t) {
                var e = arguments.length;
                if (e > 1)
                    for (var n = 0; n < e; n++) this.removeChild(arguments[n]);
                else {
                    var r = this.children.indexOf(t);
                    if (-1 === r) return null;
                    t.parent = null, t.transform._parentID = -1, (0, o.removeItems)(this.children, r, 1), this._boundsID++, this.onChildrenChange(r), t.emit("removed", this)
                }
                return t
            }, e.prototype.removeChildAt = function(t) {
                var e = this.getChildAt(t);
                return e.parent = null, e.transform._parentID = -1, (0, o.removeItems)(this.children, t, 1), this._boundsID++, this.onChildrenChange(t), e.emit("removed", this), e
            }, e.prototype.removeChildren = function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    e = arguments[1],
                    n = t,
                    r = "number" == typeof e ? e : this.children.length,
                    i = r - n,
                    o = void 0;
                if (i > 0 && i <= r) {
                    o = this.children.splice(n, i);
                    for (var s = 0; s < o.length; ++s) o[s].parent = null, o[s].transform && (o[s].transform._parentID = -1);
                    this._boundsID++, this.onChildrenChange(t);
                    for (var a = 0; a < o.length; ++a) o[a].emit("removed", this);
                    return o
                }
                if (0 === i && 0 === this.children.length) return [];
                throw new RangeError("removeChildren: numeric values are outside the acceptable range.")
            }, e.prototype.updateTransform = function() {
                this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha;
                for (var t = 0, e = this.children.length; t < e; ++t) {
                    var n = this.children[t];
                    n.visible && n.updateTransform()
                }
            }, e.prototype.calculateBounds = function() {
                this._bounds.clear(), this._calculateBounds();
                for (var t = 0; t < this.children.length; t++) {
                    var e = this.children[t];
                    e.visible && e.renderable && (e.calculateBounds(), e._mask ? (e._mask.calculateBounds(), this._bounds.addBoundsMask(e._bounds, e._mask._bounds)) : e.filterArea ? this._bounds.addBoundsArea(e._bounds, e.filterArea) : this._bounds.addBounds(e._bounds))
                }
                this._lastBoundsID = this._boundsID
            }, e.prototype._calculateBounds = function() {}, e.prototype.renderWebGL = function(t) {
                if (this.visible && !(this.worldAlpha <= 0) && this.renderable)
                    if (this._mask || this._filters) this.renderAdvancedWebGL(t);
                    else {
                        this._renderWebGL(t);
                        for (var e = 0, n = this.children.length; e < n; ++e) this.children[e].renderWebGL(t)
                    }
            }, e.prototype.renderAdvancedWebGL = function(t) {
                t.flush();
                var e = this._filters,
                    n = this._mask;
                if (e) {
                    this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0;
                    for (var r = 0; r < e.length; r++) e[r].enabled && this._enabledFilters.push(e[r]);
                    this._enabledFilters.length && t.filterManager.pushFilter(this, this._enabledFilters)
                }
                n && t.maskManager.pushMask(this, this._mask), this._renderWebGL(t);
                for (var i = 0, o = this.children.length; i < o; i++) this.children[i].renderWebGL(t);
                t.flush(), n && t.maskManager.popMask(this, this._mask), e && this._enabledFilters && this._enabledFilters.length && t.filterManager.popFilter()
            }, e.prototype._renderWebGL = function(t) {}, e.prototype._renderCanvas = function(t) {}, e.prototype.renderCanvas = function(t) {
                if (this.visible && !(this.worldAlpha <= 0) && this.renderable) {
                    this._mask && t.maskManager.pushMask(this._mask), this._renderCanvas(t);
                    for (var e = 0, n = this.children.length; e < n; ++e) this.children[e].renderCanvas(t);
                    this._mask && t.maskManager.popMask(t)
                }
            }, e.prototype.destroy = function(e) {
                t.prototype.destroy.call(this);
                var n = "boolean" == typeof e ? e : e && e.children,
                    r = this.removeChildren(0, this.children.length);
                if (n)
                    for (var i = 0; i < r.length; ++i) r[i].destroy(e)
            }, i(e, [{
                key: "width",
                get: function() {
                    return this.scale.x * this.getLocalBounds().width
                },
                set: function(t) {
                    var e = this.getLocalBounds().width;
                    this.scale.x = 0 !== e ? t / e : 1, this._width = t
                }
            }, {
                key: "height",
                get: function() {
                    return this.scale.y * this.getLocalBounds().height
                },
                set: function(t) {
                    var e = this.getLocalBounds().height;
                    this.scale.y = 0 !== e ? t / e : 1, this._height = t
                }
            }]), e
        }(((r = n(156)) && r.__esModule ? r : {
            default: r
        }).default);
    e.default = s, s.prototype.containerUpdateTransform = s.prototype.updateTransform
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = c(n(162)),
        i = c(n(397)),
        o = c(n(163)),
        s = c(n(398)),
        a = n(2),
        u = n(0),
        l = c(n(3));

    function c(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var h = function(t) {
        function e(n, r, o) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var a = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, "Canvas", n, r, o));
            return a.type = u.RENDERER_TYPE.CANVAS, a.rootContext = a.view.getContext("2d", {
                alpha: a.transparent
            }), a.context = a.rootContext, a.refresh = !0, a.maskManager = new i.default(a), a.smoothProperty = "imageSmoothingEnabled", a.rootContext.imageSmoothingEnabled || (a.rootContext.webkitImageSmoothingEnabled ? a.smoothProperty = "webkitImageSmoothingEnabled" : a.rootContext.mozImageSmoothingEnabled ? a.smoothProperty = "mozImageSmoothingEnabled" : a.rootContext.oImageSmoothingEnabled ? a.smoothProperty = "oImageSmoothingEnabled" : a.rootContext.msImageSmoothingEnabled && (a.smoothProperty = "msImageSmoothingEnabled")), a.initPlugins(), a.blendModes = (0, s.default)(), a._activeBlendMode = null, a.renderingToScreen = !1, a.resize(a.options.width, a.options.height), a
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.render = function(t, e, n, r, i) {
            if (this.view) {
                this.renderingToScreen = !e, this.emit("prerender");
                var s = this.resolution;
                e ? ((e = e.baseTexture || e)._canvasRenderTarget || (e._canvasRenderTarget = new o.default(e.width, e.height, e.resolution), e.source = e._canvasRenderTarget.canvas, e.valid = !0), this.context = e._canvasRenderTarget.context, this.resolution = e._canvasRenderTarget.resolution) : this.context = this.rootContext;
                var a = this.context;
                if (e || (this._lastObjectRendered = t), !i) {
                    var l = t.parent,
                        c = this._tempDisplayObjectParent.transform.worldTransform;
                    r ? (r.copy(c), this._tempDisplayObjectParent.transform._worldID = -1) : c.identity(), t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = l
                }
                a.save(), a.setTransform(1, 0, 0, 1, 0, 0), a.globalAlpha = 1, this._activeBlendMode = u.BLEND_MODES.NORMAL, a.globalCompositeOperation = this.blendModes[u.BLEND_MODES.NORMAL], navigator.isCocoonJS && this.view.screencanvas && (a.fillStyle = "black", a.clear()), (void 0 !== n ? n : this.clearBeforeRender) && this.renderingToScreen && (this.transparent ? a.clearRect(0, 0, this.width, this.height) : (a.fillStyle = this._backgroundColorString, a.fillRect(0, 0, this.width, this.height)));
                var h = this.context;
                this.context = a, t.renderCanvas(this), this.context = h, a.restore(), this.resolution = s, this.emit("postrender")
            }
        }, e.prototype.clear = function(t) {
            var e = this.context;
            t = t || this._backgroundColorString, !this.transparent && t ? (e.fillStyle = t, e.fillRect(0, 0, this.width, this.height)) : e.clearRect(0, 0, this.width, this.height)
        }, e.prototype.setBlendMode = function(t) {
            this._activeBlendMode !== t && (this._activeBlendMode = t, this.context.globalCompositeOperation = this.blendModes[t])
        }, e.prototype.destroy = function(e) {
            this.destroyPlugins(), t.prototype.destroy.call(this, e), this.context = null, this.refresh = !0, this.maskManager.destroy(), this.maskManager = null, this.smoothProperty = null
        }, e.prototype.resize = function(e, n) {
            t.prototype.resize.call(this, e, n), this.smoothProperty && (this.rootContext[this.smoothProperty] = l.default.SCALE_MODE === u.SCALE_MODES.LINEAR)
        }, e.prototype.invalidateBlendMode = function() {
            this._activeBlendMode = this.blendModes.indexOf(this.context.globalCompositeOperation)
        }, e
    }(r.default);
    e.default = h, a.pluginTarget.mixin(h)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.renderer = e, this.renderer.on("context", this.onContextChange, this)
        }
        return t.prototype.onContextChange = function() {}, t.prototype.destroy = function() {
            this.renderer.off("context", this.onContextChange, this), this.renderer = null
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        s = (r = n(15)) && r.__esModule ? r : {
            default: r
        },
        a = new o.Point,
        u = new o.Polygon,
        l = function(t) {
            function e(n, r, i, a, u) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var l = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return l._texture = n || s.default.EMPTY, l.uvs = i || new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), l.vertices = r || new Float32Array([0, 0, 100, 0, 100, 100, 0, 100]), l.indices = a || new Uint16Array([0, 1, 3, 2]), l.dirty = 0, l.indexDirty = 0, l.vertexDirty = 0, l.autoUpdate = !0, l.blendMode = o.BLEND_MODES.NORMAL, l.canvasPadding = o.settings.MESH_CANVAS_PADDING, l.drawMode = u || e.DRAW_MODES.TRIANGLE_MESH, l.shader = null, l.tintRgb = new Float32Array([1, 1, 1]), l._glDatas = {}, l._uvTransform = new o.TextureMatrix(l._texture), l.uploadUvTransform = !1, l.pluginName = "mesh", l
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype._renderWebGL = function(t) {
                this.refresh(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)
            }, e.prototype._renderCanvas = function(t) {
                this.refresh(), t.plugins[this.pluginName].render(this)
            }, e.prototype._onTextureUpdate = function() {
                this._uvTransform.texture = this._texture, this.refresh()
            }, e.prototype.multiplyUvs = function() {
                this.uploadUvTransform || this._uvTransform.multiplyUvs(this.uvs)
            }, e.prototype.refresh = function(t) {
                this.autoUpdate && this.vertexDirty++, this._uvTransform.update(t) && this._refresh()
            }, e.prototype._refresh = function() {}, e.prototype._calculateBounds = function() {
                this._bounds.addVertices(this.transform, this.vertices, 0, this.vertices.length)
            }, e.prototype.containsPoint = function(t) {
                if (!this.getBounds().contains(t.x, t.y)) return !1;
                this.worldTransform.applyInverse(t, a);
                for (var n = this.vertices, r = u.points, i = this.indices, o = this.indices.length, s = this.drawMode === e.DRAW_MODES.TRIANGLES ? 3 : 1, l = 0; l + 2 < o; l += s) {
                    var c = 2 * i[l],
                        h = 2 * i[l + 1],
                        f = 2 * i[l + 2];
                    if (r[0] = n[c], r[1] = n[c + 1], r[2] = n[h], r[3] = n[h + 1], r[4] = n[f], r[5] = n[f + 1], u.contains(a.x, a.y)) return !0
                }
                return !1
            }, e.prototype.destroy = function(e) {
                for (var n in this._glDatas) {
                    var r = this._glDatas[n];
                    r.destroy ? r.destroy() : (r.vertexBuffer && (r.vertexBuffer.destroy(), r.vertexBuffer = null), r.indexBuffer && (r.indexBuffer.destroy(), r.indexBuffer = null), r.uvBuffer && (r.uvBuffer.destroy(), r.uvBuffer = null), r.vao && (r.vao.destroy(), r.vao = null))
                }
                this._glDatas = null, t.prototype.destroy.call(this, e)
            }, i(e, [{
                key: "texture",
                get: function() {
                    return this._texture
                },
                set: function(t) {
                    this._texture !== t && (this._texture = t, t && (t.baseTexture.hasLoaded ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this)))
                }
            }, {
                key: "tint",
                get: function() {
                    return o.utils.rgb2hex(this.tintRgb)
                },
                set: function(t) {
                    this.tintRgb = o.utils.hex2rgb(t, this.tintRgb)
                }
            }]), e
        }(o.Container);
    e.default = l, l.DRAW_MODES = {
        TRIANGLE_MESH: 0,
        TRIANGLES: 1
    }
}, function(t, e, n) {
    "use strict";
    var r = n(472).default,
        i = n(84).default,
        o = n(190),
        s = n(191);
    r.Resource = i, r.async = o, r.base64 = s, t.exports = r, t.exports.default = r
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(192);
    ! function(t) {
        for (var n in t) e.hasOwnProperty(n) || (e[n] = t[n])
    }(n(192)), e.instance = new r.default, e.setAPI = function(t) {
        e.instance = t
    }
}, function(t, e, n) {
    "use strict";
    var r = n(91),
        i = n(229),
        o = n(234),
        s = r.a ? r.a.toStringTag : void 0;
    e.a = function(t) {
        return null == t ? void 0 === t ? "[object Undefined]" : "[object Null]" : s && s in Object(t) ? n.i(i.a)(t) : n.i(o.a)(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(96),
        i = "object" == typeof self && self && self.Object === Object && self,
        o = r.a || i || Function("return this")();
    e.a = o
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        return null != t && "object" == typeof t
    }
}, function(t, e, n) {
    var r = n(324),
        i = n(325),
        o = n(326),
        s = n(327),
        a = n(328);

    function u(t) {
        var e = -1,
            n = null == t ? 0 : t.length;
        for (this.clear(); ++e < n;) {
            var r = t[e];
            this.set(r[0], r[1])
        }
    }
    u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = o, u.prototype.has = s, u.prototype.set = a, t.exports = u
}, function(t, e, n) {
    var r = n(137);
    t.exports = function(t, e) {
        for (var n = t.length; n--;)
            if (r(t[n][0], e)) return n;
        return -1
    }
}, function(t, e, n) {
    var r = n(61),
        i = n(20);
    t.exports = function(t) {
        return function() {
            var e = arguments;
            switch (e.length) {
                case 0:
                    return new t;
                case 1:
                    return new t(e[0]);
                case 2:
                    return new t(e[0], e[1]);
                case 3:
                    return new t(e[0], e[1], e[2]);
                case 4:
                    return new t(e[0], e[1], e[2], e[3]);
                case 5:
                    return new t(e[0], e[1], e[2], e[3], e[4]);
                case 6:
                    return new t(e[0], e[1], e[2], e[3], e[4], e[5]);
                case 7:
                    return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6])
            }
            var n = r(t.prototype),
                o = t.apply(n, e);
            return i(o) ? o : n
        }
    }
}, function(t, e, n) {
    var r = n(320);
    t.exports = function(t, e) {
        var n = t.__data__;
        return r(e) ? n["string" == typeof e ? "string" : "hash"] : n.map
    }
}, function(t, e, n) {
    var r = n(17)(Object, "create");
    t.exports = r
}, function(t, e) {
    var n = "__lodash_placeholder__";
    t.exports = function(t, e) {
        for (var r = -1, i = t.length, o = 0, s = []; ++r < i;) {
            var a = t[r];
            a !== e && a !== n || (t[r] = n, s[o++] = r)
        }
        return s
    }
}, function(t, e, n) {
    var r = n(268),
        i = n(116)(function(t, e) {
            return r(t, 1, e)
        });
    t.exports = i
}, function(t, e, n) {
    var r = n(25),
        i = n(21);
    t.exports = function(t) {
        return "symbol" == typeof t || i(t) && "[object Symbol]" == r(t)
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        t.nativeLines ? function(t, e) {
            var n = 0,
                r = t.points;
            if (0 !== r.length) {
                var o = e.points,
                    s = r.length / 2,
                    a = (0, i.hex2rgb)(t.lineColor),
                    u = t.lineAlpha,
                    l = a[0] * u,
                    c = a[1] * u,
                    h = a[2] * u;
                for (n = 1; n < s; n++) {
                    var f = r[2 * (n - 1)],
                        d = r[2 * (n - 1) + 1],
                        p = r[2 * n],
                        v = r[2 * n + 1];
                    o.push(f, d), o.push(l, c, h, u), o.push(p, v), o.push(l, c, h, u)
                }
            }
        }(t, n) : function(t, e) {
            var n = t.points;
            if (0 !== n.length) {
                var o = new r.Point(n[0], n[1]),
                    s = new r.Point(n[n.length - 2], n[n.length - 1]);
                if (o.x === s.x && o.y === s.y) {
                    (n = n.slice()).pop(), n.pop();
                    var a = (s = new r.Point(n[n.length - 2], n[n.length - 1])).x + .5 * (o.x - s.x),
                        u = s.y + .5 * (o.y - s.y);
                    n.unshift(a, u), n.push(a, u)
                }
                var l = e.points,
                    c = e.indices,
                    h = n.length / 2,
                    f = n.length,
                    d = l.length / 6,
                    p = t.lineWidth / 2,
                    v = (0, i.hex2rgb)(t.lineColor),
                    _ = t.lineAlpha,
                    g = v[0] * _,
                    y = v[1] * _,
                    m = v[2] * _,
                    b = n[0],
                    x = n[1],
                    w = n[2],
                    T = n[3],
                    E = 0,
                    S = 0,
                    P = -(x - T),
                    O = b - w,
                    M = 0,
                    C = 0,
                    A = 0,
                    I = 0,
                    R = Math.sqrt(P * P + O * O);
                P /= R, O /= R, P *= p, O *= p;
                var D = t.lineAlignment,
                    L = 2 * (1 - D),
                    k = 2 * D;
                l.push(b - P * L, x - O * L, g, y, m, _), l.push(b + P * k, x + O * k, g, y, m, _);
                for (var j = 1; j < h - 1; ++j) {
                    b = n[2 * (j - 1)], x = n[2 * (j - 1) + 1], w = n[2 * j], T = n[2 * j + 1], E = n[2 * (j + 1)], S = n[2 * (j + 1) + 1], P = -(x - T), O = b - w, P /= R = Math.sqrt(P * P + O * O), O /= R, P *= p, O *= p, M = -(T - S), C = w - E, M /= R = Math.sqrt(M * M + C * C), C /= R;
                    var N = -O + x - (-O + T),
                        B = -P + w - (-P + b),
                        F = (-P + b) * (-O + T) - (-P + w) * (-O + x),
                        U = -(C *= p) + S - (-C + T),
                        z = -(M *= p) + w - (-M + E),
                        X = (-M + E) * (-C + T) - (-M + w) * (-C + S),
                        G = N * z - U * B;
                    if (Math.abs(G) < .1) G += 10.1, l.push(w - P * L, T - O * L, g, y, m, _), l.push(w + P * k, T + O * k, g, y, m, _);
                    else {
                        var W = (B * X - z * F) / G,
                            H = (U * F - N * X) / G;
                        (W - w) * (W - w) + (H - T) * (H - T) > 196 * p * p ? (A = P - M, I = O - C, A /= R = Math.sqrt(A * A + I * I), I /= R, A *= p, I *= p, l.push(w - A * L, T - I * L), l.push(g, y, m, _), l.push(w + A * k, T + I * k), l.push(g, y, m, _), l.push(w - A * k * L, T - I * L), l.push(g, y, m, _), f++) : (l.push(w + (W - w) * L, T + (H - T) * L), l.push(g, y, m, _), l.push(w - (W - w) * k, T - (H - T) * k), l.push(g, y, m, _))
                    }
                }
                b = n[2 * (h - 2)], x = n[2 * (h - 2) + 1], w = n[2 * (h - 1)], P = -(x - (T = n[2 * (h - 1) + 1])), O = b - w, P /= R = Math.sqrt(P * P + O * O), O /= R, P *= p, O *= p, l.push(w - P * L, T - O * L), l.push(g, y, m, _), l.push(w + P * k, T + O * k), l.push(g, y, m, _), c.push(d);
                for (var V = 0; V < f; ++V) c.push(d++);
                c.push(d - 1)
            }
        }(t, e)
    };
    var r = n(5),
        i = n(2)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = y(n(162)),
        i = y(n(405)),
        o = y(n(406)),
        s = y(n(404)),
        a = y(n(49)),
        u = y(n(48)),
        l = y(n(400)),
        c = y(n(22)),
        h = y(n(399)),
        f = y(n(401)),
        d = y(n(409)),
        p = y(n(410)),
        v = n(2),
        _ = y(n(9)),
        g = n(0);

    function y(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var m = 0,
        b = function(t) {
            function e(n, r, s) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var a = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, "WebGL", n, r, s));
                return a.legacy = a.options.legacy, a.legacy && (_.default.VertexArrayObject.FORCE_NATIVE = !0), a.type = g.RENDERER_TYPE.WEBGL, a.handleContextLost = a.handleContextLost.bind(a), a.handleContextRestored = a.handleContextRestored.bind(a), a.view.addEventListener("webglcontextlost", a.handleContextLost, !1), a.view.addEventListener("webglcontextrestored", a.handleContextRestored, !1), a._contextOptions = {
                    alpha: a.transparent,
                    antialias: a.options.antialias,
                    premultipliedAlpha: a.transparent && "notMultiplied" !== a.transparent,
                    stencil: !0,
                    preserveDrawingBuffer: a.options.preserveDrawingBuffer,
                    powerPreference: a.options.powerPreference
                }, a._backgroundColorRgba[3] = a.transparent ? 0 : 1, a.maskManager = new i.default(a), a.stencilManager = new o.default(a), a.emptyRenderer = new u.default(a), a.currentRenderer = a.emptyRenderer, a.textureManager = null, a.filterManager = null, a.initPlugins(), a.options.context && (0, p.default)(a.options.context), a.gl = a.options.context || _.default.createContext(a.view, a._contextOptions), a.CONTEXT_UID = m++, a.state = new f.default(a.gl), a.renderingToScreen = !0, a.boundTextures = null, a._activeShader = null, a._activeVao = null, a._activeRenderTarget = null, a._initContext(), a.drawModes = (0, d.default)(a.gl), a._nextTextureLocation = 0, a.setBlendMode(0), a
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype._initContext = function() {
                var t = this.gl;
                t.isContextLost() && t.getExtension("WEBGL_lose_context") && t.getExtension("WEBGL_lose_context").restoreContext();
                var e = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);
                this._activeShader = null, this._activeVao = null, this.boundTextures = new Array(e), this.emptyTextures = new Array(e), this.textureManager = new l.default(this), this.filterManager = new s.default(this), this.textureGC = new h.default(this), this.state.resetToDefault(), this.rootRenderTarget = new a.default(t, this.width, this.height, null, this.resolution, !0), this.rootRenderTarget.clearColor = this._backgroundColorRgba, this.bindRenderTarget(this.rootRenderTarget);
                var n = new _.default.GLTexture.fromData(t, null, 1, 1),
                    r = {
                        _glTextures: {}
                    };
                r._glTextures[this.CONTEXT_UID] = {};
                for (var i = 0; i < e; i++) {
                    var o = new c.default;
                    o._glTextures[this.CONTEXT_UID] = n, this.boundTextures[i] = r, this.emptyTextures[i] = o, this.bindTexture(null, i)
                }
                this.emit("context", t), this.resize(this.screen.width, this.screen.height)
            }, e.prototype.render = function(t, e, n, r, i) {
                if (this.renderingToScreen = !e, this.emit("prerender"), this.gl && !this.gl.isContextLost()) {
                    if (this._nextTextureLocation = 0, e || (this._lastObjectRendered = t), !i) {
                        var o = t.parent;
                        t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = o
                    }
                    this.bindRenderTexture(e, r), this.currentRenderer.start(), (void 0 !== n ? n : this.clearBeforeRender) && this._activeRenderTarget.clear(), t.renderWebGL(this), this.currentRenderer.flush(), this.textureGC.update(), this.emit("postrender")
                }
            }, e.prototype.setObjectRenderer = function(t) {
                this.currentRenderer !== t && (this.currentRenderer.stop(), this.currentRenderer = t, this.currentRenderer.start())
            }, e.prototype.flush = function() {
                this.setObjectRenderer(this.emptyRenderer)
            }, e.prototype.resize = function(t, e) {
                r.default.prototype.resize.call(this, t, e), this.rootRenderTarget.resize(t, e), this._activeRenderTarget === this.rootRenderTarget && (this.rootRenderTarget.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = this.rootRenderTarget.projectionMatrix.toArray(!0)))
            }, e.prototype.setBlendMode = function(t) {
                this.state.setBlendMode(t)
            }, e.prototype.clear = function(t) {
                this._activeRenderTarget.clear(t)
            }, e.prototype.setTransform = function(t) {
                this._activeRenderTarget.transform = t
            }, e.prototype.clearRenderTexture = function(t, e) {
                var n = t.baseTexture._glRenderTargets[this.CONTEXT_UID];
                return n && n.clear(e), this
            }, e.prototype.bindRenderTexture = function(t, e) {
                var n = void 0;
                if (t) {
                    var r = t.baseTexture;
                    r._glRenderTargets[this.CONTEXT_UID] || this.textureManager.updateTexture(r, 0), this.unbindTexture(r), (n = r._glRenderTargets[this.CONTEXT_UID]).setFrame(t.frame)
                } else n = this.rootRenderTarget;
                return n.transform = e, this.bindRenderTarget(n), this
            }, e.prototype.bindRenderTarget = function(t) {
                return t !== this._activeRenderTarget && (this._activeRenderTarget = t, t.activate(), this._activeShader && (this._activeShader.uniforms.projectionMatrix = t.projectionMatrix.toArray(!0)), this.stencilManager.setMaskStack(t.stencilMaskStack)), this
            }, e.prototype.bindShader = function(t, e) {
                return this._activeShader !== t && (this._activeShader = t, t.bind(), !1 !== e && (t.uniforms.projectionMatrix = this._activeRenderTarget.projectionMatrix.toArray(!0))), this
            }, e.prototype.bindTexture = function(t, e, n) {
                if ((t = (t = t || this.emptyTextures[e]).baseTexture || t).touched = this.textureGC.count, n) e = e || 0;
                else {
                    for (var r = 0; r < this.boundTextures.length; r++)
                        if (this.boundTextures[r] === t) return r;
                    void 0 === e && (this._nextTextureLocation++, this._nextTextureLocation %= this.boundTextures.length, e = this.boundTextures.length - this._nextTextureLocation - 1)
                }
                var i = this.gl,
                    o = t._glTextures[this.CONTEXT_UID];
                return o ? (this.boundTextures[e] = t, i.activeTexture(i.TEXTURE0 + e), i.bindTexture(i.TEXTURE_2D, o.texture)) : this.textureManager.updateTexture(t, e), e
            }, e.prototype.unbindTexture = function(t) {
                var e = this.gl;
                t = t.baseTexture || t;
                for (var n = 0; n < this.boundTextures.length; n++) this.boundTextures[n] === t && (this.boundTextures[n] = this.emptyTextures[n], e.activeTexture(e.TEXTURE0 + n), e.bindTexture(e.TEXTURE_2D, this.emptyTextures[n]._glTextures[this.CONTEXT_UID].texture));
                return this
            }, e.prototype.createVao = function() {
                return new _.default.VertexArrayObject(this.gl, this.state.attribState)
            }, e.prototype.bindVao = function(t) {
                return this._activeVao === t ? this : (t ? t.bind() : this._activeVao && this._activeVao.unbind(), this._activeVao = t, this)
            }, e.prototype.reset = function() {
                this.setObjectRenderer(this.emptyRenderer), this.bindVao(null), this._activeShader = null, this._activeRenderTarget = this.rootRenderTarget;
                for (var t = 0; t < this.boundTextures.length; t++) this.boundTextures[t] = this.emptyTextures[t];
                return this.rootRenderTarget.activate(), this.state.resetToDefault(), this
            }, e.prototype.handleContextLost = function(t) {
                t.preventDefault()
            }, e.prototype.handleContextRestored = function() {
                this.textureManager.removeAll(), this.filterManager.destroy(!0), this._initContext()
            }, e.prototype.destroy = function(e) {
                this.destroyPlugins(), this.view.removeEventListener("webglcontextlost", this.handleContextLost), this.view.removeEventListener("webglcontextrestored", this.handleContextRestored), this.textureManager.destroy(), t.prototype.destroy.call(this, e), this.uid = 0, this.maskManager.destroy(), this.stencilManager.destroy(), this.filterManager.destroy(), this.maskManager = null, this.filterManager = null, this.textureManager = null, this.currentRenderer = null, this.handleContextLost = null, this.handleContextRestored = null, this._contextOptions = null, this.gl.useProgram(null), this.gl.getExtension("WEBGL_lose_context") && this.gl.getExtension("WEBGL_lose_context").loseContext(), this.gl = null
            }, e
        }(r.default);
    e.default = b, v.pluginTarget.mixin(b)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
        function e() {
            return function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e),
                function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.apply(this, arguments))
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.start = function() {}, e.prototype.stop = function() {
            this.flush()
        }, e.prototype.flush = function() {}, e.prototype.render = function(t) {}, e
    }(((r = n(31)) && r.__esModule ? r : {
        default: r
    }).default);
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = n(5),
        o = n(0),
        s = (r = n(3)) && r.__esModule ? r : {
            default: r
        },
        a = n(9),
        u = function() {
            function t(e, n, r, u, l, c) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.gl = e, this.frameBuffer = null, this.texture = null, this.clearColor = [0, 0, 0, 0], this.size = new i.Rectangle(0, 0, 1, 1), this.resolution = l || s.default.RESOLUTION, this.projectionMatrix = new i.Matrix, this.transform = null, this.frame = null, this.defaultFrame = new i.Rectangle, this.destinationFrame = null, this.sourceFrame = null, this.stencilBuffer = null, this.stencilMaskStack = [], this.filterData = null, this.filterPoolKey = "", this.scaleMode = void 0 !== u ? u : s.default.SCALE_MODE, this.root = c, this.root ? (this.frameBuffer = new a.GLFramebuffer(e, 100, 100), this.frameBuffer.framebuffer = null) : (this.frameBuffer = a.GLFramebuffer.createRGBA(e, 100, 100), this.scaleMode === o.SCALE_MODES.NEAREST ? this.frameBuffer.texture.enableNearestScaling() : this.frameBuffer.texture.enableLinearScaling(), this.texture = this.frameBuffer.texture), this.setFrame(), this.resize(n, r)
            }
            return t.prototype.clear = function(t) {
                var e = t || this.clearColor;
                this.frameBuffer.clear(e[0], e[1], e[2], e[3])
            }, t.prototype.attachStencilBuffer = function() {
                this.root || this.frameBuffer.enableStencil()
            }, t.prototype.setFrame = function(t, e) {
                this.destinationFrame = t || this.destinationFrame || this.defaultFrame, this.sourceFrame = e || this.sourceFrame || this.destinationFrame
            }, t.prototype.activate = function() {
                var t = this.gl;
                this.frameBuffer.bind(), this.calculateProjection(this.destinationFrame, this.sourceFrame), this.transform && this.projectionMatrix.append(this.transform), this.destinationFrame !== this.sourceFrame ? (t.enable(t.SCISSOR_TEST), t.scissor(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)) : t.disable(t.SCISSOR_TEST), t.viewport(0 | this.destinationFrame.x, 0 | this.destinationFrame.y, this.destinationFrame.width * this.resolution | 0, this.destinationFrame.height * this.resolution | 0)
            }, t.prototype.calculateProjection = function(t, e) {
                var n = this.projectionMatrix;
                e = e || t, n.identity(), this.root ? (n.a = 1 / t.width * 2, n.d = -1 / t.height * 2, n.tx = -1 - e.x * n.a, n.ty = 1 - e.y * n.d) : (n.a = 1 / t.width * 2, n.d = 1 / t.height * 2, n.tx = -1 - e.x * n.a, n.ty = -1 - e.y * n.d)
            }, t.prototype.resize = function(t, e) {
                if (t |= 0, e |= 0, this.size.width !== t || this.size.height !== e) {
                    this.size.width = t, this.size.height = e, this.defaultFrame.width = t, this.defaultFrame.height = e, this.frameBuffer.resize(t * this.resolution, e * this.resolution);
                    var n = this.frame || this.size;
                    this.calculateProjection(n)
                }
            }, t.prototype.destroy = function() {
                this.frameBuffer.destroy(), this.frameBuffer = null, this.texture = null
            }, t
        }();
    e.default = u
}, function(t, e, n) {
    e.GridMask = n(205), e.Maze = n(206), e.directions = n(88)
}, function(t, e, n) {
    "use strict";

    function r(t) {
        var e = 32;
        return (t &= -t) && e--, 65535 & t && (e -= 16), 16711935 & t && (e -= 8), 252645135 & t && (e -= 4), 858993459 & t && (e -= 2), 1431655765 & t && (e -= 1), e
    }
    e.INT_BITS = 32, e.INT_MAX = 2147483647, e.INT_MIN = -1 << 31, e.sign = function(t) {
        return (t > 0) - (t < 0)
    }, e.abs = function(t) {
        var e = t >> 31;
        return (t ^ e) - e
    }, e.min = function(t, e) {
        return e ^ (t ^ e) & -(t < e)
    }, e.max = function(t, e) {
        return t ^ (t ^ e) & -(t < e)
    }, e.isPow2 = function(t) {
        return !(t & t - 1 || !t)
    }, e.log2 = function(t) {
        var e, n;
        return e = (t > 65535) << 4, e |= n = ((t >>>= e) > 255) << 3, e |= n = ((t >>>= n) > 15) << 2, (e |= n = ((t >>>= n) > 3) << 1) | (t >>>= n) >> 1
    }, e.log10 = function(t) {
        return t >= 1e9 ? 9 : t >= 1e8 ? 8 : t >= 1e7 ? 7 : t >= 1e6 ? 6 : t >= 1e5 ? 5 : t >= 1e4 ? 4 : t >= 1e3 ? 3 : t >= 100 ? 2 : t >= 10 ? 1 : 0
    }, e.popCount = function(t) {
        return 16843009 * ((t = (858993459 & (t -= t >>> 1 & 1431655765)) + (t >>> 2 & 858993459)) + (t >>> 4) & 252645135) >>> 24
    }, e.countTrailingZeros = r, e.nextPow2 = function(t) {
        return t += 0 === t, --t, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, 1 + (t |= t >>> 16)
    }, e.prevPow2 = function(t) {
        return t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, (t |= t >>> 16) - (t >>> 1)
    }, e.parity = function(t) {
        return t ^= t >>> 16, t ^= t >>> 8, t ^= t >>> 4, 27030 >>> (t &= 15) & 1
    };
    var i = new Array(256);
    ! function(t) {
        for (var e = 0; e < 256; ++e) {
            var n = e,
                r = e,
                i = 7;
            for (n >>>= 1; n; n >>>= 1) r <<= 1, r |= 1 & n, --i;
            t[e] = r << i & 255
        }
    }(i), e.reverse = function(t) {
        return i[255 & t] << 24 | i[t >>> 8 & 255] << 16 | i[t >>> 16 & 255] << 8 | i[t >>> 24 & 255]
    }, e.interleave2 = function(t, e) {
        return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t &= 65535) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e &= 65535) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1
    }, e.deinterleave2 = function(t, e) {
        return (t = 65535 & ((t = 16711935 & ((t = 252645135 & ((t = 858993459 & ((t = t >>> e & 1431655765) | t >>> 1)) | t >>> 2)) | t >>> 4)) | t >>> 16)) << 16 >> 16
    }, e.interleave3 = function(t, e, n) {
        return t = 1227133513 & ((t = 3272356035 & ((t = 251719695 & ((t = 4278190335 & ((t &= 1023) | t << 16)) | t << 8)) | t << 4)) | t << 2), (t |= (e = 1227133513 & ((e = 3272356035 & ((e = 251719695 & ((e = 4278190335 & ((e &= 1023) | e << 16)) | e << 8)) | e << 4)) | e << 2)) << 1) | (n = 1227133513 & ((n = 3272356035 & ((n = 251719695 & ((n = 4278190335 & ((n &= 1023) | n << 16)) | n << 8)) | n << 4)) | n << 2)) << 2
    }, e.deinterleave3 = function(t, e) {
        return (t = 1023 & ((t = 4278190335 & ((t = 251719695 & ((t = 3272356035 & ((t = t >>> e & 1227133513) | t >>> 2)) | t >>> 4)) | t >>> 8)) | t >>> 16)) << 22 >> 22
    }, e.nextCombination = function(t) {
        var e = t | t - 1;
        return e + 1 | (~e & -~e) - 1 >>> r(t) + 1
    }
}, function(t, e, n) {
    "use strict";

    function r(t, e, n) {
        n = n || 2;
        var r, a, u, l, c, d, v, _ = e && e.length,
            g = _ ? e[0] * n : t.length,
            y = i(t, 0, g, n, !0),
            m = [];
        if (!y) return m;
        if (_ && (y = function(t, e, n, r) {
                var s, a, u, l = [];
                for (s = 0, a = e.length; s < a; s++)(u = i(t, e[s] * r, s < a - 1 ? e[s + 1] * r : t.length, r, !1)) === u.next && (u.steiner = !0), l.push(p(u));
                for (l.sort(h), s = 0; s < l.length; s++) f(l[s], n), n = o(n, n.next);
                return n
            }(t, e, y, n)), t.length > 80 * n) {
            r = u = t[0], a = l = t[1];
            for (var b = n; b < g; b += n)(c = t[b]) < r && (r = c), (d = t[b + 1]) < a && (a = d), c > u && (u = c), d > l && (l = d);
            v = 0 !== (v = Math.max(u - r, l - a)) ? 1 / v : 0
        }
        return s(y, m, n, r, a, v), m
    }

    function i(t, e, n, r, i) {
        var o, s;
        if (i === S(t, e, n, r) > 0)
            for (o = e; o < n; o += r) s = w(o, t[o], t[o + 1], s);
        else
            for (o = n - r; o >= e; o -= r) s = w(o, t[o], t[o + 1], s);
        return s && y(s, s.next) && (T(s), s = s.next), s
    }

    function o(t, e) {
        if (!t) return t;
        e || (e = t);
        var n, r = t;
        do {
            if (n = !1, r.steiner || !y(r, r.next) && 0 !== g(r.prev, r, r.next)) r = r.next;
            else {
                if (T(r), (r = e = r.prev) === r.next) break;
                n = !0
            }
        } while (n || r !== e);
        return e
    }

    function s(t, e, n, r, i, h, f) {
        if (t) {
            !f && h && function(t, e, n, r) {
                var i = t;
                do {
                    null === i.z && (i.z = d(i.x, i.y, e, n, r)), i.prevZ = i.prev, i.nextZ = i.next, i = i.next
                } while (i !== t);
                i.prevZ.nextZ = null, i.prevZ = null,
                    function(t) {
                        var e, n, r, i, o, s, a, u, l = 1;
                        do {
                            for (n = t, t = null, o = null, s = 0; n;) {
                                for (s++, r = n, a = 0, e = 0; e < l && (a++, r = r.nextZ); e++);
                                for (u = l; a > 0 || u > 0 && r;) 0 !== a && (0 === u || !r || n.z <= r.z) ? (i = n, n = n.nextZ, a--) : (i = r, r = r.nextZ, u--), o ? o.nextZ = i : t = i, i.prevZ = o, o = i;
                                n = r
                            }
                            o.nextZ = null, l *= 2
                        } while (s > 1)
                    }(i)
            }(t, r, i, h);
            for (var p, v, _ = t; t.prev !== t.next;)
                if (p = t.prev, v = t.next, h ? u(t, r, i, h) : a(t)) e.push(p.i / n), e.push(t.i / n), e.push(v.i / n), T(t), t = v.next, _ = v.next;
                else if ((t = v) === _) {
                f ? 1 === f ? s(t = l(t, e, n), e, n, r, i, h, 2) : 2 === f && c(t, e, n, r, i, h) : s(o(t), e, n, r, i, h, 1);
                break
            }
        }
    }

    function a(t) {
        var e = t.prev,
            n = t,
            r = t.next;
        if (g(e, n, r) >= 0) return !1;
        for (var i = t.next.next; i !== t.prev;) {
            if (v(e.x, e.y, n.x, n.y, r.x, r.y, i.x, i.y) && g(i.prev, i, i.next) >= 0) return !1;
            i = i.next
        }
        return !0
    }

    function u(t, e, n, r) {
        var i = t.prev,
            o = t,
            s = t.next;
        if (g(i, o, s) >= 0) return !1;
        for (var a = i.x < o.x ? i.x < s.x ? i.x : s.x : o.x < s.x ? o.x : s.x, u = i.y < o.y ? i.y < s.y ? i.y : s.y : o.y < s.y ? o.y : s.y, l = i.x > o.x ? i.x > s.x ? i.x : s.x : o.x > s.x ? o.x : s.x, c = i.y > o.y ? i.y > s.y ? i.y : s.y : o.y > s.y ? o.y : s.y, h = d(a, u, e, n, r), f = d(l, c, e, n, r), p = t.prevZ, _ = t.nextZ; p && p.z >= h && _ && _.z <= f;) {
            if (p !== t.prev && p !== t.next && v(i.x, i.y, o.x, o.y, s.x, s.y, p.x, p.y) && g(p.prev, p, p.next) >= 0) return !1;
            if (p = p.prevZ, _ !== t.prev && _ !== t.next && v(i.x, i.y, o.x, o.y, s.x, s.y, _.x, _.y) && g(_.prev, _, _.next) >= 0) return !1;
            _ = _.nextZ
        }
        for (; p && p.z >= h;) {
            if (p !== t.prev && p !== t.next && v(i.x, i.y, o.x, o.y, s.x, s.y, p.x, p.y) && g(p.prev, p, p.next) >= 0) return !1;
            p = p.prevZ
        }
        for (; _ && _.z <= f;) {
            if (_ !== t.prev && _ !== t.next && v(i.x, i.y, o.x, o.y, s.x, s.y, _.x, _.y) && g(_.prev, _, _.next) >= 0) return !1;
            _ = _.nextZ
        }
        return !0
    }

    function l(t, e, n) {
        var r = t;
        do {
            var i = r.prev,
                o = r.next.next;
            !y(i, o) && m(i, r, r.next, o) && b(i, o) && b(o, i) && (e.push(i.i / n), e.push(r.i / n), e.push(o.i / n), T(r), T(r.next), r = t = o), r = r.next
        } while (r !== t);
        return r
    }

    function c(t, e, n, r, i, a) {
        var u = t;
        do {
            for (var l = u.next.next; l !== u.prev;) {
                if (u.i !== l.i && _(u, l)) {
                    var c = x(u, l);
                    return u = o(u, u.next), c = o(c, c.next), s(u, e, n, r, i, a), void s(c, e, n, r, i, a)
                }
                l = l.next
            }
            u = u.next
        } while (u !== t)
    }

    function h(t, e) {
        return t.x - e.x
    }

    function f(t, e) {
        if (e = function(t, e) {
                var n, r = e,
                    i = t.x,
                    o = t.y,
                    s = -1 / 0;
                do {
                    if (o <= r.y && o >= r.next.y && r.next.y !== r.y) {
                        var a = r.x + (o - r.y) * (r.next.x - r.x) / (r.next.y - r.y);
                        if (a <= i && a > s) {
                            if (s = a, a === i) {
                                if (o === r.y) return r;
                                if (o === r.next.y) return r.next
                            }
                            n = r.x < r.next.x ? r : r.next
                        }
                    }
                    r = r.next
                } while (r !== e);
                if (!n) return null;
                if (i === s) return n.prev;
                var u, l = n,
                    c = n.x,
                    h = n.y,
                    f = 1 / 0;
                for (r = n.next; r !== l;) i >= r.x && r.x >= c && i !== r.x && v(o < h ? i : s, o, c, h, o < h ? s : i, o, r.x, r.y) && ((u = Math.abs(o - r.y) / (i - r.x)) < f || u === f && r.x > n.x) && b(r, t) && (n = r, f = u), r = r.next;
                return n
            }(t, e)) {
            var n = x(e, t);
            o(n, n.next)
        }
    }

    function d(t, e, n, r, i) {
        return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - n) * i) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - r) * i) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1
    }

    function p(t) {
        var e = t,
            n = t;
        do {
            e.x < n.x && (n = e), e = e.next
        } while (e !== t);
        return n
    }

    function v(t, e, n, r, i, o, s, a) {
        return (i - s) * (e - a) - (t - s) * (o - a) >= 0 && (t - s) * (r - a) - (n - s) * (e - a) >= 0 && (n - s) * (o - a) - (i - s) * (r - a) >= 0
    }

    function _(t, e) {
        return t.next.i !== e.i && t.prev.i !== e.i && ! function(t, e) {
            var n = t;
            do {
                if (n.i !== t.i && n.next.i !== t.i && n.i !== e.i && n.next.i !== e.i && m(n, n.next, t, e)) return !0;
                n = n.next
            } while (n !== t);
            return !1
        }(t, e) && b(t, e) && b(e, t) && function(t, e) {
            var n = t,
                r = !1,
                i = (t.x + e.x) / 2,
                o = (t.y + e.y) / 2;
            do {
                n.y > o != n.next.y > o && n.next.y !== n.y && i < (n.next.x - n.x) * (o - n.y) / (n.next.y - n.y) + n.x && (r = !r), n = n.next
            } while (n !== t);
            return r
        }(t, e)
    }

    function g(t, e, n) {
        return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y)
    }

    function y(t, e) {
        return t.x === e.x && t.y === e.y
    }

    function m(t, e, n, r) {
        return !!(y(t, e) && y(n, r) || y(t, r) && y(n, e)) || g(t, e, n) > 0 != g(t, e, r) > 0 && g(n, r, t) > 0 != g(n, r, e) > 0
    }

    function b(t, e) {
        return g(t.prev, t, t.next) < 0 ? g(t, e, t.next) >= 0 && g(t, t.prev, e) >= 0 : g(t, e, t.prev) < 0 || g(t, t.next, e) < 0
    }

    function x(t, e) {
        var n = new E(t.i, t.x, t.y),
            r = new E(e.i, e.x, e.y),
            i = t.next,
            o = e.prev;
        return t.next = e, e.prev = t, n.next = i, i.prev = n, r.next = n, n.prev = r, o.next = r, r.prev = o, r
    }

    function w(t, e, n, r) {
        var i = new E(t, e, n);
        return r ? (i.next = r.next, i.prev = r, r.next.prev = i, r.next = i) : (i.prev = i, i.next = i), i
    }

    function T(t) {
        t.next.prev = t.prev, t.prev.next = t.next, t.prevZ && (t.prevZ.nextZ = t.nextZ), t.nextZ && (t.nextZ.prevZ = t.prevZ)
    }

    function E(t, e, n) {
        this.i = t, this.x = e, this.y = n, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1
    }

    function S(t, e, n, r) {
        for (var i = 0, o = e, s = n - r; o < n; o += r) i += (t[s] - t[o]) * (t[o + 1] + t[s + 1]), s = o;
        return i
    }
    t.exports = r, t.exports.default = r, r.deviation = function(t, e, n, r) {
        var i = e && e.length,
            o = i ? e[0] * n : t.length,
            s = Math.abs(S(t, 0, o, n));
        if (i)
            for (var a = 0, u = e.length; a < u; a++) {
                var l = e[a] * n,
                    c = a < u - 1 ? e[a + 1] * n : t.length;
                s -= Math.abs(S(t, l, c, n))
            }
        var h = 0;
        for (a = 0; a < r.length; a += 3) {
            var f = r[a] * n,
                d = r[a + 1] * n,
                p = r[a + 2] * n;
            h += Math.abs((t[f] - t[p]) * (t[d + 1] - t[f + 1]) - (t[f] - t[d]) * (t[p + 1] - t[f + 1]))
        }
        return 0 === s && 0 === h ? 0 : Math.abs((h - s) / s)
    }, r.flatten = function(t) {
        for (var e = t[0][0].length, n = {
                vertices: [],
                holes: [],
                dimensions: e
            }, r = 0, i = 0; i < t.length; i++) {
            for (var o = 0; o < t[i].length; o++)
                for (var s = 0; s < e; s++) n.vertices.push(t[i][o][s]);
            i > 0 && (r += t[i - 1].length, n.holes.push(r))
        }
        return n
    }
}, function(t, e, n) {
    var r, i, o, s, a, u, l, c, h, f, d, p, v, _, g, y, m, b, x, w, T;
    s = /iPhone/i, a = /iPod/i, u = /iPad/i, l = /(?=.*\bAndroid\b)(?=.*\bMobile\b)/i, c = /Android/i, h = /(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i, f = /(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i, d = /Windows Phone/i, p = /(?=.*\bWindows\b)(?=.*\bARM\b)/i, v = /BlackBerry/i, _ = /BB10/i, g = /Opera Mini/i, y = /(CriOS|Chrome)(?=.*\bMobile\b)/i, m = /(?=.*\bFirefox\b)(?=.*\bMobile\b)/i, b = new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)", "i"), x = function(t, e) {
        return t.test(e)
    }, w = function(t) {
        var e = t || navigator.userAgent,
            n = e.split("[FBAN");
        if (void 0 !== n[1] && (e = n[0]), void 0 !== (n = e.split("Twitter"))[1] && (e = n[0]), this.apple = {
                phone: x(s, e),
                ipod: x(a, e),
                tablet: !x(s, e) && x(u, e),
                device: x(s, e) || x(a, e) || x(u, e)
            }, this.amazon = {
                phone: x(h, e),
                tablet: !x(h, e) && x(f, e),
                device: x(h, e) || x(f, e)
            }, this.android = {
                phone: x(h, e) || x(l, e),
                tablet: !x(h, e) && !x(l, e) && (x(f, e) || x(c, e)),
                device: x(h, e) || x(f, e) || x(l, e) || x(c, e)
            }, this.windows = {
                phone: x(d, e),
                tablet: x(p, e),
                device: x(d, e) || x(p, e)
            }, this.other = {
                blackberry: x(v, e),
                blackberry10: x(_, e),
                opera: x(g, e),
                firefox: x(m, e),
                chrome: x(y, e),
                device: x(v, e) || x(_, e) || x(g, e) || x(m, e) || x(y, e)
            }, this.seven_inch = x(b, e), this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch, this.phone = this.apple.phone || this.android.phone || this.windows.phone, this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet, "undefined" == typeof window) return this
    }, T = function() {
        var t = new w;
        return t.Class = w, t
    }, void 0 !== t && t.exports && "undefined" == typeof window ? t.exports = w : void 0 !== t && t.exports && "undefined" != typeof window ? t.exports = T() : (i = [], void 0 === (o = "function" == typeof(r = this.isMobile = T()) ? r.apply(e, i) : r) || (t.exports = o))
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        return t
    }
}, function(t, e, n) {
    "use strict";
    var r = n(101),
        i = n(102);
    e.a = function(t) {
        return null != t && n.i(i.a)(t.length) && !n.i(r.a)(t)
    }
}, function(t, e, n) {
    var r = n(61),
        i = n(62),
        o = 4294967295;

    function s(t) {
        this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = o, this.__views__ = []
    }
    s.prototype = r(i.prototype), s.prototype.constructor = s, t.exports = s
}, function(t, e, n) {
    var r = n(17)(n(6), "Map");
    t.exports = r
}, function(t, e, n) {
    var r = n(329),
        i = n(330),
        o = n(331),
        s = n(332),
        a = n(333);

    function u(t) {
        var e = -1,
            n = null == t ? 0 : t.length;
        for (this.clear(); ++e < n;) {
            var r = t[e];
            this.set(r[0], r[1])
        }
    }
    u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = o, u.prototype.has = s, u.prototype.set = a, t.exports = u
}, function(t, e) {
    t.exports = function(t, e, n) {
        switch (n.length) {
            case 0:
                return t.call(e);
            case 1:
                return t.call(e, n[0]);
            case 2:
                return t.call(e, n[0], n[1]);
            case 3:
                return t.call(e, n[0], n[1], n[2])
        }
        return t.apply(e, n)
    }
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t););
        return t
    }
}, function(t, e, n) {
    var r = n(20),
        i = Object.create,
        o = function() {
            function t() {}
            return function(e) {
                if (!r(e)) return {};
                if (i) return i(e);
                t.prototype = e;
                var n = new t;
                return t.prototype = void 0, n
            }
        }();
    t.exports = o
}, function(t, e) {
    t.exports = function() {}
}, function(t, e) {
    t.exports = function(t) {
        return t.placeholder
    }
}, function(t, e) {
    var n = /^(?:0|[1-9]\d*)$/;
    t.exports = function(t, e) {
        return !!(e = null == e ? 9007199254740991 : e) && ("number" == typeof t || n.test(t)) && t > -1 && t % 1 == 0 && t < e
    }
}, function(t, e, n) {
    var r = n(8),
        i = n(45),
        o = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
        s = /^\w*$/;
    t.exports = function(t, e) {
        if (r(t)) return !1;
        var n = typeof t;
        return !("number" != n && "symbol" != n && "boolean" != n && null != t && !i(t)) || s.test(t) || !o.test(t) || null != e && t in Object(e)
    }
}, function(t, e, n) {
    var r = n(286),
        i = n(134)(r);
    t.exports = i
}, function(t, e, n) {
    var r = n(275),
        i = n(21),
        o = Object.prototype,
        s = o.hasOwnProperty,
        a = o.propertyIsEnumerable,
        u = r(function() {
            return arguments
        }()) ? r : function(t) {
            return i(t) && s.call(t, "callee") && !a.call(t, "callee")
        };
    t.exports = u
}, function(t, e, n) {
    var r = n(25),
        i = n(20);
    t.exports = function(t) {
        if (!i(t)) return !1;
        var e = r(t);
        return "[object Function]" == e || "[object GeneratorFunction]" == e || "[object AsyncFunction]" == e || "[object Proxy]" == e
    }
}, function(t, e) {
    t.exports = function(t) {
        return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991
    }
}, function(t, e, n) {
    var r = n(263),
        i = n(281),
        o = n(138);
    t.exports = function(t) {
        return o(t) ? r(t) : i(t)
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = function() {
        function t(t, e) {
            for (var n = 0; n < e.length; n++) {
                var r = e[n];
                r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
            }
        }
        return function(e, n, r) {
            return n && t(e.prototype, n), r && t(e, r), e
        }
    }();

    function i(t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
    }
    var o = function() {
        function t(e, n, r) {
            void 0 === n && (n = !1), i(this, t), this._fn = e, this._once = n, this._thisArg = r, this._next = this._prev = this._owner = null
        }
        return r(t, [{
            key: "detach",
            value: function() {
                return null !== this._owner && (this._owner.detach(this), !0)
            }
        }]), t
    }();

    function s(t, e) {
        return t._head ? (t._tail._next = e, e._prev = t._tail, t._tail = e) : (t._head = e, t._tail = e), e._owner = t, e
    }
    var a = function() {
        function t() {
            i(this, t), this._head = this._tail = void 0
        }
        return r(t, [{
            key: "handlers",
            value: function() {
                var t = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0],
                    e = this._head;
                if (t) return !!e;
                for (var n = []; e;) n.push(e), e = e._next;
                return n
            }
        }, {
            key: "has",
            value: function(t) {
                if (!(t instanceof o)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");
                return t._owner === this
            }
        }, {
            key: "dispatch",
            value: function() {
                var t = this._head;
                if (!t) return !1;
                for (; t;) t._once && this.detach(t), t._fn.apply(t._thisArg, arguments), t = t._next;
                return !0
            }
        }, {
            key: "add",
            value: function(t) {
                var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                if ("function" != typeof t) throw new Error("MiniSignal#add(): First arg must be a Function.");
                return s(this, new o(t, !1, e))
            }
        }, {
            key: "once",
            value: function(t) {
                var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1];
                if ("function" != typeof t) throw new Error("MiniSignal#once(): First arg must be a Function.");
                return s(this, new o(t, !0, e))
            }
        }, {
            key: "detach",
            value: function(t) {
                if (!(t instanceof o)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");
                return t._owner !== this ? this : (t._prev && (t._prev._next = t._next), t._next && (t._next._prev = t._prev), t === this._head ? (this._head = t._next, null === t._next && (this._tail = null)) : t === this._tail && (this._tail = t._prev, this._tail._next = null), t._owner = null, this)
            }
        }, {
            key: "detachAll",
            value: function() {
                var t = this._head;
                if (!t) return this;
                for (this._head = this._tail = null; t;) t._owner = null, t = t._next;
                return this
            }
        }]), t
    }();
    a.MiniSignalBinding = o, e.default = a, t.exports = e.default
}, function(t, e) {
    var n = null,
        r = {
            FLOAT: "float",
            FLOAT_VEC2: "vec2",
            FLOAT_VEC3: "vec3",
            FLOAT_VEC4: "vec4",
            INT: "int",
            INT_VEC2: "ivec2",
            INT_VEC3: "ivec3",
            INT_VEC4: "ivec4",
            BOOL: "bool",
            BOOL_VEC2: "bvec2",
            BOOL_VEC3: "bvec3",
            BOOL_VEC4: "bvec4",
            FLOAT_MAT2: "mat2",
            FLOAT_MAT3: "mat3",
            FLOAT_MAT4: "mat4",
            SAMPLER_2D: "sampler2D"
        };
    t.exports = function(t, e) {
        if (!n) {
            var i = Object.keys(r);
            n = {};
            for (var o = 0; o < i.length; ++o) {
                var s = i[o];
                n[t[s]] = r[s]
            }
        }
        return n[e]
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(5),
        i = function() {
            function t() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null
            }
            return t.prototype.isEmpty = function() {
                return this.minX > this.maxX || this.minY > this.maxY
            }, t.prototype.clear = function() {
                this.updateID++, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0
            }, t.prototype.getRectangle = function(t) {
                return this.minX > this.maxX || this.minY > this.maxY ? r.Rectangle.EMPTY : ((t = t || new r.Rectangle(0, 0, 1, 1)).x = this.minX, t.y = this.minY, t.width = this.maxX - this.minX, t.height = this.maxY - this.minY, t)
            }, t.prototype.addPoint = function(t) {
                this.minX = Math.min(this.minX, t.x), this.maxX = Math.max(this.maxX, t.x), this.minY = Math.min(this.minY, t.y), this.maxY = Math.max(this.maxY, t.y)
            }, t.prototype.addQuad = function(t) {
                var e = this.minX,
                    n = this.minY,
                    r = this.maxX,
                    i = this.maxY,
                    o = t[0],
                    s = t[1];
                e = o < e ? o : e, n = s < n ? s : n, r = o > r ? o : r, i = s > i ? s : i, e = (o = t[2]) < e ? o : e, n = (s = t[3]) < n ? s : n, r = o > r ? o : r, i = s > i ? s : i, e = (o = t[4]) < e ? o : e, n = (s = t[5]) < n ? s : n, r = o > r ? o : r, i = s > i ? s : i, e = (o = t[6]) < e ? o : e, n = (s = t[7]) < n ? s : n, r = o > r ? o : r, i = s > i ? s : i, this.minX = e, this.minY = n, this.maxX = r, this.maxY = i
            }, t.prototype.addFrame = function(t, e, n, r, i) {
                var o = t.worldTransform,
                    s = o.a,
                    a = o.b,
                    u = o.c,
                    l = o.d,
                    c = o.tx,
                    h = o.ty,
                    f = this.minX,
                    d = this.minY,
                    p = this.maxX,
                    v = this.maxY,
                    _ = s * e + u * n + c,
                    g = a * e + l * n + h;
                f = _ < f ? _ : f, d = g < d ? g : d, p = _ > p ? _ : p, v = g > v ? g : v, f = (_ = s * r + u * n + c) < f ? _ : f, d = (g = a * r + l * n + h) < d ? g : d, p = _ > p ? _ : p, v = g > v ? g : v, f = (_ = s * e + u * i + c) < f ? _ : f, d = (g = a * e + l * i + h) < d ? g : d, p = _ > p ? _ : p, v = g > v ? g : v, f = (_ = s * r + u * i + c) < f ? _ : f, d = (g = a * r + l * i + h) < d ? g : d, p = _ > p ? _ : p, v = g > v ? g : v, this.minX = f, this.minY = d, this.maxX = p, this.maxY = v
            }, t.prototype.addVertices = function(t, e, n, r) {
                for (var i = t.worldTransform, o = i.a, s = i.b, a = i.c, u = i.d, l = i.tx, c = i.ty, h = this.minX, f = this.minY, d = this.maxX, p = this.maxY, v = n; v < r; v += 2) {
                    var _ = e[v],
                        g = e[v + 1],
                        y = o * _ + a * g + l,
                        m = u * g + s * _ + c;
                    h = y < h ? y : h, f = m < f ? m : f, d = y > d ? y : d, p = m > p ? m : p
                }
                this.minX = h, this.minY = f, this.maxX = d, this.maxY = p
            }, t.prototype.addBounds = function(t) {
                var e = this.minX,
                    n = this.minY,
                    r = this.maxX,
                    i = this.maxY;
                this.minX = t.minX < e ? t.minX : e, this.minY = t.minY < n ? t.minY : n, this.maxX = t.maxX > r ? t.maxX : r, this.maxY = t.maxY > i ? t.maxY : i
            }, t.prototype.addBoundsMask = function(t, e) {
                var n = t.minX > e.minX ? t.minX : e.minX,
                    r = t.minY > e.minY ? t.minY : e.minY,
                    i = t.maxX < e.maxX ? t.maxX : e.maxX,
                    o = t.maxY < e.maxY ? t.maxY : e.maxY;
                if (n <= i && r <= o) {
                    var s = this.minX,
                        a = this.minY,
                        u = this.maxX,
                        l = this.maxY;
                    this.minX = n < s ? n : s, this.minY = r < a ? r : a, this.maxX = i > u ? i : u, this.maxY = o > l ? o : l
                }
            }, t.prototype.addBoundsArea = function(t, e) {
                var n = t.minX > e.x ? t.minX : e.x,
                    r = t.minY > e.y ? t.minY : e.y,
                    i = t.maxX < e.x + e.width ? t.maxX : e.x + e.width,
                    o = t.maxY < e.y + e.height ? t.maxY : e.y + e.height;
                if (n <= i && r <= o) {
                    var s = this.minX,
                        a = this.minY,
                        u = this.maxX,
                        l = this.maxY;
                    this.minX = n < s ? n : s, this.minY = r < a ? r : a, this.maxX = i > u ? i : u, this.maxY = o > l ? o : l
                }
            }, t
        }();
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(5),
        i = function() {
            function t() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.worldTransform = new r.Matrix, this.localTransform = new r.Matrix, this._worldID = 0, this._parentID = 0
            }
            return t.prototype.updateLocalTransform = function() {}, t.prototype.updateTransform = function(t) {
                var e = t.worldTransform,
                    n = this.worldTransform,
                    r = this.localTransform;
                n.a = r.a * e.a + r.b * e.c, n.b = r.a * e.b + r.b * e.d, n.c = r.c * e.a + r.d * e.c, n.d = r.c * e.b + r.d * e.d, n.tx = r.tx * e.a + r.ty * e.c + e.tx, n.ty = r.tx * e.b + r.ty * e.d + e.ty, this._worldID++
            }, t
        }();
    e.default = i, i.prototype.updateWorldTransform = i.prototype.updateTransform, i.IDENTITY = new i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = (r = n(76)) && r.__esModule ? r : {
            default: r
        },
        s = n(0),
        a = function() {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,
                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                    i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                    o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                    s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.a = e, this.b = n, this.c = r, this.d = i, this.tx = o, this.ty = s, this.array = null
            }
            return t.prototype.fromArray = function(t) {
                this.a = t[0], this.b = t[1], this.c = t[3], this.d = t[4], this.tx = t[2], this.ty = t[5]
            }, t.prototype.set = function(t, e, n, r, i, o) {
                return this.a = t, this.b = e, this.c = n, this.d = r, this.tx = i, this.ty = o, this
            }, t.prototype.toArray = function(t, e) {
                this.array || (this.array = new Float32Array(9));
                var n = e || this.array;
                return t ? (n[0] = this.a, n[1] = this.b, n[2] = 0, n[3] = this.c, n[4] = this.d, n[5] = 0, n[6] = this.tx, n[7] = this.ty, n[8] = 1) : (n[0] = this.a, n[1] = this.c, n[2] = this.tx, n[3] = this.b, n[4] = this.d, n[5] = this.ty, n[6] = 0, n[7] = 0, n[8] = 1), n
            }, t.prototype.apply = function(t, e) {
                e = e || new o.default;
                var n = t.x,
                    r = t.y;
                return e.x = this.a * n + this.c * r + this.tx, e.y = this.b * n + this.d * r + this.ty, e
            }, t.prototype.applyInverse = function(t, e) {
                e = e || new o.default;
                var n = 1 / (this.a * this.d + this.c * -this.b),
                    r = t.x,
                    i = t.y;
                return e.x = this.d * n * r + -this.c * n * i + (this.ty * this.c - this.tx * this.d) * n, e.y = this.a * n * i + -this.b * n * r + (-this.ty * this.a + this.tx * this.b) * n, e
            }, t.prototype.translate = function(t, e) {
                return this.tx += t, this.ty += e, this
            }, t.prototype.scale = function(t, e) {
                return this.a *= t, this.d *= e, this.c *= t, this.b *= e, this.tx *= t, this.ty *= e, this
            }, t.prototype.rotate = function(t) {
                var e = Math.cos(t),
                    n = Math.sin(t),
                    r = this.a,
                    i = this.c,
                    o = this.tx;
                return this.a = r * e - this.b * n, this.b = r * n + this.b * e, this.c = i * e - this.d * n, this.d = i * n + this.d * e, this.tx = o * e - this.ty * n, this.ty = o * n + this.ty * e, this
            }, t.prototype.append = function(t) {
                var e = this.a,
                    n = this.b,
                    r = this.c,
                    i = this.d;
                return this.a = t.a * e + t.b * r, this.b = t.a * n + t.b * i, this.c = t.c * e + t.d * r, this.d = t.c * n + t.d * i, this.tx = t.tx * e + t.ty * r + this.tx, this.ty = t.tx * n + t.ty * i + this.ty, this
            }, t.prototype.setTransform = function(t, e, n, r, i, o, s, a, u) {
                return this.a = Math.cos(s + u) * i, this.b = Math.sin(s + u) * i, this.c = -Math.sin(s - a) * o, this.d = Math.cos(s - a) * o, this.tx = t - (n * this.a + r * this.c), this.ty = e - (n * this.b + r * this.d), this
            }, t.prototype.prepend = function(t) {
                var e = this.tx;
                if (1 !== t.a || 0 !== t.b || 0 !== t.c || 1 !== t.d) {
                    var n = this.a,
                        r = this.c;
                    this.a = n * t.a + this.b * t.c, this.b = n * t.b + this.b * t.d, this.c = r * t.a + this.d * t.c, this.d = r * t.b + this.d * t.d
                }
                return this.tx = e * t.a + this.ty * t.c + t.tx, this.ty = e * t.b + this.ty * t.d + t.ty, this
            }, t.prototype.decompose = function(t) {
                var e = this.a,
                    n = this.b,
                    r = this.c,
                    i = this.d,
                    o = -Math.atan2(-r, i),
                    a = Math.atan2(n, e),
                    u = Math.abs(o + a);
                return u < 1e-5 || Math.abs(s.PI_2 - u) < 1e-5 ? (t.rotation = a, e < 0 && i >= 0 && (t.rotation += t.rotation <= 0 ? Math.PI : -Math.PI), t.skew.x = t.skew.y = 0) : (t.rotation = 0, t.skew.x = o, t.skew.y = a), t.scale.x = Math.sqrt(e * e + n * n), t.scale.y = Math.sqrt(r * r + i * i), t.position.x = this.tx, t.position.y = this.ty, t
            }, t.prototype.invert = function() {
                var t = this.a,
                    e = this.b,
                    n = this.c,
                    r = this.d,
                    i = this.tx,
                    o = t * r - e * n;
                return this.a = r / o, this.b = -e / o, this.c = -n / o, this.d = t / o, this.tx = (n * this.ty - r * i) / o, this.ty = -(t * this.ty - e * i) / o, this
            }, t.prototype.identity = function() {
                return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this
            }, t.prototype.clone = function() {
                var e = new t;
                return e.a = this.a, e.b = this.b, e.c = this.c, e.d = this.d, e.tx = this.tx, e.ty = this.ty, e
            }, t.prototype.copy = function(t) {
                return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t
            }, i(t, null, [{
                key: "IDENTITY",
                get: function() {
                    return new t
                }
            }, {
                key: "TEMP_MATRIX",
                get: function() {
                    return new t
                }
            }]), t
        }();
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.x = e, this.y = n
        }
        return t.prototype.clone = function() {
            return new t(this.x, this.y)
        }, t.prototype.copy = function(t) {
            this.set(t.x, t.y)
        }, t.prototype.equals = function(t) {
            return t.x === this.x && t.y === this.y
        }, t.prototype.set = function(t, e) {
            this.x = t || 0, this.y = e || (0 !== e ? this.x : 0)
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(0),
        o = function() {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.x = Number(e), this.y = Number(n), this.width = Number(r), this.height = Number(o), this.type = i.SHAPES.RECT
            }
            return t.prototype.clone = function() {
                return new t(this.x, this.y, this.width, this.height)
            }, t.prototype.copy = function(t) {
                return this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height, this
            }, t.prototype.contains = function(t, e) {
                return !(this.width <= 0 || this.height <= 0) && t >= this.x && t < this.x + this.width && e >= this.y && e < this.y + this.height
            }, t.prototype.pad = function(t, e) {
                t = t || 0, e = e || (0 !== e ? t : 0), this.x -= t, this.y -= e, this.width += 2 * t, this.height += 2 * e
            }, t.prototype.fit = function(t) {
                this.x < t.x && (this.width += this.x, this.width < 0 && (this.width = 0), this.x = t.x), this.y < t.y && (this.height += this.y, this.height < 0 && (this.height = 0), this.y = t.y), this.x + this.width > t.x + t.width && (this.width = t.width - this.x, this.width < 0 && (this.width = 0)), this.y + this.height > t.y + t.height && (this.height = t.height - this.y, this.height < 0 && (this.height = 0))
            }, t.prototype.enlarge = function(t) {
                var e = Math.min(this.x, t.x),
                    n = Math.max(this.x + this.width, t.x + t.width),
                    r = Math.min(this.y, t.y),
                    i = Math.max(this.y + this.height, t.y + t.height);
                this.x = e, this.width = n - e, this.y = r, this.height = i - r
            }, r(t, [{
                key: "left",
                get: function() {
                    return this.x
                }
            }, {
                key: "right",
                get: function() {
                    return this.x + this.width
                }
            }, {
                key: "top",
                get: function() {
                    return this.y
                }
            }, {
                key: "bottom",
                get: function() {
                    return this.y + this.height
                }
            }], [{
                key: "EMPTY",
                get: function() {
                    return new t(0, 0, 0, 0)
                }
            }]), t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(5),
        o = n(2),
        s = n(0),
        a = l(n(15)),
        u = l(n(29));

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var c = new i.Point,
        h = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return r._anchor = new i.ObservablePoint(r._onAnchorUpdate, r), r._texture = null, r._width = 0, r._height = 0, r._tint = null, r._tintRGB = null, r.tint = 16777215, r.blendMode = s.BLEND_MODES.NORMAL, r.shader = null, r.cachedTint = 16777215, r.texture = n || a.default.EMPTY, r.vertexData = new Float32Array(8), r.vertexTrimmedData = null, r._transformID = -1, r._textureID = -1, r._transformTrimmedID = -1, r._textureTrimmedID = -1, r.pluginName = "sprite", r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype._onTextureUpdate = function() {
                this._textureID = -1, this._textureTrimmedID = -1, this.cachedTint = 16777215, this._width && (this.scale.x = (0, o.sign)(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = (0, o.sign)(this.scale.y) * this._height / this._texture.orig.height)
            }, e.prototype._onAnchorUpdate = function() {
                this._transformID = -1, this._transformTrimmedID = -1
            }, e.prototype.calculateVertices = function() {
                if (this._transformID !== this.transform._worldID || this._textureID !== this._texture._updateID) {
                    this._transformID = this.transform._worldID, this._textureID = this._texture._updateID;
                    var t = this._texture,
                        e = this.transform.worldTransform,
                        n = e.a,
                        r = e.b,
                        i = e.c,
                        o = e.d,
                        s = e.tx,
                        a = e.ty,
                        u = this.vertexData,
                        l = t.trim,
                        c = t.orig,
                        h = this._anchor,
                        f = 0,
                        d = 0,
                        p = 0,
                        v = 0;
                    l ? (f = (d = l.x - h._x * c.width) + l.width, p = (v = l.y - h._y * c.height) + l.height) : (f = (d = -h._x * c.width) + c.width, p = (v = -h._y * c.height) + c.height), u[0] = n * d + i * v + s, u[1] = o * v + r * d + a, u[2] = n * f + i * v + s, u[3] = o * v + r * f + a, u[4] = n * f + i * p + s, u[5] = o * p + r * f + a, u[6] = n * d + i * p + s, u[7] = o * p + r * d + a
                }
            }, e.prototype.calculateTrimmedVertices = function() {
                if (this.vertexTrimmedData) {
                    if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) return
                } else this.vertexTrimmedData = new Float32Array(8);
                this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID;
                var t = this._texture,
                    e = this.vertexTrimmedData,
                    n = t.orig,
                    r = this._anchor,
                    i = this.transform.worldTransform,
                    o = i.a,
                    s = i.b,
                    a = i.c,
                    u = i.d,
                    l = i.tx,
                    c = i.ty,
                    h = -r._x * n.width,
                    f = h + n.width,
                    d = -r._y * n.height,
                    p = d + n.height;
                e[0] = o * h + a * d + l, e[1] = u * d + s * h + c, e[2] = o * f + a * d + l, e[3] = u * d + s * f + c, e[4] = o * f + a * p + l, e[5] = u * p + s * f + c, e[6] = o * h + a * p + l, e[7] = u * p + s * h + c
            }, e.prototype._renderWebGL = function(t) {
                this.calculateVertices(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)
            }, e.prototype._renderCanvas = function(t) {
                t.plugins[this.pluginName].render(this)
            }, e.prototype._calculateBounds = function() {
                var t = this._texture.trim,
                    e = this._texture.orig;
                !t || t.width === e.width && t.height === e.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData))
            }, e.prototype.getLocalBounds = function(e) {
                return 0 === this.children.length ? (this._bounds.minX = this._texture.orig.width * -this._anchor._x, this._bounds.minY = this._texture.orig.height * -this._anchor._y, this._bounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._bounds.maxY = this._texture.orig.height * (1 - this._anchor._y), e || (this._localBoundsRect || (this._localBoundsRect = new i.Rectangle), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e)
            }, e.prototype.containsPoint = function(t) {
                this.worldTransform.applyInverse(t, c);
                var e = this._texture.orig.width,
                    n = this._texture.orig.height,
                    r = -e * this.anchor.x,
                    i = 0;
                return c.x >= r && c.x < r + e && (i = -n * this.anchor.y, c.y >= i && c.y < i + n)
            }, e.prototype.destroy = function(e) {
                if (t.prototype.destroy.call(this, e), this._texture.off("update", this._onTextureUpdate, this), this._anchor = null, "boolean" == typeof e ? e : e && e.texture) {
                    var n = "boolean" == typeof e ? e : e && e.baseTexture;
                    this._texture.destroy(!!n)
                }
                this._texture = null, this.shader = null
            }, e.from = function(t) {
                return new e(a.default.from(t))
            }, e.fromFrame = function(t) {
                var n = o.TextureCache[t];
                if (!n) throw new Error('The frameId "' + t + '" does not exist in the texture cache');
                return new e(n)
            }, e.fromImage = function(t, n, r) {
                return new e(a.default.fromImage(t, n, r))
            }, r(e, [{
                key: "width",
                get: function() {
                    return Math.abs(this.scale.x) * this._texture.orig.width
                },
                set: function(t) {
                    var e = (0, o.sign)(this.scale.x) || 1;
                    this.scale.x = e * t / this._texture.orig.width, this._width = t
                }
            }, {
                key: "height",
                get: function() {
                    return Math.abs(this.scale.y) * this._texture.orig.height
                },
                set: function(t) {
                    var e = (0, o.sign)(this.scale.y) || 1;
                    this.scale.y = e * t / this._texture.orig.height, this._height = t
                }
            }, {
                key: "anchor",
                get: function() {
                    return this._anchor
                },
                set: function(t) {
                    this._anchor.copy(t)
                }
            }, {
                key: "tint",
                get: function() {
                    return this._tint
                },
                set: function(t) {
                    this._tint = t, this._tintRGB = (t >> 16) + (65280 & t) + ((255 & t) << 16)
                }
            }, {
                key: "texture",
                get: function() {
                    return this._texture
                },
                set: function(t) {
                    this._texture !== t && (this._texture = t, this.cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, t && (t.baseTexture.hasLoaded ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this)))
                }
            }]), e
        }(u.default);
    e.default = h
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = n(2),
        o = {
            getTintedTexture: function(t, e) {
                var n = t._texture,
                    r = "#" + ("00000" + (0 | (e = o.roundColor(e))).toString(16)).substr(-6);
                n.tintCache = n.tintCache || {};
                var i = n.tintCache[r],
                    s = void 0;
                if (i) {
                    if (i.tintId === n._updateID) return n.tintCache[r];
                    s = n.tintCache[r]
                } else s = o.canvas || document.createElement("canvas");
                if (o.tintMethod(n, e, s), s.tintId = n._updateID, o.convertTintToImage) {
                    var a = new Image;
                    a.src = s.toDataURL(), n.tintCache[r] = a
                } else n.tintCache[r] = s, o.canvas = null;
                return s
            },
            tintWithMultiply: function(t, e, n) {
                var r = n.getContext("2d"),
                    i = t._frame.clone(),
                    o = t.baseTexture.resolution;
                i.x *= o, i.y *= o, i.width *= o, i.height *= o, n.width = Math.ceil(i.width), n.height = Math.ceil(i.height), r.save(), r.fillStyle = "#" + ("00000" + (0 | e).toString(16)).substr(-6), r.fillRect(0, 0, i.width, i.height), r.globalCompositeOperation = "multiply", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height), r.globalCompositeOperation = "destination-atop", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height), r.restore()
            },
            tintWithOverlay: function(t, e, n) {
                var r = n.getContext("2d"),
                    i = t._frame.clone(),
                    o = t.baseTexture.resolution;
                i.x *= o, i.y *= o, i.width *= o, i.height *= o, n.width = Math.ceil(i.width), n.height = Math.ceil(i.height), r.save(), r.globalCompositeOperation = "copy", r.fillStyle = "#" + ("00000" + (0 | e).toString(16)).substr(-6), r.fillRect(0, 0, i.width, i.height), r.globalCompositeOperation = "destination-atop", r.drawImage(t.baseTexture.source, i.x, i.y, i.width, i.height, 0, 0, i.width, i.height), r.restore()
            },
            tintWithPerPixel: function(t, e, n) {
                var r = n.getContext("2d"),
                    o = t._frame.clone(),
                    s = t.baseTexture.resolution;
                o.x *= s, o.y *= s, o.width *= s, o.height *= s, n.width = Math.ceil(o.width), n.height = Math.ceil(o.height), r.save(), r.globalCompositeOperation = "copy", r.drawImage(t.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height), r.restore();
                for (var a = (0, i.hex2rgb)(e), u = a[0], l = a[1], c = a[2], h = r.getImageData(0, 0, o.width, o.height), f = h.data, d = 0; d < f.length; d += 4) f[d + 0] *= u, f[d + 1] *= l, f[d + 2] *= c;
                r.putImageData(h, 0, 0)
            },
            roundColor: function(t) {
                var e = o.cacheStepsPerColorChannel,
                    n = (0, i.hex2rgb)(t);
                return n[0] = Math.min(255, n[0] / e * e), n[1] = Math.min(255, n[1] / e * e), n[2] = Math.min(255, n[2] / e * e), (0, i.rgb2hex)(n)
            },
            cacheStepsPerColorChannel: 8,
            convertTintToImage: !1,
            canUseMultiply: (0, ((r = n(164)) && r.__esModule ? r : {
                default: r
            }).default)(),
            tintMethod: 0
        };
    o.tintMethod = o.canUseMultiply ? o.tintWithMultiply : o.tintWithPerPixel, e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = i(n(170));

    function i(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var o = function(t) {
        function e(n, i) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var o = null;
            if (!(n instanceof r.default)) {
                var s = arguments[1],
                    a = arguments[2],
                    u = arguments[3],
                    l = arguments[4];
                o = arguments[0], i = null, n = new r.default(s, a, u, l)
            }
            var c = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n, i));
            return c.legacyRenderer = o, c.valid = !0, c._updateUvs(), c
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.resize = function(t, e, n) {
            t = Math.ceil(t), e = Math.ceil(e), this.valid = t > 0 && e > 0, this._frame.width = this.orig.width = t, this._frame.height = this.orig.height = e, n || this.baseTexture.resize(t, e), this._updateUvs()
        }, e.create = function(t, n, i, o) {
            return new e(new r.default(t, n, i, o))
        }, e
    }(i(n(15)).default);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.Ticker = e.shared = void 0;
    var r, i = (r = n(417)) && r.__esModule ? r : {
            default: r
        },
        o = new i.default;
    o.autoStart = !0, o.destroy = function() {}, e.shared = o, e.Ticker = i.default
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        for (var e = 6 * t, n = new Uint16Array(e), r = 0, i = 0; r < e; r += 6, i += 4) n[r + 0] = i + 0, n[r + 1] = i + 1, n[r + 2] = i + 2, n[r + 3] = i + 0, n[r + 4] = i + 2, n[r + 5] = i + 3;
        return n
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = (r = n(189)) && r.__esModule ? r : {
            default: r
        },
        s = i.ticker.shared;
    i.settings.UPLOADS_PER_FRAME = 4;
    var a = function() {
        function t(e) {
            var n = this;
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.limiter = new o.default(i.settings.UPLOADS_PER_FRAME), this.renderer = e, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() {
                n.queue && n.prepareItems()
            }, this.registerFindHook(d), this.registerFindHook(p), this.registerFindHook(u), this.registerFindHook(l), this.registerFindHook(c), this.registerUploadHook(h), this.registerUploadHook(f)
        }
        return t.prototype.upload = function(t, e) {
            "function" == typeof t && (e = t, t = null), t && this.add(t), this.queue.length ? (e && this.completes.push(e), this.ticking || (this.ticking = !0, s.addOnce(this.tick, this, i.UPDATE_PRIORITY.UTILITY))) : e && e()
        }, t.prototype.tick = function() {
            setTimeout(this.delayedTick, 0)
        }, t.prototype.prepareItems = function() {
            for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) {
                var t = this.queue[0],
                    e = !1;
                if (t && !t._destroyed)
                    for (var n = 0, r = this.uploadHooks.length; n < r; n++)
                        if (this.uploadHooks[n](this.uploadHookHelper, t)) {
                            this.queue.shift(), e = !0;
                            break
                        }
                e || this.queue.shift()
            }
            if (this.queue.length) s.addOnce(this.tick, this, i.UPDATE_PRIORITY.UTILITY);
            else {
                this.ticking = !1;
                var o = this.completes.slice(0);
                this.completes.length = 0;
                for (var a = 0, u = o.length; a < u; a++) o[a]()
            }
        }, t.prototype.registerFindHook = function(t) {
            return t && this.addHooks.push(t), this
        }, t.prototype.registerUploadHook = function(t) {
            return t && this.uploadHooks.push(t), this
        }, t.prototype.add = function(t) {
            for (var e = 0, n = this.addHooks.length; e < n && !this.addHooks[e](t, this.queue); e++);
            if (t instanceof i.Container)
                for (var r = t.children.length - 1; r >= 0; r--) this.add(t.children[r]);
            return this
        }, t.prototype.destroy = function() {
            this.ticking && s.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null
        }, t
    }();

    function u(t, e) {
        var n = !1;
        if (t && t._textures && t._textures.length)
            for (var r = 0; r < t._textures.length; r++)
                if (t._textures[r] instanceof i.Texture) {
                    var o = t._textures[r].baseTexture; - 1 === e.indexOf(o) && (e.push(o), n = !0)
                }
        return n
    }

    function l(t, e) {
        return t instanceof i.BaseTexture && (-1 === e.indexOf(t) && e.push(t), !0)
    }

    function c(t, e) {
        if (t._texture && t._texture instanceof i.Texture) {
            var n = t._texture.baseTexture;
            return -1 === e.indexOf(n) && e.push(n), !0
        }
        return !1
    }

    function h(t, e) {
        return e instanceof i.Text && (e.updateText(!0), !0)
    }

    function f(t, e) {
        if (e instanceof i.TextStyle) {
            var n = e.toFontString();
            return i.TextMetrics.measureFont(n), !0
        }
        return !1
    }

    function d(t, e) {
        if (t instanceof i.Text) {
            -1 === e.indexOf(t.style) && e.push(t.style), -1 === e.indexOf(t) && e.push(t);
            var n = t._texture.baseTexture;
            return -1 === e.indexOf(n) && e.push(n), !0
        }
        return !1
    }

    function p(t, e) {
        return t instanceof i.TextStyle && (-1 === e.indexOf(t) && e.push(t), !0)
    }
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = s(n(143)),
        o = s(n(71));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var a = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest),
        u = null;

    function l() {}
    var c = function() {
        function t(e, n, r) {
            if (function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), "string" != typeof e || "string" != typeof n) throw new Error("Both name and url are required for constructing a resource.");
            r = r || {}, this._flags = 0, this._setFlag(t.STATUS_FLAGS.DATA_URL, 0 === n.indexOf("data:")), this.name = e, this.url = n, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === r.crossOrigin ? "anonymous" : r.crossOrigin, this.loadType = r.loadType || this._determineLoadType(), this.xhrType = r.xhrType, this.metadata = r.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = t.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = l, this._onLoadBinding = null, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this._boundXdrOnTimeout = this._xdrOnTimeout.bind(this), this.onStart = new o.default, this.onProgress = new o.default, this.onComplete = new o.default, this.onAfterMiddleware = new o.default
        }
        return t.setExtensionLoadType = function(e, n) {
            h(t._loadTypeMap, e, n)
        }, t.setExtensionXhrType = function(e, n) {
            h(t._xhrTypeMap, e, n)
        }, t.prototype.complete = function() {
            if (this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)), this.isComplete) throw new Error("Complete called again for an already completed resource.");
            this._setFlag(t.STATUS_FLAGS.COMPLETE, !0), this._setFlag(t.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this)
        }, t.prototype.abort = function(e) {
            if (!this.error) {
                if (this.error = new Error(e), this.xhr) this.xhr.abort();
                else if (this.xdr) this.xdr.abort();
                else if (this.data)
                    if (this.data.src) this.data.src = t.EMPTY_GIF;
                    else
                        for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild);
                this.complete()
            }
        }, t.prototype.load = function(e) {
            var n = this;
            if (!this.isLoading)
                if (this.isComplete) e && setTimeout(function() {
                    return e(n)
                }, 1);
                else switch (e && this.onComplete.once(e), this._setFlag(t.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) {
                    case t.LOAD_TYPE.IMAGE:
                        this.type = t.TYPE.IMAGE, this._loadElement("image");
                        break;
                    case t.LOAD_TYPE.AUDIO:
                        this.type = t.TYPE.AUDIO, this._loadSourceElement("audio");
                        break;
                    case t.LOAD_TYPE.VIDEO:
                        this.type = t.TYPE.VIDEO, this._loadSourceElement("video");
                        break;
                    case t.LOAD_TYPE.XHR:
                    default:
                        a && this.crossOrigin ? this._loadXdr() : this._loadXhr()
                }
        }, t.prototype._hasFlag = function(t) {
            return !!(this._flags & t)
        }, t.prototype._setFlag = function(t, e) {
            this._flags = e ? this._flags | t : this._flags & ~t
        }, t.prototype._loadElement = function(t) {
            this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === t && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(t), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1)
        }, t.prototype._loadSourceElement = function(t) {
            if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === t && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(t), null !== this.data) {
                if (!this.metadata.skipSource)
                    if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url;
                    else if (Array.isArray(this.url))
                    for (var e = this.metadata.mimeType, n = 0; n < this.url.length; ++n) this.data.appendChild(this._createSource(t, this.url[n], Array.isArray(e) ? e[n] : e));
                else {
                    var r = this.metadata.mimeType;
                    this.data.appendChild(this._createSource(t, this.url, Array.isArray(r) ? r[0] : r))
                }
                this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load()
            } else this.abort("Unsupported element: " + t)
        }, t.prototype._loadXhr = function() {
            "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
            var e = this.xhr = new XMLHttpRequest;
            e.open("GET", this.url, !0), this.xhrType === t.XHR_RESPONSE_TYPE.JSON || this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT ? e.responseType = t.XHR_RESPONSE_TYPE.TEXT : e.responseType = this.xhrType, e.addEventListener("error", this._boundXhrOnError, !1), e.addEventListener("abort", this._boundXhrOnAbort, !1), e.addEventListener("progress", this._boundOnProgress, !1), e.addEventListener("load", this._boundXhrOnLoad, !1), e.send()
        }, t.prototype._loadXdr = function() {
            "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType());
            var t = this.xhr = new XDomainRequest;
            t.timeout = 5e3, t.onerror = this._boundXhrOnError, t.ontimeout = this._boundXdrOnTimeout, t.onprogress = this._boundOnProgress, t.onload = this._boundXhrOnLoad, t.open("GET", this.url, !0), setTimeout(function() {
                return t.send()
            }, 1)
        }, t.prototype._createSource = function(t, e, n) {
            n || (n = t + "/" + this._getExtension(e));
            var r = document.createElement("source");
            return r.src = e, r.type = n, r
        }, t.prototype._onError = function(t) {
            this.abort("Failed to load element using: " + t.target.nodeName)
        }, t.prototype._onProgress = function(t) {
            t && t.lengthComputable && this.onProgress.dispatch(this, t.loaded / t.total)
        }, t.prototype._xhrOnError = function() {
            var t = this.xhr;
            this.abort(f(t) + " Request failed. Status: " + t.status + ', text: "' + t.statusText + '"')
        }, t.prototype._xhrOnAbort = function() {
            this.abort(f(this.xhr) + " Request was aborted by the user.")
        }, t.prototype._xdrOnTimeout = function() {
            this.abort(f(this.xhr) + " Request timed out.")
        }, t.prototype._xhrOnLoad = function() {
            var e = this.xhr,
                n = "",
                r = void 0 === e.status ? 200 : e.status;
            if ("" !== e.responseType && "text" !== e.responseType && void 0 !== e.responseType || (n = e.responseText), 0 === r && (n.length > 0 || e.responseType === t.XHR_RESPONSE_TYPE.BUFFER) ? r = 200 : 1223 === r && (r = 204), 2 == (r / 100 | 0)) {
                if (this.xhrType === t.XHR_RESPONSE_TYPE.TEXT) this.data = n, this.type = t.TYPE.TEXT;
                else if (this.xhrType === t.XHR_RESPONSE_TYPE.JSON) try {
                    this.data = JSON.parse(n), this.type = t.TYPE.JSON
                } catch (t) {
                    return void this.abort("Error trying to parse loaded json: " + t)
                } else if (this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT) try {
                    if (window.DOMParser) {
                        var i = new DOMParser;
                        this.data = i.parseFromString(n, "text/xml")
                    } else {
                        var o = document.createElement("div");
                        o.innerHTML = n, this.data = o
                    }
                    this.type = t.TYPE.XML
                } catch (t) {
                    return void this.abort("Error trying to parse loaded xml: " + t)
                } else this.data = e.response || n;
                this.complete()
            } else this.abort("[" + e.status + "] " + e.statusText + ": " + e.responseURL)
        }, t.prototype._determineCrossOrigin = function(t, e) {
            if (0 === t.indexOf("data:")) return "";
            e = e || window.location, u || (u = document.createElement("a")), u.href = t;
            var n = !(t = (0, i.default)(u.href, {
                    strictMode: !0
                })).port && "" === e.port || t.port === e.port,
                r = t.protocol ? t.protocol + ":" : "";
            return t.host === e.hostname && n && r === e.protocol ? "" : "anonymous"
        }, t.prototype._determineXhrType = function() {
            return t._xhrTypeMap[this.extension] || t.XHR_RESPONSE_TYPE.TEXT
        }, t.prototype._determineLoadType = function() {
            return t._loadTypeMap[this.extension] || t.LOAD_TYPE.XHR
        }, t.prototype._getExtension = function() {
            var t = this.url,
                e = "";
            if (this.isDataUrl) {
                var n = t.indexOf("/");
                e = t.substring(n + 1, t.indexOf(";", n))
            } else {
                var r = t.indexOf("?"),
                    i = t.indexOf("#"),
                    o = Math.min(r > -1 ? r : t.length, i > -1 ? i : t.length);
                e = (t = t.substring(0, o)).substring(t.lastIndexOf(".") + 1)
            }
            return e.toLowerCase()
        }, t.prototype._getMimeFromXhrType = function(e) {
            switch (e) {
                case t.XHR_RESPONSE_TYPE.BUFFER:
                    return "application/octet-binary";
                case t.XHR_RESPONSE_TYPE.BLOB:
                    return "application/blob";
                case t.XHR_RESPONSE_TYPE.DOCUMENT:
                    return "application/xml";
                case t.XHR_RESPONSE_TYPE.JSON:
                    return "application/json";
                case t.XHR_RESPONSE_TYPE.DEFAULT:
                case t.XHR_RESPONSE_TYPE.TEXT:
                default:
                    return "text/plain"
            }
        }, r(t, [{
            key: "isDataUrl",
            get: function() {
                return this._hasFlag(t.STATUS_FLAGS.DATA_URL)
            }
        }, {
            key: "isComplete",
            get: function() {
                return this._hasFlag(t.STATUS_FLAGS.COMPLETE)
            }
        }, {
            key: "isLoading",
            get: function() {
                return this._hasFlag(t.STATUS_FLAGS.LOADING)
            }
        }]), t
    }();

    function h(t, e, n) {
        e && 0 === e.indexOf(".") && (e = e.substring(1)), e && (t[e] = n)
    }

    function f(t) {
        return t.toString().replace("object ", "")
    }
    e.default = c, c.STATUS_FLAGS = {
        NONE: 0,
        DATA_URL: 1,
        COMPLETE: 2,
        LOADING: 4
    }, c.TYPE = {
        UNKNOWN: 0,
        JSON: 1,
        XML: 2,
        IMAGE: 3,
        AUDIO: 4,
        VIDEO: 5,
        TEXT: 6
    }, c.LOAD_TYPE = {
        XHR: 1,
        IMAGE: 2,
        AUDIO: 3,
        VIDEO: 4
    }, c.XHR_RESPONSE_TYPE = {
        DEFAULT: "text",
        BUFFER: "arraybuffer",
        BLOB: "blob",
        DOCUMENT: "document",
        JSON: "json",
        TEXT: "text"
    }, c._loadTypeMap = {
        gif: c.LOAD_TYPE.IMAGE,
        png: c.LOAD_TYPE.IMAGE,
        bmp: c.LOAD_TYPE.IMAGE,
        jpg: c.LOAD_TYPE.IMAGE,
        jpeg: c.LOAD_TYPE.IMAGE,
        tif: c.LOAD_TYPE.IMAGE,
        tiff: c.LOAD_TYPE.IMAGE,
        webp: c.LOAD_TYPE.IMAGE,
        tga: c.LOAD_TYPE.IMAGE,
        svg: c.LOAD_TYPE.IMAGE,
        "svg+xml": c.LOAD_TYPE.IMAGE,
        mp3: c.LOAD_TYPE.AUDIO,
        ogg: c.LOAD_TYPE.AUDIO,
        wav: c.LOAD_TYPE.AUDIO,
        mp4: c.LOAD_TYPE.VIDEO,
        webm: c.LOAD_TYPE.VIDEO
    }, c._xhrTypeMap = {
        xhtml: c.XHR_RESPONSE_TYPE.DOCUMENT,
        html: c.XHR_RESPONSE_TYPE.DOCUMENT,
        htm: c.XHR_RESPONSE_TYPE.DOCUMENT,
        xml: c.XHR_RESPONSE_TYPE.DOCUMENT,
        tmx: c.XHR_RESPONSE_TYPE.DOCUMENT,
        svg: c.XHR_RESPONSE_TYPE.DOCUMENT,
        tsx: c.XHR_RESPONSE_TYPE.DOCUMENT,
        gif: c.XHR_RESPONSE_TYPE.BLOB,
        png: c.XHR_RESPONSE_TYPE.BLOB,
        bmp: c.XHR_RESPONSE_TYPE.BLOB,
        jpg: c.XHR_RESPONSE_TYPE.BLOB,
        jpeg: c.XHR_RESPONSE_TYPE.BLOB,
        tif: c.XHR_RESPONSE_TYPE.BLOB,
        tiff: c.XHR_RESPONSE_TYPE.BLOB,
        webp: c.XHR_RESPONSE_TYPE.BLOB,
        tga: c.XHR_RESPONSE_TYPE.BLOB,
        json: c.XHR_RESPONSE_TYPE.JSON,
        text: c.XHR_RESPONSE_TYPE.TEXT,
        txt: c.XHR_RESPONSE_TYPE.TEXT,
        ttf: c.XHR_RESPONSE_TYPE.BUFFER,
        otf: c.XHR_RESPONSE_TYPE.BUFFER
    }, c.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(4);
    n(204);
    var i = n(7),
        o = n(203),
        s = n(200),
        a = n(201),
        u = n(34),
        l = n(202),
        c = n(198),
        h = n(199),
        f = c;
    e.start = function(t) {
        createjs.Ticker = null, t && u.setAPI(t), u.instance.initialize(), e.stage = new a.default, e.renderer = r.autoDetectRenderer(960, 640, {
            backgroundColor: 0,
            roundPixels: !1
        }), e.renderer.plugins.interaction.interactionFrequency = Number.MAX_VALUE, document.body.appendChild(e.renderer.view);
        var n, l = h.default(function() {
            p()
        }, 500, {
            leading: !1,
            trailing: !0
        });
        window.addEventListener("resize", function() {
            l()
        }), p(), r.ticker.shared.add(g), n = new r.loaders.Loader, i.loadPreloaderAssets(n, function() {
            e.stage.initialize();
            var t = new r.loaders.Loader,
                n = o.default({
                    progressOffset: f.playButtonOffset
                });
            e.stage.showScreen(n), t.onProgress.add(function() {
                var e = t.progress / 100;
                u.instance.updateProgress(e), n.updateProgress(e)
            }), i.load(t, function() {
                n.stop(function() {
                    u.instance.loadingComplete(function() {
                        new s.default(e.stage, f).launchApp()
                    })
                })
            })
        })
    };
    var d = new r.Rectangle;

    function p() {
        var t = window.innerWidth,
            n = window.innerHeight;
        l.default(e.renderer, t, n, {
            horizontal: {
                width: 1060,
                height: 800
            },
            vertical: {
                width: 700,
                height: 1040
            }
        }), v = e.renderer.view.width, _ = e.renderer.view.height, e.stage && (d.width = v, d.height = _, e.stage.resize(d)), window.scroll && window.scroll(0, 0), e.renderer.render(e.stage)
    }
    var v = 0,
        _ = 0;

    function g() {
        e.renderer.render(e.stage), createjs.Tween.tick(r.ticker.shared.elapsedMS, !1)
    }
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o, s = n(13),
        a = n(487),
        u = n(488),
        l = n(514),
        c = n(483),
        h = n(485),
        f = n(484),
        d = n(509),
        p = n(10),
        v = n(7),
        _ = n(13),
        g = n(250),
        y = n(490),
        m = n(495),
        b = n(492);
    ! function(t) {
        t[t.classic = 0] = "classic", t[t.dark = 1] = "dark", t[t.timeTrial = 2] = "timeTrial"
    }(o = e.GameMode || (e.GameMode = {}));
    var x = function(t) {
        function e(e) {
            var n = t.call(this) || this;
            n.config = e, n.buttonOffset = 70, n.levelTitle = new PIXI.Container, n.animationTimeout = 0, n.onContextMenu = function() {}, n.onNext = function() {}, n.onQuit = function() {}, n.onLevelComplete = function() {}, n.direction = {
                x: 0,
                y: 0
            }, n.verticalOrientation = !1, n.stateMachine = new c.default, n.levelTitleIcon = PIXI.Sprite.fromFrame("level_marker_icon.png"), n.levelTitleIcon.anchor.set(.5, .5), n.levelTitle.addChild(n.levelTitleIcon), n.levelTitleText = new PIXI.extras.BitmapText("  ", {
                font: "70px GameFnt",
                align: "left"
            }), n.levelTitleText.anchor = new PIXI.Point(0, .5), n.levelTitle.addChild(n.levelTitleText), n.addChild(n.levelTitle), n.mazeContainer = new y.default(n.config), n.addChild(n.mazeContainer), n.mazeMask = new b.default(n.mazeContainer, n.config);
            var r = PIXI.Sprite.fromFrame("hand.png");
            return r.anchor.set(.5, .5), n.tutorial = new m.TutorialAnimation(r), n.addChild(n.tutorial), n.swipeController = new h.default, n.swipeController.onSwipe = function(t, e) {
                return n.onSwipe(t, e)
            }, n.keyBoardController = new f.default, n.keyBoardController.onLeft = function() {
                return n.onSwipe(-1, 0)
            }, n.keyBoardController.onRight = function() {
                return n.onSwipe(1, 0)
            }, n.keyBoardController.onUp = function() {
                return n.onSwipe(0, -1)
            }, n.keyBoardController.onDown = function() {
                return n.onSwipe(0, 1)
            }, n.settingsButton = s.createIconButton(n, "settings_btn", function() {
                n.onContextMenu()
            }), n.settingsButton.position.set(550 - n.buttonOffset, -400 + n.buttonOffset), n.starParticles = new d.default, n.starParticles.visible = !1, n.addChild(n.starParticles), n.levelComplete = new l.default, n.levelComplete.onNext = function() {
                return n.onNext(n.mode)
            }, n.levelComplete.onHome = function() {
                return n.onQuit()
            }, n.levelComplete.visible = !1, n.levelComplete.position.set(0, 100), n.addChild(n.levelComplete), n.interactive = !0, n.interactiveChildren = !0, n
        }
        return i(e, t), e.prototype.start = function(t, e, n) {
            var r = this;
            this.resetTweens(), this.mode = n || o.classic, this.firstMoveRequested = !1, this.firstMoveAccepted = !1;
            var i = e.columns,
                s = e.rows;
            this.levelComplete.visible = !1, this.mazeContainer.alpha = 1;
            var l = this.generateSeed(t);
            if (this.maze = a.default.create(i, s, l), this.mazePath = new u.default(this.maze), this.mazeContainer.setData(this.maze, this.mazePath), this.mode === o.dark ? (this.mazeMask.enabled = !1, this.mazeMask.radius = 750, createjs.Tween.removeTweens(this.mazeMask), createjs.Tween.get(this.mazeMask).wait(2300).call(function() {
                    r.mazeMask.enabled = !0, p.playSound(v.get("winddown"))
                }).to({
                    radius: this.config.game.mask.radius
                }, 800, createjs.Ease.quadOut)) : (createjs.Tween.removeTweens(this.mazeMask), this.mazeMask.enabled = !1), this.setUpLevelTitle(t), this.tutorialEnabled = t < 1 && this.mode === o.classic, this.tutorial.visible = !1, this.tutorialEnabled) {
                var h = this.tutorial.toLocal(this.mazeContainer.globalCurrentPoint);
                h.x -= 100, h.y += 120;
                var f = new PIXI.Point(h.x + 550, h.y);
                this.tutorial.setUp(h, f)
            }
            this.mazeContainer.updateDirections(!0), this.stateMachine.changeState(c.GameState.initializing);
            var d = this.startInitializingAnimation();
            this.resetTimeouts(d)
        }, e.prototype.showLevelComplete = function(t, e, n) {
            var r = this,
                i = ["classic", "dark", "timeTrial"][r.mode] + (r.mode < 2 ? "_" + (t + 1) : "");
            r.levelComplete.continueButton.visible = !1, r.levelComplete.homeButton.visible = !1, this.mazeContainer.animateSuccess(), setTimeout(function() {
                p.playSound(v.get("fireworks")), r.starParticles.visible = !0, r.starParticles.launch(), r.levelComplete.show(t, e, n / 1e3), r.levelComplete.visible = !0, r.levelComplete.alpha = 0, p.playSound(v.get("level_complete")), createjs.Tween.get(r.levelComplete).to({
                    alpha: 1
                }, 250, createjs.Ease.linear), r.stateMachine.changeState(c.GameState.levelWon);
                var o = function() {
                    r.levelComplete.continueButton.visible = !0, r.levelComplete.homeButton.visible = !0
                };
                setTimeout(function() {
                    Promise.all([gradle.event("EVENT_LEVELSUCCESS", {
                        levelName: i
                    }), gradle.event("EVENT_LEVELSCORE", {
                        levelName: i,
                        levelScore: -parseInt(n / 1e3)
                    })]).then(o, o)
                }, 3e3)
            }, 500)
        }, e.prototype.update = function(t) {
            if (this.starParticles && this.starParticles.visible && this.starParticles.animate(t / 1e3), this.mazeContainer.update(t), this.mazeMask && (this.mazeMask.globalPosition = this.mazeContainer.globalCurrentPoint), this.animationTimeout -= t, this.updateTime(), !(this.animationTimeout > 0)) {
                var e = 0;
                switch (this.stateMachine.state) {
                    case c.GameState.off:
                        break;
                    case c.GameState.initializing:
                        this.stateMachine.changeState(c.GameState.finalizeInitialization);
                        break;
                    case c.GameState.finalizeInitialization:
                        if (this.mazePath.isEndPointReached()) {
                            this.stateMachine.changeState(c.GameState.moveDone);
                            break
                        }
                        this.stateMachine.changeState(c.GameState.awaiting), p.playSound(v.get("maze_init")), this.tutorial.visible = this.tutorialEnabled, this.tutorialEnabled && this.tutorial.start();
                        break;
                    case c.GameState.awaiting:
                        break;
                    case c.GameState.moveRequested:
                        this.firstMoveRequested || (this.firstMoveRequested = !0, this.startMillis = PIXI.ticker.shared.lastTime), this.tutorialEnabled && this.tutorial.stop(), this.mazeContainer.updateDirections(!1), this.mazePath.move(this.direction) ? (this.stateMachine.changeState(c.GameState.moveAccepted), this.firstMoveAccepted = !0, e = this.mazeContainer.animateMove()) : (e = this.mazeContainer.animateMoveRejected(this.direction), this.stateMachine.changeState(c.GameState.moveRejected), this.firstMoveAccepted || this.tutorialEnabled && this.tutorial.start());
                        break;
                    case c.GameState.moveRejected:
                        this.tutorialEnabled && this.tutorial.stop(), this.mazeContainer.updateDirections(!0), this.stateMachine.changeState(c.GameState.awaiting);
                        break;
                    case c.GameState.moveAccepted:
                        this.mazePath.moveNext() ? (e = this.mazeContainer.animateMove(), this.stateMachine.changeState(c.GameState.moveAccepted)) : this.stateMachine.changeState(c.GameState.moveDone);
                        break;
                    case c.GameState.moveDone:
                        this.mazePath.isEndPointReached() ? (this.onLevelComplete(this.gameMillis, this.mode), this.mazeContainer.updateDirections(!1), this.stateMachine.changeState(c.GameState.levelWonRequested)) : (this.mazeContainer.updateDirections(!0), this.stateMachine.changeState(c.GameState.awaiting), p.playSound(v.get("droplet")));
                        break;
                    case c.GameState.levelWonRequested:
                    case c.GameState.levelWon:
                    case c.GameState.gameStopped:
                }
                this.resetTimeouts(e)
            }
        }, e.prototype.enterScreen = function() {}, e.prototype.exitScreen = function() {
            return this.starParticles && (this.starParticles.clean(), this.starParticles.visible = !1), this.levelComplete.visible ? (createjs.Tween.get(this.levelComplete).to({
                alpha: 0
            }, 75, createjs.Ease.quadOut), createjs.Tween.get(this.mazeContainer).to({
                x: -550
            }, 350, createjs.Ease.quadIn), createjs.Tween.get(this.mazeContainer).to({
                alpha: 0
            }, 350, createjs.Ease.quadIn), createjs.Tween.get(this.settingsButton).to({
                alpha: 0
            }, 350, createjs.Ease.quadIn), createjs.Tween.get(this.levelTitle).to({
                alpha: 0
            }, 350, createjs.Ease.quadIn), 650) : 0
        }, e.prototype.resize = function(t) {
            var e = t.width,
                n = t.height;
            this.position.set(e >> 1, n >> 1);
            var r = this.verticalOrientation = n >= e,
                i = this.settingsButton.width;
            if (r) {
                var o = 120 - (960 - this.config.game.mazeArea.height) / 2;
                this.mazeContainer.position.set(0, o), this.settingsButton.position.set(this.config.game.mazeArea.width / 2 - this.buttonOffset, -this.config.game.mazeArea.height / 2 - o), this.levelTitle.position.set(-this.config.game.mazeArea.width / 2 + this.buttonOffset - (i >> 1), this.settingsButton.y), this.levelComplete.position.set(0, 100)
            } else o = 120 - (800 - this.config.game.mazeArea.width) / 2, this.mazeContainer.position.set(0, o), this.settingsButton.position.set(this.config.game.mazeArea.height / 2 - this.buttonOffset, -this.config.game.mazeArea.width / 2 - o), this.levelTitle.position.set(-this.config.game.mazeArea.height / 2 + this.buttonOffset - (i >> 1), this.settingsButton.y), this.levelComplete.position.set(0, 0);
            this.mazeContainer.resize(t), this.tutorial.position.set(this.mazeContainer.position.x, this.mazeContainer.position.y), this.tutorial && this.tutorial.resize(t), this.levelComplete && this.levelComplete.resize(t)
        }, e.prototype.resetTimeouts = function(t) {
            this.animationTimeout = t > 0 ? t : 0
        }, e.prototype.onSwipe = function(t, e) {
            this.stateMachine.state === c.GameState.awaiting && (this.verticalOrientation ? (this.direction.x = t, this.direction.y = e) : (this.direction.x = -e, this.direction.y = t), this.stateMachine.changeState(c.GameState.moveRequested))
        }, e.prototype.setUpLevelTitle = function(t) {
            switch (this.mode) {
                case o.classic:
                    this.levelTitleIcon.visible = !0, this.levelTitleIcon.position.x = this.buttonOffset / 2, this.levelTitleText.text = "" + (t + 1), this.levelTitleText.position.x = this.levelTitleIcon.position.x + 40;
                    break;
                case o.timeTrial:
                    this.levelTitleIcon.visible = !1, this.levelTitleText.text = "00:00", this.levelTitleText.position.x = 0;
                    break;
                case o.dark:
                    this.levelTitleIcon.visible = !0, this.levelTitleIcon.position.x = this.buttonOffset / 2, this.levelTitleText.text = "" + (t + 1), this.levelTitleText.position.x = this.levelTitleIcon.position.x + 40
            }
        }, e.prototype.updateTime = function() {
            if (this.firstMoveRequested && !this.mazePath.isEndPointReached()) {
                var t = PIXI.ticker.shared.lastTime;
                this.gameMillis = t - this.startMillis, this.mode === o.timeTrial && (this.levelTitleText.text = _.formatSeconds(this.gameMillis / 1e3))
            }
        }, e.prototype.generateSeed = function(t) {
            return t < 0 ? "OCM!a_gUMSkG:JrZU.~94YRt+h415" + this.mode + g.default(0, Number.MAX_VALUE) : ["OCM!a_gUMSkG:JrZU.~94YRt+h431+057", "OCM!a_gUMSkG:JrZU.~94YRt+h413", "OCM!a_gUMSkG:JrZU.~94YRt+h445", "OCM!a_gUMSkG:JrZU.~94YRt+h500", "OCM!a_gUMSkG:JrZU.~94YRt+h600"][t] || "OCM!a_gUMSkG:JrZU.~94YRt+h415" + g.default(0, Number.MAX_VALUE)
        }, e.prototype.startInitializingAnimation = function() {
            return this.levelTitle.alpha = 0, createjs.Tween.get(this.levelTitle).to({
                alpha: 1
            }, 1e3, createjs.Ease.quadOut), this.settingsButton.alpha = 0, createjs.Tween.get(this.settingsButton).to({
                alpha: 1
            }, 1e3, createjs.Ease.quadOut), this.mazeContainer.startFillAnimation()
        }, e.prototype.resetTweens = function() {
            createjs.Tween.removeTweens(this.levelTitle), createjs.Tween.removeTweens(this.settingsButton), this.mazeContainer.resetAnimations()
        }, e
    }(PIXI.Container);
    e.default = x
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.parseColor = function(t) {
        if ("number" == typeof t) return 0 | t;
        if ("string" == typeof t && "#" === t[0]) {
            var e = t.slice(1);
            return parseInt(e, 16)
        }
        return 16711935
    }
}, function(t, e) {
    var n = {
        NORTH: 0,
        EAST: 1,
        SOUTH: 2,
        WEST: 3
    };
    n.ALL = [n.NORTH, n.EAST, n.SOUTH, n.WEST], n.opposite = function(t) {
        switch (t) {
            case 0:
                return 2;
            case 1:
                return 3;
            case 2:
                return 0;
            case 3:
                return 1;
            default:
                throw new Error("bad direction: " + t)
        }
    }, n.dx = function(t) {
        switch (t) {
            case 0:
                return 0;
            case 1:
                return 1;
            case 2:
                return 0;
            case 3:
                return -1;
            default:
                throw new Error("bad direction: " + t)
        }
    }, n.dy = function(t) {
        switch (t) {
            case 0:
                return -1;
            case 1:
                return 0;
            case 2:
                return 1;
            case 3:
                return 0;
            default:
                throw new Error("bad direction: " + t)
        }
    }, n.move = function(t, e, n) {
        switch (n) {
            case 0:
                return [t, e - 1];
            case 1:
                return [t + 1, e];
            case 2:
                return [t, e + 1];
            case 3:
                return [t - 1, e];
            default:
                throw new Error("bad direction: " + n)
        }
    }, n.bitmask = function(t) {
        return 1 << t
    }, t.exports = n
}, function(t, e, n) {
    var r;
    ! function(i, o, s, a) {
        "use strict";
        var u, l = ["", "webkit", "Moz", "MS", "ms", "o"],
            c = o.createElement("div"),
            h = "function",
            f = Math.round,
            d = Math.abs,
            p = Date.now;

        function v(t, e, n) {
            return setTimeout(w(t, n), e)
        }

        function _(t, e, n) {
            return !!Array.isArray(t) && (g(t, n[e], n), !0)
        }

        function g(t, e, n) {
            var r;
            if (t)
                if (t.forEach) t.forEach(e, n);
                else if (t.length !== a)
                for (r = 0; r < t.length;) e.call(n, t[r], r, t), r++;
            else
                for (r in t) t.hasOwnProperty(r) && e.call(n, t[r], r, t)
        }

        function y(t, e, n) {
            var r = "DEPRECATED METHOD: " + e + "\n" + n + " AT \n";
            return function() {
                var e = new Error("get-stack-trace"),
                    n = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace",
                    o = i.console && (i.console.warn || i.console.log);
                return o && o.call(i.console, r, n), t.apply(this, arguments)
            }
        }
        u = "function" != typeof Object.assign ? function(t) {
            if (t === a || null === t) throw new TypeError("Cannot convert undefined or null to object");
            for (var e = Object(t), n = 1; n < arguments.length; n++) {
                var r = arguments[n];
                if (r !== a && null !== r)
                    for (var i in r) r.hasOwnProperty(i) && (e[i] = r[i])
            }
            return e
        } : Object.assign;
        var m = y(function(t, e, n) {
                for (var r = Object.keys(e), i = 0; i < r.length;)(!n || n && t[r[i]] === a) && (t[r[i]] = e[r[i]]), i++;
                return t
            }, "extend", "Use `assign`."),
            b = y(function(t, e) {
                return m(t, e, !0)
            }, "merge", "Use `assign`.");

        function x(t, e, n) {
            var r, i = e.prototype;
            (r = t.prototype = Object.create(i)).constructor = t, r._super = i, n && u(r, n)
        }

        function w(t, e) {
            return function() {
                return t.apply(e, arguments)
            }
        }

        function T(t, e) {
            return typeof t == h ? t.apply(e && e[0] || a, e) : t
        }

        function E(t, e) {
            return t === a ? e : t
        }

        function S(t, e, n) {
            g(C(e), function(e) {
                t.addEventListener(e, n, !1)
            })
        }

        function P(t, e, n) {
            g(C(e), function(e) {
                t.removeEventListener(e, n, !1)
            })
        }

        function O(t, e) {
            for (; t;) {
                if (t == e) return !0;
                t = t.parentNode
            }
            return !1
        }

        function M(t, e) {
            return t.indexOf(e) > -1
        }

        function C(t) {
            return t.trim().split(/\s+/g)
        }

        function A(t, e, n) {
            if (t.indexOf && !n) return t.indexOf(e);
            for (var r = 0; r < t.length;) {
                if (n && t[r][n] == e || !n && t[r] === e) return r;
                r++
            }
            return -1
        }

        function I(t) {
            return Array.prototype.slice.call(t, 0)
        }

        function R(t, e, n) {
            for (var r = [], i = [], o = 0; o < t.length;) {
                var s = e ? t[o][e] : t[o];
                A(i, s) < 0 && r.push(t[o]), i[o] = s, o++
            }
            return n && (r = e ? r.sort(function(t, n) {
                return t[e] > n[e]
            }) : r.sort()), r
        }

        function D(t, e) {
            for (var n, r, i = e[0].toUpperCase() + e.slice(1), o = 0; o < l.length;) {
                if ((r = (n = l[o]) ? n + i : e) in t) return r;
                o++
            }
            return a
        }
        var L = 1;

        function k(t) {
            var e = t.ownerDocument || t;
            return e.defaultView || e.parentWindow || i
        }
        var j = "ontouchstart" in i,
            N = D(i, "PointerEvent") !== a,
            B = j && /mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),
            F = 25,
            U = 1,
            z = 4,
            X = 8,
            G = 1,
            W = 2,
            H = 4,
            V = 8,
            Y = 16,
            q = W | H,
            Z = V | Y,
            $ = q | Z,
            K = ["x", "y"],
            Q = ["clientX", "clientY"];

        function J(t, e) {
            var n = this;
            this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function(e) {
                T(t.options.enable, [t]) && n.handler(e)
            }, this.init()
        }

        function tt(t, e, n) {
            var r = n.pointers.length,
                i = n.changedPointers.length,
                o = e & U && r - i == 0,
                s = e & (z | X) && r - i == 0;
            n.isFirst = !!o, n.isFinal = !!s, o && (t.session = {}), n.eventType = e,
                function(t, e) {
                    var n = t.session,
                        r = e.pointers,
                        i = r.length;
                    n.firstInput || (n.firstInput = et(e)), i > 1 && !n.firstMultiple ? n.firstMultiple = et(e) : 1 === i && (n.firstMultiple = !1);
                    var o = n.firstInput,
                        s = n.firstMultiple,
                        u = s ? s.center : o.center,
                        l = e.center = nt(r);
                    e.timeStamp = p(), e.deltaTime = e.timeStamp - o.timeStamp, e.angle = st(u, l), e.distance = ot(u, l),
                        function(t, e) {
                            var n = e.center,
                                r = t.offsetDelta || {},
                                i = t.prevDelta || {},
                                o = t.prevInput || {};
                            e.eventType !== U && o.eventType !== z || (i = t.prevDelta = {
                                x: o.deltaX || 0,
                                y: o.deltaY || 0
                            }, r = t.offsetDelta = {
                                x: n.x,
                                y: n.y
                            }), e.deltaX = i.x + (n.x - r.x), e.deltaY = i.y + (n.y - r.y)
                        }(n, e), e.offsetDirection = it(e.deltaX, e.deltaY);
                    var c, h, f = rt(e.deltaTime, e.deltaX, e.deltaY);
                    e.overallVelocityX = f.x, e.overallVelocityY = f.y, e.overallVelocity = d(f.x) > d(f.y) ? f.x : f.y, e.scale = s ? (c = s.pointers, ot((h = r)[0], h[1], Q) / ot(c[0], c[1], Q)) : 1, e.rotation = s ? function(t, e) {
                            return st(e[1], e[0], Q) + st(t[1], t[0], Q)
                        }(s.pointers, r) : 0, e.maxPointers = n.prevInput ? e.pointers.length > n.prevInput.maxPointers ? e.pointers.length : n.prevInput.maxPointers : e.pointers.length,
                        function(t, e) {
                            var n, r, i, o, s = t.lastInterval || e,
                                u = e.timeStamp - s.timeStamp;
                            if (e.eventType != X && (u > F || s.velocity === a)) {
                                var l = e.deltaX - s.deltaX,
                                    c = e.deltaY - s.deltaY,
                                    h = rt(u, l, c);
                                r = h.x, i = h.y, n = d(h.x) > d(h.y) ? h.x : h.y, o = it(l, c), t.lastInterval = e
                            } else n = s.velocity, r = s.velocityX, i = s.velocityY, o = s.direction;
                            e.velocity = n, e.velocityX = r, e.velocityY = i, e.direction = o
                        }(n, e);
                    var v = t.element;
                    O(e.srcEvent.target, v) && (v = e.srcEvent.target), e.target = v
                }(t, n), t.emit("hammer.input", n), t.recognize(n), t.session.prevInput = n
        }

        function et(t) {
            for (var e = [], n = 0; n < t.pointers.length;) e[n] = {
                clientX: f(t.pointers[n].clientX),
                clientY: f(t.pointers[n].clientY)
            }, n++;
            return {
                timeStamp: p(),
                pointers: e,
                center: nt(e),
                deltaX: t.deltaX,
                deltaY: t.deltaY
            }
        }

        function nt(t) {
            var e = t.length;
            if (1 === e) return {
                x: f(t[0].clientX),
                y: f(t[0].clientY)
            };
            for (var n = 0, r = 0, i = 0; i < e;) n += t[i].clientX, r += t[i].clientY, i++;
            return {
                x: f(n / e),
                y: f(r / e)
            }
        }

        function rt(t, e, n) {
            return {
                x: e / t || 0,
                y: n / t || 0
            }
        }

        function it(t, e) {
            return t === e ? G : d(t) >= d(e) ? t < 0 ? W : H : e < 0 ? V : Y
        }

        function ot(t, e, n) {
            n || (n = K);
            var r = e[n[0]] - t[n[0]],
                i = e[n[1]] - t[n[1]];
            return Math.sqrt(r * r + i * i)
        }

        function st(t, e, n) {
            n || (n = K);
            var r = e[n[0]] - t[n[0]],
                i = e[n[1]] - t[n[1]];
            return 180 * Math.atan2(i, r) / Math.PI
        }
        J.prototype = {
            handler: function() {},
            init: function() {
                this.evEl && S(this.element, this.evEl, this.domHandler), this.evTarget && S(this.target, this.evTarget, this.domHandler), this.evWin && S(k(this.element), this.evWin, this.domHandler)
            },
            destroy: function() {
                this.evEl && P(this.element, this.evEl, this.domHandler), this.evTarget && P(this.target, this.evTarget, this.domHandler), this.evWin && P(k(this.element), this.evWin, this.domHandler)
            }
        };
        var at = {
                mousedown: U,
                mousemove: 2,
                mouseup: z
            },
            ut = "mousedown",
            lt = "mousemove mouseup";

        function ct() {
            this.evEl = ut, this.evWin = lt, this.pressed = !1, J.apply(this, arguments)
        }
        x(ct, J, {
            handler: function(t) {
                var e = at[t.type];
                e & U && 0 === t.button && (this.pressed = !0), 2 & e && 1 !== t.which && (e = z), this.pressed && (e & z && (this.pressed = !1), this.callback(this.manager, e, {
                    pointers: [t],
                    changedPointers: [t],
                    pointerType: "mouse",
                    srcEvent: t
                }))
            }
        });
        var ht = {
                pointerdown: U,
                pointermove: 2,
                pointerup: z,
                pointercancel: X,
                pointerout: X
            },
            ft = {
                2: "touch",
                3: "pen",
                4: "mouse",
                5: "kinect"
            },
            dt = "pointerdown",
            pt = "pointermove pointerup pointercancel";

        function vt() {
            this.evEl = dt, this.evWin = pt, J.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
        }
        i.MSPointerEvent && !i.PointerEvent && (dt = "MSPointerDown", pt = "MSPointerMove MSPointerUp MSPointerCancel"), x(vt, J, {
            handler: function(t) {
                var e = this.store,
                    n = !1,
                    r = t.type.toLowerCase().replace("ms", ""),
                    i = ht[r],
                    o = ft[t.pointerType] || t.pointerType,
                    s = "touch" == o,
                    a = A(e, t.pointerId, "pointerId");
                i & U && (0 === t.button || s) ? a < 0 && (e.push(t), a = e.length - 1) : i & (z | X) && (n = !0), a < 0 || (e[a] = t, this.callback(this.manager, i, {
                    pointers: e,
                    changedPointers: [t],
                    pointerType: o,
                    srcEvent: t
                }), n && e.splice(a, 1))
            }
        });
        var _t = {
                touchstart: U,
                touchmove: 2,
                touchend: z,
                touchcancel: X
            },
            gt = "touchstart",
            yt = "touchstart touchmove touchend touchcancel";

        function mt() {
            this.evTarget = gt, this.evWin = yt, this.started = !1, J.apply(this, arguments)
        }
        x(mt, J, {
            handler: function(t) {
                var e = _t[t.type];
                if (e === U && (this.started = !0), this.started) {
                    var n = function(t, e) {
                        var n = I(t.touches),
                            r = I(t.changedTouches);
                        return e & (z | X) && (n = R(n.concat(r), "identifier", !0)), [n, r]
                    }.call(this, t, e);
                    e & (z | X) && n[0].length - n[1].length == 0 && (this.started = !1), this.callback(this.manager, e, {
                        pointers: n[0],
                        changedPointers: n[1],
                        pointerType: "touch",
                        srcEvent: t
                    })
                }
            }
        });
        var bt = {
                touchstart: U,
                touchmove: 2,
                touchend: z,
                touchcancel: X
            },
            xt = "touchstart touchmove touchend touchcancel";

        function wt() {
            this.evTarget = xt, this.targetIds = {}, J.apply(this, arguments)
        }
        x(wt, J, {
            handler: function(t) {
                var e = bt[t.type],
                    n = function(t, e) {
                        var n = I(t.touches),
                            r = this.targetIds;
                        if (e & (2 | U) && 1 === n.length) return r[n[0].identifier] = !0, [n, n];
                        var i, o, s = I(t.changedTouches),
                            a = [],
                            u = this.target;
                        if (o = n.filter(function(t) {
                                return O(t.target, u)
                            }), e === U)
                            for (i = 0; i < o.length;) r[o[i].identifier] = !0, i++;
                        for (i = 0; i < s.length;) r[s[i].identifier] && a.push(s[i]), e & (z | X) && delete r[s[i].identifier], i++;
                        return a.length ? [R(o.concat(a), "identifier", !0), a] : void 0
                    }.call(this, t, e);
                n && this.callback(this.manager, e, {
                    pointers: n[0],
                    changedPointers: n[1],
                    pointerType: "touch",
                    srcEvent: t
                })
            }
        });
        var Tt = 2500;

        function Et() {
            J.apply(this, arguments);
            var t = w(this.handler, this);
            this.touch = new wt(this.manager, t), this.mouse = new ct(this.manager, t), this.primaryTouch = null, this.lastTouches = []
        }

        function St(t) {
            var e = t.changedPointers[0];
            if (e.identifier === this.primaryTouch) {
                var n = {
                    x: e.clientX,
                    y: e.clientY
                };
                this.lastTouches.push(n);
                var r = this.lastTouches;
                setTimeout(function() {
                    var t = r.indexOf(n);
                    t > -1 && r.splice(t, 1)
                }, Tt)
            }
        }
        x(Et, J, {
            handler: function(t, e, n) {
                var r = "touch" == n.pointerType,
                    i = "mouse" == n.pointerType;
                if (!(i && n.sourceCapabilities && n.sourceCapabilities.firesTouchEvents)) {
                    if (r)(function(t, e) {
                        t & U ? (this.primaryTouch = e.changedPointers[0].identifier, St.call(this, e)) : t & (z | X) && St.call(this, e)
                    }).call(this, e, n);
                    else if (i && function(t) {
                            for (var e = t.srcEvent.clientX, n = t.srcEvent.clientY, r = 0; r < this.lastTouches.length; r++) {
                                var i = this.lastTouches[r],
                                    o = Math.abs(e - i.x),
                                    s = Math.abs(n - i.y);
                                if (o <= 25 && s <= 25) return !0
                            }
                            return !1
                        }.call(this, n)) return;
                    this.callback(t, e, n)
                }
            },
            destroy: function() {
                this.touch.destroy(), this.mouse.destroy()
            }
        });
        var Pt = D(c.style, "touchAction"),
            Ot = Pt !== a,
            Mt = "manipulation",
            Ct = "none",
            At = "pan-x",
            It = "pan-y",
            Rt = function() {
                if (!Ot) return !1;
                var t = {},
                    e = i.CSS && i.CSS.supports;
                return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(n) {
                    t[n] = !e || i.CSS.supports("touch-action", n)
                }), t
            }();

        function Dt(t, e) {
            this.manager = t, this.set(e)
        }
        Dt.prototype = {
            set: function(t) {
                "compute" == t && (t = this.compute()), Ot && this.manager.element.style && Rt[t] && (this.manager.element.style[Pt] = t), this.actions = t.toLowerCase().trim()
            },
            update: function() {
                this.set(this.manager.options.touchAction)
            },
            compute: function() {
                var t = [];
                return g(this.manager.recognizers, function(e) {
                        T(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
                    }),
                    function(t) {
                        if (M(t, Ct)) return Ct;
                        var e = M(t, At),
                            n = M(t, It);
                        return e && n ? Ct : e || n ? e ? At : It : M(t, Mt) ? Mt : "auto"
                    }(t.join(" "))
            },
            preventDefaults: function(t) {
                var e = t.srcEvent,
                    n = t.offsetDirection;
                if (this.manager.session.prevented) e.preventDefault();
                else {
                    var r = this.actions,
                        i = M(r, Ct) && !Rt[Ct],
                        o = M(r, It) && !Rt[It],
                        s = M(r, At) && !Rt[At];
                    if (i) {
                        var a = 1 === t.pointers.length,
                            u = t.distance < 2,
                            l = t.deltaTime < 250;
                        if (a && u && l) return
                    }
                    if (!s || !o) return i || o && n & q || s && n & Z ? this.preventSrc(e) : void 0
                }
            },
            preventSrc: function(t) {
                this.manager.session.prevented = !0, t.preventDefault()
            }
        };
        var Lt = 1,
            kt = 2,
            jt = 4,
            Nt = 8,
            Bt = Nt,
            Ft = 16;

        function Ut(t) {
            this.options = u({}, this.defaults, t || {}), this.id = L++, this.manager = null, this.options.enable = E(this.options.enable, !0), this.state = Lt, this.simultaneous = {}, this.requireFail = []
        }

        function zt(t) {
            return t & Ft ? "cancel" : t & Nt ? "end" : t & jt ? "move" : t & kt ? "start" : ""
        }

        function Xt(t) {
            return t == Y ? "down" : t == V ? "up" : t == W ? "left" : t == H ? "right" : ""
        }

        function Gt(t, e) {
            var n = e.manager;
            return n ? n.get(t) : t
        }

        function Wt() {
            Ut.apply(this, arguments)
        }

        function Ht() {
            Wt.apply(this, arguments), this.pX = null, this.pY = null
        }

        function Vt() {
            Wt.apply(this, arguments)
        }

        function Yt() {
            Ut.apply(this, arguments), this._timer = null, this._input = null
        }

        function qt() {
            Wt.apply(this, arguments)
        }

        function Zt() {
            Wt.apply(this, arguments)
        }

        function $t() {
            Ut.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
        }

        function Kt(t, e) {
            return (e = e || {}).recognizers = E(e.recognizers, Kt.defaults.preset), new Qt(t, e)
        }

        function Qt(t, e) {
            var n;
            this.options = u({}, Kt.defaults, e || {}), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = t, this.input = new((n = this).options.inputClass || (N ? vt : B ? wt : j ? Et : ct))(n, tt), this.touchAction = new Dt(this, this.options.touchAction), Jt(this, !0), g(this.options.recognizers, function(t) {
                var e = this.add(new t[0](t[1]));
                t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
            }, this)
        }

        function Jt(t, e) {
            var n, r = t.element;
            r.style && (g(t.options.cssProps, function(i, o) {
                n = D(r.style, o), e ? (t.oldCssProps[n] = r.style[n], r.style[n] = i) : r.style[n] = t.oldCssProps[n] || ""
            }), e || (t.oldCssProps = {}))
        }
        Ut.prototype = {
            defaults: {},
            set: function(t) {
                return u(this.options, t), this.manager && this.manager.touchAction.update(), this
            },
            recognizeWith: function(t) {
                if (_(t, "recognizeWith", this)) return this;
                var e = this.simultaneous;
                return e[(t = Gt(t, this)).id] || (e[t.id] = t, t.recognizeWith(this)), this
            },
            dropRecognizeWith: function(t) {
                return _(t, "dropRecognizeWith", this) ? this : (t = Gt(t, this), delete this.simultaneous[t.id], this)
            },
            requireFailure: function(t) {
                if (_(t, "requireFailure", this)) return this;
                var e = this.requireFail;
                return -1 === A(e, t = Gt(t, this)) && (e.push(t), t.requireFailure(this)), this
            },
            dropRequireFailure: function(t) {
                if (_(t, "dropRequireFailure", this)) return this;
                t = Gt(t, this);
                var e = A(this.requireFail, t);
                return e > -1 && this.requireFail.splice(e, 1), this
            },
            hasRequireFailures: function() {
                return this.requireFail.length > 0
            },
            canRecognizeWith: function(t) {
                return !!this.simultaneous[t.id]
            },
            emit: function(t) {
                var e = this,
                    n = this.state;

                function r(n) {
                    e.manager.emit(n, t)
                }
                n < Nt && r(e.options.event + zt(n)), r(e.options.event), t.additionalEvent && r(t.additionalEvent), n >= Nt && r(e.options.event + zt(n))
            },
            tryEmit: function(t) {
                if (this.canEmit()) return this.emit(t);
                this.state = 32
            },
            canEmit: function() {
                for (var t = 0; t < this.requireFail.length;) {
                    if (!(this.requireFail[t].state & (32 | Lt))) return !1;
                    t++
                }
                return !0
            },
            recognize: function(t) {
                var e = u({}, t);
                if (!T(this.options.enable, [this, e])) return this.reset(), void(this.state = 32);
                this.state & (Bt | Ft | 32) && (this.state = Lt), this.state = this.process(e), this.state & (kt | jt | Nt | Ft) && this.tryEmit(e)
            },
            process: function(t) {},
            getTouchAction: function() {},
            reset: function() {}
        }, x(Wt, Ut, {
            defaults: {
                pointers: 1
            },
            attrTest: function(t) {
                var e = this.options.pointers;
                return 0 === e || t.pointers.length === e
            },
            process: function(t) {
                var e = this.state,
                    n = t.eventType,
                    r = e & (kt | jt),
                    i = this.attrTest(t);
                return r && (n & X || !i) ? e | Ft : r || i ? n & z ? e | Nt : e & kt ? e | jt : kt : 32
            }
        }), x(Ht, Wt, {
            defaults: {
                event: "pan",
                threshold: 10,
                pointers: 1,
                direction: $
            },
            getTouchAction: function() {
                var t = this.options.direction,
                    e = [];
                return t & q && e.push(It), t & Z && e.push(At), e
            },
            directionTest: function(t) {
                var e = this.options,
                    n = !0,
                    r = t.distance,
                    i = t.direction,
                    o = t.deltaX,
                    s = t.deltaY;
                return i & e.direction || (e.direction & q ? (i = 0 === o ? G : o < 0 ? W : H, n = o != this.pX, r = Math.abs(t.deltaX)) : (i = 0 === s ? G : s < 0 ? V : Y, n = s != this.pY, r = Math.abs(t.deltaY))), t.direction = i, n && r > e.threshold && i & e.direction
            },
            attrTest: function(t) {
                return Wt.prototype.attrTest.call(this, t) && (this.state & kt || !(this.state & kt) && this.directionTest(t))
            },
            emit: function(t) {
                this.pX = t.deltaX, this.pY = t.deltaY;
                var e = Xt(t.direction);
                e && (t.additionalEvent = this.options.event + e), this._super.emit.call(this, t)
            }
        }), x(Vt, Wt, {
            defaults: {
                event: "pinch",
                threshold: 0,
                pointers: 2
            },
            getTouchAction: function() {
                return [Ct]
            },
            attrTest: function(t) {
                return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & kt)
            },
            emit: function(t) {
                if (1 !== t.scale) {
                    var e = t.scale < 1 ? "in" : "out";
                    t.additionalEvent = this.options.event + e
                }
                this._super.emit.call(this, t)
            }
        }), x(Yt, Ut, {
            defaults: {
                event: "press",
                pointers: 1,
                time: 251,
                threshold: 9
            },
            getTouchAction: function() {
                return ["auto"]
            },
            process: function(t) {
                var e = this.options,
                    n = t.pointers.length === e.pointers,
                    r = t.distance < e.threshold,
                    i = t.deltaTime > e.time;
                if (this._input = t, !r || !n || t.eventType & (z | X) && !i) this.reset();
                else if (t.eventType & U) this.reset(), this._timer = v(function() {
                    this.state = Bt, this.tryEmit()
                }, e.time, this);
                else if (t.eventType & z) return Bt;
                return 32
            },
            reset: function() {
                clearTimeout(this._timer)
            },
            emit: function(t) {
                this.state === Bt && (t && t.eventType & z ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = p(), this.manager.emit(this.options.event, this._input)))
            }
        }), x(qt, Wt, {
            defaults: {
                event: "rotate",
                threshold: 0,
                pointers: 2
            },
            getTouchAction: function() {
                return [Ct]
            },
            attrTest: function(t) {
                return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & kt)
            }
        }), x(Zt, Wt, {
            defaults: {
                event: "swipe",
                threshold: 10,
                velocity: .3,
                direction: q | Z,
                pointers: 1
            },
            getTouchAction: function() {
                return Ht.prototype.getTouchAction.call(this)
            },
            attrTest: function(t) {
                var e, n = this.options.direction;
                return n & (q | Z) ? e = t.overallVelocity : n & q ? e = t.overallVelocityX : n & Z && (e = t.overallVelocityY), this._super.attrTest.call(this, t) && n & t.offsetDirection && t.distance > this.options.threshold && t.maxPointers == this.options.pointers && d(e) > this.options.velocity && t.eventType & z
            },
            emit: function(t) {
                var e = Xt(t.offsetDirection);
                e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
            }
        }), x($t, Ut, {
            defaults: {
                event: "tap",
                pointers: 1,
                taps: 1,
                interval: 300,
                time: 250,
                threshold: 9,
                posThreshold: 10
            },
            getTouchAction: function() {
                return [Mt]
            },
            process: function(t) {
                var e = this.options,
                    n = t.pointers.length === e.pointers,
                    r = t.distance < e.threshold,
                    i = t.deltaTime < e.time;
                if (this.reset(), t.eventType & U && 0 === this.count) return this.failTimeout();
                if (r && i && n) {
                    if (t.eventType != z) return this.failTimeout();
                    var o = !this.pTime || t.timeStamp - this.pTime < e.interval,
                        s = !this.pCenter || ot(this.pCenter, t.center) < e.posThreshold;
                    if (this.pTime = t.timeStamp, this.pCenter = t.center, s && o ? this.count += 1 : this.count = 1, this._input = t, 0 == this.count % e.taps) return this.hasRequireFailures() ? (this._timer = v(function() {
                        this.state = Bt, this.tryEmit()
                    }, e.interval, this), kt) : Bt
                }
                return 32
            },
            failTimeout: function() {
                return this._timer = v(function() {
                    this.state = 32
                }, this.options.interval, this), 32
            },
            reset: function() {
                clearTimeout(this._timer)
            },
            emit: function() {
                this.state == Bt && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
            }
        }), Kt.VERSION = "2.0.7", Kt.defaults = {
            domEvents: !1,
            touchAction: "compute",
            enable: !0,
            inputTarget: null,
            inputClass: null,
            preset: [
                [qt, {
                    enable: !1
                }],
                [Vt, {
                        enable: !1
                    },
                    ["rotate"]
                ],
                [Zt, {
                    direction: q
                }],
                [Ht, {
                        direction: q
                    },
                    ["swipe"]
                ],
                [$t],
                [$t, {
                        event: "doubletap",
                        taps: 2
                    },
                    ["tap"]
                ],
                [Yt]
            ],
            cssProps: {
                userSelect: "none",
                touchSelect: "none",
                touchCallout: "none",
                contentZooming: "none",
                userDrag: "none",
                tapHighlightColor: "rgba(0,0,0,0)"
            }
        }, Qt.prototype = {
            set: function(t) {
                return u(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
            },
            stop: function(t) {
                this.session.stopped = t ? 2 : 1
            },
            recognize: function(t) {
                var e = this.session;
                if (!e.stopped) {
                    var n;
                    this.touchAction.preventDefaults(t);
                    var r = this.recognizers,
                        i = e.curRecognizer;
                    (!i || i && i.state & Bt) && (i = e.curRecognizer = null);
                    for (var o = 0; o < r.length;) n = r[o], 2 === e.stopped || i && n != i && !n.canRecognizeWith(i) ? n.reset() : n.recognize(t), !i && n.state & (kt | jt | Nt) && (i = e.curRecognizer = n), o++
                }
            },
            get: function(t) {
                if (t instanceof Ut) return t;
                for (var e = this.recognizers, n = 0; n < e.length; n++)
                    if (e[n].options.event == t) return e[n];
                return null
            },
            add: function(t) {
                if (_(t, "add", this)) return this;
                var e = this.get(t.options.event);
                return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
            },
            remove: function(t) {
                if (_(t, "remove", this)) return this;
                if (t = this.get(t)) {
                    var e = this.recognizers,
                        n = A(e, t); - 1 !== n && (e.splice(n, 1), this.touchAction.update())
                }
                return this
            },
            on: function(t, e) {
                if (t !== a && e !== a) {
                    var n = this.handlers;
                    return g(C(t), function(t) {
                        n[t] = n[t] || [], n[t].push(e)
                    }), this
                }
            },
            off: function(t, e) {
                if (t !== a) {
                    var n = this.handlers;
                    return g(C(t), function(t) {
                        e ? n[t] && n[t].splice(A(n[t], e), 1) : delete n[t]
                    }), this
                }
            },
            emit: function(t, e) {
                this.options.domEvents && function(t, e) {
                    var n = o.createEvent("Event");
                    n.initEvent(t, !0, !0), n.gesture = e, e.target.dispatchEvent(n)
                }(t, e);
                var n = this.handlers[t] && this.handlers[t].slice();
                if (n && n.length) {
                    e.type = t, e.preventDefault = function() {
                        e.srcEvent.preventDefault()
                    };
                    for (var r = 0; r < n.length;) n[r](e), r++
                }
            },
            destroy: function() {
                this.element && Jt(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
            }
        }, u(Kt, {
            INPUT_START: U,
            INPUT_MOVE: 2,
            INPUT_END: z,
            INPUT_CANCEL: X,
            STATE_POSSIBLE: Lt,
            STATE_BEGAN: kt,
            STATE_CHANGED: jt,
            STATE_ENDED: Nt,
            STATE_RECOGNIZED: Bt,
            STATE_CANCELLED: Ft,
            STATE_FAILED: 32,
            DIRECTION_NONE: G,
            DIRECTION_LEFT: W,
            DIRECTION_RIGHT: H,
            DIRECTION_UP: V,
            DIRECTION_DOWN: Y,
            DIRECTION_HORIZONTAL: q,
            DIRECTION_VERTICAL: Z,
            DIRECTION_ALL: $,
            Manager: Qt,
            Input: J,
            TouchAction: Dt,
            TouchInput: wt,
            MouseInput: ct,
            PointerEventInput: vt,
            TouchMouseInput: Et,
            SingleTouchInput: mt,
            Recognizer: Ut,
            AttrRecognizer: Wt,
            Tap: $t,
            Pan: Ht,
            Swipe: Zt,
            Pinch: Vt,
            Rotate: qt,
            Press: Yt,
            on: S,
            off: P,
            each: g,
            merge: b,
            extend: m,
            assign: u,
            inherit: x,
            bindFn: w,
            prefixed: D
        }), (void 0 !== i ? i : "undefined" != typeof self ? self : {}).Hammer = Kt, (r = function() {
            return Kt
        }.call(e, n, e, t)) === a || (t.exports = r)
    }(window, document)
}, function(t, e, n) {
    (function(n) {
        var r;
        ! function() {
            "use strict";
            var i = function() {
                this.init()
            };
            i.prototype = {
                init: function() {
                    var t = this || o;
                    return t._counter = 1e3, t._codecs = {}, t._howls = [], t._muted = !1, t._volume = 1, t._canPlayEvent = "canplaythrough", t._navigator = "undefined" != typeof window && window.navigator ? window.navigator : null, t.masterGain = null, t.noAudio = !1, t.usingWebAudio = !0, t.autoSuspend = !0, t.ctx = null, t.mobileAutoEnable = !0, t._setup(), t
                },
                volume: function(t) {
                    var e = this || o;
                    if (t = parseFloat(t), e.ctx || d(), void 0 !== t && t >= 0 && t <= 1) {
                        if (e._volume = t, e._muted) return e;
                        e.usingWebAudio && e.masterGain.gain.setValueAtTime(t, o.ctx.currentTime);
                        for (var n = 0; n < e._howls.length; n++)
                            if (!e._howls[n]._webAudio)
                                for (var r = e._howls[n]._getSoundIds(), i = 0; i < r.length; i++) {
                                    var s = e._howls[n]._soundById(r[i]);
                                    s && s._node && (s._node.volume = s._volume * t)
                                }
                        return e
                    }
                    return e._volume
                },
                mute: function(t) {
                    var e = this || o;
                    e.ctx || d(), e._muted = t, e.usingWebAudio && e.masterGain.gain.setValueAtTime(t ? 0 : e._volume, o.ctx.currentTime);
                    for (var n = 0; n < e._howls.length; n++)
                        if (!e._howls[n]._webAudio)
                            for (var r = e._howls[n]._getSoundIds(), i = 0; i < r.length; i++) {
                                var s = e._howls[n]._soundById(r[i]);
                                s && s._node && (s._node.muted = !!t || s._muted)
                            }
                    return e
                },
                unload: function() {
                    for (var t = this || o, e = t._howls.length - 1; e >= 0; e--) t._howls[e].unload();
                    return t.usingWebAudio && t.ctx && void 0 !== t.ctx.close && (t.ctx.close(), t.ctx = null, d()), t
                },
                codecs: function(t) {
                    return (this || o)._codecs[t.replace(/^x-/, "")]
                },
                _setup: function() {
                    var t = this || o;
                    if (t.state = t.ctx && t.ctx.state || "running", t._autoSuspend(), !t.usingWebAudio)
                        if ("undefined" != typeof Audio) try {
                            void 0 === (new Audio).oncanplaythrough && (t._canPlayEvent = "canplay")
                        } catch (e) {
                            t.noAudio = !0
                        } else t.noAudio = !0;
                    try {
                        (new Audio).muted && (t.noAudio = !0)
                    } catch (t) {}
                    return t.noAudio || t._setupCodecs(), t
                },
                _setupCodecs: function() {
                    var t = this || o,
                        e = null;
                    try {
                        e = "undefined" != typeof Audio ? new Audio : null
                    } catch (e) {
                        return t
                    }
                    if (!e || "function" != typeof e.canPlayType) return t;
                    var n = e.canPlayType("audio/mpeg;").replace(/^no$/, ""),
                        r = t._navigator && t._navigator.userAgent.match(/OPR\/([0-6].)/g),
                        i = r && parseInt(r[0].split("/")[1], 10) < 33;
                    return t._codecs = {
                        mp3: !(i || !n && !e.canPlayType("audio/mp3;").replace(/^no$/, "")),
                        mpeg: !!n,
                        opus: !!e.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, ""),
                        ogg: !!e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                        oga: !!e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""),
                        wav: !!e.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""),
                        aac: !!e.canPlayType("audio/aac;").replace(/^no$/, ""),
                        caf: !!e.canPlayType("audio/x-caf;").replace(/^no$/, ""),
                        m4a: !!(e.canPlayType("audio/x-m4a;") || e.canPlayType("audio/m4a;") || e.canPlayType("audio/aac;")).replace(/^no$/, ""),
                        mp4: !!(e.canPlayType("audio/x-mp4;") || e.canPlayType("audio/mp4;") || e.canPlayType("audio/aac;")).replace(/^no$/, ""),
                        weba: !!e.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                        webm: !!e.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ""),
                        dolby: !!e.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ""),
                        flac: !!(e.canPlayType("audio/x-flac;") || e.canPlayType("audio/flac;")).replace(/^no$/, "")
                    }, t
                },
                _enableMobileAudio: function() {
                    var t = this || o,
                        e = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi|Chrome/i.test(t._navigator && t._navigator.userAgent);
                    if (!t._mobileEnabled && t.ctx && e) {
                        t._mobileEnabled = !1, t.mobileAutoEnable = !1, t._mobileUnloaded || 44100 === t.ctx.sampleRate || (t._mobileUnloaded = !0, t.unload()), t._scratchBuffer = t.ctx.createBuffer(1, 1, 22050);
                        var n = function(e) {
                            o._autoResume();
                            var r = t.ctx.createBufferSource();
                            r.buffer = t._scratchBuffer, r.connect(t.ctx.destination), void 0 === r.start ? r.noteOn(0) : r.start(0), "function" == typeof t.ctx.resume && t.ctx.resume(), r.onended = function() {
                                r.disconnect(0), t._mobileEnabled = !0, document.removeEventListener("touchstart", n, !0), document.removeEventListener("touchend", n, !0), document.removeEventListener("click", n, !0);
                                for (var e = 0; e < t._howls.length; e++) t._howls[e]._emit("unlock")
                            }
                        };
                        return document.addEventListener("touchstart", n, !0), document.addEventListener("touchend", n, !0), document.addEventListener("click", n, !0), t
                    }
                },
                _autoSuspend: function() {
                    var t = this;
                    if (t.autoSuspend && t.ctx && void 0 !== t.ctx.suspend && o.usingWebAudio) {
                        for (var e = 0; e < t._howls.length; e++)
                            if (t._howls[e]._webAudio)
                                for (var n = 0; n < t._howls[e]._sounds.length; n++)
                                    if (!t._howls[e]._sounds[n]._paused) return t;
                        return t._suspendTimer && clearTimeout(t._suspendTimer), t._suspendTimer = setTimeout(function() {
                            t.autoSuspend && (t._suspendTimer = null, t.state = "suspending", t.ctx.suspend().then(function() {
                                t.state = "suspended", t._resumeAfterSuspend && (delete t._resumeAfterSuspend, t._autoResume())
                            }))
                        }, 3e4), t
                    }
                },
                _autoResume: function() {
                    var t = this;
                    if (t.ctx && void 0 !== t.ctx.resume && o.usingWebAudio) return "running" === t.state && t._suspendTimer ? (clearTimeout(t._suspendTimer), t._suspendTimer = null) : "suspended" === t.state ? (t.ctx.resume().then(function() {
                        t.state = "running";
                        for (var e = 0; e < t._howls.length; e++) t._howls[e]._emit("resume")
                    }), t._suspendTimer && (clearTimeout(t._suspendTimer), t._suspendTimer = null)) : "suspending" === t.state && (t._resumeAfterSuspend = !0), t
                }
            };
            var o = new i,
                s = function(t) {
                    t.src && 0 !== t.src.length && this.init(t)
                };
            s.prototype = {
                init: function(t) {
                    var e = this;
                    return o.ctx || d(), e._autoplay = t.autoplay || !1, e._format = "string" != typeof t.format ? t.format : [t.format], e._html5 = t.html5 || !1, e._muted = t.mute || !1, e._loop = t.loop || !1, e._pool = t.pool || 5, e._preload = "boolean" != typeof t.preload || t.preload, e._rate = t.rate || 1, e._sprite = t.sprite || {}, e._src = "string" != typeof t.src ? t.src : [t.src], e._volume = void 0 !== t.volume ? t.volume : 1, e._xhrWithCredentials = t.xhrWithCredentials || !1, e._duration = 0, e._state = "unloaded", e._sounds = [], e._endTimers = {}, e._queue = [], e._playLock = !1, e._onend = t.onend ? [{
                        fn: t.onend
                    }] : [], e._onfade = t.onfade ? [{
                        fn: t.onfade
                    }] : [], e._onload = t.onload ? [{
                        fn: t.onload
                    }] : [], e._onloaderror = t.onloaderror ? [{
                        fn: t.onloaderror
                    }] : [], e._onplayerror = t.onplayerror ? [{
                        fn: t.onplayerror
                    }] : [], e._onpause = t.onpause ? [{
                        fn: t.onpause
                    }] : [], e._onplay = t.onplay ? [{
                        fn: t.onplay
                    }] : [], e._onstop = t.onstop ? [{
                        fn: t.onstop
                    }] : [], e._onmute = t.onmute ? [{
                        fn: t.onmute
                    }] : [], e._onvolume = t.onvolume ? [{
                        fn: t.onvolume
                    }] : [], e._onrate = t.onrate ? [{
                        fn: t.onrate
                    }] : [], e._onseek = t.onseek ? [{
                        fn: t.onseek
                    }] : [], e._onunlock = t.onunlock ? [{
                        fn: t.onunlock
                    }] : [], e._onresume = [], e._webAudio = o.usingWebAudio && !e._html5, void 0 !== o.ctx && o.ctx && o.mobileAutoEnable && o._enableMobileAudio(), o._howls.push(e), e._autoplay && e._queue.push({
                        event: "play",
                        action: function() {
                            e.play()
                        }
                    }), e._preload && e.load(), e
                },
                load: function() {
                    var t = null;
                    if (o.noAudio) this._emit("loaderror", null, "No audio support.");
                    else {
                        "string" == typeof this._src && (this._src = [this._src]);
                        for (var e = 0; e < this._src.length; e++) {
                            var n, r;
                            if (this._format && this._format[e]) n = this._format[e];
                            else {
                                if ("string" != typeof(r = this._src[e])) {
                                    this._emit("loaderror", null, "Non-string found in selected audio sources - ignoring.");
                                    continue
                                }(n = /^data:audio\/([^;,]+);/i.exec(r)) || (n = /\.([^.]+)$/.exec(r.split("?", 1)[0])), n && (n = n[1].toLowerCase())
                            }
                            if (n && o.codecs(n)) {
                                t = this._src[e];
                                break
                            }
                        }
                        if (t) return this._src = t, this._state = "loading", "https:" === window.location.protocol && "http:" === t.slice(0, 5) && (this._html5 = !0, this._webAudio = !1), new a(this), this._webAudio && l(this), this;
                        this._emit("loaderror", null, "No codec support for selected audio sources.")
                    }
                },
                play: function(t, e) {
                    var n = this,
                        r = null;
                    if ("number" == typeof t) r = t, t = null;
                    else {
                        if ("string" == typeof t && "loaded" === n._state && !n._sprite[t]) return null;
                        if (void 0 === t) {
                            t = "__default";
                            for (var i = 0, s = 0; s < n._sounds.length; s++) n._sounds[s]._paused && !n._sounds[s]._ended && (i++, r = n._sounds[s]._id);
                            1 === i ? t = null : r = null
                        }
                    }
                    var a = r ? n._soundById(r) : n._inactiveSound();
                    if (!a) return null;
                    if (r && !t && (t = a._sprite || "__default"), "loaded" !== n._state) {
                        a._sprite = t, a._ended = !1;
                        var u = a._id;
                        return n._queue.push({
                            event: "play",
                            action: function() {
                                n.play(u)
                            }
                        }), u
                    }
                    if (r && !a._paused) return e || n._loadQueue("play"), a._id;
                    n._webAudio && o._autoResume();
                    var l = Math.max(0, a._seek > 0 ? a._seek : n._sprite[t][0] / 1e3),
                        c = Math.max(0, (n._sprite[t][0] + n._sprite[t][1]) / 1e3 - l),
                        h = 1e3 * c / Math.abs(a._rate);
                    if (a._paused = !1, a._ended = !1, a._sprite = t, a._seek = l, a._start = n._sprite[t][0] / 1e3, a._stop = (n._sprite[t][0] + n._sprite[t][1]) / 1e3, a._loop = !(!a._loop && !n._sprite[t][2]), !(a._seek >= a._stop)) {
                        var f = a._node;
                        if (n._webAudio) {
                            var d = function() {
                                n._refreshBuffer(a);
                                var t = a._muted || n._muted ? 0 : a._volume;
                                f.gain.setValueAtTime(t, o.ctx.currentTime), a._playStart = o.ctx.currentTime, void 0 === f.bufferSource.start ? a._loop ? f.bufferSource.noteGrainOn(0, l, 86400) : f.bufferSource.noteGrainOn(0, l, c) : a._loop ? f.bufferSource.start(0, l, 86400) : f.bufferSource.start(0, l, c), h !== 1 / 0 && (n._endTimers[a._id] = setTimeout(n._ended.bind(n, a), h)), e || setTimeout(function() {
                                    n._emit("play", a._id)
                                }, 0)
                            };
                            "running" === o.state ? d() : (n.once("resume", d), n._clearTimer(a._id))
                        } else {
                            var p = function() {
                                    f.currentTime = l, f.muted = a._muted || n._muted || o._muted || f.muted, f.volume = a._volume * o.volume(), f.playbackRate = a._rate;
                                    try {
                                        var r = f.play();
                                        if (r && "undefined" != typeof Promise && (r instanceof Promise || "function" == typeof r.then) ? (n._playLock = !0, r.then(function() {
                                                n._playLock = !1, e || n._emit("play", a._id)
                                            }).catch(function() {
                                                n._playLock = !1, n._emit("playerror", a._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.")
                                            })) : e || n._emit("play", a._id), f.playbackRate = a._rate, f.paused) return void n._emit("playerror", a._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" !== t || a._loop ? n._endTimers[a._id] = setTimeout(n._ended.bind(n, a), h) : (n._endTimers[a._id] = function() {
                                            n._ended(a), f.removeEventListener("ended", n._endTimers[a._id], !1)
                                        }, f.addEventListener("ended", n._endTimers[a._id], !1))
                                    } catch (t) {
                                        n._emit("playerror", a._id, t)
                                    }
                                },
                                v = window && window.ejecta || !f.readyState && o._navigator.isCocoonJS;
                            if (f.readyState >= 3 || v) p();
                            else {
                                var _ = function() {
                                    p(), f.removeEventListener(o._canPlayEvent, _, !1)
                                };
                                f.addEventListener(o._canPlayEvent, _, !1), n._clearTimer(a._id)
                            }
                        }
                        return a._id
                    }
                    n._ended(a)
                },
                pause: function(t) {
                    var e = this;
                    if ("loaded" !== e._state || e._playLock) return e._queue.push({
                        event: "pause",
                        action: function() {
                            e.pause(t)
                        }
                    }), e;
                    for (var n = e._getSoundIds(t), r = 0; r < n.length; r++) {
                        e._clearTimer(n[r]);
                        var i = e._soundById(n[r]);
                        if (i && !i._paused && (i._seek = e.seek(n[r]), i._rateSeek = 0, i._paused = !0, e._stopFade(n[r]), i._node))
                            if (e._webAudio) {
                                if (!i._node.bufferSource) continue;
                                void 0 === i._node.bufferSource.stop ? i._node.bufferSource.noteOff(0) : i._node.bufferSource.stop(0), e._cleanBuffer(i._node)
                            } else isNaN(i._node.duration) && i._node.duration !== 1 / 0 || i._node.pause();
                        arguments[1] || e._emit("pause", i ? i._id : null)
                    }
                    return e
                },
                stop: function(t, e) {
                    var n = this;
                    if ("loaded" !== n._state || n._playLock) return n._queue.push({
                        event: "stop",
                        action: function() {
                            n.stop(t)
                        }
                    }), n;
                    for (var r = n._getSoundIds(t), i = 0; i < r.length; i++) {
                        n._clearTimer(r[i]);
                        var o = n._soundById(r[i]);
                        o && (o._seek = o._start || 0, o._rateSeek = 0, o._paused = !0, o._ended = !0, n._stopFade(r[i]), o._node && (n._webAudio ? o._node.bufferSource && (void 0 === o._node.bufferSource.stop ? o._node.bufferSource.noteOff(0) : o._node.bufferSource.stop(0), n._cleanBuffer(o._node)) : isNaN(o._node.duration) && o._node.duration !== 1 / 0 || (o._node.currentTime = o._start || 0, o._node.pause())), e || n._emit("stop", o._id))
                    }
                    return n
                },
                mute: function(t, e) {
                    var n = this;
                    if ("loaded" !== n._state || n._playLock) return n._queue.push({
                        event: "mute",
                        action: function() {
                            n.mute(t, e)
                        }
                    }), n;
                    if (void 0 === e) {
                        if ("boolean" != typeof t) return n._muted;
                        n._muted = t
                    }
                    for (var r = n._getSoundIds(e), i = 0; i < r.length; i++) {
                        var s = n._soundById(r[i]);
                        s && (s._muted = t, s._interval && n._stopFade(s._id), n._webAudio && s._node ? s._node.gain.setValueAtTime(t ? 0 : s._volume, o.ctx.currentTime) : s._node && (s._node.muted = !!o._muted || t), n._emit("mute", s._id))
                    }
                    return n
                },
                volume: function() {
                    var t, e, n, r = this,
                        i = arguments;
                    if (0 === i.length) return r._volume;
                    if (1 === i.length || 2 === i.length && void 0 === i[1] ? r._getSoundIds().indexOf(i[0]) >= 0 ? e = parseInt(i[0], 10) : t = parseFloat(i[0]) : i.length >= 2 && (t = parseFloat(i[0]), e = parseInt(i[1], 10)), !(void 0 !== t && t >= 0 && t <= 1)) return (n = e ? r._soundById(e) : r._sounds[0]) ? n._volume : 0;
                    if ("loaded" !== r._state || r._playLock) return r._queue.push({
                        event: "volume",
                        action: function() {
                            r.volume.apply(r, i)
                        }
                    }), r;
                    void 0 === e && (r._volume = t), e = r._getSoundIds(e);
                    for (var s = 0; s < e.length; s++)(n = r._soundById(e[s])) && (n._volume = t, i[2] || r._stopFade(e[s]), r._webAudio && n._node && !n._muted ? n._node.gain.setValueAtTime(t, o.ctx.currentTime) : n._node && !n._muted && (n._node.volume = t * o.volume()), r._emit("volume", n._id));
                    return r
                },
                fade: function(t, e, n, r) {
                    var i = this;
                    if ("loaded" !== i._state || i._playLock) return i._queue.push({
                        event: "fade",
                        action: function() {
                            i.fade(t, e, n, r)
                        }
                    }), i;
                    i.volume(t, r);
                    for (var s = i._getSoundIds(r), a = 0; a < s.length; a++) {
                        var u = i._soundById(s[a]);
                        if (u) {
                            if (r || i._stopFade(s[a]), i._webAudio && !u._muted) {
                                var l = o.ctx.currentTime,
                                    c = l + n / 1e3;
                                u._volume = t, u._node.gain.setValueAtTime(t, l), u._node.gain.linearRampToValueAtTime(e, c)
                            }
                            i._startFadeInterval(u, t, e, n, s[a], void 0 === r)
                        }
                    }
                    return i
                },
                _startFadeInterval: function(t, e, n, r, i, o) {
                    var s = this,
                        a = e,
                        u = n - e,
                        l = Math.abs(u / .01),
                        c = Math.max(4, l > 0 ? r / l : r),
                        h = Date.now();
                    t._fadeTo = n, t._interval = setInterval(function() {
                        var i = (Date.now() - h) / r;
                        h = Date.now(), a += u * i, a = Math.max(0, a), a = Math.min(1, a), a = Math.round(100 * a) / 100, s._webAudio ? t._volume = a : s.volume(a, t._id, !0), o && (s._volume = a), (n < e && a <= n || n > e && a >= n) && (clearInterval(t._interval), t._interval = null, t._fadeTo = null, s.volume(n, t._id), s._emit("fade", t._id))
                    }, c)
                },
                _stopFade: function(t) {
                    var e = this._soundById(t);
                    return e && e._interval && (this._webAudio && e._node.gain.cancelScheduledValues(o.ctx.currentTime), clearInterval(e._interval), e._interval = null, this.volume(e._fadeTo, t), e._fadeTo = null, this._emit("fade", t)), this
                },
                loop: function() {
                    var t, e, n, r = arguments;
                    if (0 === r.length) return this._loop;
                    if (1 === r.length) {
                        if ("boolean" != typeof r[0]) return !!(n = this._soundById(parseInt(r[0], 10))) && n._loop;
                        t = r[0], this._loop = t
                    } else 2 === r.length && (t = r[0], e = parseInt(r[1], 10));
                    for (var i = this._getSoundIds(e), o = 0; o < i.length; o++)(n = this._soundById(i[o])) && (n._loop = t, this._webAudio && n._node && n._node.bufferSource && (n._node.bufferSource.loop = t, t && (n._node.bufferSource.loopStart = n._start || 0, n._node.bufferSource.loopEnd = n._stop)));
                    return this
                },
                rate: function() {
                    var t, e, n, r = this,
                        i = arguments;
                    if (0 === i.length ? e = r._sounds[0]._id : 1 === i.length ? r._getSoundIds().indexOf(i[0]) >= 0 ? e = parseInt(i[0], 10) : t = parseFloat(i[0]) : 2 === i.length && (t = parseFloat(i[0]), e = parseInt(i[1], 10)), "number" != typeof t) return (n = r._soundById(e)) ? n._rate : r._rate;
                    if ("loaded" !== r._state || r._playLock) return r._queue.push({
                        event: "rate",
                        action: function() {
                            r.rate.apply(r, i)
                        }
                    }), r;
                    void 0 === e && (r._rate = t), e = r._getSoundIds(e);
                    for (var s = 0; s < e.length; s++)
                        if (n = r._soundById(e[s])) {
                            n._rateSeek = r.seek(e[s]), n._playStart = r._webAudio ? o.ctx.currentTime : n._playStart, n._rate = t, r._webAudio && n._node && n._node.bufferSource ? n._node.bufferSource.playbackRate.setValueAtTime(t, o.ctx.currentTime) : n._node && (n._node.playbackRate = t);
                            var a = r.seek(e[s]),
                                u = 1e3 * ((r._sprite[n._sprite][0] + r._sprite[n._sprite][1]) / 1e3 - a) / Math.abs(n._rate);
                            !r._endTimers[e[s]] && n._paused || (r._clearTimer(e[s]), r._endTimers[e[s]] = setTimeout(r._ended.bind(r, n), u)), r._emit("rate", n._id)
                        }
                    return r
                },
                seek: function() {
                    var t, e, n = this,
                        r = arguments;
                    if (0 === r.length ? e = n._sounds[0]._id : 1 === r.length ? n._getSoundIds().indexOf(r[0]) >= 0 ? e = parseInt(r[0], 10) : n._sounds.length && (e = n._sounds[0]._id, t = parseFloat(r[0])) : 2 === r.length && (t = parseFloat(r[0]), e = parseInt(r[1], 10)), void 0 === e) return n;
                    if ("loaded" !== n._state || n._playLock) return n._queue.push({
                        event: "seek",
                        action: function() {
                            n.seek.apply(n, r)
                        }
                    }), n;
                    var i = n._soundById(e);
                    if (i) {
                        if (!("number" == typeof t && t >= 0)) {
                            if (n._webAudio) {
                                var s = n.playing(e) ? o.ctx.currentTime - i._playStart : 0,
                                    a = i._rateSeek ? i._rateSeek - i._seek : 0;
                                return i._seek + (a + s * Math.abs(i._rate))
                            }
                            return i._node.currentTime
                        }
                        var u = n.playing(e);
                        u && n.pause(e, !0), i._seek = t, i._ended = !1, n._clearTimer(e), !n._webAudio && i._node && (i._node.currentTime = t);
                        var l = function() {
                            n._emit("seek", e), u && n.play(e, !0)
                        };
                        if (u && !n._webAudio) {
                            var c = function() {
                                n._playLock ? setTimeout(c, 0) : l()
                            };
                            setTimeout(c, 0)
                        } else l()
                    }
                    return n
                },
                playing: function(t) {
                    if ("number" == typeof t) {
                        var e = this._soundById(t);
                        return !!e && !e._paused
                    }
                    for (var n = 0; n < this._sounds.length; n++)
                        if (!this._sounds[n]._paused) return !0;
                    return !1
                },
                duration: function(t) {
                    var e = this._duration,
                        n = this._soundById(t);
                    return n && (e = this._sprite[n._sprite][1] / 1e3), e
                },
                state: function() {
                    return this._state
                },
                unload: function() {
                    for (var t = this, e = t._sounds, n = 0; n < e.length; n++) e[n]._paused || t.stop(e[n]._id), t._webAudio || (/MSIE |Trident\//.test(o._navigator && o._navigator.userAgent) || (e[n]._node.src = "data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"), e[n]._node.removeEventListener("error", e[n]._errorFn, !1), e[n]._node.removeEventListener(o._canPlayEvent, e[n]._loadFn, !1)), delete e[n]._node, t._clearTimer(e[n]._id);
                    var r = o._howls.indexOf(t);
                    r >= 0 && o._howls.splice(r, 1);
                    var i = !0;
                    for (n = 0; n < o._howls.length; n++)
                        if (o._howls[n]._src === t._src) {
                            i = !1;
                            break
                        }
                    return u && i && delete u[t._src], o.noAudio = !1, t._state = "unloaded", t._sounds = [], t = null, null
                },
                on: function(t, e, n, r) {
                    var i = this["_on" + t];
                    return "function" == typeof e && i.push(r ? {
                        id: n,
                        fn: e,
                        once: r
                    } : {
                        id: n,
                        fn: e
                    }), this
                },
                off: function(t, e, n) {
                    var r = this["_on" + t],
                        i = 0;
                    if ("number" == typeof e && (n = e, e = null), e || n)
                        for (i = 0; i < r.length; i++) {
                            var o = n === r[i].id;
                            if (e === r[i].fn && o || !e && o) {
                                r.splice(i, 1);
                                break
                            }
                        } else if (t) this["_on" + t] = [];
                        else {
                            var s = Object.keys(this);
                            for (i = 0; i < s.length; i++) 0 === s[i].indexOf("_on") && Array.isArray(this[s[i]]) && (this[s[i]] = [])
                        }
                    return this
                },
                once: function(t, e, n) {
                    return this.on(t, e, n, 1), this
                },
                _emit: function(t, e, n) {
                    for (var r = this["_on" + t], i = r.length - 1; i >= 0; i--) r[i].id && r[i].id !== e && "load" !== t || (setTimeout(function(t) {
                        t.call(this, e, n)
                    }.bind(this, r[i].fn), 0), r[i].once && this.off(t, r[i].fn, r[i].id));
                    return this._loadQueue(t), this
                },
                _loadQueue: function(t) {
                    if (this._queue.length > 0) {
                        var e = this._queue[0];
                        e.event === t && (this._queue.shift(), this._loadQueue()), t || e.action()
                    }
                    return this
                },
                _ended: function(t) {
                    var e = t._sprite;
                    if (!this._webAudio && t._node && !t._node.paused && !t._node.ended && t._node.currentTime < t._stop) return setTimeout(this._ended.bind(this, t), 100), this;
                    var n = !(!t._loop && !this._sprite[e][2]);
                    if (this._emit("end", t._id), !this._webAudio && n && this.stop(t._id, !0).play(t._id), this._webAudio && n) {
                        this._emit("play", t._id), t._seek = t._start || 0, t._rateSeek = 0, t._playStart = o.ctx.currentTime;
                        var r = 1e3 * (t._stop - t._start) / Math.abs(t._rate);
                        this._endTimers[t._id] = setTimeout(this._ended.bind(this, t), r)
                    }
                    return this._webAudio && !n && (t._paused = !0, t._ended = !0, t._seek = t._start || 0, t._rateSeek = 0, this._clearTimer(t._id), this._cleanBuffer(t._node), o._autoSuspend()), this._webAudio || n || this.stop(t._id, !0), this
                },
                _clearTimer: function(t) {
                    if (this._endTimers[t]) {
                        if ("function" != typeof this._endTimers[t]) clearTimeout(this._endTimers[t]);
                        else {
                            var e = this._soundById(t);
                            e && e._node && e._node.removeEventListener("ended", this._endTimers[t], !1)
                        }
                        delete this._endTimers[t]
                    }
                    return this
                },
                _soundById: function(t) {
                    for (var e = 0; e < this._sounds.length; e++)
                        if (t === this._sounds[e]._id) return this._sounds[e];
                    return null
                },
                _inactiveSound: function() {
                    this._drain();
                    for (var t = 0; t < this._sounds.length; t++)
                        if (this._sounds[t]._ended) return this._sounds[t].reset();
                    return new a(this)
                },
                _drain: function() {
                    var t = this._pool,
                        e = 0,
                        n = 0;
                    if (!(this._sounds.length < t)) {
                        for (n = 0; n < this._sounds.length; n++) this._sounds[n]._ended && e++;
                        for (n = this._sounds.length - 1; n >= 0; n--) {
                            if (e <= t) return;
                            this._sounds[n]._ended && (this._webAudio && this._sounds[n]._node && this._sounds[n]._node.disconnect(0), this._sounds.splice(n, 1), e--)
                        }
                    }
                },
                _getSoundIds: function(t) {
                    if (void 0 === t) {
                        for (var e = [], n = 0; n < this._sounds.length; n++) e.push(this._sounds[n]._id);
                        return e
                    }
                    return [t]
                },
                _refreshBuffer: function(t) {
                    return t._node.bufferSource = o.ctx.createBufferSource(), t._node.bufferSource.buffer = u[this._src], t._panner ? t._node.bufferSource.connect(t._panner) : t._node.bufferSource.connect(t._node), t._node.bufferSource.loop = t._loop, t._loop && (t._node.bufferSource.loopStart = t._start || 0, t._node.bufferSource.loopEnd = t._stop || 0), t._node.bufferSource.playbackRate.setValueAtTime(t._rate, o.ctx.currentTime), this
                },
                _cleanBuffer: function(t) {
                    if (o._scratchBuffer && t.bufferSource) {
                        t.bufferSource.onended = null, t.bufferSource.disconnect(0);
                        try {
                            t.bufferSource.buffer = o._scratchBuffer
                        } catch (t) {}
                    }
                    return t.bufferSource = null, this
                }
            };
            var a = function(t) {
                this._parent = t, this.init()
            };
            a.prototype = {
                init: function() {
                    var t = this._parent;
                    return this._muted = t._muted, this._loop = t._loop, this._volume = t._volume, this._rate = t._rate, this._seek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++o._counter, t._sounds.push(this), this.create(), this
                },
                create: function() {
                    var t = this._parent,
                        e = o._muted || this._muted || this._parent._muted ? 0 : this._volume;
                    return t._webAudio ? (this._node = void 0 === o.ctx.createGain ? o.ctx.createGainNode() : o.ctx.createGain(), this._node.gain.setValueAtTime(e, o.ctx.currentTime), this._node.paused = !0, this._node.connect(o.masterGain)) : (this._node = new Audio, this._errorFn = this._errorListener.bind(this), this._node.addEventListener("error", this._errorFn, !1), this._loadFn = this._loadListener.bind(this), this._node.addEventListener(o._canPlayEvent, this._loadFn, !1), this._node.src = t._src, this._node.preload = "auto", this._node.volume = e * o.volume(), this._node.load()), this
                },
                reset: function() {
                    var t = this._parent;
                    return this._muted = t._muted, this._loop = t._loop, this._volume = t._volume, this._rate = t._rate, this._seek = 0, this._rateSeek = 0, this._paused = !0, this._ended = !0, this._sprite = "__default", this._id = ++o._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 t = this._parent;
                    t._duration = Math.ceil(10 * this._node.duration) / 10, 0 === Object.keys(t._sprite).length && (t._sprite = {
                        __default: [0, 1e3 * t._duration]
                    }), "loaded" !== t._state && (t._state = "loaded", t._emit("load"), t._loadQueue()), this._node.removeEventListener(o._canPlayEvent, this._loadFn, !1)
                }
            };
            var u = {},
                l = function(t) {
                    var e = t._src;
                    if (u[e]) return t._duration = u[e].duration, void f(t);
                    if (/^data:[^;]+;base64,/.test(e)) {
                        for (var n = atob(e.split(",")[1]), r = new Uint8Array(n.length), i = 0; i < n.length; ++i) r[i] = n.charCodeAt(i);
                        h(r.buffer, t)
                    } else {
                        var o = new XMLHttpRequest;
                        o.open("GET", e, !0), o.withCredentials = t._xhrWithCredentials, o.responseType = "arraybuffer", o.onload = function() {
                            var e = (o.status + "")[0];
                            "0" === e || "2" === e || "3" === e ? h(o.response, t) : t._emit("loaderror", null, "Failed loading audio file with status: " + o.status + ".")
                        }, o.onerror = function() {
                            t._webAudio && (t._html5 = !0, t._webAudio = !1, t._sounds = [], delete u[e], t.load())
                        }, c(o)
                    }
                },
                c = function(t) {
                    try {
                        t.send()
                    } catch (e) {
                        t.onerror()
                    }
                },
                h = function(t, e) {
                    var n = function() {
                            e._emit("loaderror", null, "Decoding audio data failed.")
                        },
                        r = function(t) {
                            t && e._sounds.length > 0 ? (u[e._src] = t, f(e, t)) : n()
                        };
                    "undefined" != typeof Promise && 1 === o.ctx.decodeAudioData.length ? o.ctx.decodeAudioData(t).then(r).catch(n) : o.ctx.decodeAudioData(t, r, n)
                },
                f = function(t, e) {
                    e && !t._duration && (t._duration = e.duration), 0 === Object.keys(t._sprite).length && (t._sprite = {
                        __default: [0, 1e3 * t._duration]
                    }), "loaded" !== t._state && (t._state = "loaded", t._emit("load"), t._loadQueue())
                },
                d = function() {
                    try {
                        "undefined" != typeof AudioContext ? o.ctx = new AudioContext : "undefined" != typeof webkitAudioContext ? o.ctx = new webkitAudioContext : o.usingWebAudio = !1
                    } catch (t) {
                        o.usingWebAudio = !1
                    }
                    var t = /iP(hone|od|ad)/.test(o._navigator && o._navigator.platform),
                        e = o._navigator && o._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
                        n = e ? parseInt(e[1], 10) : null;
                    if (t && n && n < 9) {
                        var r = /safari/.test(o._navigator && o._navigator.userAgent.toLowerCase());
                        (o._navigator && o._navigator.standalone && !r || o._navigator && !o._navigator.standalone && !r) && (o.usingWebAudio = !1)
                    }
                    o.usingWebAudio && (o.masterGain = void 0 === o.ctx.createGain ? o.ctx.createGainNode() : o.ctx.createGain(), o.masterGain.gain.setValueAtTime(o._muted ? 0 : 1, o.ctx.currentTime), o.masterGain.connect(o.ctx.destination)), o._setup()
                };
            void 0 === (r = function() {
                return {
                    Howler: o,
                    Howl: s
                }
            }.apply(e, [])) || (t.exports = r), e.Howler = o, e.Howl = s, "undefined" != typeof window ? (window.HowlerGlobal = i, window.Howler = o, window.Howl = s, window.Sound = a) : void 0 !== n && (n.HowlerGlobal = i, n.Howler = o, n.Howl = s, n.Sound = a)
        }(),
        function() {
            "use strict";
            var t;
            HowlerGlobal.prototype._pos = [0, 0, 0], HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0], HowlerGlobal.prototype.stereo = function(t) {
                if (!this.ctx || !this.ctx.listener) return this;
                for (var e = this._howls.length - 1; e >= 0; e--) this._howls[e].stereo(t);
                return this
            }, HowlerGlobal.prototype.pos = function(t, e, n) {
                return this.ctx && this.ctx.listener ? (e = "number" != typeof e ? this._pos[1] : e, n = "number" != typeof n ? this._pos[2] : n, "number" != typeof t ? this._pos : (this._pos = [t, e, n], 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(t, e, n, r, i, o) {
                if (!this.ctx || !this.ctx.listener) return this;
                var s = this._orientation;
                return e = "number" != typeof e ? s[1] : e, n = "number" != typeof n ? s[2] : n, r = "number" != typeof r ? s[3] : r, i = "number" != typeof i ? s[4] : i, o = "number" != typeof o ? s[5] : o, "number" != typeof t ? s : (this._orientation = [t, e, n, r, i, o], void 0 !== this.ctx.listener.forwardX ? (this.ctx.listener.forwardX.setTargetAtTime(t, Howler.ctx.currentTime, .1), this.ctx.listener.forwardY.setTargetAtTime(e, Howler.ctx.currentTime, .1), this.ctx.listener.forwardZ.setTargetAtTime(n, Howler.ctx.currentTime, .1), this.ctx.listener.upX.setTargetAtTime(t, Howler.ctx.currentTime, .1), this.ctx.listener.upY.setTargetAtTime(e, Howler.ctx.currentTime, .1), this.ctx.listener.upZ.setTargetAtTime(n, Howler.ctx.currentTime, .1)) : this.ctx.listener.setOrientation(t, e, n, r, i, o), this)
            }, Howl.prototype.init = (t = Howl.prototype.init, function(e) {
                return this._orientation = e.orientation || [1, 0, 0], this._stereo = e.stereo || null, this._pos = e.pos || null, this._pannerAttr = {
                    coneInnerAngle: void 0 !== e.coneInnerAngle ? e.coneInnerAngle : 360,
                    coneOuterAngle: void 0 !== e.coneOuterAngle ? e.coneOuterAngle : 360,
                    coneOuterGain: void 0 !== e.coneOuterGain ? e.coneOuterGain : 0,
                    distanceModel: void 0 !== e.distanceModel ? e.distanceModel : "inverse",
                    maxDistance: void 0 !== e.maxDistance ? e.maxDistance : 1e4,
                    panningModel: void 0 !== e.panningModel ? e.panningModel : "HRTF",
                    refDistance: void 0 !== e.refDistance ? e.refDistance : 1,
                    rolloffFactor: void 0 !== e.rolloffFactor ? e.rolloffFactor : 1
                }, this._onstereo = e.onstereo ? [{
                    fn: e.onstereo
                }] : [], this._onpos = e.onpos ? [{
                    fn: e.onpos
                }] : [], this._onorientation = e.onorientation ? [{
                    fn: e.onorientation
                }] : [], t.call(this, e)
            }), Howl.prototype.stereo = function(t, n) {
                var r = this;
                if (!r._webAudio) return r;
                if ("loaded" !== r._state) return r._queue.push({
                    event: "stereo",
                    action: function() {
                        r.stereo(t, n)
                    }
                }), r;
                var i = void 0 === Howler.ctx.createStereoPanner ? "spatial" : "stereo";
                if (void 0 === n) {
                    if ("number" != typeof t) return r._stereo;
                    r._stereo = t, r._pos = [t, 0, 0]
                }
                for (var o = r._getSoundIds(n), s = 0; s < o.length; s++) {
                    var a = r._soundById(o[s]);
                    if (a) {
                        if ("number" != typeof t) return a._stereo;
                        a._stereo = t, a._pos = [t, 0, 0], a._node && (a._pannerAttr.panningModel = "equalpower", a._panner && a._panner.pan || e(a, i), "spatial" === i ? void 0 !== a._panner.positionX ? (a._panner.positionX.setValueAtTime(t, Howler.ctx.currentTime), a._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime), a._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime)) : a._panner.setPosition(t, 0, 0) : a._panner.pan.setValueAtTime(t, Howler.ctx.currentTime)), r._emit("stereo", a._id)
                    }
                }
                return r
            }, Howl.prototype.pos = function(t, n, r, i) {
                var o = this;
                if (!o._webAudio) return o;
                if ("loaded" !== o._state) return o._queue.push({
                    event: "pos",
                    action: function() {
                        o.pos(t, n, r, i)
                    }
                }), o;
                if (n = "number" != typeof n ? 0 : n, r = "number" != typeof r ? -.5 : r, void 0 === i) {
                    if ("number" != typeof t) return o._pos;
                    o._pos = [t, n, r]
                }
                for (var s = o._getSoundIds(i), a = 0; a < s.length; a++) {
                    var u = o._soundById(s[a]);
                    if (u) {
                        if ("number" != typeof t) return u._pos;
                        u._pos = [t, n, r], u._node && (u._panner && !u._panner.pan || e(u, "spatial"), void 0 !== u._panner.positionX ? (u._panner.positionX.setValueAtTime(t, Howler.ctx.currentTime), u._panner.positionY.setValueAtTime(n, Howler.ctx.currentTime), u._panner.positionZ.setValueAtTime(r, Howler.ctx.currentTime)) : u._panner.setOrientation(t, n, r)), o._emit("pos", u._id)
                    }
                }
                return o
            }, Howl.prototype.orientation = function(t, n, r, i) {
                var o = this;
                if (!o._webAudio) return o;
                if ("loaded" !== o._state) return o._queue.push({
                    event: "orientation",
                    action: function() {
                        o.orientation(t, n, r, i)
                    }
                }), o;
                if (n = "number" != typeof n ? o._orientation[1] : n, r = "number" != typeof r ? o._orientation[2] : r, void 0 === i) {
                    if ("number" != typeof t) return o._orientation;
                    o._orientation = [t, n, r]
                }
                for (var s = o._getSoundIds(i), a = 0; a < s.length; a++) {
                    var u = o._soundById(s[a]);
                    if (u) {
                        if ("number" != typeof t) return u._orientation;
                        u._orientation = [t, n, r], u._node && (u._panner || (u._pos || (u._pos = o._pos || [0, 0, -.5]), e(u, "spatial")), void 0 !== u._panner.orientationX ? (u._panner.orientationX.setValueAtTime(t, Howler.ctx.currentTime), u._panner.orientationY.setValueAtTime(n, Howler.ctx.currentTime), u._panner.orientationZ.setValueAtTime(r, Howler.ctx.currentTime)) : u._panner.setOrientation(t, n, r)), o._emit("orientation", u._id)
                    }
                }
                return o
            }, Howl.prototype.pannerAttr = function() {
                var t, n, r, i = arguments;
                if (!this._webAudio) return this;
                if (0 === i.length) return this._pannerAttr;
                if (1 === i.length) {
                    if ("object" != typeof i[0]) return (r = this._soundById(parseInt(i[0], 10))) ? r._pannerAttr : this._pannerAttr;
                    t = i[0], void 0 === n && (t.pannerAttr || (t.pannerAttr = {
                        coneInnerAngle: t.coneInnerAngle,
                        coneOuterAngle: t.coneOuterAngle,
                        coneOuterGain: t.coneOuterGain,
                        distanceModel: t.distanceModel,
                        maxDistance: t.maxDistance,
                        refDistance: t.refDistance,
                        rolloffFactor: t.rolloffFactor,
                        panningModel: t.panningModel
                    }), this._pannerAttr = {
                        coneInnerAngle: void 0 !== t.pannerAttr.coneInnerAngle ? t.pannerAttr.coneInnerAngle : this._coneInnerAngle,
                        coneOuterAngle: void 0 !== t.pannerAttr.coneOuterAngle ? t.pannerAttr.coneOuterAngle : this._coneOuterAngle,
                        coneOuterGain: void 0 !== t.pannerAttr.coneOuterGain ? t.pannerAttr.coneOuterGain : this._coneOuterGain,
                        distanceModel: void 0 !== t.pannerAttr.distanceModel ? t.pannerAttr.distanceModel : this._distanceModel,
                        maxDistance: void 0 !== t.pannerAttr.maxDistance ? t.pannerAttr.maxDistance : this._maxDistance,
                        refDistance: void 0 !== t.pannerAttr.refDistance ? t.pannerAttr.refDistance : this._refDistance,
                        rolloffFactor: void 0 !== t.pannerAttr.rolloffFactor ? t.pannerAttr.rolloffFactor : this._rolloffFactor,
                        panningModel: void 0 !== t.pannerAttr.panningModel ? t.pannerAttr.panningModel : this._panningModel
                    })
                } else 2 === i.length && (t = i[0], n = parseInt(i[1], 10));
                for (var o = this._getSoundIds(n), s = 0; s < o.length; s++)
                    if (r = this._soundById(o[s])) {
                        var a = r._pannerAttr;
                        a = {
                            coneInnerAngle: void 0 !== t.coneInnerAngle ? t.coneInnerAngle : a.coneInnerAngle,
                            coneOuterAngle: void 0 !== t.coneOuterAngle ? t.coneOuterAngle : a.coneOuterAngle,
                            coneOuterGain: void 0 !== t.coneOuterGain ? t.coneOuterGain : a.coneOuterGain,
                            distanceModel: void 0 !== t.distanceModel ? t.distanceModel : a.distanceModel,
                            maxDistance: void 0 !== t.maxDistance ? t.maxDistance : a.maxDistance,
                            refDistance: void 0 !== t.refDistance ? t.refDistance : a.refDistance,
                            rolloffFactor: void 0 !== t.rolloffFactor ? t.rolloffFactor : a.rolloffFactor,
                            panningModel: void 0 !== t.panningModel ? t.panningModel : a.panningModel
                        };
                        var u = r._panner;
                        u ? (u.coneInnerAngle = a.coneInnerAngle, u.coneOuterAngle = a.coneOuterAngle, u.coneOuterGain = a.coneOuterGain, u.distanceModel = a.distanceModel, u.maxDistance = a.maxDistance, u.refDistance = a.refDistance, u.rolloffFactor = a.rolloffFactor, u.panningModel = a.panningModel) : (r._pos || (r._pos = this._pos || [0, 0, -.5]), e(r, "spatial"))
                    }
                return this
            }, Sound.prototype.init = function(t) {
                return function() {
                    var e = this._parent;
                    this._orientation = e._orientation, this._stereo = e._stereo, this._pos = e._pos, this._pannerAttr = e._pannerAttr, t.call(this), this._stereo ? e.stereo(this._stereo) : this._pos && e.pos(this._pos[0], this._pos[1], this._pos[2], this._id)
                }
            }(Sound.prototype.init), Sound.prototype.reset = function(t) {
                return function() {
                    var e = this._parent;
                    return this._orientation = e._orientation, this._stereo = e._stereo, this._pos = e._pos, this._pannerAttr = e._pannerAttr, this._stereo ? e.stereo(this._stereo) : this._pos ? e.pos(this._pos[0], this._pos[1], this._pos[2], this._id) : this._panner && (this._panner.disconnect(0), this._panner = void 0, e._refreshBuffer(this)), t.call(this)
                }
            }(Sound.prototype.reset);
            var e = function(t, e) {
                "spatial" === (e = e || "spatial") ? (t._panner = Howler.ctx.createPanner(), t._panner.coneInnerAngle = t._pannerAttr.coneInnerAngle, t._panner.coneOuterAngle = t._pannerAttr.coneOuterAngle, t._panner.coneOuterGain = t._pannerAttr.coneOuterGain, t._panner.distanceModel = t._pannerAttr.distanceModel, t._panner.maxDistance = t._pannerAttr.maxDistance, t._panner.refDistance = t._pannerAttr.refDistance, t._panner.rolloffFactor = t._pannerAttr.rolloffFactor, t._panner.panningModel = t._pannerAttr.panningModel, void 0 !== t._panner.positionX ? (t._panner.positionX.setValueAtTime(t._pos[0], Howler.ctx.currentTime), t._panner.positionY.setValueAtTime(t._pos[1], Howler.ctx.currentTime), t._panner.positionZ.setValueAtTime(t._pos[2], Howler.ctx.currentTime)) : t._panner.setPosition(t._pos[0], t._pos[1], t._pos[2]), void 0 !== t._panner.orientationX ? (t._panner.orientationX.setValueAtTime(t._orientation[0], Howler.ctx.currentTime), t._panner.orientationY.setValueAtTime(t._orientation[1], Howler.ctx.currentTime), t._panner.orientationZ.setValueAtTime(t._orientation[2], Howler.ctx.currentTime)) : t._panner.setOrientation(t._orientation[0], t._orientation[1], t._orientation[2])) : (t._panner = Howler.ctx.createStereoPanner(), t._panner.pan.setValueAtTime(t._stereo, Howler.ctx.currentTime)), t._panner.connect(t._node), t._paused || t._parent.pause(t._id, !0).play(t._id, !0)
            }
        }()
    }).call(e, n(18))
}, function(t, e, n) {
    "use strict";
    var r = n(36).a.Symbol;
    e.a = r
}, function(t, e, n) {
    "use strict";
    var r = n(93),
        i = n(100),
        o = Object.prototype.hasOwnProperty;
    e.a = function(t, e, s) {
        var a = t[e];
        o.call(t, e) && n.i(i.a)(a, s) && (void 0 !== s || e in t) || n.i(r.a)(t, e, s)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(95);
    e.a = function(t, e, i) {
        "__proto__" == e && r.a ? n.i(r.a)(t, e, {
            configurable: !0,
            enumerable: !0,
            value: i,
            writable: !0
        }) : t[e] = i
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t, e) {
        for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n);
        return r
    }
}, function(t, e, n) {
    "use strict";
    var r = n(228),
        i = function() {
            try {
                var t = n.i(r.a)(Object, "defineProperty");
                return t({}, "", {}), t
            } catch (t) {}
        }();
    e.a = i
}, function(t, e, n) {
    "use strict";
    (function(t) {
        var n = "object" == typeof t && t && t.Object === Object && t;
        e.a = n
    }).call(e, n(18))
}, function(t, e, n) {
    "use strict";
    var r = /^(?:0|[1-9]\d*)$/;
    e.a = function(t, e) {
        var n = typeof t;
        return !!(e = null == e ? 9007199254740991 : e) && ("number" == n || "symbol" != n && r.test(t)) && t > -1 && t % 1 == 0 && t < e
    }
}, function(t, e, n) {
    "use strict";
    var r = n(100),
        i = n(55),
        o = n(97),
        s = n(19);
    e.a = function(t, e, a) {
        if (!n.i(s.a)(a)) return !1;
        var u = typeof e;
        return !!("number" == u ? n.i(i.a)(a) && n.i(o.a)(e, a.length) : "string" == u && e in a) && n.i(r.a)(a[e], t)
    }
}, function(t, e, n) {
    "use strict";
    var r = Object.prototype;
    e.a = function(t) {
        var e = t && t.constructor;
        return t === ("function" == typeof e && e.prototype || r)
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t, e) {
        return t === e || t != t && e != e
    }
}, function(t, e, n) {
    "use strict";
    var r = n(35),
        i = n(19);
    e.a = function(t) {
        if (!n.i(i.a)(t)) return !1;
        var e = n.i(r.a)(t);
        return "[object Function]" == e || "[object GeneratorFunction]" == e || "[object AsyncFunction]" == e || "[object Proxy]" == e
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.default = function() {}
}, function(t, e, n) {
    "use strict";
    var r = n(105);
    e.a = function(t) {
        return t ? (t = n.i(r.a)(t)) === 1 / 0 || t === -1 / 0 ? 1.7976931348623157e308 * (t < 0 ? -1 : 1) : t == t ? t : 0 : 0 === t ? t : 0
    }
}, function(t, e, n) {
    "use strict";
    var r = n(19),
        i = n(246),
        o = /^\s+|\s+$/g,
        s = /^[-+]0x[0-9a-f]+$/i,
        a = /^0b[01]+$/i,
        u = /^0o[0-7]+$/i,
        l = parseInt;
    e.a = function(t) {
        if ("number" == typeof t) return t;
        if (n.i(i.a)(t)) return NaN;
        if (n.i(r.a)(t)) {
            var e = "function" == typeof t.valueOf ? t.valueOf() : t;
            t = n.i(r.a)(e) ? e + "" : e
        }
        if ("string" != typeof t) return 0 === t ? t : +t;
        t = t.replace(o, "");
        var c = a.test(t);
        return c || u.test(t) ? l(t.slice(2), c ? 2 : 8) : s.test(t) ? NaN : +t
    }
}, function(t, e, n) {
    var r = n(61),
        i = n(62);

    function o(t, e) {
        this.__wrapped__ = t, this.__actions__ = [], this.__chain__ = !!e, this.__index__ = 0, this.__values__ = void 0
    }
    o.prototype = r(i.prototype), o.prototype.constructor = o, t.exports = o
}, function(t, e, n) {
    var r = n(38),
        i = n(346),
        o = n(347),
        s = n(348),
        a = n(349),
        u = n(350);

    function l(t) {
        var e = this.__data__ = new r(t);
        this.size = e.size
    }
    l.prototype.clear = i, l.prototype.delete = o, l.prototype.get = s, l.prototype.has = a, l.prototype.set = u, t.exports = l
}, function(t, e, n) {
    var r = n(17)(n(6), "WeakMap");
    t.exports = r
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n];
        return t
    }
}, function(t, e, n) {
    var r = n(124);
    t.exports = function(t, e, n) {
        "__proto__" == e && r ? r(t, e, {
            configurable: !0,
            enumerable: !0,
            value: n,
            writable: !0
        }) : t[e] = n
    }
}, function(t, e, n) {
    var r = n(271),
        i = n(295)(r);
    t.exports = i
}, function(t, e) {
    t.exports = function(t, e, n, r) {
        for (var i = t.length, o = n + (r ? 1 : -1); r ? o-- : ++o < i;)
            if (e(t[o], o, t)) return o;
        return -1
    }
}, function(t, e, n) {
    var r = n(118),
        i = n(26);
    t.exports = function(t, e) {
        for (var n = 0, o = (e = r(e, t)).length; null != t && n < o;) t = t[i(e[n++])];
        return n && n == o ? t : void 0
    }
}, function(t, e, n) {
    var r = n(276),
        i = n(21);
    t.exports = function t(e, n, o, s, a) {
        return e === n || (null == e || null == n || !i(e) && !i(n) ? e != e && n != n : r(e, n, o, s, t, a))
    }
}, function(t, e, n) {
    var r = n(282),
        i = n(283),
        o = n(27),
        s = n(8),
        a = n(368);
    t.exports = function(t) {
        return "function" == typeof t ? t : null == t ? o : "object" == typeof t ? s(t) ? i(t[0], t[1]) : r(t) : a(t)
    }
}, function(t, e, n) {
    var r = n(27),
        i = n(131),
        o = n(66);
    t.exports = function(t, e) {
        return o(i(t, e, r), t + "")
    }
}, function(t, e, n) {
    var r = n(27),
        i = n(130),
        o = i ? function(t, e) {
            return i.set(t, e), t
        } : r;
    t.exports = o
}, function(t, e, n) {
    var r = n(8),
        i = n(65),
        o = n(352),
        s = n(372);
    t.exports = function(t, e) {
        return r(t) ? t : i(t, e) ? [t] : o(s(t))
    }
}, function(t, e) {
    var n = Math.max;
    t.exports = function(t, e, r, i) {
        for (var o = -1, s = t.length, a = r.length, u = -1, l = e.length, c = n(s - a, 0), h = Array(l + c), f = !i; ++u < l;) h[u] = e[u];
        for (; ++o < a;)(f || o < s) && (h[r[o]] = t[o]);
        for (; c--;) h[u++] = t[o++];
        return h
    }
}, function(t, e) {
    var n = Math.max;
    t.exports = function(t, e, r, i) {
        for (var o = -1, s = t.length, a = -1, u = r.length, l = -1, c = e.length, h = n(s - u, 0), f = Array(h + c), d = !i; ++o < h;) f[o] = t[o];
        for (var p = o; ++l < c;) f[p + l] = e[l];
        for (; ++a < u;)(d || o < s) && (f[p + r[a]] = t[o++]);
        return f
    }
}, function(t, e) {
    t.exports = function(t, e) {
        var n = -1,
            r = t.length;
        for (e || (e = Array(r)); ++n < r;) e[n] = t[n];
        return e
    }
}, function(t, e, n) {
    var r = n(119),
        i = n(120),
        o = n(293),
        s = n(40),
        a = n(123),
        u = n(63),
        l = n(342),
        c = n(43),
        h = n(6);
    t.exports = function t(e, n, f, d, p, v, _, g, y, m) {
        var b = 128 & n,
            x = 1 & n,
            w = 2 & n,
            T = 24 & n,
            E = 512 & n,
            S = w ? void 0 : s(e);
        return function P() {
            for (var O = arguments.length, M = Array(O), C = O; C--;) M[C] = arguments[C];
            if (T) var A = u(P),
                I = o(M, A);
            if (d && (M = r(M, d, p, T)), v && (M = i(M, v, _, T)), O -= I, T && O < m) {
                var R = c(M, A);
                return a(e, n, t, P.placeholder, f, M, R, g, y, m - O)
            }
            var D = x ? f : this,
                L = w ? D[e] : e;
            return O = M.length, g ? M = l(M, g) : E && O > 1 && M.reverse(), b && y < O && (M.length = y), this && this !== h && this instanceof P && (L = S || s(L)), L.apply(D, M)
        }
    }
}, function(t, e, n) {
    var r = n(321),
        i = n(132),
        o = n(133);
    t.exports = function(t, e, n, s, a, u, l, c, h, f) {
        var d = 8 & e;
        e |= d ? 32 : 64, 4 & (e &= ~(d ? 64 : 32)) || (e &= -4);
        var p = [t, e, a, d ? u : void 0, d ? l : void 0, d ? void 0 : u, d ? void 0 : l, c, h, f],
            v = n.apply(void 0, p);
        return r(t) && i(v, p), v.placeholder = s, o(v, t, e)
    }
}, function(t, e, n) {
    var r = n(17),
        i = function() {
            try {
                var t = r(Object, "defineProperty");
                return t({}, "", {}), t
            } catch (t) {}
        }();
    t.exports = i
}, function(t, e, n) {
    var r = n(258),
        i = n(265),
        o = n(290);
    t.exports = function(t, e, n, s, a, u) {
        var l = 1 & n,
            c = t.length,
            h = e.length;
        if (c != h && !(l && h > c)) return !1;
        var f = u.get(t);
        if (f && u.get(e)) return f == e;
        var d = -1,
            p = !0,
            v = 2 & n ? new r : void 0;
        for (u.set(t, e), u.set(e, t); ++d < c;) {
            var _ = t[d],
                g = e[d];
            if (s) var y = l ? s(g, _, d, e, t, u) : s(_, g, d, t, e, u);
            if (void 0 !== y) {
                if (y) continue;
                p = !1;
                break
            }
            if (v) {
                if (!i(e, function(t, e) {
                        if (!o(v, e) && (_ === t || a(_, t, n, s, u))) return v.push(e)
                    })) {
                    p = !1;
                    break
                }
            } else if (_ !== g && !a(_, g, n, s, u)) {
                p = !1;
                break
            }
        }
        return u.delete(t), u.delete(e), p
    }
}, function(t, e, n) {
    (function(e) {
        var n = "object" == typeof e && e && e.Object === Object && e;
        t.exports = n
    }).call(e, n(18))
}, function(t, e, n) {
    var r = n(130),
        i = n(367),
        o = r ? function(t) {
            return r.get(t)
        } : i;
    t.exports = o
}, function(t, e, n) {
    var r = n(20);
    t.exports = function(t) {
        return t == t && !r(t)
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return function(n) {
            return null != n && n[t] === e && (void 0 !== e || t in Object(n))
        }
    }
}, function(t, e, n) {
    var r = n(108),
        i = r && new r;
    t.exports = i
}, function(t, e, n) {
    var r = n(59),
        i = Math.max;
    t.exports = function(t, e, n) {
        return e = i(void 0 === e ? t.length - 1 : e, 0),
            function() {
                for (var o = arguments, s = -1, a = i(o.length - e, 0), u = Array(a); ++s < a;) u[s] = o[e + s];
                s = -1;
                for (var l = Array(e + 1); ++s < e;) l[s] = o[s];
                return l[e] = n(u), r(t, this, l)
            }
    }
}, function(t, e, n) {
    var r = n(117),
        i = n(134)(r);
    t.exports = i
}, function(t, e, n) {
    var r = n(311),
        i = n(318),
        o = n(66),
        s = n(353);
    t.exports = function(t, e, n) {
        var a = e + "";
        return o(t, i(a, s(r(a), n)))
    }
}, function(t, e) {
    var n = Date.now;
    t.exports = function(t) {
        var e = 0,
            r = 0;
        return function() {
            var i = n(),
                o = 16 - (i - r);
            if (r = i, o > 0) {
                if (++e >= 800) return arguments[0]
            } else e = 0;
            return t.apply(void 0, arguments)
        }
    }
}, function(t, e) {
    var n = Function.prototype.toString;
    t.exports = function(t) {
        if (null != t) {
            try {
                return n.call(t)
            } catch (t) {}
            try {
                return t + ""
            } catch (t) {}
        }
        return ""
    }
}, function(t, e, n) {
    var r = n(60),
        i = n(110),
        o = n(355),
        s = n(303),
        a = n(26),
        u = s(function(t, e) {
            return r(e, function(e) {
                e = a(e), i(t, e, o(t[e], t))
            }), t
        });
    t.exports = u
}, function(t, e) {
    t.exports = function(t, e) {
        return t === e || t != t && e != e
    }
}, function(t, e, n) {
    var r = n(68),
        i = n(69);
    t.exports = function(t) {
        return null != t && i(t.length) && !r(t)
    }
}, function(t, e, n) {
    (function(t) {
        var r = n(6),
            i = n(370),
            o = "object" == typeof e && e && !e.nodeType && e,
            s = o && "object" == typeof t && t && !t.nodeType && t,
            a = s && s.exports === o ? r.Buffer : void 0,
            u = (a ? a.isBuffer : void 0) || i;
        t.exports = u
    }).call(e, n(14)(t))
}, function(t, e, n) {
    var r = n(280),
        i = n(289),
        o = n(338),
        s = o && o.isTypedArray,
        a = s ? i(s) : r;
    t.exports = a
}, function(t, e, n) {
    var r = n(371);
    t.exports = function(t) {
        var e = r(t),
            n = e % 1;
        return e == e ? n ? e - n : e : 0
    }
}, function(t, e, n) {
    var r = n(20),
        i = n(45),
        o = /^\s+|\s+$/g,
        s = /^[-+]0x[0-9a-f]+$/i,
        a = /^0b[01]+$/i,
        u = /^0o[0-7]+$/i,
        l = parseInt;
    t.exports = function(t) {
        if ("number" == typeof t) return t;
        if (i(t)) return NaN;
        if (r(t)) {
            var e = "function" == typeof t.valueOf ? t.valueOf() : t;
            t = r(e) ? e + "" : e
        }
        if ("string" != typeof t) return 0 === t ? t : +t;
        t = t.replace(o, "");
        var n = a.test(t);
        return n || u.test(t) ? l(t.slice(2), n ? 2 : 8) : s.test(t) ? NaN : +t
    }
}, function(t, e, n) {
    "use strict";
    t.exports = function(t, e) {
        e = e || {};
        for (var n = {
                key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
                q: {
                    name: "queryKey",
                    parser: /(?:^|&)([^&=]*)=?([^&]*)/g
                },
                parser: {
                    strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
                    loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
                }
            }, r = n.parser[e.strictMode ? "strict" : "loose"].exec(t), i = {}, o = 14; o--;) i[n.key[o]] = r[o] || "";
        return i[n.q.name] = {}, i[n.key[12]].replace(n.q.parser, function(t, e, r) {
            e && (i[n.q.name][e] = r)
        }), i
    }
}, function(t, e) {
    var n = function(t, e, n, r, i) {
        this.gl = t, this.texture = t.createTexture(), this.mipmap = !1, this.premultiplyAlpha = !1, this.width = e || -1, this.height = n || -1, this.format = r || t.RGBA, this.type = i || t.UNSIGNED_BYTE
    };
    n.prototype.upload = function(t) {
        this.bind();
        var e = this.gl;
        e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);
        var n = t.videoWidth || t.width,
            r = t.videoHeight || t.height;
        r !== this.height || n !== this.width ? e.texImage2D(e.TEXTURE_2D, 0, this.format, this.format, this.type, t) : e.texSubImage2D(e.TEXTURE_2D, 0, 0, 0, this.format, this.type, t), this.width = n, this.height = r
    };
    var r = !1;
    n.prototype.uploadData = function(t, e, n) {
        this.bind();
        var i = this.gl;
        if (t instanceof Float32Array) {
            if (!r) {
                if (!i.getExtension("OES_texture_float")) throw new Error("floating point textures not available");
                r = !0
            }
            this.type = i.FLOAT
        } else this.type = this.type || i.UNSIGNED_BYTE;
        i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha), e !== this.width || n !== this.height ? i.texImage2D(i.TEXTURE_2D, 0, this.format, e, n, 0, this.format, this.type, t || null) : i.texSubImage2D(i.TEXTURE_2D, 0, 0, 0, e, n, this.format, this.type, t || null), this.width = e, this.height = n
    }, n.prototype.bind = function(t) {
        var e = this.gl;
        void 0 !== t && e.activeTexture(e.TEXTURE0 + t), e.bindTexture(e.TEXTURE_2D, this.texture)
    }, n.prototype.unbind = function() {
        var t = this.gl;
        t.bindTexture(t.TEXTURE_2D, null)
    }, n.prototype.minFilter = function(t) {
        var e = this.gl;
        this.bind(), this.mipmap ? e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, t ? e.LINEAR_MIPMAP_LINEAR : e.NEAREST_MIPMAP_NEAREST) : e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, t ? e.LINEAR : e.NEAREST)
    }, n.prototype.magFilter = function(t) {
        var e = this.gl;
        this.bind(), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, t ? e.LINEAR : e.NEAREST)
    }, n.prototype.enableMipmap = function() {
        var t = this.gl;
        this.bind(), this.mipmap = !0, t.generateMipmap(t.TEXTURE_2D)
    }, n.prototype.enableLinearScaling = function() {
        this.minFilter(!0), this.magFilter(!0)
    }, n.prototype.enableNearestScaling = function() {
        this.minFilter(!1), this.magFilter(!1)
    }, n.prototype.enableWrapClamp = function() {
        var t = this.gl;
        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE)
    }, n.prototype.enableWrapRepeat = function() {
        var t = this.gl;
        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.REPEAT), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.REPEAT)
    }, n.prototype.enableWrapMirrorRepeat = function() {
        var t = this.gl;
        this.bind(), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.MIRRORED_REPEAT), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.MIRRORED_REPEAT)
    }, n.prototype.destroy = function() {
        this.gl.deleteTexture(this.texture)
    }, n.fromSource = function(t, e, r) {
        var i = new n(t);
        return i.premultiplyAlpha = r || !1, i.upload(e), i
    }, n.fromData = function(t, e, r, i) {
        var o = new n(t);
        return o.uploadData(e, r, i), o
    }, t.exports = n
}, function(t, e) {
    t.exports = function(t, e, n) {
        var r;
        if (n) {
            var i = n.tempAttribState,
                o = n.attribState;
            for (r = 0; r < i.length; r++) i[r] = !1;
            for (r = 0; r < e.length; r++) i[e[r].attribute.location] = !0;
            for (r = 0; r < o.length; r++) o[r] !== i[r] && (o[r] = i[r], n.attribState[r] ? t.enableVertexAttribArray(r) : t.disableVertexAttribArray(r))
        } else
            for (r = 0; r < e.length; r++) {
                var s = e[r];
                t.enableVertexAttribArray(s.attribute.location)
            }
    }
}, function(t, e) {
    var n = function(t, e, n) {
        var r = t.createShader(e);
        return t.shaderSource(r, n), t.compileShader(r), t.getShaderParameter(r, t.COMPILE_STATUS) ? r : null
    };
    t.exports = function(t, e, r, i) {
        var o = n(t, t.VERTEX_SHADER, e),
            s = n(t, t.FRAGMENT_SHADER, r),
            a = t.createProgram();
        if (t.attachShader(a, o), t.attachShader(a, s), i)
            for (var u in i) t.bindAttribLocation(a, i[u], u);
        return t.linkProgram(a), t.getProgramParameter(a, t.LINK_STATUS) || (t.getProgramInfoLog(a), t.deleteProgram(a), a = null), t.deleteShader(o), t.deleteShader(s), a
    }
}, function(t, e) {
    var n = function(t) {
        for (var e = new Array(t), n = 0; n < e.length; n++) e[n] = !1;
        return e
    };
    t.exports = function(t, e) {
        switch (t) {
            case "float":
                return 0;
            case "vec2":
                return new Float32Array(2 * e);
            case "vec3":
                return new Float32Array(3 * e);
            case "vec4":
                return new Float32Array(4 * e);
            case "int":
            case "sampler2D":
                return 0;
            case "ivec2":
                return new Int32Array(2 * e);
            case "ivec3":
                return new Int32Array(3 * e);
            case "ivec4":
                return new Int32Array(4 * e);
            case "bool":
                return !1;
            case "bvec2":
                return n(2 * e);
            case "bvec3":
                return n(3 * e);
            case "bvec4":
                return n(4 * e);
            case "mat2":
                return new Float32Array([1, 0, 0, 1]);
            case "mat3":
                return new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
            case "mat4":
                return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
        }
    }
}, function(t, e, n) {
    var r = n(72),
        i = n(151),
        o = function(t, e, n, r) {
            gl.vertexAttribPointer(this.location, this.size, t || gl.FLOAT, e || !1, n || 0, r || 0)
        };
    t.exports = function(t, e) {
        for (var n = {}, s = t.getProgramParameter(e, t.ACTIVE_ATTRIBUTES), a = 0; a < s; a++) {
            var u = t.getActiveAttrib(e, a),
                l = r(t, u.type);
            n[u.name] = {
                type: l,
                size: i(l),
                location: t.getAttribLocation(e, u.name),
                pointer: o
            }
        }
        return n
    }
}, function(t, e, n) {
    var r = n(72),
        i = n(147);
    t.exports = function(t, e) {
        for (var n = {}, o = t.getProgramParameter(e, t.ACTIVE_UNIFORMS), s = 0; s < o; s++) {
            var a = t.getActiveUniform(e, s),
                u = a.name.replace(/\[.*?\]/, ""),
                l = r(t, a.type);
            n[u] = {
                type: l,
                size: a.size,
                location: t.getUniformLocation(e, u),
                value: i(l, a.size)
            }
        }
        return n
    }
}, function(t, e) {
    var n = function(t) {
            return function() {
                return this.data[t].value
            }
        },
        r = {
            float: function(t, e, n) {
                t.uniform1f(e, n)
            },
            vec2: function(t, e, n) {
                t.uniform2f(e, n[0], n[1])
            },
            vec3: function(t, e, n) {
                t.uniform3f(e, n[0], n[1], n[2])
            },
            vec4: function(t, e, n) {
                t.uniform4f(e, n[0], n[1], n[2], n[3])
            },
            int: function(t, e, n) {
                t.uniform1i(e, n)
            },
            ivec2: function(t, e, n) {
                t.uniform2i(e, n[0], n[1])
            },
            ivec3: function(t, e, n) {
                t.uniform3i(e, n[0], n[1], n[2])
            },
            ivec4: function(t, e, n) {
                t.uniform4i(e, n[0], n[1], n[2], n[3])
            },
            bool: function(t, e, n) {
                t.uniform1i(e, n)
            },
            bvec2: function(t, e, n) {
                t.uniform2i(e, n[0], n[1])
            },
            bvec3: function(t, e, n) {
                t.uniform3i(e, n[0], n[1], n[2])
            },
            bvec4: function(t, e, n) {
                t.uniform4i(e, n[0], n[1], n[2], n[3])
            },
            mat2: function(t, e, n) {
                t.uniformMatrix2fv(e, !1, n)
            },
            mat3: function(t, e, n) {
                t.uniformMatrix3fv(e, !1, n)
            },
            mat4: function(t, e, n) {
                t.uniformMatrix4fv(e, !1, n)
            },
            sampler2D: function(t, e, n) {
                t.uniform1i(e, n)
            }
        },
        i = {
            float: function(t, e, n) {
                t.uniform1fv(e, n)
            },
            vec2: function(t, e, n) {
                t.uniform2fv(e, n)
            },
            vec3: function(t, e, n) {
                t.uniform3fv(e, n)
            },
            vec4: function(t, e, n) {
                t.uniform4fv(e, n)
            },
            int: function(t, e, n) {
                t.uniform1iv(e, n)
            },
            ivec2: function(t, e, n) {
                t.uniform2iv(e, n)
            },
            ivec3: function(t, e, n) {
                t.uniform3iv(e, n)
            },
            ivec4: function(t, e, n) {
                t.uniform4iv(e, n)
            },
            bool: function(t, e, n) {
                t.uniform1iv(e, n)
            },
            bvec2: function(t, e, n) {
                t.uniform2iv(e, n)
            },
            bvec3: function(t, e, n) {
                t.uniform3iv(e, n)
            },
            bvec4: function(t, e, n) {
                t.uniform4iv(e, n)
            },
            sampler2D: function(t, e, n) {
                t.uniform1iv(e, n)
            }
        };

    function o(t, e) {
        return function(n) {
            this.data[t].value = n;
            var o = this.data[t].location;
            1 === e.size ? r[e.type](this.gl, o, n) : i[e.type](this.gl, o, n)
        }
    }

    function s(t, e) {
        for (var n = e, r = 0; r < t.length - 1; r++) {
            var i = n[t[r]] || {
                data: {}
            };
            n[t[r]] = i, n = i
        }
        return n
    }
    t.exports = function(t, e) {
        var r = {
            data: {}
        };
        r.gl = t;
        for (var i = Object.keys(e), a = 0; a < i.length; a++) {
            var u = i[a],
                l = u.split("."),
                c = l[l.length - 1],
                h = s(l, r),
                f = e[u];
            h.data[c] = f, h.gl = t, Object.defineProperty(h, c, {
                get: n(c),
                set: o(c, f)
            })
        }
        return r
    }
}, function(t, e) {
    var n = {
        float: 1,
        vec2: 2,
        vec3: 3,
        vec4: 4,
        int: 1,
        ivec2: 2,
        ivec3: 3,
        ivec4: 4,
        bool: 1,
        bvec2: 2,
        bvec3: 3,
        bvec4: 4,
        mat2: 4,
        mat3: 9,
        mat4: 16,
        sampler2D: 1
    };
    t.exports = function(t) {
        return n[t]
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return "precision" !== t.substring(0, 9) ? "precision " + e + " float;\n" + t : t
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = {
        accessible: !1,
        accessibleTitle: null,
        accessibleHint: null,
        tabIndex: 0,
        _accessibleActive: !1,
        _accessibleDiv: !1
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(155),
        o = l(n(29)),
        s = n(81),
        a = l(n(3)),
        u = n(0);

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var c = function() {
        function t(e, n, r, u, l) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), "number" == typeof e && (e = Object.assign({
                width: e,
                height: n || a.default.RENDER_OPTIONS.height,
                forceCanvas: !!u,
                sharedTicker: !!l
            }, r)), this._options = e = Object.assign({
                autoStart: !0,
                sharedTicker: !1,
                forceCanvas: !1,
                sharedLoader: !1
            }, e), this.renderer = (0, i.autoDetectRenderer)(e), this.stage = new o.default, this._ticker = null, this.ticker = e.sharedTicker ? s.shared : new s.Ticker, e.autoStart && this.start()
        }
        return t.prototype.render = function() {
            this.renderer.render(this.stage)
        }, t.prototype.stop = function() {
            this._ticker.stop()
        }, t.prototype.start = function() {
            this._ticker.start()
        }, t.prototype.destroy = function(t, e) {
            if (this._ticker) {
                var n = this._ticker;
                this.ticker = null, n.destroy()
            }
            this.stage.destroy(e), this.stage = null, this.renderer.destroy(t), this.renderer = null, this._options = null
        }, r(t, [{
            key: "ticker",
            set: function(t) {
                this._ticker && this._ticker.remove(this.render, this), this._ticker = t, t && t.add(this.render, this, u.UPDATE_PRIORITY.LOW)
            },
            get: function() {
                return this._ticker
            }
        }, {
            key: "view",
            get: function() {
                return this.renderer.view
            }
        }, {
            key: "screen",
            get: function() {
                return this.renderer.screen
            }
        }]), t
    }();
    e.default = c
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.autoDetectRenderer = function(t, e, n, s) {
        var a = t && t.forceCanvas;
        return void 0 !== s && (a = s), !a && r.isWebGLSupported() ? new o.default(t, e, n) : new i.default(t, e, n)
    };
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(2)),
        i = s(n(30)),
        o = s(n(47));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = h(n(16)),
        o = n(0),
        s = h(n(3)),
        a = h(n(158)),
        u = h(n(157)),
        l = h(n(73)),
        c = n(5);

    function h(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var f = function(t) {
        function e() {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var n = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this)),
                r = s.default.TRANSFORM_MODE === o.TRANSFORM_MODE.STATIC ? a.default : u.default;
            return n.tempDisplayObjectParent = null, n.transform = new r, n.alpha = 1, n.visible = !0, n.renderable = !0, n.parent = null, n.worldAlpha = 1, n.filterArea = null, n._filters = null, n._enabledFilters = null, n._bounds = new l.default, n._boundsID = 0, n._lastBoundsID = -1, n._boundsRect = null, n._localBoundsRect = null, n._mask = null, n._destroyed = !1, n
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.updateTransform = function() {
            this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha, this._bounds.updateID++
        }, e.prototype._recursivePostUpdateTransform = function() {
            this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform)
        }, e.prototype.getBounds = function(t, e) {
            return t || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && this.calculateBounds(), e || (this._boundsRect || (this._boundsRect = new c.Rectangle), e = this._boundsRect), this._bounds.getRectangle(e)
        }, e.prototype.getLocalBounds = function(t) {
            var e = this.transform,
                n = this.parent;
            this.parent = null, this.transform = this._tempDisplayObjectParent.transform, t || (this._localBoundsRect || (this._localBoundsRect = new c.Rectangle), t = this._localBoundsRect);
            var r = this.getBounds(!1, t);
            return this.parent = n, this.transform = e, r
        }, e.prototype.toGlobal = function(t, e) {
            return arguments.length > 2 && void 0 !== arguments[2] && arguments[2] || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(t, e)
        }, e.prototype.toLocal = function(t, e, n, r) {
            return e && (t = e.toGlobal(t, n, r)), r || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(t, n)
        }, e.prototype.renderWebGL = function(t) {}, e.prototype.renderCanvas = function(t) {}, e.prototype.setParent = function(t) {
            if (!t || !t.addChild) throw new Error("setParent: Argument must be a Container");
            return t.addChild(this), t
        }, e.prototype.setTransform = function() {
            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,
                r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1,
                i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0,
                o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0,
                s = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0,
                a = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0,
                u = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0;
            return this.position.x = t, this.position.y = e, this.scale.x = n || 1, this.scale.y = r || 1, this.rotation = i, this.skew.x = o, this.skew.y = s, this.pivot.x = a, this.pivot.y = u, this
        }, e.prototype.destroy = function() {
            this.removeAllListeners(), this.parent && this.parent.removeChild(this), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filterArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0
        }, r(e, [{
            key: "_tempDisplayObjectParent",
            get: function() {
                return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new e), this.tempDisplayObjectParent
            }
        }, {
            key: "x",
            get: function() {
                return this.position.x
            },
            set: function(t) {
                this.transform.position.x = t
            }
        }, {
            key: "y",
            get: function() {
                return this.position.y
            },
            set: function(t) {
                this.transform.position.y = t
            }
        }, {
            key: "worldTransform",
            get: function() {
                return this.transform.worldTransform
            }
        }, {
            key: "localTransform",
            get: function() {
                return this.transform.localTransform
            }
        }, {
            key: "position",
            get: function() {
                return this.transform.position
            },
            set: function(t) {
                this.transform.position.copy(t)
            }
        }, {
            key: "scale",
            get: function() {
                return this.transform.scale
            },
            set: function(t) {
                this.transform.scale.copy(t)
            }
        }, {
            key: "pivot",
            get: function() {
                return this.transform.pivot
            },
            set: function(t) {
                this.transform.pivot.copy(t)
            }
        }, {
            key: "skew",
            get: function() {
                return this.transform.skew
            },
            set: function(t) {
                this.transform.skew.copy(t)
            }
        }, {
            key: "rotation",
            get: function() {
                return this.transform.rotation
            },
            set: function(t) {
                this.transform.rotation = t
            }
        }, {
            key: "worldVisible",
            get: function() {
                var t = this;
                do {
                    if (!t.visible) return !1;
                    t = t.parent
                } while (t);
                return !0
            }
        }, {
            key: "mask",
            get: function() {
                return this._mask
            },
            set: function(t) {
                this._mask && (this._mask.renderable = !0, this._mask.isMask = !1), this._mask = t, this._mask && (this._mask.renderable = !1, this._mask.isMask = !0)
            }
        }, {
            key: "filters",
            get: function() {
                return this._filters && this._filters.slice()
            },
            set: function(t) {
                this._filters = t && t.slice()
            }
        }]), e
    }(i.default);
    e.default = f, f.prototype.displayObjectUpdateTransform = f.prototype.updateTransform
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = n(5),
        s = function(t) {
            function e() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var n = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return n.position = new o.Point(0, 0), n.scale = new o.Point(1, 1), n.skew = new o.ObservablePoint(n.updateSkew, n, 0, 0), n.pivot = new o.Point(0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.updateSkew = function() {
                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x)
            }, e.prototype.updateLocalTransform = function() {
                var t = this.localTransform;
                t.a = this._cx * this.scale.x, t.b = this._sx * this.scale.x, t.c = this._cy * this.scale.y, t.d = this._sy * this.scale.y, t.tx = this.position.x - (this.pivot.x * t.a + this.pivot.y * t.c), t.ty = this.position.y - (this.pivot.x * t.b + this.pivot.y * t.d)
            }, e.prototype.updateTransform = function(t) {
                var e = this.localTransform;
                e.a = this._cx * this.scale.x, e.b = this._sx * this.scale.x, e.c = this._cy * this.scale.y, e.d = this._sy * this.scale.y, e.tx = this.position.x - (this.pivot.x * e.a + this.pivot.y * e.c), e.ty = this.position.y - (this.pivot.x * e.b + this.pivot.y * e.d);
                var n = t.worldTransform,
                    r = this.worldTransform;
                r.a = e.a * n.a + e.b * n.c, r.b = e.a * n.b + e.b * n.d, r.c = e.c * n.a + e.d * n.c, r.d = e.c * n.b + e.d * n.d, r.tx = e.tx * n.a + e.ty * n.c + n.tx, r.ty = e.tx * n.b + e.ty * n.d + n.ty, this._worldID++
            }, e.prototype.setFromMatrix = function(t) {
                t.decompose(this)
            }, i(e, [{
                key: "rotation",
                get: function() {
                    return this._rotation
                },
                set: function(t) {
                    this._rotation = t, this.updateSkew()
                }
            }]), e
        }(((r = n(74)) && r.__esModule ? r : {
            default: r
        }).default);
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = n(5),
        s = function(t) {
            function e() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var n = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return n.position = new o.ObservablePoint(n.onChange, n, 0, 0), n.scale = new o.ObservablePoint(n.onChange, n, 1, 1), n.pivot = new o.ObservablePoint(n.onChange, n, 0, 0), n.skew = new o.ObservablePoint(n.updateSkew, n, 0, 0), n._rotation = 0, n._cx = 1, n._sx = 0, n._cy = 0, n._sy = 1, n._localID = 0, n._currentLocalID = 0, n
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.onChange = function() {
                this._localID++
            }, e.prototype.updateSkew = function() {
                this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x), this._localID++
            }, e.prototype.updateLocalTransform = function() {
                var t = this.localTransform;
                this._localID !== this._currentLocalID && (t.a = this._cx * this.scale._x, t.b = this._sx * this.scale._x, t.c = this._cy * this.scale._y, t.d = this._sy * this.scale._y, t.tx = this.position._x - (this.pivot._x * t.a + this.pivot._y * t.c), t.ty = this.position._y - (this.pivot._x * t.b + this.pivot._y * t.d), this._currentLocalID = this._localID, this._parentID = -1)
            }, e.prototype.updateTransform = function(t) {
                var e = this.localTransform;
                if (this._localID !== this._currentLocalID && (e.a = this._cx * this.scale._x, e.b = this._sx * this.scale._x, e.c = this._cy * this.scale._y, e.d = this._sy * this.scale._y, e.tx = this.position._x - (this.pivot._x * e.a + this.pivot._y * e.c), e.ty = this.position._y - (this.pivot._x * e.b + this.pivot._y * e.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== t._worldID) {
                    var n = t.worldTransform,
                        r = this.worldTransform;
                    r.a = e.a * n.a + e.b * n.c, r.b = e.a * n.b + e.b * n.d, r.c = e.c * n.a + e.d * n.c, r.d = e.c * n.b + e.d * n.d, r.tx = e.tx * n.a + e.ty * n.c + n.tx, r.ty = e.tx * n.b + e.ty * n.d + n.ty, this._parentID = t._worldID, this._worldID++
                }
            }, e.prototype.setFromMatrix = function(t) {
                t.decompose(this), this._localID++
            }, i(e, [{
                key: "rotation",
                get: function() {
                    return this._rotation
                },
                set: function(t) {
                    this._rotation = t, this.updateSkew()
                }
            }]), e
        }(((r = n(74)) && r.__esModule ? r : {
            default: r
        }).default);
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e, n, r, i, o, s, a, u, l) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.lineWidth = e, this.lineAlignment = l, this.nativeLines = a, this.lineColor = n, this.lineAlpha = r, this._lineTint = n, this.fillColor = i, this.fillAlpha = o, this._fillTint = i, this.fill = s, this.holes = [], this.shape = u, this.type = u.type
        }
        return t.prototype.clone = function() {
            return new t(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.fill, this.nativeLines, this.shape)
        }, t.prototype.addHole = function(t) {
            this.holes.push(t)
        }, t.prototype.destroy = function() {
            this.shape = null, this.holes = null
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(75)) && r.__esModule ? r : {
            default: r
        },
        o = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1],
        s = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1],
        a = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1],
        u = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1],
        l = [],
        c = [];

    function h(t) {
        return t < 0 ? -1 : t > 0 ? 1 : 0
    }! function() {
        for (var t = 0; t < 16; t++) {
            var e = [];
            c.push(e);
            for (var n = 0; n < 16; n++)
                for (var r = h(o[t] * o[n] + a[t] * s[n]), f = h(s[t] * o[n] + u[t] * s[n]), d = h(o[t] * a[n] + a[t] * u[n]), p = h(s[t] * a[n] + u[t] * u[n]), v = 0; v < 16; v++)
                    if (o[v] === r && s[v] === f && a[v] === d && u[v] === p) {
                        e.push(v);
                        break
                    }
        }
        for (var _ = 0; _ < 16; _++) {
            var g = new i.default;
            g.set(o[_], s[_], a[_], u[_], 0, 0), l.push(g)
        }
    }();
    var f = {
        E: 0,
        SE: 1,
        S: 2,
        SW: 3,
        W: 4,
        NW: 5,
        N: 6,
        NE: 7,
        MIRROR_VERTICAL: 8,
        MIRROR_HORIZONTAL: 12,
        uX: function(t) {
            return o[t]
        },
        uY: function(t) {
            return s[t]
        },
        vX: function(t) {
            return a[t]
        },
        vY: function(t) {
            return u[t]
        },
        inv: function(t) {
            return 8 & t ? 15 & t : 7 & -t
        },
        add: function(t, e) {
            return c[t][e]
        },
        sub: function(t, e) {
            return c[t][f.inv(e)]
        },
        rotate180: function(t) {
            return 4 ^ t
        },
        isVertical: function(t) {
            return 2 == (3 & t)
        },
        byDirection: function(t, e) {
            return 2 * Math.abs(t) <= Math.abs(e) ? e >= 0 ? f.S : f.N : 2 * Math.abs(e) <= Math.abs(t) ? t > 0 ? f.E : f.W : e > 0 ? t > 0 ? f.SE : f.SW : t > 0 ? f.NE : f.NW
        },
        matrixAppendRotationInv: function(t, e) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                i = l[f.inv(e)];
            i.tx = n, i.ty = r, t.append(i)
        }
    };
    e.default = f
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function() {
            function t(e, n) {
                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                    i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this._x = r, this._y = i, this.cb = e, this.scope = n
            }
            return t.prototype.set = function(t, e) {
                var n = t || 0,
                    r = e || (0 !== e ? n : 0);
                this._x === n && this._y === r || (this._x = n, this._y = r, this.cb.call(this.scope))
            }, t.prototype.copy = function(t) {
                this._x === t.x && this._y === t.y || (this._x = t.x, this._y = t.y, this.cb.call(this.scope))
            }, r(t, [{
                key: "x",
                get: function() {
                    return this._x
                },
                set: function(t) {
                    this._x !== t && (this._x = t, this.cb.call(this.scope))
                }
            }, {
                key: "y",
                get: function() {
                    return this._y
                },
                set: function(t) {
                    this._y !== t && (this._y = t, this.cb.call(this.scope))
                }
            }]), t
        }();
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(2),
        o = n(5),
        s = n(0),
        a = h(n(3)),
        u = h(n(29)),
        l = h(n(80)),
        c = h(n(16));

    function h(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var f = new o.Matrix,
        d = function(t) {
            function e(n, r, l, c) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var h = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return (0, i.sayHello)(n), "number" == typeof r && (r = Object.assign({
                    width: r,
                    height: l || a.default.RENDER_OPTIONS.height
                }, c)), r = Object.assign({}, a.default.RENDER_OPTIONS, r), h.options = r, h.type = s.RENDERER_TYPE.UNKNOWN, h.screen = new o.Rectangle(0, 0, r.width, r.height), h.view = r.view || document.createElement("canvas"), h.resolution = r.resolution || a.default.RESOLUTION, h.transparent = r.transparent, h.autoResize = r.autoResize || !1, h.blendModes = null, h.preserveDrawingBuffer = r.preserveDrawingBuffer, h.clearBeforeRender = r.clearBeforeRender, h.roundPixels = r.roundPixels, h._backgroundColor = 0, h._backgroundColorRgba = [0, 0, 0, 0], h._backgroundColorString = "#000000", h.backgroundColor = r.backgroundColor || h._backgroundColor, h._tempDisplayObjectParent = new u.default, h._lastObjectRendered = h._tempDisplayObjectParent, h
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.resize = function(t, e) {
                this.screen.width = t, this.screen.height = e, this.view.width = t * this.resolution, this.view.height = e * this.resolution, this.autoResize && (this.view.style.width = t + "px", this.view.style.height = e + "px")
            }, e.prototype.generateTexture = function(t, e, n, r) {
                r = r || t.getLocalBounds();
                var i = l.default.create(0 | r.width, 0 | r.height, e, n);
                return f.tx = -r.x, f.ty = -r.y, this.render(t, i, !1, f, !0), i
            }, e.prototype.destroy = function(t) {
                t && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.type = s.RENDERER_TYPE.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoResize = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this.roundPixels = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null
            }, r(e, [{
                key: "width",
                get: function() {
                    return this.view.width
                }
            }, {
                key: "height",
                get: function() {
                    return this.view.height
                }
            }, {
                key: "backgroundColor",
                get: function() {
                    return this._backgroundColor
                },
                set: function(t) {
                    this._backgroundColor = t, this._backgroundColorString = (0, i.hex2string)(t), (0, i.hex2rgb)(t, this._backgroundColorRgba)
                }
            }]), e
        }(c.default);
    e.default = d
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = (r = n(3)) && r.__esModule ? r : {
            default: r
        },
        s = function() {
            function t(e, n, r) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = r || o.default.RESOLUTION, this.resize(e, n)
            }
            return t.prototype.clear = function() {
                this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height)
            }, t.prototype.resize = function(t, e) {
                this.canvas.width = t * this.resolution, this.canvas.height = e * this.resolution
            }, t.prototype.destroy = function() {
                this.context = null, this.canvas = null
            }, i(t, [{
                key: "width",
                get: function() {
                    return this.canvas.width
                },
                set: function(t) {
                    this.canvas.width = t
                }
            }, {
                key: "height",
                get: function() {
                    return this.canvas.height
                },
                set: function(t) {
                    this.canvas.height = t
                }
            }]), t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";

    function r(t) {
        var e = document.createElement("canvas");
        e.width = 6, e.height = 1;
        var n = e.getContext("2d");
        return n.fillStyle = t, n.fillRect(0, 0, 6, 1), e
    }
    e.__esModule = !0, e.default = function() {
        if ("undefined" == typeof document) return !1;
        var t = r("#ff00ff"),
            e = r("#ffff00"),
            n = document.createElement("canvas");
        n.width = 6, n.height = 1;
        var i = n.getContext("2d");
        i.globalCompositeOperation = "multiply", i.drawImage(t, 0, 0), i.drawImage(e, 2, 0);
        var o = i.getImageData(2, 0, 1, 1);
        if (!o) return !1;
        var s = o.data;
        return 255 === s[0] && 0 === s[1] && 0 === s[2]
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = u(n(402)),
        o = n(2),
        s = n(0),
        a = u(n(3));

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var l = {},
        c = function() {
            function t(e, n, r) {
                for (var u in function(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }(this, t), this.vertexSrc = e || t.defaultVertexSrc, this.fragmentSrc = n || t.defaultFragmentSrc, this._blendMode = s.BLEND_MODES.NORMAL, this.uniformData = r || (0, i.default)(this.vertexSrc, this.fragmentSrc, "projectionMatrix|uSampler"), this.uniforms = {}, this.uniformData) this.uniforms[u] = this.uniformData[u].value, this.uniformData[u].type && (this.uniformData[u].type = this.uniformData[u].type.toLowerCase());
                this.glShaders = {}, l[this.vertexSrc + this.fragmentSrc] || (l[this.vertexSrc + this.fragmentSrc] = (0, o.uid)()), this.glShaderKey = l[this.vertexSrc + this.fragmentSrc], this.padding = 4, this.resolution = a.default.FILTER_RESOLUTION, this.enabled = !0, this.autoFit = !0
            }
            return t.prototype.apply = function(t, e, n, r, i) {
                t.applyFilter(this, e, n, r)
            }, r(t, [{
                key: "blendMode",
                get: function() {
                    return this._blendMode
                },
                set: function(t) {
                    this._blendMode = t
                }
            }], [{
                key: "defaultVertexSrc",
                get: function() {
                    return ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform mat3 projectionMatrix;", "uniform mat3 filterMatrix;", "varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "void main(void){", "   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;", "   vTextureCoord = aTextureCoord ;", "}"].join("\n")
                }
            }, {
                key: "defaultFragmentSrc",
                get: function() {
                    return ["varying vec2 vTextureCoord;", "varying vec2 vFilterCoord;", "uniform sampler2D uSampler;", "uniform sampler2D filterSampler;", "void main(void){", "   vec4 masky = texture2D(filterSampler, vFilterCoord);", "   vec4 sample = texture2D(uSampler, vTextureCoord);", "   vec4 color;", "   if(mod(vFilterCoord.x, 1.0) > 0.5)", "   {", "     color = vec4(1.0, 0.0, 0.0, 1.0);", "   }", "   else", "   {", "     color = vec4(0.0, 1.0, 0.0, 1.0);", "   }", "   gl_FragColor = mix(sample, masky, 0.5);", "   gl_FragColor *= sample.a;", "}"].join("\n")
                }
            }]), t
        }();
    e.default = c
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = s(n(165)),
        i = n(5),
        o = (n(12), s(n(171)));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var a = function(t) {
        function e(n) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var r = new i.Matrix,
                o = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n}\n", "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n    float clip = step(3.5,\n        step(maskClamp.x, vMaskCoord.x) +\n        step(maskClamp.y, vMaskCoord.y) +\n        step(vMaskCoord.x, maskClamp.z) +\n        step(vMaskCoord.y, maskClamp.w));\n\n    vec4 original = texture2D(uSampler, vTextureCoord);\n    vec4 masky = texture2D(mask, vMaskCoord);\n\n    original *= (masky.r * masky.a * alpha * clip);\n\n    gl_FragColor = original;\n}\n"));
            return n.renderable = !1, o.maskSprite = n, o.maskMatrix = r, o
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.apply = function(t, e, n) {
            var r = this.maskSprite,
                i = this.maskSprite.texture;
            i.valid && (i.transform || (i.transform = new o.default(i, 0)), i.transform.update(), this.uniforms.mask = i, this.uniforms.otherMatrix = t.calculateSpriteMatrix(this.maskMatrix, r).prepend(i.transform.mapCoord), this.uniforms.alpha = r.worldAlpha, this.uniforms.maskClamp = i.transform.uClampFrame, t.applyFilter(this, e, n))
        }, e
    }(r.default);
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = o(n(9)),
        i = o(n(82));

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var s = function() {
        function t(e, n) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.gl = e, this.vertices = new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), this.interleaved = new Float32Array(16);
            for (var o = 0; o < 4; o++) this.interleaved[4 * o] = this.vertices[2 * o], this.interleaved[4 * o + 1] = this.vertices[2 * o + 1], this.interleaved[4 * o + 2] = this.uvs[2 * o], this.interleaved[4 * o + 3] = this.uvs[2 * o + 1];
            this.indices = (0, i.default)(1), this.vertexBuffer = r.default.GLBuffer.createVertexBuffer(e, this.interleaved, e.STATIC_DRAW), this.indexBuffer = r.default.GLBuffer.createIndexBuffer(e, this.indices, e.STATIC_DRAW), this.vao = new r.default.VertexArrayObject(e, n)
        }
        return t.prototype.initVao = function(t) {
            this.vao.clear().addIndex(this.indexBuffer).addAttribute(this.vertexBuffer, t.attributes.aVertexPosition, this.gl.FLOAT, !1, 16, 0).addAttribute(this.vertexBuffer, t.attributes.aTextureCoord, this.gl.FLOAT, !1, 16, 8)
        }, t.prototype.map = function(t, e) {
            var n = 0,
                r = 0;
            return this.uvs[0] = n, this.uvs[1] = r, this.uvs[2] = n + e.width / t.width, this.uvs[3] = r, this.uvs[4] = n + e.width / t.width, this.uvs[5] = r + e.height / t.height, this.uvs[6] = n, this.uvs[7] = r + e.height / t.height, n = e.x, r = e.y, this.vertices[0] = n, this.vertices[1] = r, this.vertices[2] = n + e.width, this.vertices[3] = r, this.vertices[4] = n + e.width, this.vertices[5] = r + e.height, this.vertices[6] = n, this.vertices[7] = r + e.height, this
        }, t.prototype.upload = function() {
            for (var t = 0; t < 4; t++) this.interleaved[4 * t] = this.vertices[2 * t], this.interleaved[4 * t + 1] = this.vertices[2 * t + 1], this.interleaved[4 * t + 2] = this.uvs[2 * t], this.interleaved[4 * t + 3] = this.uvs[2 * t + 1];
            return this.vertexBuffer.upload(this.interleaved), this
        }, t.prototype.destroy = function() {
            var t = this.gl;
            t.deleteBuffer(this.vertexBuffer), t.deleteBuffer(this.indexBuffer)
        }, t
    }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e, n, r, i, o, s, a, u, l) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.text = e, this.style = n, this.width = r, this.height = i, this.lines = o, this.lineWidths = s, this.lineHeight = a, this.maxLineWidth = u, this.fontProperties = l
        }
        return t.measureText = function(e, n, r) {
            var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : t._canvas;
            r = r || n.wordWrap;
            var o = n.toFontString(),
                s = t.measureFont(o),
                a = i.getContext("2d");
            a.font = o;
            for (var u = (r ? t.wordWrap(e, n, i) : e).split(/(?:\r\n|\r|\n)/), l = new Array(u.length), c = 0, h = 0; h < u.length; h++) {
                var f = a.measureText(u[h]).width + (u[h].length - 1) * n.letterSpacing;
                l[h] = f, c = Math.max(c, f)
            }
            var d = c + n.strokeThickness;
            n.dropShadow && (d += n.dropShadowDistance);
            var p = n.lineHeight || s.fontSize + n.strokeThickness,
                v = Math.max(p, s.fontSize + n.strokeThickness) + (u.length - 1) * (p + n.leading);
            return n.dropShadow && (v += n.dropShadowDistance), new t(e, n, d, v, u, l, p + n.leading, c, s)
        }, t.wordWrap = function(e, n) {
            for (var r = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t._canvas).getContext("2d"), i = 0, o = "", s = "", a = {}, u = n.letterSpacing, l = n.whiteSpace, c = t.collapseSpaces(l), h = t.collapseNewlines(l), f = !c, d = n.wordWrapWidth + u, p = t.tokenize(e), v = 0; v < p.length; v++) {
                var _ = p[v];
                if (t.isNewline(_)) {
                    if (!h) {
                        s += t.addLine(o), f = !c, o = "", i = 0;
                        continue
                    }
                    _ = " "
                }
                if (c) {
                    var g = t.isBreakingSpace(_),
                        y = t.isBreakingSpace(o[o.length - 1]);
                    if (g && y) continue
                }
                var m = t.getFromCache(_, u, a, r);
                if (m > d)
                    if ("" !== o && (s += t.addLine(o), o = "", i = 0), t.canBreakWords(_, n.breakWords))
                        for (var b = _.split(""), x = 0; x < b.length; x++) {
                            for (var w = b[x], T = 1; b[x + T];) {
                                var E = b[x + T],
                                    S = w[w.length - 1];
                                if (t.canBreakChars(S, E, _, x, n.breakWords)) break;
                                w += E, T++
                            }
                            x += w.length - 1;
                            var P = t.getFromCache(w, u, a, r);
                            P + i > d && (s += t.addLine(o), f = !1, o = "", i = 0), o += w, i += P
                        } else {
                            o.length > 0 && (s += t.addLine(o), o = "", i = 0);
                            var O = v === p.length - 1;
                            s += t.addLine(_, !O), f = !1, o = "", i = 0
                        } else m + i > d && (f = !1, s += t.addLine(o), o = "", i = 0), (o.length > 0 || !t.isBreakingSpace(_) || f) && (o += _, i += m)
            }
            return s + t.addLine(o, !1)
        }, t.addLine = function(e) {
            var n = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
            return e = t.trimRight(e), n ? e + "\n" : e
        }, t.getFromCache = function(t, e, n, r) {
            var i = n[t];
            if (void 0 === i) {
                var o = t.length * e;
                i = r.measureText(t).width + o, n[t] = i
            }
            return i
        }, t.collapseSpaces = function(t) {
            return "normal" === t || "pre-line" === t
        }, t.collapseNewlines = function(t) {
            return "normal" === t
        }, t.trimRight = function(e) {
            if ("string" != typeof e) return "";
            for (var n = e.length - 1; n >= 0; n--) {
                var r = e[n];
                if (!t.isBreakingSpace(r)) break;
                e = e.slice(0, -1)
            }
            return e
        }, t.isNewline = function(e) {
            return "string" == typeof e && t._newlines.indexOf(e.charCodeAt(0)) >= 0
        }, t.isBreakingSpace = function(e) {
            return "string" == typeof e && t._breakingSpaces.indexOf(e.charCodeAt(0)) >= 0
        }, t.tokenize = function(e) {
            var n = [],
                r = "";
            if ("string" != typeof e) return n;
            for (var i = 0; i < e.length; i++) {
                var o = e[i];
                t.isBreakingSpace(o) || t.isNewline(o) ? ("" !== r && (n.push(r), r = ""), n.push(o)) : r += o
            }
            return "" !== r && n.push(r), n
        }, t.canBreakWords = function(t, e) {
            return e
        }, t.canBreakChars = function(t, e, n, r, i) {
            return !0
        }, t.measureFont = function(e) {
            if (t._fonts[e]) return t._fonts[e];
            var n = {},
                r = t._canvas,
                i = t._context;
            i.font = e;
            var o = t.METRICS_STRING + t.BASELINE_SYMBOL,
                s = Math.ceil(i.measureText(o).width),
                a = Math.ceil(i.measureText(t.BASELINE_SYMBOL).width),
                u = 2 * a;
            a = a * t.BASELINE_MULTIPLIER | 0, r.width = s, r.height = u, i.fillStyle = "#f00", i.fillRect(0, 0, s, u), i.font = e, i.textBaseline = "alphabetic", i.fillStyle = "#000", i.fillText(o, 0, a);
            var l = i.getImageData(0, 0, s, u).data,
                c = l.length,
                h = 4 * s,
                f = 0,
                d = 0,
                p = !1;
            for (f = 0; f < a; ++f) {
                for (var v = 0; v < h; v += 4)
                    if (255 !== l[d + v]) {
                        p = !0;
                        break
                    }
                if (p) break;
                d += h
            }
            for (n.ascent = a - f, d = c - h, p = !1, f = u; f > a; --f) {
                for (var _ = 0; _ < h; _ += 4)
                    if (255 !== l[d + _]) {
                        p = !0;
                        break
                    }
                if (p) break;
                d -= h
            }
            return n.descent = f - a, n.fontSize = n.ascent + n.descent, t._fonts[e] = n, n
        }, t.clearMetrics = function() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
            e ? delete t._fonts[e] : t._fonts = {}
        }, t
    }();
    e.default = r;
    var i = document.createElement("canvas");
    i.width = i.height = 10, r._canvas = i, r._context = i.getContext("2d"), r._fonts = {}, r.METRICS_STRING = "|Éq", r.BASELINE_SYMBOL = "M", r.BASELINE_MULTIPLIER = 1.4, r._newlines = [10, 13], r._breakingSpaces = [9, 32, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8200, 8201, 8202, 8287, 12288]
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(0),
        o = n(2),
        s = {
            align: "left",
            breakWords: !1,
            dropShadow: !1,
            dropShadowAlpha: 1,
            dropShadowAngle: Math.PI / 6,
            dropShadowBlur: 0,
            dropShadowColor: "black",
            dropShadowDistance: 5,
            fill: "black",
            fillGradientType: i.TEXT_GRADIENT.LINEAR_VERTICAL,
            fillGradientStops: [],
            fontFamily: "Arial",
            fontSize: 26,
            fontStyle: "normal",
            fontVariant: "normal",
            fontWeight: "normal",
            letterSpacing: 0,
            lineHeight: 0,
            lineJoin: "miter",
            miterLimit: 10,
            padding: 0,
            stroke: "black",
            strokeThickness: 0,
            textBaseline: "alphabetic",
            trim: !1,
            whiteSpace: "pre",
            wordWrap: !1,
            wordWrapWidth: 100,
            leading: 0
        },
        a = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.styleID = 0, this.reset(), c(this, e, e)
            }
            return t.prototype.clone = function() {
                var e = {};
                return c(e, this, s), new t(e)
            }, t.prototype.reset = function() {
                c(this, s, s)
            }, t.prototype.toFontString = function() {
                var t = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize,
                    e = this.fontFamily;
                Array.isArray(this.fontFamily) || (e = this.fontFamily.split(","));
                for (var n = e.length - 1; n >= 0; n--) {
                    var r = e[n].trim();
                    /([\"\'])[^\'\"]+\1/.test(r) || (r = '"' + r + '"'), e[n] = r
                }
                return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + t + " " + e.join(",")
            }, r(t, [{
                key: "align",
                get: function() {
                    return this._align
                },
                set: function(t) {
                    this._align !== t && (this._align = t, this.styleID++)
                }
            }, {
                key: "breakWords",
                get: function() {
                    return this._breakWords
                },
                set: function(t) {
                    this._breakWords !== t && (this._breakWords = t, this.styleID++)
                }
            }, {
                key: "dropShadow",
                get: function() {
                    return this._dropShadow
                },
                set: function(t) {
                    this._dropShadow !== t && (this._dropShadow = t, this.styleID++)
                }
            }, {
                key: "dropShadowAlpha",
                get: function() {
                    return this._dropShadowAlpha
                },
                set: function(t) {
                    this._dropShadowAlpha !== t && (this._dropShadowAlpha = t, this.styleID++)
                }
            }, {
                key: "dropShadowAngle",
                get: function() {
                    return this._dropShadowAngle
                },
                set: function(t) {
                    this._dropShadowAngle !== t && (this._dropShadowAngle = t, this.styleID++)
                }
            }, {
                key: "dropShadowBlur",
                get: function() {
                    return this._dropShadowBlur
                },
                set: function(t) {
                    this._dropShadowBlur !== t && (this._dropShadowBlur = t, this.styleID++)
                }
            }, {
                key: "dropShadowColor",
                get: function() {
                    return this._dropShadowColor
                },
                set: function(t) {
                    var e = l(t);
                    this._dropShadowColor !== e && (this._dropShadowColor = e, this.styleID++)
                }
            }, {
                key: "dropShadowDistance",
                get: function() {
                    return this._dropShadowDistance
                },
                set: function(t) {
                    this._dropShadowDistance !== t && (this._dropShadowDistance = t, this.styleID++)
                }
            }, {
                key: "fill",
                get: function() {
                    return this._fill
                },
                set: function(t) {
                    var e = l(t);
                    this._fill !== e && (this._fill = e, this.styleID++)
                }
            }, {
                key: "fillGradientType",
                get: function() {
                    return this._fillGradientType
                },
                set: function(t) {
                    this._fillGradientType !== t && (this._fillGradientType = t, this.styleID++)
                }
            }, {
                key: "fillGradientStops",
                get: function() {
                    return this._fillGradientStops
                },
                set: function(t) {
                    (function(t, e) {
                        if (!Array.isArray(t) || !Array.isArray(e)) return !1;
                        if (t.length !== e.length) return !1;
                        for (var n = 0; n < t.length; ++n)
                            if (t[n] !== e[n]) return !1;
                        return !0
                    })(this._fillGradientStops, t) || (this._fillGradientStops = t, this.styleID++)
                }
            }, {
                key: "fontFamily",
                get: function() {
                    return this._fontFamily
                },
                set: function(t) {
                    this.fontFamily !== t && (this._fontFamily = t, this.styleID++)
                }
            }, {
                key: "fontSize",
                get: function() {
                    return this._fontSize
                },
                set: function(t) {
                    this._fontSize !== t && (this._fontSize = t, this.styleID++)
                }
            }, {
                key: "fontStyle",
                get: function() {
                    return this._fontStyle
                },
                set: function(t) {
                    this._fontStyle !== t && (this._fontStyle = t, this.styleID++)
                }
            }, {
                key: "fontVariant",
                get: function() {
                    return this._fontVariant
                },
                set: function(t) {
                    this._fontVariant !== t && (this._fontVariant = t, this.styleID++)
                }
            }, {
                key: "fontWeight",
                get: function() {
                    return this._fontWeight
                },
                set: function(t) {
                    this._fontWeight !== t && (this._fontWeight = t, this.styleID++)
                }
            }, {
                key: "letterSpacing",
                get: function() {
                    return this._letterSpacing
                },
                set: function(t) {
                    this._letterSpacing !== t && (this._letterSpacing = t, this.styleID++)
                }
            }, {
                key: "lineHeight",
                get: function() {
                    return this._lineHeight
                },
                set: function(t) {
                    this._lineHeight !== t && (this._lineHeight = t, this.styleID++)
                }
            }, {
                key: "leading",
                get: function() {
                    return this._leading
                },
                set: function(t) {
                    this._leading !== t && (this._leading = t, this.styleID++)
                }
            }, {
                key: "lineJoin",
                get: function() {
                    return this._lineJoin
                },
                set: function(t) {
                    this._lineJoin !== t && (this._lineJoin = t, this.styleID++)
                }
            }, {
                key: "miterLimit",
                get: function() {
                    return this._miterLimit
                },
                set: function(t) {
                    this._miterLimit !== t && (this._miterLimit = t, this.styleID++)
                }
            }, {
                key: "padding",
                get: function() {
                    return this._padding
                },
                set: function(t) {
                    this._padding !== t && (this._padding = t, this.styleID++)
                }
            }, {
                key: "stroke",
                get: function() {
                    return this._stroke
                },
                set: function(t) {
                    var e = l(t);
                    this._stroke !== e && (this._stroke = e, this.styleID++)
                }
            }, {
                key: "strokeThickness",
                get: function() {
                    return this._strokeThickness
                },
                set: function(t) {
                    this._strokeThickness !== t && (this._strokeThickness = t, this.styleID++)
                }
            }, {
                key: "textBaseline",
                get: function() {
                    return this._textBaseline
                },
                set: function(t) {
                    this._textBaseline !== t && (this._textBaseline = t, this.styleID++)
                }
            }, {
                key: "trim",
                get: function() {
                    return this._trim
                },
                set: function(t) {
                    this._trim !== t && (this._trim = t, this.styleID++)
                }
            }, {
                key: "whiteSpace",
                get: function() {
                    return this._whiteSpace
                },
                set: function(t) {
                    this._whiteSpace !== t && (this._whiteSpace = t, this.styleID++)
                }
            }, {
                key: "wordWrap",
                get: function() {
                    return this._wordWrap
                },
                set: function(t) {
                    this._wordWrap !== t && (this._wordWrap = t, this.styleID++)
                }
            }, {
                key: "wordWrapWidth",
                get: function() {
                    return this._wordWrapWidth
                },
                set: function(t) {
                    this._wordWrapWidth !== t && (this._wordWrapWidth = t, this.styleID++)
                }
            }]), t
        }();

    function u(t) {
        return "number" == typeof t ? (0, o.hex2string)(t) : ("string" == typeof t && 0 === t.indexOf("0x") && (t = t.replace("0x", "#")), t)
    }

    function l(t) {
        if (Array.isArray(t)) {
            for (var e = 0; e < t.length; ++e) t[e] = u(t[e]);
            return t
        }
        return u(t)
    }

    function c(t, e, n) {
        for (var r in n) Array.isArray(e[r]) ? t[r] = e[r].slice() : t[r] = e[r]
    }
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = o(n(22)),
        i = o(n(3));

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var s = function(t) {
        function e() {
            var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 100,
                r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                o = arguments[2],
                s = arguments[3];
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var a = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, null, o));
            return a.resolution = s || i.default.RESOLUTION, a.width = Math.ceil(n), a.height = Math.ceil(r), a.realWidth = a.width * a.resolution, a.realHeight = a.height * a.resolution, a.scaleMode = void 0 !== o ? o : i.default.SCALE_MODE, a.hasLoaded = !0, a._glRenderTargets = {}, a._canvasRenderTarget = null, a.valid = !1, a
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.resize = function(t, e) {
            t = Math.ceil(t), e = Math.ceil(e), t === this.width && e === this.height || (this.valid = t > 0 && e > 0, this.width = t, this.height = e, this.realWidth = this.width * this.resolution, this.realHeight = this.height * this.resolution, this.valid && this.emit("update", this))
        }, e.prototype.destroy = function() {
            t.prototype.destroy.call(this, !0), this.renderer = null
        }, e
    }(r.default);
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = (r = n(75)) && r.__esModule ? r : {
            default: r
        },
        s = new o.default,
        a = function() {
            function t(e, n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this._texture = e, this.mapCoord = new o.default, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._lastTextureID = -1, this.clampOffset = 0, this.clampMargin = void 0 === n ? .5 : n
            }
            return t.prototype.multiplyUvs = function(t, e) {
                void 0 === e && (e = t);
                for (var n = this.mapCoord, r = 0; r < t.length; r += 2) {
                    var i = t[r],
                        o = t[r + 1];
                    e[r] = i * n.a + o * n.c + n.tx, e[r + 1] = i * n.b + o * n.d + n.ty
                }
                return e
            }, t.prototype.update = function(t) {
                var e = this._texture;
                if (!e || !e.valid) return !1;
                if (!t && this._lastTextureID === e._updateID) return !1;
                this._lastTextureID = e._updateID;
                var n = e._uvs;
                this.mapCoord.set(n.x1 - n.x0, n.y1 - n.y0, n.x3 - n.x0, n.y3 - n.y0, n.x0, n.y0);
                var r = e.orig,
                    i = e.trim;
                i && (s.set(r.width / i.width, 0, 0, r.height / i.height, -i.x / i.width, -i.y / i.height), this.mapCoord.append(s));
                var o = e.baseTexture,
                    a = this.uClampFrame,
                    u = this.clampMargin / o.resolution,
                    l = this.clampOffset;
                return a[0] = (e._frame.x + u + l) / o.width, a[1] = (e._frame.y + u + l) / o.height, a[2] = (e._frame.x + e._frame.width - u + l) / o.width, a[3] = (e._frame.y + e._frame.height - u + l) / o.height, this.uClampOffset[0] = l / o.realWidth, this.uClampOffset[1] = l / o.realHeight, !0
            }, i(t, [{
                key: "texture",
                get: function() {
                    return this._texture
                },
                set: function(t) {
                    this._texture = t, this._lastTextureID = -1
                }
            }]), t
        }();
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(160)) && r.__esModule ? r : {
            default: r
        },
        o = function() {
            function t() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsUint32 = new Uint32Array(4)
            }
            return t.prototype.set = function(t, e, n) {
                var r = e.width,
                    o = e.height;
                if (n) {
                    var s = t.width / 2 / r,
                        a = t.height / 2 / o,
                        u = t.x / r + s,
                        l = t.y / o + a;
                    n = i.default.add(n, i.default.NW), this.x0 = u + s * i.default.uX(n), this.y0 = l + a * i.default.uY(n), n = i.default.add(n, 2), this.x1 = u + s * i.default.uX(n), this.y1 = l + a * i.default.uY(n), n = i.default.add(n, 2), this.x2 = u + s * i.default.uX(n), this.y2 = l + a * i.default.uY(n), n = i.default.add(n, 2), this.x3 = u + s * i.default.uX(n), this.y3 = l + a * i.default.uY(n)
                } else this.x0 = t.x / r, this.y0 = t.y / o, this.x1 = (t.x + t.width) / r, this.y1 = t.y / o, this.x2 = (t.x + t.width) / r, this.y2 = (t.y + t.height) / o, this.x3 = t.x / r, this.y3 = (t.y + t.height) / o;
                this.uvsUint32[0] = (65535 * this.y0 & 65535) << 16 | 65535 * this.x0 & 65535, this.uvsUint32[1] = (65535 * this.y1 & 65535) << 16 | 65535 * this.x1 & 65535, this.uvsUint32[2] = (65535 * this.y2 & 65535) << 16 | 65535 * this.x2 & 65535, this.uvsUint32[3] = (65535 * this.y3 & 65535) << 16 | 65535 * this.x3 & 65535
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = l(n(22)),
        o = n(2),
        s = n(81),
        a = n(0),
        u = l(n(174));

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var c = function(t) {
        function e(n, r) {
            if (function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), !n) throw new Error("No video source element specified.");
            (n.readyState === n.HAVE_ENOUGH_DATA || n.readyState === n.HAVE_FUTURE_DATA) && n.width && n.height && (n.complete = !0);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n, r));
            return i.width = n.videoWidth, i.height = n.videoHeight, i._autoUpdate = !0, i._isAutoUpdating = !1, i.autoPlay = !0, i.update = i.update.bind(i), i._onCanPlay = i._onCanPlay.bind(i), n.addEventListener("play", i._onPlayStart.bind(i)), n.addEventListener("pause", i._onPlayStop.bind(i)), i.hasLoaded = !1, i.__loaded = !1, i._isSourceReady() ? i._onCanPlay() : (n.addEventListener("canplay", i._onCanPlay), n.addEventListener("canplaythrough", i._onCanPlay)), i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype._isSourcePlaying = function() {
            var t = this.source;
            return t.currentTime > 0 && !1 === t.paused && !1 === t.ended && t.readyState > 2
        }, e.prototype._isSourceReady = function() {
            return 3 === this.source.readyState || 4 === this.source.readyState
        }, e.prototype._onPlayStart = function() {
            this.hasLoaded || this._onCanPlay(), !this._isAutoUpdating && this.autoUpdate && (s.shared.add(this.update, this, a.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0)
        }, e.prototype._onPlayStop = function() {
            this._isAutoUpdating && (s.shared.remove(this.update, this), this._isAutoUpdating = !1)
        }, e.prototype._onCanPlay = function() {
            this.hasLoaded = !0, this.source && (this.source.removeEventListener("canplay", this._onCanPlay), this.source.removeEventListener("canplaythrough", this._onCanPlay), this.width = this.source.videoWidth, this.height = this.source.videoHeight, this.__loaded || (this.__loaded = !0, this.emit("loaded", this)), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && this.source.play())
        }, e.prototype.destroy = function() {
            this._isAutoUpdating && s.shared.remove(this.update, this), this.source && this.source._pixiId && (i.default.removeFromCache(this.source._pixiId), delete this.source._pixiId, this.source.pause(), this.source.src = "", this.source.load()), t.prototype.destroy.call(this)
        }, e.fromVideo = function(t, n) {
            t._pixiId || (t._pixiId = "video_" + (0, o.uid)());
            var r = o.BaseTextureCache[t._pixiId];
            return r || (r = new e(t, n), i.default.addToCache(r, t._pixiId)), r
        }, e.fromUrl = function(t, n, r) {
            var i = document.createElement("video");
            i.setAttribute("webkit-playsinline", ""), i.setAttribute("playsinline", "");
            var o = Array.isArray(t) ? t[0].src || t[0] : t.src || t;
            if (void 0 === r && 0 !== o.indexOf("data:") ? i.crossOrigin = (0, u.default)(o) : r && (i.crossOrigin = "string" == typeof r ? r : "anonymous"), Array.isArray(t))
                for (var s = 0; s < t.length; ++s) i.appendChild(h(t[s].src || t[s], t[s].mime));
            else i.appendChild(h(o, t.mime));
            return i.load(), e.fromVideo(i, n)
        }, r(e, [{
            key: "autoUpdate",
            get: function() {
                return this._autoUpdate
            },
            set: function(t) {
                t !== this._autoUpdate && (this._autoUpdate = t, !this._autoUpdate && this._isAutoUpdating ? (s.shared.remove(this.update, this), this._isAutoUpdating = !1) : this._autoUpdate && !this._isAutoUpdating && (s.shared.add(this.update, this, a.UPDATE_PRIORITY.HIGH), this._isAutoUpdating = !0))
            }
        }]), e
    }(i.default);

    function h(t, e) {
        e || (e = "video/" + t.substr(t.lastIndexOf(".") + 1));
        var n = document.createElement("source");
        return n.src = t, n.type = e, n
    }
    e.default = c, c.fromUrls = c.fromUrl
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : window.location;
        if (0 === t.indexOf("data:")) return "";
        e = e || window.location, o || (o = document.createElement("a")), o.href = t;
        var n = !(t = i.default.parse(o.href)).port && "" === e.port || t.port === e.port;
        return t.hostname === e.hostname && n && t.protocol === e.protocol ? "" : "anonymous"
    };
    var r, i = (r = n(195)) && r.__esModule ? r : {
            default: r
        },
        o = void 0
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.BitmapText = e.TilingSpriteRenderer = e.TilingSprite = e.AnimatedSprite = void 0;
    var r = n(429);
    Object.defineProperty(e, "AnimatedSprite", {
        enumerable: !0,
        get: function() {
            return a(r).default
        }
    });
    var i = n(431);
    Object.defineProperty(e, "TilingSprite", {
        enumerable: !0,
        get: function() {
            return a(i).default
        }
    });
    var o = n(435);
    Object.defineProperty(e, "TilingSpriteRenderer", {
        enumerable: !0,
        get: function() {
            return a(o).default
        }
    });
    var s = n(430);

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "BitmapText", {
        enumerable: !0,
        get: function() {
            return a(s).default
        }
    }), n(432), n(433), n(434)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = u(n(179)),
        s = u(n(178)),
        a = u(n(180));

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var l = function(t) {
        function e(n, r, a, u) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e), u = u || 5;
            var l = (0, o.default)(u, !0),
                c = (0, s.default)(u),
                h = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, l, c));
            return h.resolution = a || i.settings.RESOLUTION, h._quality = 0, h.quality = r || 4, h.strength = n || 8, h.firstRun = !0, h
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.apply = function(t, e, n, r) {
            if (this.firstRun) {
                var i = t.renderer.gl,
                    u = (0, a.default)(i);
                this.vertexSrc = (0, o.default)(u, !0), this.fragmentSrc = (0, s.default)(u), this.firstRun = !1
            }
            if (this.uniforms.strength = 1 / n.size.width * (n.size.width / e.size.width), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) t.applyFilter(this, e, n, r);
            else {
                for (var l = t.getRenderTarget(!0), c = e, h = l, f = 0; f < this.passes - 1; f++) {
                    t.applyFilter(this, c, h, !0);
                    var d = h;
                    h = c, c = d
                }
                t.applyFilter(this, c, n, r), t.returnRenderTarget(l)
            }
        }, r(e, [{
            key: "blur",
            get: function() {
                return this.strength
            },
            set: function(t) {
                this.padding = 2 * Math.abs(t), this.strength = t
            }
        }, {
            key: "quality",
            get: function() {
                return this._quality
            },
            set: function(t) {
                this._quality = t, this.passes = t
            }
        }]), e
    }(i.Filter);
    e.default = l
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = u(n(179)),
        s = u(n(178)),
        a = u(n(180));

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var l = function(t) {
        function e(n, r, a, u) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e), u = u || 5;
            var l = (0, o.default)(u, !1),
                c = (0, s.default)(u),
                h = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, l, c));
            return h.resolution = a || i.settings.RESOLUTION, h._quality = 0, h.quality = r || 4, h.strength = n || 8, h.firstRun = !0, h
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.apply = function(t, e, n, r) {
            if (this.firstRun) {
                var i = t.renderer.gl,
                    u = (0, a.default)(i);
                this.vertexSrc = (0, o.default)(u, !1), this.fragmentSrc = (0, s.default)(u), this.firstRun = !1
            }
            if (this.uniforms.strength = 1 / n.size.height * (n.size.height / e.size.height), this.uniforms.strength *= this.strength, this.uniforms.strength /= this.passes, 1 === this.passes) t.applyFilter(this, e, n, r);
            else {
                for (var l = t.getRenderTarget(!0), c = e, h = l, f = 0; f < this.passes - 1; f++) {
                    t.applyFilter(this, c, h, !0);
                    var d = h;
                    h = c, c = d
                }
                t.applyFilter(this, c, n, r), t.returnRenderTarget(l)
            }
        }, r(e, [{
            key: "blur",
            get: function() {
                return this.strength
            },
            set: function(t) {
                this.padding = 2 * Math.abs(t), this.strength = t
            }
        }, {
            key: "quality",
            get: function() {
                return this._quality
            },
            set: function(t) {
                this._quality = t, this.passes = t
            }
        }]), e
    }(i.Filter);
    e.default = l
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        for (var e = r[t], n = e.length, o = i, s = "", a = void 0, u = 0; u < t; u++) {
            var l = "gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;".replace("%index%", u);
            a = u, u >= n && (a = t - u - 1), s += l = l.replace("%value%", e[a]), s += "\n"
        }
        return (o = o.replace("%blur%", s)).replace("%size%", t)
    };
    var r = {
            5: [.153388, .221461, .250301],
            7: [.071303, .131514, .189879, .214607],
            9: [.028532, .067234, .124009, .179044, .20236],
            11: [.0093, .028002, .065984, .121703, .175713, .198596],
            13: [.002406, .009255, .027867, .065666, .121117, .174868, .197641],
            15: [489e-6, .002403, .009246, .02784, .065602, .120999, .174697, .197448]
        },
        i = ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", "    gl_FragColor = vec4(0.0);", "    %blur%", "}"].join("\n")
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e) {
        var n = Math.ceil(t / 2),
            i = r,
            o = "",
            s = void 0;
        s = e ? "vBlurTexCoords[%index%] = aTextureCoord + vec2(%sampleIndex% * strength, 0.0);" : "vBlurTexCoords[%index%] = aTextureCoord + vec2(0.0, %sampleIndex% * strength);";
        for (var a = 0; a < t; a++) {
            var u = s.replace("%index%", a);
            o += u = u.replace("%sampleIndex%", a - (n - 1) + ".0"), o += "\n"
        }
        return (i = i.replace("%blur%", o)).replace("%size%", t)
    };
    var r = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform float strength;", "uniform mat3 projectionMatrix;", "varying vec2 vBlurTexCoords[%size%];", "void main(void)", "{", "gl_Position = vec4((projectionMatrix * vec3((aVertexPosition), 1.0)).xy, 0.0, 1.0);", "%blur%", "}"].join("\n")
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        for (var e = t.getParameter(t.MAX_VARYING_VECTORS), n = 15; n > e;) n -= 2;
        return n
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = function() {
            function t() {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.global = new i.Point, this.target = null, this.originalEvent = null, this.identifier = null, this.isPrimary = !1, this.button = 0, this.buttons = 0, this.width = 0, this.height = 0, this.tiltX = 0, this.tiltY = 0, this.pointerType = null, this.pressure = 0, this.rotationAngle = 0, this.twist = 0, this.tangentialPressure = 0
            }
            return t.prototype.getLocalPosition = function(t, e, n) {
                return t.worldTransform.applyInverse(n || this.global, e)
            }, t.prototype.copyEvent = function(t) {
                t.isPrimary && (this.isPrimary = !0), this.button = t.button, this.buttons = Number.isInteger(t.buttons) ? t.buttons : t.which, this.width = t.width, this.height = t.height, this.tiltX = t.tiltX, this.tiltY = t.tiltY, this.pointerType = t.pointerType, this.pressure = t.pressure, this.rotationAngle = t.rotationAngle, this.twist = t.twist || 0, this.tangentialPressure = t.tangentialPressure || 0
            }, t.prototype.reset = function() {
                this.isPrimary = !1
            }, r(t, [{
                key: "pointerId",
                get: function() {
                    return this.identifier
                }
            }]), t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t() {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.stopped = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null
        }
        return t.prototype.stopPropagation = function() {
            this.stopped = !0
        }, t.prototype.reset = function() {
            this.stopped = !1, this.currentTarget = null, this.target = null
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this._pointerId = e, this._flags = t.FLAGS.NONE
            }
            return t.prototype._doSet = function(t, e) {
                this._flags = e ? this._flags | t : this._flags & ~t
            }, r(t, [{
                key: "pointerId",
                get: function() {
                    return this._pointerId
                }
            }, {
                key: "flags",
                get: function() {
                    return this._flags
                },
                set: function(t) {
                    this._flags = t
                }
            }, {
                key: "none",
                get: function() {
                    return this._flags === this.constructor.FLAGS.NONE
                }
            }, {
                key: "over",
                get: function() {
                    return 0 != (this._flags & this.constructor.FLAGS.OVER)
                },
                set: function(t) {
                    this._doSet(this.constructor.FLAGS.OVER, t)
                }
            }, {
                key: "rightDown",
                get: function() {
                    return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN)
                },
                set: function(t) {
                    this._doSet(this.constructor.FLAGS.RIGHT_DOWN, t)
                }
            }, {
                key: "leftDown",
                get: function() {
                    return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN)
                },
                set: function(t) {
                    this._doSet(this.constructor.FLAGS.LEFT_DOWN, t)
                }
            }]), t
        }();
    e.default = i, i.FLAGS = Object.freeze({
        NONE: 0,
        OVER: 1,
        LEFT_DOWN: 2,
        RIGHT_DOWN: 4
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = {
        interactive: !1,
        interactiveChildren: !0,
        hitArea: null,
        get buttonMode() {
            return "pointer" === this.cursor
        },
        set buttonMode(t) {
            t ? this.cursor = "pointer" : "pointer" === this.cursor && (this.cursor = null)
        },
        cursor: null,
        get trackedPointers() {
            return void 0 === this._trackedPointers && (this._trackedPointers = {}), this._trackedPointers
        },
        _trackedPointers: void 0
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.parse = s, e.default = function() {
        return function(t, e) {
            if (t.data && t.type === i.Resource.TYPE.XML)
                if (0 !== t.data.getElementsByTagName("page").length && 0 !== t.data.getElementsByTagName("info").length && null !== t.data.getElementsByTagName("info")[0].getAttribute("face")) {
                    var n = t.isDataUrl ? "" : r.dirname(t.url);
                    t.isDataUrl && ("." === n && (n = ""), this.baseUrl && n && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (n += "/")), (n = n.replace(this.baseUrl, "")) && "/" !== n.charAt(n.length - 1) && (n += "/");
                    for (var o = t.data.getElementsByTagName("page"), a = {}, u = function(n) {
                            a[n.metadata.pageFile] = n.texture, Object.keys(a).length === o.length && (s(t, a), e())
                        }, l = 0; l < o.length; ++l) {
                        var c = o[l].getAttribute("file"),
                            h = n + c,
                            f = !1;
                        for (var d in this.resources)
                            if (this.resources[d].url === h) {
                                this.resources[d].metadata.pageFile = c, u(this.resources[d]), f = !0;
                                break
                            }
                        if (!f) {
                            var p = {
                                crossOrigin: t.crossOrigin,
                                loadType: i.Resource.LOAD_TYPE.IMAGE,
                                metadata: Object.assign({
                                    pageFile: c
                                }, t.metadata.imageMetadata),
                                parentResource: t
                            };
                            this.add(h, p, u)
                        }
                    }
                } else e();
            else e()
        }
    };
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(12)),
        i = n(33),
        o = n(175);

    function s(t, e) {
        t.bitmapFont = o.BitmapText.registerFont(t.data, e)
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function() {
        return function(t, e) {
            var n = t.name + "_image";
            if (t.data && t.type === i.Resource.TYPE.JSON && t.data.frames && !this.resources[n]) {
                var r = {
                        crossOrigin: t.crossOrigin,
                        metadata: t.metadata.imageMetadata,
                        parentResource: t
                    },
                    o = a(t, this.baseUrl);
                this.add(n, o, r, function(n) {
                    if (n.error) e(n.error);
                    else {
                        var r = new s.Spritesheet(n.texture.baseTexture, t.data, t.url);
                        r.parse(function() {
                            t.spritesheet = r, t.textures = r.textures, e()
                        })
                    }
                })
            } else e()
        }
    }, e.getResourcePath = a;
    var r, i = n(33),
        o = (r = n(195)) && r.__esModule ? r : {
            default: r
        },
        s = n(1);

    function a(t, e) {
        return t.isDataUrl ? t.data.meta.image : o.default.resolve(t.url.replace(e, ""), t.data.meta.image)
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function() {
        return function(t, e) {
            t.data && t.type === i.Resource.TYPE.IMAGE && (t.texture = o.default.fromLoader(t.data, t.url, t.name)), e()
        }
    };
    var r, i = n(33),
        o = (r = n(15)) && r.__esModule ? r : {
            default: r
        }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(32)) && r.__esModule ? r : {
            default: r
        },
        o = function(t) {
            function e(n, r, o) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var s = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return s._ready = !0, s.verticesX = r || 10, s.verticesY = o || 10, s.drawMode = i.default.DRAW_MODES.TRIANGLES, s.refresh(), s
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype._refresh = function() {
                for (var t = this._texture, e = this.verticesX * this.verticesY, n = [], r = [], i = [], o = this.verticesX - 1, s = this.verticesY - 1, a = t.width / o, u = t.height / s, l = 0; l < e; l++) {
                    var c = l % this.verticesX,
                        h = l / this.verticesX | 0;
                    n.push(c * a, h * u), r.push(c / o, h / s)
                }
                for (var f = o * s, d = 0; d < f; d++) {
                    var p = d % o,
                        v = d / o | 0,
                        _ = v * this.verticesX + p,
                        g = v * this.verticesX + p + 1,
                        y = (v + 1) * this.verticesX + p,
                        m = (v + 1) * this.verticesX + p + 1;
                    i.push(_, g, y), i.push(g, m, y)
                }
                this.vertices = new Float32Array(n), this.uvs = new Float32Array(r), this.colors = new Float32Array([]), this.indices = new Uint16Array(i), this.dirty++, this.indexDirty++, this.multiplyUvs()
            }, e.prototype._onTextureUpdate = function() {
                i.default.prototype._onTextureUpdate.call(this), this._ready && this.refresh()
            }, e
        }(i.default);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.maxItemsPerFrame = e, this.itemsLeft = 0
        }
        return t.prototype.beginFrame = function() {
            this.itemsLeft = this.maxItemsPerFrame
        }, t.prototype.allowedToUpload = function() {
            return this.itemsLeft-- > 0
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";

    function r() {}

    function i(t) {
        return function() {
            if (null === t) throw new Error("Callback was already called.");
            var e = t;
            t = null, e.apply(this, arguments)
        }
    }
    e.__esModule = !0, e.eachSeries = function(t, e, n, r) {
        var i = 0,
            o = t.length;
        ! function s(a) {
            a || i === o ? n && n(a) : r ? setTimeout(function() {
                e(t[i++], s)
            }, 1) : e(t[i++], s)
        }()
    }, e.queue = function(t, e) {
        if (null == e) e = 1;
        else if (0 === e) throw new Error("Concurrency must not be zero");
        var n = 0,
            o = {
                _tasks: [],
                concurrency: e,
                saturated: r,
                unsaturated: r,
                buffer: e / 4,
                empty: r,
                drain: r,
                error: r,
                started: !1,
                paused: !1,
                push: function(t, e) {
                    s(t, !1, e)
                },
                kill: function() {
                    n = 0, o.drain = r, o.started = !1, o._tasks = []
                },
                unshift: function(t, e) {
                    s(t, !0, e)
                },
                process: function() {
                    for (; !o.paused && n < o.concurrency && o._tasks.length;) {
                        var e = o._tasks.shift();
                        0 === o._tasks.length && o.empty(), (n += 1) === o.concurrency && o.saturated(), t(e.data, i(a(e)))
                    }
                },
                length: function() {
                    return o._tasks.length
                },
                running: function() {
                    return n
                },
                idle: function() {
                    return o._tasks.length + n === 0
                },
                pause: function() {
                    !0 !== o.paused && (o.paused = !0)
                },
                resume: function() {
                    if (!1 !== o.paused) {
                        o.paused = !1;
                        for (var t = 1; t <= o.concurrency; t++) o.process()
                    }
                }
            };

        function s(t, e, n) {
            if (null != n && "function" != typeof n) throw new Error("task callback must be a function");
            if (o.started = !0, null == t && o.idle()) setTimeout(function() {
                return o.drain()
            }, 1);
            else {
                var i = {
                    data: t,
                    callback: "function" == typeof n ? n : r
                };
                e ? o._tasks.unshift(i) : o._tasks.push(i), setTimeout(function() {
                    return o.process()
                }, 1)
            }
        }

        function a(t) {
            return function() {
                n -= 1, t.callback.apply(t, arguments), null != arguments[0] && o.error(arguments[0], t.data), n <= o.concurrency - o.buffer && o.unsaturated(), o.idle() && o.drain(), o.process()
            }
        }
        return o
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.encodeBinary = function(t) {
        for (var e = "", n = 0; n < t.length;) {
            for (var i = [0, 0, 0], o = [0, 0, 0, 0], s = 0; s < i.length; ++s) n < t.length ? i[s] = 255 & t.charCodeAt(n++) : i[s] = 0;
            switch (o[0] = i[0] >> 2, o[1] = (3 & i[0]) << 4 | i[1] >> 4, o[2] = (15 & i[1]) << 2 | i[2] >> 6, o[3] = 63 & i[2], n - (t.length - 1)) {
                case 2:
                    o[3] = 64, o[2] = 64;
                    break;
                case 1:
                    o[3] = 64
            }
            for (var a = 0; a < o.length; ++a) e += r.charAt(o[a])
        }
        return e
    };
    var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = function() {
        function t() {
            this.moreGamesButtonImage = "", this.noFullScreenButton = !0
        }
        return t.prototype.initialize = function() {}, t.prototype.updateProgress = function(t) {}, t.prototype.loadingComplete = function(t) {
            t()
        }, t.prototype.startLevel = function(t, e) {
            e()
        }, t.prototype.levelComplete = function(t) {}, t.prototype.showAds = function(t, e) {
            e()
        }, t.prototype.handleMoreGamesButton = function() {}, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(7),
        a = n(10),
        u = function(t) {
            function e(e, n, r, i, s) {
                var a = t.call(this) || this;
                return a.icon = e, a.downIcon = n, a.iconOff = r, a.downIconOff = i, a.onClickHandler = s, a.icon += ".png", a.downIcon += ".png", a.iconOff += ".png", a.downIconOff += ".png", a.texture = o.Texture.fromFrame(a.icon), a.interactive = !0, a.anchor.set(.5, .5), a.on("mousedown", function() {
                    return a.handleMouseDown()
                }), a.on("touchstart", function() {
                    return a.handleMouseDown()
                }), a.on("click", function() {
                    return a.handleMouseClick()
                }), a.on("tap", function() {
                    return a.handleMouseClick()
                }), a.on("mouseupoutside", function() {
                    return a.handleMouseUp()
                }), a.on("touchend", function() {
                    return a.handleMouseUp()
                }), a.on("touchendoutside", function() {
                    return a.handleMouseUp()
                }), a.checked = !0, a.refresh(), a
            }
            return i(e, t), e.prototype.handleMouseDown = function() {
                this.pressed = !0, this.refresh()
            }, e.prototype.handleMouseUp = function() {
                this.pressed = !1, this.refresh()
            }, e.prototype.handleMouseClick = function() {
                a.playSound(s.get("click_fwd")), this.onClickHandler && this.onClickHandler()
            }, e.prototype.setChecked = function(t) {
                this.checked = t, this.refresh()
            }, e.prototype.refresh = function() {
                var t;
                t = this.checked ? this.pressed ? this.downIcon : this.icon : this.pressed ? this.downIconOff : this.iconOff, this.texture = o.Texture.fromFrame(t)
            }, e
        }(o.Sprite);
    e.CheckIconButton = u
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(44),
        a = n(7),
        u = n(10),
        l = function(t) {
            function e(e, n) {
                var r = t.call(this) || this;
                r.buttonName = e, r.onClickHandler = n, r.sound = "click_fwd", r.icon = o.Sprite.fromFrame(e + ".png"), r.icon.anchor.set(.5, .5);
                var i = r.icon.texture.frame.width,
                    s = r.icon.texture.frame.height;
                return r.hitArea = new o.Rectangle(-i * r.icon.anchor.x, -s * r.icon.anchor.x, i, s), r.addChild(r.icon), r.name = e, r.interactive = !0, r.interactiveChildren = !1, r.on("mousedown", function() {
                    return r.handleMouseDown()
                }), r.on("touchstart", function() {
                    return r.handleMouseDown()
                }), r.on("mouseup", function() {
                    return r.handleMouseUp()
                }), r.on("touchend", function() {
                    return r.handleMouseUp()
                }), r.on("mouseupoutside", function() {
                    return r.handleMouseUp()
                }), r.on("touchend", function() {
                    return r.handleMouseUp()
                }), r.on("touchendoutside", function() {
                    return r.handleMouseUp()
                }), r.on("click", function(t) {
                    return r.handleMouseClick(t)
                }), r.on("tap", function(t) {
                    return r.handleMouseClick(t)
                }), r
            }
            return i(e, t), e.prototype.handleMouseDown = function() {
                createjs.Tween.removeTweens(this.icon.scale), createjs.Tween.get(this.icon.scale).to({
                    x: 1.1,
                    y: 1.1
                }, 100, createjs.Ease.quadIn)
            }, e.prototype.handleMouseUp = function() {
                createjs.Tween.removeTweens(this.icon.scale), this.icon.scale.set(1, 1)
            }, e.prototype.handleMouseClick = function(t) {
                t.stopPropagation(), u.playSound(a.get(this.sound));
                var e = this.onClickHandler;
                e && s(function() {
                    return e()
                })
            }, e
        }(o.Container);
    e.default = l
}, function(t, e, n) {
    "use strict";
    var r = n(467),
        i = n(526);

    function o() {
        this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null
    }
    e.parse = m, e.resolve = function(t, e) {
        return m(t, !1, !0).resolve(e)
    }, e.resolveObject = function(t, e) {
        return t ? m(t, !1, !0).resolveObject(e) : e
    }, e.format = function(t) {
        return i.isString(t) && (t = m(t)), t instanceof o ? t.format() : o.prototype.format.call(t)
    }, e.Url = o;
    var s = /^([a-z0-9.+-]+:)/i,
        a = /:[0-9]*$/,
        u = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
        l = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]),
        c = ["'"].concat(l),
        h = ["%", "/", "?", ";", "#"].concat(c),
        f = ["/", "?", "#"],
        d = /^[+a-z0-9A-Z_-]{0,63}$/,
        p = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
        v = {
            javascript: !0,
            "javascript:": !0
        },
        _ = {
            javascript: !0,
            "javascript:": !0
        },
        g = {
            http: !0,
            https: !0,
            ftp: !0,
            gopher: !0,
            file: !0,
            "http:": !0,
            "https:": !0,
            "ftp:": !0,
            "gopher:": !0,
            "file:": !0
        },
        y = n(470);

    function m(t, e, n) {
        if (t && i.isObject(t) && t instanceof o) return t;
        var r = new o;
        return r.parse(t, e, n), r
    }
    o.prototype.parse = function(t, e, n) {
        if (!i.isString(t)) throw new TypeError("Parameter 'url' must be a string, not " + typeof t);
        var o = t.indexOf("?"),
            a = -1 !== o && o < t.indexOf("#") ? "?" : "#",
            l = t.split(a);
        l[0] = l[0].replace(/\\/g, "/");
        var m = t = l.join(a);
        if (m = m.trim(), !n && 1 === t.split("#").length) {
            var b = u.exec(m);
            if (b) return this.path = m, this.href = m, this.pathname = b[1], b[2] ? (this.search = b[2], this.query = e ? y.parse(this.search.substr(1)) : this.search.substr(1)) : e && (this.search = "", this.query = {}), this
        }
        var x = s.exec(m);
        if (x) {
            var w = (x = x[0]).toLowerCase();
            this.protocol = w, m = m.substr(x.length)
        }
        if (n || x || m.match(/^\/\/[^@\/]+@[^@\/]+/)) {
            var T = "//" === m.substr(0, 2);
            !T || x && _[x] || (m = m.substr(2), this.slashes = !0)
        }
        if (!_[x] && (T || x && !g[x])) {
            for (var E, S, P = -1, O = 0; O < f.length; O++) - 1 !== (M = m.indexOf(f[O])) && (-1 === P || M < P) && (P = M);
            for (-1 !== (S = -1 === P ? m.lastIndexOf("@") : m.lastIndexOf("@", P)) && (E = m.slice(0, S), m = m.slice(S + 1), this.auth = decodeURIComponent(E)), P = -1, O = 0; O < h.length; O++) {
                var M; - 1 !== (M = m.indexOf(h[O])) && (-1 === P || M < P) && (P = M)
            } - 1 === P && (P = m.length), this.host = m.slice(0, P), m = m.slice(P), this.parseHost(), this.hostname = this.hostname || "";
            var C = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1];
            if (!C)
                for (var A = this.hostname.split(/\./), I = (O = 0, A.length); O < I; O++) {
                    var R = A[O];
                    if (R && !R.match(d)) {
                        for (var D = "", L = 0, k = R.length; L < k; L++) R.charCodeAt(L) > 127 ? D += "x" : D += R[L];
                        if (!D.match(d)) {
                            var j = A.slice(0, O),
                                N = A.slice(O + 1),
                                B = R.match(p);
                            B && (j.push(B[1]), N.unshift(B[2])), N.length && (m = "/" + N.join(".") + m), this.hostname = j.join(".");
                            break
                        }
                    }
                }
            this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), C || (this.hostname = r.toASCII(this.hostname));
            var F = this.port ? ":" + this.port : "",
                U = this.hostname || "";
            this.host = U + F, this.href += this.host, C && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== m[0] && (m = "/" + m))
        }
        if (!v[w])
            for (O = 0, I = c.length; O < I; O++) {
                var z = c[O];
                if (-1 !== m.indexOf(z)) {
                    var X = encodeURIComponent(z);
                    X === z && (X = escape(z)), m = m.split(z).join(X)
                }
            }
        var G = m.indexOf("#"); - 1 !== G && (this.hash = m.substr(G), m = m.slice(0, G));
        var W = m.indexOf("?");
        if (-1 !== W ? (this.search = m.substr(W), this.query = m.substr(W + 1), e && (this.query = y.parse(this.query)), m = m.slice(0, W)) : e && (this.search = "", this.query = {}), m && (this.pathname = m), g[w] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) {
            F = this.pathname || "";
            var H = this.search || "";
            this.path = F + H
        }
        return this.href = this.format(), this
    }, o.prototype.format = function() {
        var t = this.auth || "";
        t && (t = (t = encodeURIComponent(t)).replace(/%3A/i, ":"), t += "@");
        var e = this.protocol || "",
            n = this.pathname || "",
            r = this.hash || "",
            o = !1,
            s = "";
        this.host ? o = t + this.host : this.hostname && (o = t + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (o += ":" + this.port)), this.query && i.isObject(this.query) && Object.keys(this.query).length && (s = y.stringify(this.query));
        var a = this.search || s && "?" + s || "";
        return e && ":" !== e.substr(-1) && (e += ":"), this.slashes || (!e || g[e]) && !1 !== o ? (o = "//" + (o || ""), n && "/" !== n.charAt(0) && (n = "/" + n)) : o || (o = ""), r && "#" !== r.charAt(0) && (r = "#" + r), a && "?" !== a.charAt(0) && (a = "?" + a), e + o + (n = n.replace(/[?#]/g, function(t) {
            return encodeURIComponent(t)
        })) + (a = a.replace("#", "%23")) + r
    }, o.prototype.resolve = function(t) {
        return this.resolveObject(m(t, !1, !0)).format()
    }, o.prototype.resolveObject = function(t) {
        if (i.isString(t)) {
            var e = new o;
            e.parse(t, !1, !0), t = e
        }
        for (var n = new o, r = Object.keys(this), s = 0; s < r.length; s++) {
            var a = r[s];
            n[a] = this[a]
        }
        if (n.hash = t.hash, "" === t.href) return n.href = n.format(), n;
        if (t.slashes && !t.protocol) {
            for (var u = Object.keys(t), l = 0; l < u.length; l++) {
                var c = u[l];
                "protocol" !== c && (n[c] = t[c])
            }
            return g[n.protocol] && n.hostname && !n.pathname && (n.path = n.pathname = "/"), n.href = n.format(), n
        }
        if (t.protocol && t.protocol !== n.protocol) {
            if (!g[t.protocol]) {
                for (var h = Object.keys(t), f = 0; f < h.length; f++) {
                    var d = h[f];
                    n[d] = t[d]
                }
                return n.href = n.format(), n
            }
            if (n.protocol = t.protocol, t.host || _[t.protocol]) n.pathname = t.pathname;
            else {
                for (var p = (t.pathname || "").split("/"); p.length && !(t.host = p.shift()););
                t.host || (t.host = ""), t.hostname || (t.hostname = ""), "" !== p[0] && p.unshift(""), p.length < 2 && p.unshift(""), n.pathname = p.join("/")
            }
            if (n.search = t.search, n.query = t.query, n.host = t.host || "", n.auth = t.auth, n.hostname = t.hostname || t.host, n.port = t.port, n.pathname || n.search) {
                var v = n.pathname || "",
                    y = n.search || "";
                n.path = v + y
            }
            return n.slashes = n.slashes || t.slashes, n.href = n.format(), n
        }
        var m = n.pathname && "/" === n.pathname.charAt(0),
            b = t.host || t.pathname && "/" === t.pathname.charAt(0),
            x = b || m || n.host && t.pathname,
            w = x,
            T = n.pathname && n.pathname.split("/") || [],
            E = (p = t.pathname && t.pathname.split("/") || [], n.protocol && !g[n.protocol]);
        if (E && (n.hostname = "", n.port = null, n.host && ("" === T[0] ? T[0] = n.host : T.unshift(n.host)), n.host = "", t.protocol && (t.hostname = null, t.port = null, t.host && ("" === p[0] ? p[0] = t.host : p.unshift(t.host)), t.host = null), x = x && ("" === p[0] || "" === T[0])), b) n.host = t.host || "" === t.host ? t.host : n.host, n.hostname = t.hostname || "" === t.hostname ? t.hostname : n.hostname, n.search = t.search, n.query = t.query, T = p;
        else if (p.length) T || (T = []), T.pop(), T = T.concat(p), n.search = t.search, n.query = t.query;
        else if (!i.isNullOrUndefined(t.search)) return E && (n.hostname = n.host = T.shift(), (C = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = C.shift(), n.host = n.hostname = C.shift())), n.search = t.search, n.query = t.query, i.isNull(n.pathname) && i.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.href = n.format(), n;
        if (!T.length) return n.pathname = null, n.search ? n.path = "/" + n.search : n.path = null, n.href = n.format(), n;
        for (var S = T.slice(-1)[0], P = (n.host || t.host || T.length > 1) && ("." === S || ".." === S) || "" === S, O = 0, M = T.length; M >= 0; M--) "." === (S = T[M]) ? T.splice(M, 1) : ".." === S ? (T.splice(M, 1), O++) : O && (T.splice(M, 1), O--);
        if (!x && !w)
            for (; O--; O) T.unshift("..");
        !x || "" === T[0] || T[0] && "/" === T[0].charAt(0) || T.unshift(""), P && "/" !== T.join("/").substr(-1) && T.push("");
        var C, A = "" === T[0] || T[0] && "/" === T[0].charAt(0);
        return E && (n.hostname = n.host = A ? "" : T.length ? T.shift() : "", (C = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = C.shift(), n.host = n.hostname = C.shift())), (x = x || n.host && T.length) && !A && T.unshift(""), T.length ? n.pathname = T.join("/") : (n.pathname = null, n.path = null), i.isNull(n.pathname) && i.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.auth = t.auth || n.auth, n.slashes = n.slashes || t.slashes, n.href = n.format(), n
    }, o.prototype.parseHost = function() {
        var t = this.host,
            e = a.exec(t);
        e && (":" !== (e = e[0]) && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t)
    }
}, function(t, e) {
    var n, r;
    n = -1, r = {
        onVisible: function(t) {
            var e = r.isSupported();
            if (!e || !r.hidden()) return t(), e;
            var n = r.change(function(e, i) {
                r.hidden() || (r.unbind(n), t())
            });
            return n
        },
        change: function(t) {
            if (!r.isSupported()) return !1;
            var e = n += 1;
            return r._callbacks[e] = t, r._listen(), e
        },
        unbind: function(t) {
            delete r._callbacks[t]
        },
        afterPrerendering: function(t) {
            var e = r.isSupported();
            if (!e || "prerender" != r.state()) return t(), e;
            var n = r.change(function(e, i) {
                "prerender" != i && (r.unbind(n), t())
            });
            return n
        },
        hidden: function() {
            return !(!r._doc.hidden && !r._doc.webkitHidden)
        },
        state: function() {
            return r._doc.visibilityState || r._doc.webkitVisibilityState || "visible"
        },
        isSupported: function() {
            return void 0 !== r._doc.hidden || void 0 !== r._doc.webkitHidden
        },
        _doc: document || {},
        _callbacks: {},
        _change: function(t) {
            var e = r.state();
            for (var n in r._callbacks) r._callbacks[n].call(r._doc, t, e)
        },
        _listen: function() {
            if (!r._init) {
                var t = "visibilitychange";
                r._doc.webkitVisibilityState && (t = "webkit" + t);
                var e = function() {
                    r._change.apply(r, arguments)
                };
                r._doc.addEventListener ? r._doc.addEventListener(t, e) : r._doc.attachEvent(t, e), r._init = !0
            }
        }
    }, void 0 !== t && t.exports ? t.exports = r : this.Visibility = r
}, function(t, e) {
    t.exports = function(t) {
        if (!t.webpackPolyfill) {
            var e = Object.create(t);
            e.children || (e.children = []), Object.defineProperty(e, "loaded", {
                enumerable: !0,
                get: function() {
                    return e.l
                }
            }), Object.defineProperty(e, "id", {
                enumerable: !0,
                get: function() {
                    return e.i
                }
            }), Object.defineProperty(e, "exports", {
                enumerable: !0
            }), e.webpackPolyfill = 1
        }
        return e
    }
}, function(t, e) {
    t.exports = {
        screenConfig: [{
            width: 640,
            height: {
                min: 900,
                max: 1200
            }
        }, {
            width: {
                min: 1e3,
                max: 1200
            },
            height: 800
        }],
        progression: {
            extraModesLocked: !0,
            showGameModeLockedDialog: !1,
            unlockAfter: 1
        },
        titleOffset: {
            x: 0,
            y: -150
        },
        standardButtonOffset: 60,
        map: {
            x: "0",
            y: "100",
            width: "630",
            height: "960",
            cellWidth: "150",
            cellHeight: "150",
            padding: 30,
            columns: 4
        },
        game: {
            mazeArea: {
                width: 620,
                height: 820,
                flexibleCellDimensions: !0,
                verticalOffset: 70
            },
            mazeBgColor: gradle.maze_bg_color, //"#10003C", //maze background color
            pathColor: gradle.path_color,      //"#17D96A", //path color
            wallColor: gradle.wall_color,      //"#ffffff",              //wall color 
            pathThickness: "10",
            mask: {
                radius: 200
            }
        },
        style: {
            creditsTitleText: {
                fontFamily: "Verdana",
                fontSize: 36,
                fontWeight: "bold",
                fill: ["#000000"],
                padding: 3,
                wordWrap: !1
            },
            creditsEntryText: {
                fontFamily: "Verdana",
                fontSize: 26,
                fontWeight: "bold",
                fill: ["#000000"],
                padding: 3,
                wordWrap: !1
            }
        },
        layouts: {
            credits: {
                width: 600,
                height: 700
            }
        }
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(242),
        i = n(19);
    e.default = function(t, e, o) {
        var s = !0,
            a = !0;
        if ("function" != typeof t) throw new TypeError("Expected a function");
        return n.i(i.a)(o) && (s = "leading" in o ? !!o.leading : s, a = "trailing" in o ? !!o.trailing : a), n.i(r.a)(t, e, {
            leading: s,
            maxWait: e,
            trailing: a
        })
    }
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(7),
        a = n(10),
        u = n(525),
        l = n(86),
        c = n(518),
        h = n(515),
        f = n(513),
        d = n(512),
        p = n(13),
        v = n(504),
        _ = n(212),
        g = n(486),
        y = n(500),
        m = n(506),
        b = n(34),
        x = _,
        w = function(t) {
            function e(e, n) {
                var r = t.call(this) || this;
                return r.stage = e, r.config = n, r.bestTime = -1, r.levelDefs = g.load(), r
            }
            return i(e, t), e.prototype.launchApp = function() {
                var t = this,
                    e = this.levelDefs.length;
                this.classicLevelProgress = new y.default(e), this.darkLevelProgress = new y.default(e), this.loadProgress(), this.extraModesLocked = this.config.progression.extraModesLocked, this.extraModesLocked && this.config.progression.showGameModeLockedDialog ? (this.gameModeLockedDialog = new f.default(this.config.progression.unlockAfter), this.gameModeLockedDialog.onQuit = function() {
                    t.stage.popScreen()
                }) : this.gameModeLockedDialog = null, this.mainMenu = new c.default, this.mainMenu.onStartGame = function(e) {
                    switch (e) {
                        case l.GameMode.classic:
                        case l.GameMode.dark:
                            t.getLevelProgress(e).completed > 0 ? t.showMap(e) : t.showGame(e, 0);
                            break;
                        case l.GameMode.timeTrial:
                            t.showTimeTrialGame()
                    }
                };
                var n = p.createIconButton(this, "home_button", function() {
                    t.settingsContextMenu.onQuit(), t.showMenu()
                });
                n.sound = "click_back", this.settingsContextMenu = new d.default([new v.SoundIconButton, b.instance.noFullScreenButton ? null : new m.ToggleFullscreenButton, n], [{
                    x: -180,
                    y: 0
                }, {
                    x: 0,
                    y: 0
                }, {
                    x: 180,
                    y: 0
                }]), this.settingsContextMenu.onQuit = function() {
                    return t.stage.popScreen()
                }, this.mainMenu.onRequestUnlock = function() {
                    t.isExtraModesLocked() && t.gameModeLockedDialog && t.stage.pushScreen(t.gameModeLockedDialog)
                }, this.mainMenu.onContextMenu = function() {
                    t.stage.pushScreen(t.settingsContextMenu)
                }, this.isExtraModesLocked() || this.mainMenu.unlock(), this.levelMap = new h.default(this.config), this.levelMap.onLevelClicked = function(e, n) {
                    t.getLevelProgress(e).select(n) && t.showGame(e, n)
                }, this.levelMap.onContextMenu = function() {
                    t.stage.pushScreen(t.settingsContextMenu)
                }, this.game = new l.default(this.config), this.game.onLevelComplete = function(e, n) {
                    switch (n) {
                        case l.GameMode.classic:
                            var r = t.classicLevelProgress.current;
                            b.instance.levelComplete({
                                mode: "classic",
                                level: r
                            }), t.classicLevelProgress.completeCurrent(), t.game.showLevelComplete(r, t.classicLevelProgress.levelCount, t.game.gameMillis);
                            break;
                        case l.GameMode.dark:
                            r = t.darkLevelProgress.current, b.instance.levelComplete({
                                mode: "dark",
                                level: r
                            }), t.darkLevelProgress.completeCurrent(), t.game.showLevelComplete(r, t.darkLevelProgress.levelCount, t.game.gameMillis);
                            break;
                        case l.GameMode.timeTrial:
                            b.instance.levelComplete({
                                mode: "dark",
                                level: 0,
                                time: e
                            }), (t.bestTime < 0 || e < t.bestTime) && (t.bestTime = e), t.game.showLevelComplete(-1, -1, t.game.gameMillis)
                    }
                    t.saveProgress()
                }, this.game.onContextMenu = function() {
                    t.stage.pushScreen(t.settingsContextMenu)
                }, this.game.onNext = function(e) {
                    switch (e) {
                        case l.GameMode.dark:
                        case l.GameMode.classic:
                            t.showGame(e, t.getLevelProgress(e).current);
                            break;
                        case l.GameMode.timeTrial:
                            t.showMenu()
                    }
                }, this.game.onQuit = function() {
                    return t.showMenu()
                }, this.showMenu(!1)
            }, e.prototype.isExtraModesLocked = function() {
                return this.extraModesLocked
            }, e.prototype.loadProgress = function() {
                var t = this;
                u.load("levelProgress", function(e) {
                    t.setMemento(e)
                })
            }, e.prototype.saveProgress = function() {
                u.save("levelProgress", this.getMemento())
            }, e.prototype.showMenu = function(t) {
                var e = this;
                void 0 === t && (t = !0), a.playMusic(s.get("music_menu")), this.mainMenu.bestTimeMillis = this.bestTime, this.mainMenu.levelComplete = this.classicLevelProgress.completed, this.mainMenu.levelCount = this.classicLevelProgress.levelCount, this.mainMenu.darkLevelComplete = this.darkLevelProgress.completed, this.mainMenu.darkLevelCount = this.darkLevelProgress.levelCount, t ? (createjs.Tween.removeTweens(this.stage.background.speed), createjs.Tween.get(this.stage.background.speed).to({
                    x: 1e3,
                    y: 0
                }, 500, createjs.Ease.backOut).to({
                    x: 50,
                    y: 0
                }, 1500, createjs.Ease.quadOut), this.stage.plainTransitionTo(function() {
                    return e.mainMenu
                })) : this.stage.showScreen(this.mainMenu), this.classicLevelProgress.completed >= this.config.progression.unlockAfter && this.mainMenu.unlock()
            }, e.prototype.showMap = function(t) {
                var e = this;
                createjs.Tween.removeTweens(this.stage.background.speed), createjs.Tween.get(this.stage.background.speed).to({
                    x: -50,
                    y: 0
                }, 1e3, createjs.Ease.quadOut), this.stage.plainTransitionTo(function() {
                    var n = e.getLevelProgress(t);
                    return e.levelMap.updateLevelState(t, e.levelDefs.length, n.current, n.completed), e.levelMap
                }), a.playMusic(s.get("music_game"))
            }, e.prototype.showGame = function(t, e) {
                var n = this;
                void 0 === e && (e = -1), b.instance.startLevel({
                    mode: l.GameMode[t],
                    level: e
                }, function() {
                    -1 === e && (e = 0);
                    var r = ["classic", "dark", "timeTrial"][t] + (t < 2 ? "_" + (e + 1) : "");
                    gradle.event("EVENT_LEVELSTART", {
                        levelName: r
                    }), createjs.Tween.removeTweens(n.stage.background.speed), createjs.Tween.get(n.stage.background.speed).to({
                        x: -1e3,
                        y: 0
                    }, 1e3, createjs.Ease.quadOut).to({
                        x: 0,
                        y: 0
                    }, 2300, createjs.Ease.quadInOut), n.stage.plainTransitionTo(function() {
                        return n.game.start(e, n.levelDefs[e], t), n.game
                    }), a.playMusic(s.get("music_game"))
                })
            }, e.prototype.showTimeTrialGame = function() {
                var t = this;
                b.instance.startLevel({
                    mode: "timeTrial",
                    level: 0
                }, function() {
                    gradle.event("EVENT_LEVELSTART", {
                        levelName: "timeTrial"
                    }), createjs.Tween.removeTweens(t.stage.background.speed), createjs.Tween.get(t.stage.background.speed).to({
                        x: -1e3,
                        y: 0
                    }, 1e3, createjs.Ease.quadOut).to({
                        x: 0,
                        y: 0
                    }, 2300, createjs.Ease.quadInOut), t.stage.plainTransitionTo(function() {
                        return t.game.start(-1, x, l.GameMode.timeTrial), t.game
                    }), a.playMusic(s.get("music_game"))
                })
            }, e.prototype.getMemento = function() {
                return {
                    classic: this.classicLevelProgress.getMemento(),
                    dark: this.darkLevelProgress.getMemento(),
                    best: this.bestTime
                }
            }, e.prototype.setMemento = function(t) {
                this.classicLevelProgress.setMemento(t ? t.classic : null), this.darkLevelProgress.setMemento(t ? t.dark : null), this.bestTime = t && t.best || -1
            }, e.prototype.getLevelProgress = function(t) {
                return t === l.GameMode.classic ? this.classicLevelProgress : this.darkLevelProgress
            }, e
        }(o.Container);
    e.default = w, window.cheatReset = function() {
        u.save("levelsUnlocked", 0)
    }
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(136),
        s = n(68),
        a = n(520),
        u = n(505),
        l = function(t) {
            function e() {
                var e = t.call(this) || this;
                return e.overlay = new PIXI.Container, e.screens = new PIXI.Container, e.currentScreenRect = new PIXI.Rectangle, o(e, "handleTick"), PIXI.ticker.shared.add(e.handleTick), e
            }
            return i(e, t), Object.defineProperty(e.prototype, "background", {
                get: function() {
                    return this._background
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.initialize = function() {
                this._background = new u.default, this.addChild(this._background), this.addChild(this.screens), this.addChild(this.overlay)
            }, e.prototype.navigateTo = function(t) {
                var e = this;
                this.currentScreen && this.currentScreen.exitScreen && this.currentScreen.exitScreen(), a.start(this.overlay, this.currentScreenRect, function() {
                    var n = t();
                    e.showScreen(n)
                })
            }, e.prototype.plainTransitionTo = function(t) {
                var e = this,
                    n = 0;
                this.currentScreen && this.currentScreen.exitScreen && (n = this.currentScreen.exitScreen() || 0);
                var r = new PIXI.DisplayObject;
                r.hitArea = new PIXI.Rectangle(-1e4, -1e4, 2e4, 2e4), r.interactive = !0, this.overlay.addChild(r), setTimeout(function() {
                    var n = t();
                    e.showScreen(n), e.overlay.removeChild(r)
                }, n)
            }, e.prototype.showScreen = function(t) {
                this.screens.removeChildren(), this.screens.addChild(this.currentScreen = t), this.currentScreen && this.currentScreen.enterScreen && this.currentScreen.enterScreen(), this.updateScreenSize()
            }, e.prototype.pushScreen = function(t) {
                this.currentScreen = t, this.screens.addChild(this.currentScreen), this.currentScreen && this.currentScreen.enterScreen && this.currentScreen.enterScreen(), this.updateScreenSize()
            }, e.prototype.popScreen = function() {
                this.currentScreen && this.currentScreen.exitScreen && this.currentScreen.exitScreen();
                var t = this.screens.children.length;
                if (0 !== t) {
                    var e = this.screens.children[t - 1];
                    this.screens.removeChild(e), this.currentScreen = this.screens.children.length > 0 ? this.screens.children[this.screens.children.length - 1] : null, this.updateScreenSize()
                }
            }, e.prototype.resize = function(t) {
                this.currentScreenRect.copy(t), this.updateScreenSize()
            }, e.prototype.updateScreenSize = function() {
                this.currentScreen && s(this.currentScreen.resize) && this.currentScreen.resize(this.currentScreenRect)
            }, e.prototype.handleTick = function() {
                var t = PIXI.ticker.shared.elapsedMS;
                this._background && this._background.update(t), this.currentScreen && this.currentScreen.update && this.currentScreen.update(t)
            }, e
        }(PIXI.Container);
    e.default = l
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.default = function(t, e, n, r) {
        i(t, e, n, e > n ? r.horizontal || r.vertical : r.vertical || r.horizontal)
    };
    var r = {
        width: 0,
        height: 0
    };

    function i(t, e, n, i) {
        ! function(t, e, n) {
            t > e.width / e.height ? (n.width = e.height * t, n.height = e.height) : (n.width = e.width, n.height = e.width / t)
        }(e / n, i, r), t.resize(r.width, r.height), t.view.style.width = e + "px", t.view.style.height = n + "px"
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(510);
    e.default = function(t) {
        return void 0 === t && (t = null), new r.PreloaderImpl(t)
    }
}, function(t, e) {
    window.createjs = window.createjs || {}, createjs.extend = function(t, e) {
            "use strict";

            function n() {
                this.constructor = t
            }
            return n.prototype = e.prototype, t.prototype = new n
        }, window.createjs = window.createjs || {}, createjs.promote = function(t, e) {
            "use strict";
            var n = t.prototype,
                r = Object.getPrototypeOf && Object.getPrototypeOf(n) || n.__proto__;
            if (r)
                for (var i in n[(e += "_") + "constructor"] = r.constructor, r) n.hasOwnProperty(i) && "function" == typeof r[i] && (n[e + i] = r[i]);
            return t
        }, window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t(t, e, n) {
                this.type = t, this.target = null, this.currentTarget = null, this.eventPhase = 0, this.bubbles = !!e, this.cancelable = !!n, this.timeStamp = (new Date).getTime(), this.defaultPrevented = !1, this.propagationStopped = !1, this.immediatePropagationStopped = !1, this.removed = !1
            }
            var e = t.prototype;
            e.preventDefault = function() {
                this.defaultPrevented = this.cancelable && !0
            }, e.stopPropagation = function() {
                this.propagationStopped = !0
            }, e.stopImmediatePropagation = function() {
                this.immediatePropagationStopped = this.propagationStopped = !0
            }, e.remove = function() {
                this.removed = !0
            }, e.clone = function() {
                return new t(this.type, this.bubbles, this.cancelable)
            }, e.set = function(t) {
                for (var e in t) this[e] = t[e];
                return this
            }, e.toString = function() {
                return "[Event (type=" + this.type + ")]"
            }, createjs.Event = t
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t() {
                this._listeners = null, this._captureListeners = null
            }
            var e = t.prototype;
            t.initialize = function(t) {
                t.addEventListener = e.addEventListener, t.on = e.on, t.removeEventListener = t.off = e.removeEventListener, t.removeAllEventListeners = e.removeAllEventListeners, t.hasEventListener = e.hasEventListener, t.dispatchEvent = e.dispatchEvent, t._dispatchEvent = e._dispatchEvent, t.willTrigger = e.willTrigger
            }, e.addEventListener = function(t, e, n) {
                var r, i = (r = n ? this._captureListeners = this._captureListeners || {} : this._listeners = this._listeners || {})[t];
                return i && this.removeEventListener(t, e, n), (i = r[t]) ? i.push(e) : r[t] = [e], e
            }, e.on = function(t, e, n, r, i, o) {
                return e.handleEvent && (n = n || e, e = e.handleEvent), n = n || this, this.addEventListener(t, function(t) {
                    e.call(n, t, i), r && t.remove()
                }, o)
            }, e.removeEventListener = function(t, e, n) {
                var r = n ? this._captureListeners : this._listeners;
                if (r) {
                    var i = r[t];
                    if (i)
                        for (var o = 0, s = i.length; o < s; o++)
                            if (i[o] == e) {
                                1 == s ? delete r[t] : i.splice(o, 1);
                                break
                            }
                }
            }, e.off = e.removeEventListener, e.removeAllEventListeners = function(t) {
                t ? (this._listeners && delete this._listeners[t], this._captureListeners && delete this._captureListeners[t]) : this._listeners = this._captureListeners = null
            }, e.dispatchEvent = function(t, e, n) {
                if ("string" == typeof t) {
                    var r = this._listeners;
                    if (!(e || r && r[t])) return !0;
                    t = new createjs.Event(t, e, n)
                } else t.target && t.clone && (t = t.clone());
                try {
                    t.target = this
                } catch (t) {}
                if (t.bubbles && this.parent) {
                    for (var i = this, o = [i]; i.parent;) o.push(i = i.parent);
                    var s, a = o.length;
                    for (s = a - 1; s >= 0 && !t.propagationStopped; s--) o[s]._dispatchEvent(t, 1 + (0 == s));
                    for (s = 1; s < a && !t.propagationStopped; s++) o[s]._dispatchEvent(t, 3)
                } else this._dispatchEvent(t, 2);
                return !t.defaultPrevented
            }, e.hasEventListener = function(t) {
                var e = this._listeners,
                    n = this._captureListeners;
                return !!(e && e[t] || n && n[t])
            }, e.willTrigger = function(t) {
                for (var e = this; e;) {
                    if (e.hasEventListener(t)) return !0;
                    e = e.parent
                }
                return !1
            }, e.toString = function() {
                return "[EventDispatcher]"
            }, e._dispatchEvent = function(t, e) {
                var n, r = 1 == e ? this._captureListeners : this._listeners;
                if (t && r) {
                    var i = r[t.type];
                    if (!i || !(n = i.length)) return;
                    try {
                        t.currentTarget = this
                    } catch (t) {}
                    try {
                        t.eventPhase = e
                    } catch (t) {}
                    t.removed = !1, i = i.slice();
                    for (var o = 0; o < n && !t.immediatePropagationStopped; o++) {
                        var s = i[o];
                        s.handleEvent ? s.handleEvent(t) : s(t), t.removed && (this.off(t.type, s, 1 == e), t.removed = !1)
                    }
                }
            }, createjs.EventDispatcher = t
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t() {
                throw "Ticker cannot be instantiated."
            }
            t.RAF_SYNCHED = "synched", t.RAF = "raf", t.TIMEOUT = "timeout", t.useRAF = !1, t.timingMode = null, t.maxDelta = 0, t.paused = !1, t.removeEventListener = null, t.removeAllEventListeners = null, t.dispatchEvent = null, t.hasEventListener = null, t._listeners = null, createjs.EventDispatcher.initialize(t), t._addEventListener = t.addEventListener, t.addEventListener = function() {
                return !t._inited && t.init(), t._addEventListener.apply(t, arguments)
            }, t._inited = !1, t._startTime = 0, t._pausedTime = 0, t._ticks = 0, t._pausedTicks = 0, t._interval = 50, t._lastTime = 0, t._times = null, t._tickTimes = null, t._timerId = null, t._raf = !0, t.setInterval = function(e) {
                t._interval = e, t._inited && t._setupTick()
            }, t.getInterval = function() {
                return t._interval
            }, t.setFPS = function(e) {
                t.setInterval(1e3 / e)
            }, t.getFPS = function() {
                return 1e3 / t._interval
            };
            try {
                Object.defineProperties(t, {
                    interval: {
                        get: t.getInterval,
                        set: t.setInterval
                    },
                    framerate: {
                        get: t.getFPS,
                        set: t.setFPS
                    }
                })
            } catch (t) {}
            t.init = function() {
                t._inited || (t._inited = !0, t._times = [], t._tickTimes = [], t._startTime = t._getTime(), t._times.push(t._lastTime = 0), t.interval = t._interval)
            }, t.reset = function() {
                if (t._raf) {
                    var e = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;
                    e && e(t._timerId)
                } else clearTimeout(t._timerId);
                t.removeAllEventListeners("tick"), t._timerId = t._times = t._tickTimes = null, t._startTime = t._lastTime = t._ticks = 0, t._inited = !1
            }, t.getMeasuredTickTime = function(e) {
                var n = 0,
                    r = t._tickTimes;
                if (!r || r.length < 1) return -1;
                e = Math.min(r.length, e || 0 | t.getFPS());
                for (var i = 0; i < e; i++) n += r[i];
                return n / e
            }, t.getMeasuredFPS = function(e) {
                var n = t._times;
                return !n || n.length < 2 ? -1 : (e = Math.min(n.length - 1, e || 0 | t.getFPS()), 1e3 / ((n[0] - n[e]) / e))
            }, t.setPaused = function(e) {
                t.paused = e
            }, t.getPaused = function() {
                return t.paused
            }, t.getTime = function(e) {
                return t._startTime ? t._getTime() - (e ? t._pausedTime : 0) : -1
            }, t.getEventTime = function(e) {
                return t._startTime ? (t._lastTime || t._startTime) - (e ? t._pausedTime : 0) : -1
            }, t.getTicks = function(e) {
                return t._ticks - (e ? t._pausedTicks : 0)
            }, t._handleSynch = function() {
                t._timerId = null, t._setupTick(), t._getTime() - t._lastTime >= .97 * (t._interval - 1) && t._tick()
            }, t._handleRAF = function() {
                t._timerId = null, t._setupTick(), t._tick()
            }, t._handleTimeout = function() {
                t._timerId = null, t._setupTick(), t._tick()
            }, t._setupTick = function() {
                if (null == t._timerId) {
                    var e = t.timingMode || t.useRAF && t.RAF_SYNCHED;
                    if (e == t.RAF_SYNCHED || e == t.RAF) {
                        var n = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;
                        if (n) return t._timerId = n(e == t.RAF ? t._handleRAF : t._handleSynch), void(t._raf = !0)
                    }
                    t._raf = !1, t._timerId = setTimeout(t._handleTimeout, t._interval)
                }
            }, t._tick = function() {
                var e = t.paused,
                    n = t._getTime(),
                    r = n - t._lastTime;
                if (t._lastTime = n, t._ticks++, e && (t._pausedTicks++, t._pausedTime += r), t.hasEventListener("tick")) {
                    var i = new createjs.Event("tick"),
                        o = t.maxDelta;
                    i.delta = o && r > o ? o : r, i.paused = e, i.time = n, i.runTime = n - t._pausedTime, t.dispatchEvent(i)
                }
                for (t._tickTimes.unshift(t._getTime() - n); t._tickTimes.length > 100;) t._tickTimes.pop();
                for (t._times.unshift(n); t._times.length > 100;) t._times.pop()
            };
            var e = window.performance && (performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow);
            t._getTime = function() {
                return (e && e.call(performance) || (new Date).getTime()) - t._startTime
            }, createjs.Ticker = t
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t(e, n, r) {
                this.ignoreGlobalPause = !1, this.loop = !1, this.duration = 0, this.pluginData = r || {}, this.target = e, this.position = null, this.passive = !1, this._paused = !1, this._curQueueProps = {}, this._initQueueProps = {}, this._steps = [], this._actions = [], this._prevPosition = 0, this._stepPosition = 0, this._prevPos = -1, this._target = e, this._useTicks = !1, this._inited = !1, this._registered = !1, n && (this._useTicks = n.useTicks, this.ignoreGlobalPause = n.ignoreGlobalPause, this.loop = n.loop, n.onChange && this.addEventListener("change", n.onChange), n.override && t.removeTweens(e)), n && n.paused ? this._paused = !0 : createjs.Tween._register(this, !0), n && null != n.position && this.setPosition(n.position, t.NONE)
            }
            var e = createjs.extend(t, createjs.EventDispatcher);
            t.NONE = 0, t.LOOP = 1, t.REVERSE = 2, t.IGNORE = {}, t._tweens = [], t._plugins = {}, t.get = function(e, n, r, i) {
                return i && t.removeTweens(e), new t(e, n, r)
            }, t.tick = function(e, n) {
                for (var r = t._tweens.slice(), i = r.length - 1; i >= 0; i--) {
                    var o = r[i];
                    n && !o.ignoreGlobalPause || o._paused || o.tick(o._useTicks ? 1 : e)
                }
            }, t.handleEvent = function(t) {
                "tick" == t.type && this.tick(t.delta, t.paused)
            }, t.removeTweens = function(e) {
                if (e.tweenjs_count) {
                    for (var n = t._tweens, r = n.length - 1; r >= 0; r--) {
                        var i = n[r];
                        i._target == e && (i._paused = !0, n.splice(r, 1))
                    }
                    e.tweenjs_count = 0
                }
            }, t.removeAllTweens = function() {
                for (var e = t._tweens, n = 0, r = e.length; n < r; n++) {
                    var i = e[n];
                    i._paused = !0, i.target && (i.target.tweenjs_count = 0)
                }
                e.length = 0
            }, t.hasActiveTweens = function(e) {
                return e ? null != e.tweenjs_count && !!e.tweenjs_count : t._tweens && !!t._tweens.length
            }, t.installPlugin = function(e, n) {
                var r = e.priority;
                null == r && (e.priority = r = 0);
                for (var i = 0, o = n.length, s = t._plugins; i < o; i++) {
                    var a = n[i];
                    if (s[a]) {
                        for (var u = s[a], l = 0, c = u.length; l < c && !(r < u[l].priority); l++);
                        s[a].splice(l, 0, e)
                    } else s[a] = [e]
                }
            }, t._register = function(e, n) {
                var r = e._target,
                    i = t._tweens;
                if (n && !e._registered) r && (r.tweenjs_count = r.tweenjs_count ? r.tweenjs_count + 1 : 1), i.push(e), !t._inited && createjs.Ticker && (createjs.Ticker.addEventListener("tick", t), t._inited = !0);
                else if (!n && e._registered) {
                    r && r.tweenjs_count--;
                    for (var o = i.length; o--;)
                        if (i[o] == e) {
                            i.splice(o, 1);
                            break
                        }
                }
                e._registered = n
            }, e.wait = function(t, e) {
                if (null == t || t <= 0) return this;
                var n = this._cloneProps(this._curQueueProps);
                return this._addStep({
                    d: t,
                    p0: n,
                    e: this._linearEase,
                    p1: n,
                    v: e
                })
            }, e.to = function(t, e, n) {
                return (isNaN(e) || e < 0) && (e = 0), this._addStep({
                    d: e || 0,
                    p0: this._cloneProps(this._curQueueProps),
                    e: n,
                    p1: this._cloneProps(this._appendQueueProps(t))
                })
            }, e.call = function(t, e, n) {
                return this._addAction({
                    f: t,
                    p: e || [this],
                    o: n || this._target
                })
            }, e.set = function(t, e) {
                return this._addAction({
                    f: this._set,
                    o: this,
                    p: [t, e || this._target]
                })
            }, e.play = function(t) {
                return t || (t = this), this.call(t.setPaused, [!1], t)
            }, e.pause = function(t) {
                return t || (t = this), this.call(t.setPaused, [!0], t)
            }, e.setPosition = function(t, e) {
                t < 0 && (t = 0), null == e && (e = 1);
                var n = t,
                    r = !1;
                if (n >= this.duration && (this.loop ? n %= this.duration : (n = this.duration, r = !0)), n == this._prevPos) return r;
                var i = this._prevPos;
                if (this.position = this._prevPos = n, this._prevPosition = t, this._target)
                    if (r) this._updateTargetProps(null, 1);
                    else if (this._steps.length > 0) {
                    for (var o = 0, s = this._steps.length; o < s && !(this._steps[o].t > n); o++);
                    var a = this._steps[o - 1];
                    this._updateTargetProps(a, (this._stepPosition = n - a.t) / a.d)
                }
                return 0 != e && this._actions.length > 0 && (this._useTicks ? this._runActions(n, n) : 1 == e && n < i ? (i != this.duration && this._runActions(i, this.duration), this._runActions(0, n, !0)) : this._runActions(i, n)), r && this.setPaused(!0), this.dispatchEvent("change"), r
            }, e.tick = function(t) {
                this._paused || this.setPosition(this._prevPosition + t)
            }, e.setPaused = function(e) {
                return this._paused === !!e ? this : (this._paused = !!e, t._register(this, !e), this)
            }, e.w = e.wait, e.t = e.to, e.c = e.call, e.s = e.set, e.toString = function() {
                return "[Tween]"
            }, e.clone = function() {
                throw "Tween can not be cloned."
            }, e._updateTargetProps = function(e, n) {
                var r, i, o, s, a, u;
                if (e || 1 != n) {
                    if (this.passive = !!e.v, this.passive) return;
                    e.e && (n = e.e(n, 0, 1, 1)), r = e.p0, i = e.p1
                } else this.passive = !1, r = i = this._curQueueProps;
                for (var l in this._initQueueProps) {
                    null == (s = r[l]) && (r[l] = s = this._initQueueProps[l]), null == (a = i[l]) && (i[l] = a = s), o = s == a || 0 == n || 1 == n || "number" != typeof s ? 1 == n ? a : s : s + (a - s) * n;
                    var c = !1;
                    if (u = t._plugins[l])
                        for (var h = 0, f = u.length; h < f; h++) {
                            var d = u[h].tween(this, l, o, r, i, n, !!e && r == i, !e);
                            d == t.IGNORE ? c = !0 : o = d
                        }
                    c || (this._target[l] = o)
                }
            }, e._runActions = function(t, e, n) {
                var r = t,
                    i = e,
                    o = -1,
                    s = this._actions.length,
                    a = 1;
                for (t > e && (r = e, i = t, o = s, s = a = -1);
                    (o += a) != s;) {
                    var u = this._actions[o],
                        l = u.t;
                    (l == i || l > r && l < i || n && l == t) && u.f.apply(u.o, u.p)
                }
            }, e._appendQueueProps = function(e) {
                var n, r, i, o, s;
                for (var a in e)
                    if (void 0 === this._initQueueProps[a]) {
                        if (r = this._target[a], n = t._plugins[a])
                            for (i = 0, o = n.length; i < o; i++) r = n[i].init(this, a, r);
                        this._initQueueProps[a] = this._curQueueProps[a] = void 0 === r ? null : r
                    } else r = this._curQueueProps[a];
                for (var a in e) {
                    if (r = this._curQueueProps[a], n = t._plugins[a])
                        for (s = s || {}, i = 0, o = n.length; i < o; i++) n[i].step && n[i].step(this, a, r, e[a], s);
                    this._curQueueProps[a] = e[a]
                }
                return s && this._appendQueueProps(s), this._curQueueProps
            }, e._cloneProps = function(t) {
                var e = {};
                for (var n in t) e[n] = t[n];
                return e
            }, e._addStep = function(t) {
                return t.d > 0 && (this._steps.push(t), t.t = this.duration, this.duration += t.d), this
            }, e._addAction = function(t) {
                return t.t = this.duration, this._actions.push(t), this
            }, e._set = function(t, e) {
                for (var n in t) e[n] = t[n]
            }, createjs.Tween = createjs.promote(t, "EventDispatcher")
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t(t, e, n) {
                this.EventDispatcher_constructor(), this.ignoreGlobalPause = !1, this.duration = 0, this.loop = !1, this.position = null, this._paused = !1, this._tweens = [], this._labels = null, this._labelList = null, this._prevPosition = 0, this._prevPos = -1, this._useTicks = !1, this._registered = !1, n && (this._useTicks = n.useTicks, this.loop = n.loop, this.ignoreGlobalPause = n.ignoreGlobalPause, n.onChange && this.addEventListener("change", n.onChange)), t && this.addTween.apply(this, t), this.setLabels(e), n && n.paused ? this._paused = !0 : createjs.Tween._register(this, !0), n && null != n.position && this.setPosition(n.position, createjs.Tween.NONE)
            }
            var e = createjs.extend(t, createjs.EventDispatcher);
            e.addTween = function(t) {
                var e = arguments.length;
                if (e > 1) {
                    for (var n = 0; n < e; n++) this.addTween(arguments[n]);
                    return arguments[0]
                }
                return 0 == e ? null : (this.removeTween(t), this._tweens.push(t), t.setPaused(!0), t._paused = !1, t._useTicks = this._useTicks, t.duration > this.duration && (this.duration = t.duration), this._prevPos >= 0 && t.setPosition(this._prevPos, createjs.Tween.NONE), t)
            }, e.removeTween = function(t) {
                var e = arguments.length;
                if (e > 1) {
                    for (var n = !0, r = 0; r < e; r++) n = n && this.removeTween(arguments[r]);
                    return n
                }
                if (0 == e) return !1;
                var i = this._tweens;
                for (r = i.length; r--;)
                    if (i[r] == t) return i.splice(r, 1), t.duration >= this.duration && this.updateDuration(), !0;
                return !1
            }, e.addLabel = function(t, e) {
                this._labels[t] = e;
                var n = this._labelList;
                if (n) {
                    for (var r = 0, i = n.length; r < i && !(e < n[r].position); r++);
                    n.splice(r, 0, {
                        label: t,
                        position: e
                    })
                }
            }, e.setLabels = function(t) {
                this._labels = t || {}
            }, e.getLabels = function() {
                var t = this._labelList;
                if (!t) {
                    t = this._labelList = [];
                    var e = this._labels;
                    for (var n in e) t.push({
                        label: n,
                        position: e[n]
                    });
                    t.sort(function(t, e) {
                        return t.position - e.position
                    })
                }
                return t
            }, e.getCurrentLabel = function() {
                var t = this.getLabels(),
                    e = this.position,
                    n = t.length;
                if (n) {
                    for (var r = 0; r < n && !(e < t[r].position); r++);
                    return 0 == r ? null : t[r - 1].label
                }
                return null
            }, e.gotoAndPlay = function(t) {
                this.setPaused(!1), this._goto(t)
            }, e.gotoAndStop = function(t) {
                this.setPaused(!0), this._goto(t)
            }, e.setPosition = function(t, e) {
                var n = this._calcPosition(t),
                    r = !this.loop && t >= this.duration;
                if (n == this._prevPos) return r;
                this._prevPosition = t, this.position = this._prevPos = n;
                for (var i = 0, o = this._tweens.length; i < o; i++)
                    if (this._tweens[i].setPosition(n, e), n != this._prevPos) return !1;
                return r && this.setPaused(!0), this.dispatchEvent("change"), r
            }, e.setPaused = function(t) {
                this._paused = !!t, createjs.Tween._register(this, !t)
            }, e.updateDuration = function() {
                this.duration = 0;
                for (var t = 0, e = this._tweens.length; t < e; t++) {
                    var n = this._tweens[t];
                    n.duration > this.duration && (this.duration = n.duration)
                }
            }, e.tick = function(t) {
                this.setPosition(this._prevPosition + t)
            }, e.resolve = function(t) {
                var e = Number(t);
                return isNaN(e) && (e = this._labels[t]), e
            }, e.toString = function() {
                return "[Timeline]"
            }, e.clone = function() {
                throw "Timeline can not be cloned."
            }, e._goto = function(t) {
                var e = this.resolve(t);
                null != e && this.setPosition(e)
            }, e._calcPosition = function(t) {
                return t < 0 ? 0 : t < this.duration ? t : this.loop ? t % this.duration : this.duration
            }, createjs.Timeline = createjs.promote(t, "EventDispatcher")
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t() {
                throw "Ease cannot be instantiated."
            }
            t.linear = function(t) {
                return t
            }, t.none = t.linear, t.get = function(t) {
                return t < -1 && (t = -1), t > 1 && (t = 1),
                    function(e) {
                        return 0 == t ? e : t < 0 ? e * (e * -t + 1 + t) : e * ((2 - e) * t + (1 - t))
                    }
            }, t.getPowIn = function(t) {
                return function(e) {
                    return Math.pow(e, t)
                }
            }, t.getPowOut = function(t) {
                return function(e) {
                    return 1 - Math.pow(1 - e, t)
                }
            }, t.getPowInOut = function(t) {
                return function(e) {
                    return (e *= 2) < 1 ? .5 * Math.pow(e, t) : 1 - .5 * Math.abs(Math.pow(2 - e, t))
                }
            }, t.quadIn = t.getPowIn(2), t.quadOut = t.getPowOut(2), t.quadInOut = t.getPowInOut(2), t.cubicIn = t.getPowIn(3), t.cubicOut = t.getPowOut(3), t.cubicInOut = t.getPowInOut(3), t.quartIn = t.getPowIn(4), t.quartOut = t.getPowOut(4), t.quartInOut = t.getPowInOut(4), t.quintIn = t.getPowIn(5), t.quintOut = t.getPowOut(5), t.quintInOut = t.getPowInOut(5), t.sineIn = function(t) {
                return 1 - Math.cos(t * Math.PI / 2)
            }, t.sineOut = function(t) {
                return Math.sin(t * Math.PI / 2)
            }, t.sineInOut = function(t) {
                return -.5 * (Math.cos(Math.PI * t) - 1)
            }, t.getBackIn = function(t) {
                return function(e) {
                    return e * e * ((t + 1) * e - t)
                }
            }, t.backIn = t.getBackIn(1.7), t.getBackOut = function(t) {
                return function(e) {
                    return --e * e * ((t + 1) * e + t) + 1
                }
            }, t.backOut = t.getBackOut(1.7), t.getBackInOut = function(t) {
                return t *= 1.525,
                    function(e) {
                        return (e *= 2) < 1 ? e * e * ((t + 1) * e - t) * .5 : .5 * ((e -= 2) * e * ((t + 1) * e + t) + 2)
                    }
            }, t.backInOut = t.getBackInOut(1.7), t.circIn = function(t) {
                return -(Math.sqrt(1 - t * t) - 1)
            }, t.circOut = function(t) {
                return Math.sqrt(1 - --t * t)
            }, t.circInOut = function(t) {
                return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
            }, t.bounceIn = function(e) {
                return 1 - t.bounceOut(1 - e)
            }, t.bounceOut = function(t) {
                return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
            }, t.bounceInOut = function(e) {
                return e < .5 ? .5 * t.bounceIn(2 * e) : .5 * t.bounceOut(2 * e - 1) + .5
            }, t.getElasticIn = function(t, e) {
                var n = 2 * Math.PI;
                return function(r) {
                    if (0 == r || 1 == r) return r;
                    var i = e / n * Math.asin(1 / t);
                    return -t * Math.pow(2, 10 * (r -= 1)) * Math.sin((r - i) * n / e)
                }
            }, t.elasticIn = t.getElasticIn(1, .3), t.getElasticOut = function(t, e) {
                var n = 2 * Math.PI;
                return function(r) {
                    if (0 == r || 1 == r) return r;
                    var i = e / n * Math.asin(1 / t);
                    return t * Math.pow(2, -10 * r) * Math.sin((r - i) * n / e) + 1
                }
            }, t.elasticOut = t.getElasticOut(1, .3), t.getElasticInOut = function(t, e) {
                var n = 2 * Math.PI;
                return function(r) {
                    var i = e / n * Math.asin(1 / t);
                    return (r *= 2) < 1 ? t * Math.pow(2, 10 * (r -= 1)) * Math.sin((r - i) * n / e) * -.5 : t * Math.pow(2, -10 * (r -= 1)) * Math.sin((r - i) * n / e) * .5 + 1
                }
            }, t.elasticInOut = t.getElasticInOut(1, .3 * 1.5), createjs.Ease = t
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";

            function t() {
                throw "MotionGuidePlugin cannot be instantiated."
            }
            t.priority = 0, t._rotOffS, t._rotOffE, t._rotNormS, t._rotNormE, t.install = function() {
                return createjs.Tween.installPlugin(t, ["guide", "x", "y", "rotation"]), createjs.Tween.IGNORE
            }, t.init = function(t, e, n) {
                var r = t.target;
                return r.hasOwnProperty("x") || (r.x = 0), r.hasOwnProperty("y") || (r.y = 0), r.hasOwnProperty("rotation") || (r.rotation = 0), "rotation" == e && (t.__needsRot = !0), "guide" == e ? null : n
            }, t.step = function(e, n, r, i, o) {
                if ("rotation" == n && (e.__rotGlobalS = r, e.__rotGlobalE = i, t.testRotData(e, o)), "guide" != n) return i;
                var s, a = i;
                a.hasOwnProperty("path") || (a.path = []);
                var u = a.path;
                if (a.hasOwnProperty("end") || (a.end = 1), a.hasOwnProperty("start") || (a.start = r && r.hasOwnProperty("end") && r.path === u ? r.end : 0), a.hasOwnProperty("_segments") && a._length) return i;
                var l = u.length;
                if (!(l >= 6 && (l - 2) % 4 == 0)) throw "invalid 'path' data, please see documentation for valid paths";
                a._segments = [], a._length = 0;
                for (var c = 2; c < l; c += 4) {
                    for (var h, f, d = u[c - 2], p = u[c - 1], v = u[c + 0], _ = u[c + 1], g = u[c + 2], y = u[c + 3], m = d, b = p, x = 0, w = [], T = 1; T <= 10; T++) {
                        var E = T / 10,
                            S = 1 - E;
                        h = S * S * d + 2 * S * E * v + E * E * g, f = S * S * p + 2 * S * E * _ + E * E * y, x += w[w.push(Math.sqrt((s = h - m) * s + (s = f - b) * s)) - 1], m = h, b = f
                    }
                    a._segments.push(x), a._segments.push(w), a._length += x
                }
                s = a.orient, a.orient = !0;
                var P = {};
                return t.calc(a, a.start, P), e.__rotPathS = Number(P.rotation.toFixed(5)), t.calc(a, a.end, P), e.__rotPathE = Number(P.rotation.toFixed(5)), a.orient = !1, t.calc(a, a.end, o), a.orient = s, a.orient ? (e.__guideData = a, t.testRotData(e, o), i) : i
            }, t.testRotData = function(t, e) {
                if (void 0 === t.__rotGlobalS || void 0 === t.__rotGlobalE) {
                    if (t.__needsRot) return;
                    void 0 !== t._curQueueProps.rotation ? t.__rotGlobalS = t.__rotGlobalE = t._curQueueProps.rotation : t.__rotGlobalS = t.__rotGlobalE = e.rotation = t.target.rotation || 0
                }
                if (void 0 !== t.__guideData) {
                    var n = t.__guideData,
                        r = t.__rotGlobalE - t.__rotGlobalS,
                        i = t.__rotPathE - t.__rotPathS,
                        o = r - i;
                    if ("auto" == n.orient) o > 180 ? o -= 360 : o < -180 && (o += 360);
                    else if ("cw" == n.orient) {
                        for (; o < 0;) o += 360;
                        0 == o && r > 0 && 180 != r && (o += 360)
                    } else if ("ccw" == n.orient) {
                        for (o = r - (i > 180 ? 360 - i : i); o > 0;) o -= 360;
                        0 == o && r < 0 && -180 != r && (o -= 360)
                    }
                    n.rotDelta = o, n.rotOffS = t.__rotGlobalS - t.__rotPathS, t.__rotGlobalS = t.__rotGlobalE = t.__guideData = t.__needsRot = void 0
                }
            }, t.tween = function(e, n, r, i, o, s, a, u) {
                var l = o.guide;
                if (null == l || l === i.guide) return r;
                if (l.lastRatio != s) {
                    var c = (l.end - l.start) * (a ? l.end : s) + l.start;
                    switch (t.calc(l, c, e.target), l.orient) {
                        case "cw":
                        case "ccw":
                        case "auto":
                            e.target.rotation += l.rotOffS + l.rotDelta * s;
                            break;
                        case "fixed":
                        default:
                            e.target.rotation += l.rotOffS
                    }
                    l.lastRatio = s
                }
                return "rotation" != n || l.orient && "false" != l.orient ? e.target[n] : r
            }, t.calc = function(t, e, n) {
                if (null == t._segments) throw "Missing critical pre-calculated information, please file a bug";
                null == n && (n = {
                    x: 0,
                    y: 0,
                    rotation: 0
                });
                for (var r = t._segments, i = t.path, o = t._length * e, s = r.length - 2, a = 0; o > r[a] && a < s;) o -= r[a], a += 2;
                var u = r[a + 1],
                    l = 0;
                for (s = u.length - 1; o > u[l] && l < s;) o -= u[l], l++;
                var c = l / ++s + o / (s * u[l]);
                a = 2 * a + 2;
                var h = 1 - c;
                return n.x = h * h * i[a - 2] + 2 * h * c * i[a + 0] + c * c * i[a + 2], n.y = h * h * i[a - 1] + 2 * h * c * i[a + 1] + c * c * i[a + 3], t.orient && (n.rotation = 57.2957795 * Math.atan2((i[a + 1] - i[a - 1]) * h + (i[a + 3] - i[a + 1]) * c, (i[a + 0] - i[a - 2]) * h + (i[a + 2] - i[a + 0]) * c)), n
            }, createjs.MotionGuidePlugin = t
        }(), window.createjs = window.createjs || {},
        function() {
            "use strict";
            var t = createjs.TweenJS = createjs.TweenJS || {};
            t.version = "0.6.2", t.buildDate = "Thu, 26 Nov 2015 20:44:31 GMT"
        }()
}, function(t, e) {
    function n(t, e, n) {
        if (t < 0 || e < 0) throw new Error("invalid size: " + t + "x" + e);
        var r = !1;
        if (null != (n = n || {}).interior && (r = !!n.interior), this._width = t, this._height = e, this._exterior = !1, null != n.exterior && (this._exterior = !!n.exterior), this._blockWidth = t + 31 >> 5, n._grid) this._grid = n._grid;
        else {
            this._grid = new Array(this._blockWidth * e);
            for (var i = r ? -1 : 0, o = 0; o < this._blockWidth * e; o++) this._grid[o] = i
        }
    }
    n.prototype.width = function() {
        return this._width
    }, n.prototype.height = function() {
        return this._height
    }, n.prototype.clone = function() {
        return new n(this.width(), this.height(), {
            exterior: this._exterior,
            _grid: this._grid.slice()
        })
    }, n.prototype.get = function(t, e) {
        if (t < 0 || t >= this._width || e < 0 || e >= this._height) return this._exterior;
        var n = e * this._blockWidth + (t >> 5),
            r = 1 << (31 & t);
        return 0 != (this._grid[n] & r)
    }, n.prototype.set = function(t, e, n) {
        if (null == n && (n = !0), t < 0 || t >= this._width || e < 0 || e >= this._height) throw new Error("cell out of bounds: " + t + "," + e);
        var r = e * this._blockWidth + (t >> 5),
            i = 1 << (31 & t);
        return n ? this._grid[r] |= i : this._grid[r] &= ~i, this
    }, n.prototype.testAndSet = function(t, e, n) {
        if (null == n && (n = !0), t < 0 || t >= this._width || e < 0 || e >= this._height) {
            if (this._exterior == n) return !1;
            throw new Error("cell out of bounds: " + t + "," + e)
        }
        var r = e * this._blockWidth + (t >> 5),
            i = 1 << (31 & t);
        return 0 != (this._grid[r] & i) != n && (n ? this._grid[r] |= i : this._grid[r] &= ~i, !0)
    }, t.exports = n
}, function(t, e, n) {
    var r = n(88);

    function i(t, e, n, r) {
        this._north = t, this._east = e, this._south = n, this._west = r
    }

    function o(t, e) {
        if (t < 0 || e < 0) throw new Error("invalid size: " + t + "x" + e);
        this._width = t, this._height = e, this._blockWidth = t + 1 + 15 >> 4, this._grid = new Array(this._blockWidth * (e + 1));
        for (var n = 0; n < this._blockWidth * (e + 1); n++) this._grid[n] = 0
    }
    i.prototype.north = function() {
        return this._north
    }, i.prototype.west = function() {
        return this._west
    }, i.prototype.south = function() {
        return this._south
    }, i.prototype.east = function() {
        return this._east
    }, o.prototype.width = function() {
        return this._width
    }, o.prototype.height = function() {
        return this._height
    }, o.prototype.cell = function(t, e) {
        if (t < 0 || e < 0 || t >= this._width || e >= this._height) return new i(!1, !1, !1, !1);
        var n, r, o, s = e * this._blockWidth + (t >> 4),
            a = 1 << 2 * (15 & t);
        n = 0 != (this._grid[s] & a), o = 0 != (this._grid[s] & a << 1), r = 0 != (this._grid[s + this._blockWidth] & a);
        var u = t + 1,
            l = e * this._blockWidth + (u >> 4),
            c = 1 << 2 * (15 & u);
        return new i(n, 0 != (this._grid[l] & c << 1), r, o)
    }, o.prototype.getPassage = function(t, e, n) {
        return !(t < 0 || e < 0 || t >= this._width || e >= this._height) && (n != r.EAST ? (i = e * this._blockWidth + (t >> 4), o = 1 << 2 * (15 & t), n == r.NORTH || (n == r.WEST ? o <<= 1 : i += this._blockWidth)) : (i = e * this._blockWidth + (t + 1 >> 4), o = 1 << 2 * (t + 1 & 15) + 1), 0 != (this._grid[i] & o));
        var i, o
    }, o.prototype.setPassage = function(t, e, n, i) {
        var o, s;
        if (null == i && (i = !0), n != r.EAST)
            if (o = e * this._blockWidth + (t >> 4), s = 1 << 2 * (15 & t), n == r.NORTH) {
                if (t < 0 || e < 1 || t >= this._width || e >= this._height) throw new Error("passage out of bounds: " + t + "," + e + " dir=" + n)
            } else if (n == r.WEST) {
            if (t < 1 || e < 0 || t >= this._width || e >= this._height) throw new Error("passage out of bounds: " + t + "," + e + " dir=" + n);
            s <<= 1
        } else {
            if (t < 0 || e < 0 || t >= this._width || e >= this._height - 1) throw new Error("passage out of bounds: " + t + "," + e + " dir=" + n);
            o += this._blockWidth
        } else {
            if (t < 0 || e < 0 || t >= this._width - 1 || e >= this._height) throw new Error("passage out of bounds: " + t + "," + e + " dir=" + n);
            o = e * this._blockWidth + (t + 1 >> 4), s = 1 << 2 * (t + 1 & 15) + 1
        }
        i ? this._grid[o] |= s : this._grid[o] &= ~s
    }, t.exports = o
}, function(t, e) {
    function n(t) {
        throw new Error("Cannot find module '" + t + "'.")
    }
    n.keys = function() {
        return []
    }, n.resolve = n, t.exports = n, n.id = 207
}, function(t, e, n) {
    var r = n(50).Maze;
    t.exports = function(t, e, n) {
        var i = {};
        for (var o in n) i[o] = n[o];
        i.random || (n.random = Math.random), n.generator || (n.generator = "@sbj42/maze-generator-backtrack");
        var s, a = new r(t, e);
        if ("string" == typeof n.generator) try {
            s = ! function() {
                var t = new Error('Cannot find module "."');
                throw t.code = "MODULE_NOT_FOUND", t
            }()
        } catch (t) {
            throw new Error("failed to load plugin " + n.generator + ": " + t.toString())
        } else s = n.generator;
        return s(a, n), a
    }
}, function(t, e, n) {
    e.generate = n(208), e.GridMask = n(50).GridMask
}, function(t, e) {
    var n = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || function(t, e) {
        setTimeout(t, e || 1e3 / 60)
    };
    t.exports = n
}, function(t, e) {
    t.exports = [{
        LevelNo: 1,
        LevelCount: 1,
        Columns: 6,
        Rows: 8,
        Ratio: "0,75",
        MyTime: "NA"
    }, {
        LevelNo: 2,
        LevelCount: 1,
        Columns: 7,
        Rows: 10,
        Ratio: "0,7",
        MyTime: "NA"
    }, {
        LevelNo: 3,
        LevelCount: 2,
        Columns: 8,
        Rows: 11,
        Ratio: "0,7272727273",
        MyTime: "NA"
    }, {
        LevelNo: 5,
        LevelCount: 2,
        Columns: 9,
        Rows: 12,
        Ratio: "0,75",
        MyTime: "NA"
    }, {
        LevelNo: 7,
        LevelCount: 2,
        Columns: 10,
        Rows: 14,
        Ratio: "0,7142857143",
        MyTime: "NA"
    }, {
        LevelNo: 9,
        LevelCount: 2,
        Columns: 11,
        Rows: 15,
        Ratio: "0,7333333333",
        MyTime: "NA"
    }, {
        LevelNo: 11,
        LevelCount: 2,
        Columns: 12,
        Rows: 16,
        Ratio: "0,75",
        MyTime: "NA"
    }, {
        LevelNo: 13,
        LevelCount: 2,
        Columns: 13,
        Rows: 17,
        Ratio: "0,7647058824",
        MyTime: "NA"
    }, {
        LevelNo: 15,
        LevelCount: 2,
        Columns: 14,
        Rows: 19,
        Ratio: "0,7368421053",
        MyTime: "NA"
    }, {
        LevelNo: 17,
        LevelCount: 2,
        Columns: 15,
        Rows: 20,
        Ratio: "0,75",
        MyTime: "NA"
    }, {
        LevelNo: 19,
        LevelCount: 2,
        Columns: 16,
        Rows: 21,
        Ratio: "0,7619047619",
        MyTime: "NA"
    }, {
        LevelNo: 21,
        LevelCount: 4,
        Columns: 16,
        Rows: 22,
        Ratio: "0,7272727273",
        MyTime: "NA"
    }, {
        LevelNo: 25,
        LevelCount: 4,
        Columns: 17,
        Rows: 22,
        Ratio: "0,7727272727",
        MyTime: "NA"
    }, {
        LevelNo: 29,
        LevelCount: 4,
        Columns: 17,
        Rows: 23,
        Ratio: "0,7391304348",
        MyTime: "NA"
    }, {
        LevelNo: 33,
        LevelCount: 8,
        Columns: 18,
        Rows: 24,
        Ratio: "0,75",
        MyTime: "NA"
    }, {
        LevelNo: 41,
        LevelCount: 8,
        Columns: 18,
        Rows: 25,
        Ratio: "0,72",
        MyTime: "NA"
    }, {
        LevelNo: 49,
        LevelCount: 8,
        Columns: 19,
        Rows: 25,
        Ratio: "0,76",
        MyTime: "NA"
    }, {
        LevelNo: 57,
        LevelCount: 16,
        Columns: 19,
        Rows: 26,
        Ratio: "0,7307692308",
        MyTime: "NA"
    }, {
        LevelNo: 73,
        LevelCount: 16,
        Columns: 20,
        Rows: 27,
        Ratio: "0,7407407407",
        MyTime: "NA"
    }, {
        LevelNo: 89,
        LevelCount: 16,
        Columns: 20,
        Rows: 28,
        Ratio: "0,7142857143",
        MyTime: "NA"
    }, {
        LevelNo: 105,
        LevelCount: 16,
        Columns: 21,
        Rows: 29,
        Ratio: "0,724137931",
        MyTime: "NA"
    }, {
        LevelNo: 121,
        LevelCount: 16,
        Columns: 22,
        Rows: 30,
        Ratio: "0,7333333333",
        MyTime: "NA"
    }, {
        LevelNo: 137,
        LevelCount: 32,
        Columns: 22,
        Rows: 31,
        Ratio: "0,7096774194",
        MyTime: "NA"
    }, {
        LevelNo: 169,
        LevelCount: 32,
        Columns: 22,
        Rows: 32,
        Ratio: "0,6875",
        MyTime: "NA"
    }]
}, function(t, e) {
    t.exports = {
        columns: 22,
        rows: 31,
        wallThickness: 2,
        pathThickness: 8
    }
}, function(t, e) {
    t.exports = {
        en: {
            "level1.label": "Easy",
            "level2.label": "Medium",
            "level3.label": "Hard",
            "levelComplete.greetings": ["Well Done!", "Awesome!", "Great!"],
            "levelComplete.time": "%1",
            "levelComplete.level": "%1 / %2",
            "level.prefix": "Level ",
            "dark.level.prefix": "Dark Level ",
            "menu.bestTime": "%1",
            "gameMode.locked.message": "Complete %1\nlevels to unlock",
            "gameMode.classic": "",
            "gameMode.dark": "",
            "gameMode.timeTrial": "Time Trial"
        }
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t, e, n) {
        switch (n.length) {
            case 0:
                return t.call(e);
            case 1:
                return t.call(e, n[0]);
            case 2:
                return t.call(e, n[0], n[1]);
            case 3:
                return t.call(e, n[0], n[1], n[2])
        }
        return t.apply(e, n)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(94),
        i = n(243),
        o = n(244),
        s = n(245),
        a = n(97),
        u = n(247),
        l = Object.prototype.hasOwnProperty;
    e.a = function(t, e) {
        var c = n.i(o.a)(t),
            h = !c && n.i(i.a)(t),
            f = !c && !h && n.i(s.a)(t),
            d = !c && !h && !f && n.i(u.a)(t),
            p = c || h || f || d,
            v = p ? n.i(r.a)(t.length, String) : [],
            _ = v.length;
        for (var g in t) !e && !l.call(t, g) || p && ("length" == g || f && ("offset" == g || "parent" == g) || d && ("buffer" == g || "byteLength" == g || "byteOffset" == g) || n.i(a.a)(g, _)) || v.push(g);
        return v
    }
}, function(t, e, n) {
    "use strict";
    var r = n(35),
        i = n(37);
    e.a = function(t) {
        return n.i(i.a)(t) && "[object Arguments]" == n.i(r.a)(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(101),
        i = n(231),
        o = n(19),
        s = n(239),
        a = /^\[object .+?Constructor\]$/,
        u = Function.prototype,
        l = Object.prototype,
        c = u.toString,
        h = l.hasOwnProperty,
        f = RegExp("^" + c.call(h).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
    e.a = function(t) {
        return !(!n.i(o.a)(t) || n.i(i.a)(t)) && (n.i(r.a)(t) ? f : a).test(n.i(s.a)(t))
    }
}, function(t, e, n) {
    "use strict";
    var r = n(35),
        i = n(102),
        o = n(37),
        s = {};
    s["[object Float32Array]"] = s["[object Float64Array]"] = s["[object Int8Array]"] = s["[object Int16Array]"] = s["[object Int32Array]"] = s["[object Uint8Array]"] = s["[object Uint8ClampedArray]"] = s["[object Uint16Array]"] = s["[object Uint32Array]"] = !0, s["[object Arguments]"] = s["[object Array]"] = s["[object ArrayBuffer]"] = s["[object Boolean]"] = s["[object DataView]"] = s["[object Date]"] = s["[object Error]"] = s["[object Function]"] = s["[object Map]"] = s["[object Number]"] = s["[object Object]"] = s["[object RegExp]"] = s["[object Set]"] = s["[object String]"] = s["[object WeakMap]"] = !1, e.a = function(t) {
        return n.i(o.a)(t) && n.i(i.a)(t.length) && !!s[n.i(r.a)(t)]
    }
}, function(t, e, n) {
    "use strict";
    var r = n(99),
        i = n(232),
        o = Object.prototype.hasOwnProperty;
    e.a = function(t) {
        if (!n.i(r.a)(t)) return n.i(i.a)(t);
        var e = [];
        for (var s in Object(t)) o.call(t, s) && "constructor" != s && e.push(s);
        return e
    }
}, function(t, e, n) {
    "use strict";
    var r = Math.floor,
        i = Math.random;
    e.a = function(t, e) {
        return t + r(i() * (e - t + 1))
    }
}, function(t, e, n) {
    "use strict";
    var r = n(54),
        i = n(236),
        o = n(237);
    e.a = function(t, e) {
        return n.i(o.a)(n.i(i.a)(t, e, r.a), t + "")
    }
}, function(t, e, n) {
    "use strict";
    var r = n(241),
        i = n(95),
        o = n(54),
        s = i.a ? function(t, e) {
            return n.i(i.a)(t, "toString", {
                configurable: !0,
                enumerable: !1,
                value: n.i(r.a)(e),
                writable: !0
            })
        } : o.a;
    e.a = s
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        return function(e) {
            return t(e)
        }
    }
}, function(t, e, n) {
    "use strict";
    var r = n(54);
    e.a = function(t) {
        return "function" == typeof t ? t : r.a
    }
}, function(t, e, n) {
    "use strict";
    var r = n(92),
        i = n(93);
    e.a = function(t, e, o, s) {
        var a = !o;
        o || (o = {});
        for (var u = -1, l = e.length; ++u < l;) {
            var c = e[u],
                h = s ? s(o[c], t[c], c, o, t) : void 0;
            void 0 === h && (h = t[c]), a ? n.i(i.a)(o, c, h) : n.i(r.a)(o, c, h)
        }
        return o
    }
}, function(t, e, n) {
    "use strict";
    var r = n(36).a["__core-js_shared__"];
    e.a = r
}, function(t, e, n) {
    "use strict";
    var r = n(221),
        i = n(98);
    e.a = function(t) {
        return n.i(r.a)(function(e, r) {
            var o = -1,
                s = r.length,
                a = s > 1 ? r[s - 1] : void 0,
                u = s > 2 ? r[2] : void 0;
            for (a = t.length > 3 && "function" == typeof a ? (s--, a) : void 0, u && n.i(i.a)(r[0], r[1], u) && (a = s < 3 ? void 0 : a, s = 1), e = Object(e); ++o < s;) {
                var l = r[o];
                l && t(e, l, o, a)
            }
            return e
        })
    }
}, function(t, e, n) {
    "use strict";
    var r = n(217),
        i = n(230);
    e.a = function(t, e) {
        var o = n.i(i.a)(t, e);
        return n.i(r.a)(o) ? o : void 0
    }
}, function(t, e, n) {
    "use strict";
    var r = n(91),
        i = Object.prototype,
        o = i.hasOwnProperty,
        s = i.toString,
        a = r.a ? r.a.toStringTag : void 0;
    e.a = function(t) {
        var e = o.call(t, a),
            n = t[a];
        try {
            t[a] = void 0;
            var r = !0
        } catch (t) {}
        var i = s.call(t);
        return r && (e ? t[a] = n : delete t[a]), i
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t, e) {
        return null == t ? void 0 : t[e]
    }
}, function(t, e, n) {
    "use strict";
    var r, i = n(226),
        o = (r = /[^.]+$/.exec(i.a && i.a.keys && i.a.keys.IE_PROTO || "")) ? "Symbol(src)_1." + r : "";
    e.a = function(t) {
        return !!o && o in t
    }
}, function(t, e, n) {
    "use strict";
    var r = n(235),
        i = n.i(r.a)(Object.keys, Object);
    e.a = i
}, function(t, e, n) {
    "use strict";
    (function(t) {
        var r = n(96),
            i = "object" == typeof exports && exports && !exports.nodeType && exports,
            o = i && "object" == typeof t && t && !t.nodeType && t,
            s = o && o.exports === i && r.a.process,
            a = function() {
                try {
                    return o && o.require && o.require("util").types || s && s.binding && s.binding("util")
                } catch (t) {}
            }();
        e.a = a
    }).call(e, n(197)(t))
}, function(t, e, n) {
    "use strict";
    var r = Object.prototype.toString;
    e.a = function(t) {
        return r.call(t)
    }
}, function(t, e, n) {
    "use strict";
    e.a = function(t, e) {
        return function(n) {
            return t(e(n))
        }
    }
}, function(t, e, n) {
    "use strict";
    var r = n(214),
        i = Math.max;
    e.a = function(t, e, o) {
        return e = i(void 0 === e ? t.length - 1 : e, 0),
            function() {
                for (var s = arguments, a = -1, u = i(s.length - e, 0), l = Array(u); ++a < u;) l[a] = s[e + a];
                a = -1;
                for (var c = Array(e + 1); ++a < e;) c[a] = s[a];
                return c[e] = o(l), n.i(r.a)(t, this, c)
            }
    }
}, function(t, e, n) {
    "use strict";
    var r = n(222),
        i = n(238),
        o = n.i(i.a)(r.a);
    e.a = o
}, function(t, e, n) {
    "use strict";
    var r = Date.now;
    e.a = function(t) {
        var e = 0,
            n = 0;
        return function() {
            var i = r(),
                o = 16 - (i - n);
            if (n = i, o > 0) {
                if (++e >= 800) return arguments[0]
            } else e = 0;
            return t.apply(void 0, arguments)
        }
    }
}, function(t, e, n) {
    "use strict";
    var r = Function.prototype.toString;
    e.a = function(t) {
        if (null != t) {
            try {
                return r.call(t)
            } catch (t) {}
            try {
                return t + ""
            } catch (t) {}
        }
        return ""
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(92),
        i = n(225),
        o = n(227),
        s = n(55),
        a = n(99),
        u = n(248),
        l = Object.prototype.hasOwnProperty,
        c = n.i(o.a)(function(t, e) {
            if (n.i(a.a)(e) || n.i(s.a)(e)) n.i(i.a)(e, n.i(u.a)(e), t);
            else
                for (var o in e) l.call(e, o) && n.i(r.a)(t, o, e[o])
        });
    e.default = c
}, function(t, e, n) {
    "use strict";
    e.a = function(t) {
        return function() {
            return t
        }
    }
}, function(t, e, n) {
    "use strict";
    var r = n(19),
        i = n(249),
        o = n(105),
        s = Math.max,
        a = Math.min;
    e.a = function(t, e, u) {
        var l, c, h, f, d, p, v = 0,
            _ = !1,
            g = !1,
            y = !0;
        if ("function" != typeof t) throw new TypeError("Expected a function");

        function m(e) {
            var n = l,
                r = c;
            return l = c = void 0, v = e, f = t.apply(r, n)
        }

        function b(t) {
            var n = t - p;
            return void 0 === p || n >= e || n < 0 || g && t - v >= h
        }

        function x() {
            var t = n.i(i.a)();
            if (b(t)) return w(t);
            d = setTimeout(x, function(t) {
                var n = e - (t - p);
                return g ? a(n, h - (t - v)) : n
            }(t))
        }

        function w(t) {
            return d = void 0, y && l ? m(t) : (l = c = void 0, f)
        }

        function T() {
            var t = n.i(i.a)(),
                r = b(t);
            if (l = arguments, c = this, p = t, r) {
                if (void 0 === d) return function(t) {
                    return v = t, d = setTimeout(x, e), _ ? m(t) : f
                }(p);
                if (g) return d = setTimeout(x, e), m(p)
            }
            return void 0 === d && (d = setTimeout(x, e)), f
        }
        return e = n.i(o.a)(e) || 0, n.i(r.a)(u) && (_ = !!u.leading, h = (g = "maxWait" in u) ? s(n.i(o.a)(u.maxWait) || 0, e) : h, y = "trailing" in u ? !!u.trailing : y), T.cancel = function() {
            void 0 !== d && clearTimeout(d), v = 0, l = p = c = d = void 0
        }, T.flush = function() {
            return void 0 === d ? f : w(n.i(i.a)())
        }, T
    }
}, function(t, e, n) {
    "use strict";
    var r = n(216),
        i = n(37),
        o = Object.prototype,
        s = o.hasOwnProperty,
        a = o.propertyIsEnumerable,
        u = n.i(r.a)(function() {
            return arguments
        }()) ? r.a : function(t) {
            return n.i(i.a)(t) && s.call(t, "callee") && !a.call(t, "callee")
        };
    e.a = u
}, function(t, e, n) {
    "use strict";
    var r = Array.isArray;
    e.a = r
}, function(t, e, n) {
    "use strict";
    (function(t) {
        var r = n(36),
            i = n(251),
            o = "object" == typeof exports && exports && !exports.nodeType && exports,
            s = o && "object" == typeof t && t && !t.nodeType && t,
            a = s && s.exports === o ? r.a.Buffer : void 0,
            u = (a ? a.isBuffer : void 0) || i.a;
        e.a = u
    }).call(e, n(197)(t))
}, function(t, e, n) {
    "use strict";
    var r = n(35),
        i = n(37);
    e.a = function(t) {
        return "symbol" == typeof t || n.i(i.a)(t) && "[object Symbol]" == n.i(r.a)(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(218),
        i = n(223),
        o = n(233),
        s = o.a && o.a.isTypedArray,
        a = s ? n.i(i.a)(s) : r.a;
    e.a = a
}, function(t, e, n) {
    "use strict";
    var r = n(215),
        i = n(219),
        o = n(55);
    e.a = function(t) {
        return n.i(o.a)(t) ? n.i(r.a)(t) : n.i(i.a)(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = n(36);
    e.a = function() {
        return r.a.Date.now()
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(220),
        i = n(98),
        o = n(104),
        s = parseFloat,
        a = Math.min,
        u = Math.random;
    e.default = function(t, e, l) {
        if (l && "boolean" != typeof l && n.i(i.a)(t, e, l) && (e = l = void 0), void 0 === l && ("boolean" == typeof e ? (l = e, e = void 0) : "boolean" == typeof t && (l = t, t = void 0)), void 0 === t && void 0 === e ? (t = 0, e = 1) : (t = n.i(o.a)(t), void 0 === e ? (e = t, t = 0) : e = n.i(o.a)(e)), t > e) {
            var c = t;
            t = e, e = c
        }
        if (l || t % 1 || e % 1) {
            var h = u();
            return a(t + h * (e - t + s("1e-" + ((h + "").length - 1))), e)
        }
        return n.i(r.a)(t, e)
    }
}, function(t, e, n) {
    "use strict";
    e.a = function() {
        return !1
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(94),
        i = n(224),
        o = n(253),
        s = 4294967295,
        a = Math.min;
    e.default = function(t, e) {
        if ((t = n.i(o.a)(t)) < 1 || t > 9007199254740991) return [];
        var u = s,
            l = a(t, s);
        e = n.i(i.a)(e), t -= s;
        for (var c = n.i(r.a)(l, e); ++u < t;) e(u);
        return c
    }
}, function(t, e, n) {
    "use strict";
    var r = n(104);
    e.a = function(t) {
        var e = n.i(r.a)(t),
            i = e % 1;
        return e == e ? i ? e - i : e : 0
    }
}, function(t, e, n) {
    var r = n(17)(n(6), "DataView");
    t.exports = r
}, function(t, e, n) {
    var r = n(313),
        i = n(314),
        o = n(315),
        s = n(316),
        a = n(317);

    function u(t) {
        var e = -1,
            n = null == t ? 0 : t.length;
        for (this.clear(); ++e < n;) {
            var r = t[e];
            this.set(r[0], r[1])
        }
    }
    u.prototype.clear = r, u.prototype.delete = i, u.prototype.get = o, u.prototype.has = s, u.prototype.set = a, t.exports = u
}, function(t, e, n) {
    var r = n(17)(n(6), "Promise");
    t.exports = r
}, function(t, e, n) {
    var r = n(17)(n(6), "Set");
    t.exports = r
}, function(t, e, n) {
    var r = n(58),
        i = n(343),
        o = n(344);

    function s(t) {
        var e = -1,
            n = null == t ? 0 : t.length;
        for (this.__data__ = new r; ++e < n;) this.add(t[e])
    }
    s.prototype.add = s.prototype.push = i, s.prototype.has = o, t.exports = s
}, function(t, e, n) {
    var r = n(6).Uint8Array;
    t.exports = r
}, function(t, e) {
    t.exports = function(t, e, n, r) {
        for (var i = -1, o = null == t ? 0 : t.length; ++i < o;) {
            var s = t[i];
            e(r, s, n(s), t)
        }
        return r
    }
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = null == t ? 0 : t.length, i = 0, o = []; ++n < r;) {
            var s = t[n];
            e(s, n, t) && (o[i++] = s)
        }
        return o
    }
}, function(t, e, n) {
    var r = n(274);
    t.exports = function(t, e) {
        return !(null == t || !t.length) && r(t, e, 0) > -1
    }
}, function(t, e, n) {
    var r = n(287),
        i = n(67),
        o = n(8),
        s = n(139),
        a = n(64),
        u = n(140),
        l = Object.prototype.hasOwnProperty;
    t.exports = function(t, e) {
        var n = o(t),
            c = !n && i(t),
            h = !n && !c && s(t),
            f = !n && !c && !h && u(t),
            d = n || c || h || f,
            p = d ? r(t.length, String) : [],
            v = p.length;
        for (var _ in t) !e && !l.call(t, _) || d && ("length" == _ || h && ("offset" == _ || "parent" == _) || f && ("buffer" == _ || "byteLength" == _ || "byteOffset" == _) || a(_, v)) || p.push(_);
        return p
    }
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r;) i[n] = e(t[n], n, t);
        return i
    }
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = null == t ? 0 : t.length; ++n < r;)
            if (e(t[n], n, t)) return !0;
        return !1
    }
}, function(t, e, n) {
    var r = n(111);
    t.exports = function(t, e, n, i) {
        return r(t, function(t, r, o) {
            e(i, t, n(t), o)
        }), i
    }
}, function(t, e) {
    t.exports = function(t, e, n) {
        return t == t && (void 0 !== n && (t = t <= n ? t : n), void 0 !== e && (t = t >= e ? t : e)), t
    }
}, function(t, e) {
    t.exports = function(t, e, n) {
        if ("function" != typeof t) throw new TypeError("Expected a function");
        return setTimeout(function() {
            t.apply(void 0, n)
        }, e)
    }
}, function(t, e, n) {
    var r = n(109),
        i = n(319);
    t.exports = function t(e, n, o, s, a) {
        var u = -1,
            l = e.length;
        for (o || (o = i), a || (a = []); ++u < l;) {
            var c = e[u];
            n > 0 && o(c) ? n > 1 ? t(c, n - 1, o, s, a) : r(a, c) : s || (a[a.length] = c)
        }
        return a
    }
}, function(t, e, n) {
    var r = n(296)();
    t.exports = r
}, function(t, e, n) {
    var r = n(270),
        i = n(70);
    t.exports = function(t, e) {
        return t && r(t, e, i)
    }
}, function(t, e, n) {
    var r = n(109),
        i = n(8);
    t.exports = function(t, e, n) {
        var o = e(t);
        return i(t) ? o : r(o, n(t))
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return null != t && e in Object(t)
    }
}, function(t, e, n) {
    var r = n(112),
        i = n(278),
        o = n(351);
    t.exports = function(t, e, n) {
        return e == e ? o(t, e, n) : r(t, i, n)
    }
}, function(t, e, n) {
    var r = n(25),
        i = n(21);
    t.exports = function(t) {
        return i(t) && "[object Arguments]" == r(t)
    }
}, function(t, e, n) {
    var r = n(107),
        i = n(125),
        o = n(301),
        s = n(302),
        a = n(309),
        u = n(8),
        l = n(139),
        c = n(140),
        h = "[object Arguments]",
        f = "[object Array]",
        d = "[object Object]",
        p = Object.prototype.hasOwnProperty;
    t.exports = function(t, e, n, v, _, g) {
        var y = u(t),
            m = u(e),
            b = y ? f : a(t),
            x = m ? f : a(e),
            w = (b = b == h ? d : b) == d,
            T = (x = x == h ? d : x) == d,
            E = b == x;
        if (E && l(t)) {
            if (!l(e)) return !1;
            y = !0, w = !1
        }
        if (E && !w) return g || (g = new r), y || c(t) ? i(t, e, n, v, _, g) : o(t, e, b, n, v, _, g);
        if (!(1 & n)) {
            var S = w && p.call(t, "__wrapped__"),
                P = T && p.call(e, "__wrapped__");
            if (S || P) {
                var O = S ? t.value() : t,
                    M = P ? e.value() : e;
                return g || (g = new r), _(O, M, n, v, g)
            }
        }
        return !!E && (g || (g = new r), s(t, e, n, v, _, g))
    }
}, function(t, e, n) {
    var r = n(107),
        i = n(114);
    t.exports = function(t, e, n, o) {
        var s = n.length,
            a = s,
            u = !o;
        if (null == t) return !a;
        for (t = Object(t); s--;) {
            var l = n[s];
            if (u && l[2] ? l[1] !== t[l[0]] : !(l[0] in t)) return !1
        }
        for (; ++s < a;) {
            var c = (l = n[s])[0],
                h = t[c],
                f = l[1];
            if (u && l[2]) {
                if (void 0 === h && !(c in t)) return !1
            } else {
                var d = new r;
                if (o) var p = o(h, f, c, t, e, d);
                if (!(void 0 === p ? i(f, h, 3, o, d) : p)) return !1
            }
        }
        return !0
    }
}, function(t, e) {
    t.exports = function(t) {
        return t != t
    }
}, function(t, e, n) {
    var r = n(68),
        i = n(322),
        o = n(20),
        s = n(135),
        a = /^\[object .+?Constructor\]$/,
        u = Function.prototype,
        l = Object.prototype,
        c = u.toString,
        h = l.hasOwnProperty,
        f = RegExp("^" + c.call(h).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
    t.exports = function(t) {
        return !(!o(t) || i(t)) && (r(t) ? f : a).test(s(t))
    }
}, function(t, e, n) {
    var r = n(25),
        i = n(69),
        o = n(21),
        s = {};
    s["[object Float32Array]"] = s["[object Float64Array]"] = s["[object Int8Array]"] = s["[object Int16Array]"] = s["[object Int32Array]"] = s["[object Uint8Array]"] = s["[object Uint8ClampedArray]"] = s["[object Uint16Array]"] = s["[object Uint32Array]"] = !0, s["[object Arguments]"] = s["[object Array]"] = s["[object ArrayBuffer]"] = s["[object Boolean]"] = s["[object DataView]"] = s["[object Date]"] = s["[object Error]"] = s["[object Function]"] = s["[object Map]"] = s["[object Number]"] = s["[object Object]"] = s["[object RegExp]"] = s["[object Set]"] = s["[object String]"] = s["[object WeakMap]"] = !1, t.exports = function(t) {
        return o(t) && i(t.length) && !!s[r(t)]
    }
}, function(t, e, n) {
    var r = n(323),
        i = n(337),
        o = Object.prototype.hasOwnProperty;
    t.exports = function(t) {
        if (!r(t)) return i(t);
        var e = [];
        for (var n in Object(t)) o.call(t, n) && "constructor" != n && e.push(n);
        return e
    }
}, function(t, e, n) {
    var r = n(277),
        i = n(306),
        o = n(129);
    t.exports = function(t) {
        var e = i(t);
        return 1 == e.length && e[0][2] ? o(e[0][0], e[0][1]) : function(n) {
            return n === t || r(n, t, e)
        }
    }
}, function(t, e, n) {
    var r = n(114),
        i = n(362),
        o = n(363),
        s = n(65),
        a = n(128),
        u = n(129),
        l = n(26);
    t.exports = function(t, e) {
        return s(t) && a(e) ? u(l(t), e) : function(n) {
            var s = i(n, t);
            return void 0 === s && s === e ? o(n, t) : r(e, s, 3)
        }
    }
}, function(t, e) {
    t.exports = function(t) {
        return function(e) {
            return null == e ? void 0 : e[t]
        }
    }
}, function(t, e, n) {
    var r = n(113);
    t.exports = function(t) {
        return function(e) {
            return r(e, t)
        }
    }
}, function(t, e, n) {
    var r = n(357),
        i = n(124),
        o = n(27),
        s = i ? function(t, e) {
            return i(t, "toString", {
                configurable: !0,
                enumerable: !1,
                value: r(e),
                writable: !0
            })
        } : o;
    t.exports = s
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n);
        return r
    }
}, function(t, e, n) {
    var r = n(24),
        i = n(264),
        o = n(8),
        s = n(45),
        a = r ? r.prototype : void 0,
        u = a ? a.toString : void 0;
    t.exports = function t(e) {
        if ("string" == typeof e) return e;
        if (o(e)) return i(e, t) + "";
        if (s(e)) return u ? u.call(e) : "";
        var n = e + "";
        return "0" == n && 1 / e == -1 / 0 ? "-0" : n
    }
}, function(t, e) {
    t.exports = function(t) {
        return function(e) {
            return t(e)
        }
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return t.has(e)
    }
}, function(t, e, n) {
    var r = n(27);
    t.exports = function(t) {
        return "function" == typeof t ? t : r
    }
}, function(t, e, n) {
    var r = n(6)["__core-js_shared__"];
    t.exports = r
}, function(t, e) {
    t.exports = function(t, e) {
        for (var n = t.length, r = 0; n--;) t[n] === e && ++r;
        return r
    }
}, function(t, e, n) {
    var r = n(260),
        i = n(266),
        o = n(115),
        s = n(8);
    t.exports = function(t, e) {
        return function(n, a) {
            var u = s(n) ? r : i,
                l = e ? e() : {};
            return u(n, t, o(a, 2), l)
        }
    }
}, function(t, e, n) {
    var r = n(138);
    t.exports = function(t, e) {
        return function(n, i) {
            if (null == n) return n;
            if (!r(n)) return t(n, i);
            for (var o = n.length, s = e ? o : -1, a = Object(n);
                (e ? s-- : ++s < o) && !1 !== i(a[s], s, a););
            return n
        }
    }
}, function(t, e) {
    t.exports = function(t) {
        return function(e, n, r) {
            for (var i = -1, o = Object(e), s = r(e), a = s.length; a--;) {
                var u = s[t ? a : ++i];
                if (!1 === n(o[u], u, o)) break
            }
            return e
        }
    }
}, function(t, e, n) {
    var r = n(40),
        i = n(6);
    t.exports = function(t, e, n) {
        var o = 1 & e,
            s = r(t);
        return function e() {
            return (this && this !== i && this instanceof e ? s : t).apply(o ? n : this, arguments)
        }
    }
}, function(t, e, n) {
    var r = n(59),
        i = n(40),
        o = n(122),
        s = n(123),
        a = n(63),
        u = n(43),
        l = n(6);
    t.exports = function(t, e, n) {
        var c = i(t);
        return function i() {
            for (var h = arguments.length, f = Array(h), d = h, p = a(i); d--;) f[d] = arguments[d];
            var v = h < 3 && f[0] !== p && f[h - 1] !== p ? [] : u(f, p);
            return (h -= v.length) < n ? s(t, e, o, i.placeholder, void 0, f, v, void 0, void 0, n - h) : r(this && this !== l && this instanceof i ? c : t, this, f)
        }
    }
}, function(t, e, n) {
    var r = n(59),
        i = n(40),
        o = n(6);
    t.exports = function(t, e, n, s) {
        var a = 1 & e,
            u = i(t);
        return function e() {
            for (var i = -1, l = arguments.length, c = -1, h = s.length, f = Array(h + l), d = this && this !== o && this instanceof e ? u : t; ++c < h;) f[c] = s[c];
            for (; l--;) f[c++] = arguments[++i];
            return r(d, a ? n : this, f)
        }
    }
}, function(t, e, n) {
    var r = n(117),
        i = n(297),
        o = n(298),
        s = n(122),
        a = n(299),
        u = n(127),
        l = n(336),
        c = n(132),
        h = n(133),
        f = n(141),
        d = Math.max;
    t.exports = function(t, e, n, p, v, _, g, y) {
        var m = 2 & e;
        if (!m && "function" != typeof t) throw new TypeError("Expected a function");
        var b = p ? p.length : 0;
        if (b || (e &= -97, p = v = void 0), g = void 0 === g ? g : d(f(g), 0), y = void 0 === y ? y : f(y), b -= v ? v.length : 0, 64 & e) {
            var x = p,
                w = v;
            p = v = void 0
        }
        var T = m ? void 0 : u(t),
            E = [t, e, n, p, v, x, w, _, g, y];
        if (T && l(E, T), t = E[0], e = E[1], n = E[2], p = E[3], v = E[4], !(y = E[9] = void 0 === E[9] ? m ? 0 : t.length : d(E[9] - b, 0)) && 24 & e && (e &= -25), e && 1 != e) S = 8 == e || 16 == e ? o(t, e, y) : 32 != e && 33 != e || v.length ? s.apply(void 0, E) : a(t, e, n, p);
        else var S = i(t, e, n);
        return h((T ? r : c)(S, E), t, e)
    }
}, function(t, e, n) {
    var r = n(24),
        i = n(259),
        o = n(137),
        s = n(125),
        a = n(334),
        u = n(345),
        l = r ? r.prototype : void 0,
        c = l ? l.valueOf : void 0;
    t.exports = function(t, e, n, r, l, h, f) {
        switch (n) {
            case "[object DataView]":
                if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1;
                t = t.buffer, e = e.buffer;
            case "[object ArrayBuffer]":
                return !(t.byteLength != e.byteLength || !h(new i(t), new i(e)));
            case "[object Boolean]":
            case "[object Date]":
            case "[object Number]":
                return o(+t, +e);
            case "[object Error]":
                return t.name == e.name && t.message == e.message;
            case "[object RegExp]":
            case "[object String]":
                return t == e + "";
            case "[object Map]":
                var d = a;
            case "[object Set]":
                var p = 1 & r;
                if (d || (d = u), t.size != e.size && !p) return !1;
                var v = f.get(t);
                if (v) return v == e;
                r |= 2, f.set(t, e);
                var _ = s(d(t), d(e), r, l, h, f);
                return f.delete(t), _;
            case "[object Symbol]":
                if (c) return c.call(t) == c.call(e)
        }
        return !1
    }
}, function(t, e, n) {
    var r = n(304),
        i = Object.prototype.hasOwnProperty;
    t.exports = function(t, e, n, o, s, a) {
        var u = 1 & n,
            l = r(t),
            c = l.length;
        if (c != r(e).length && !u) return !1;
        for (var h = c; h--;) {
            var f = l[h];
            if (!(u ? f in e : i.call(e, f))) return !1
        }
        var d = a.get(t);
        if (d && a.get(e)) return d == e;
        var p = !0;
        a.set(t, e), a.set(e, t);
        for (var v = u; ++h < c;) {
            var _ = t[f = l[h]],
                g = e[f];
            if (o) var y = u ? o(g, _, f, e, t, a) : o(_, g, f, t, e, a);
            if (!(void 0 === y ? _ === g || s(_, g, n, o, a) : y)) {
                p = !1;
                break
            }
            v || (v = "constructor" == f)
        }
        if (p && !v) {
            var m = t.constructor,
                b = e.constructor;
            m != b && "constructor" in t && "constructor" in e && !("function" == typeof m && m instanceof m && "function" == typeof b && b instanceof b) && (p = !1)
        }
        return a.delete(t), a.delete(e), p
    }
}, function(t, e, n) {
    var r = n(360),
        i = n(131),
        o = n(66);
    t.exports = function(t) {
        return o(i(t, void 0, r), t + "")
    }
}, function(t, e, n) {
    var r = n(272),
        i = n(308),
        o = n(70);
    t.exports = function(t) {
        return r(t, o, i)
    }
}, function(t, e, n) {
    var r = n(341),
        i = Object.prototype.hasOwnProperty;
    t.exports = function(t) {
        for (var e = t.name + "", n = r[e], o = i.call(r, e) ? n.length : 0; o--;) {
            var s = n[o],
                a = s.func;
            if (null == a || a == t) return s.name
        }
        return e
    }
}, function(t, e, n) {
    var r = n(128),
        i = n(70);
    t.exports = function(t) {
        for (var e = i(t), n = e.length; n--;) {
            var o = e[n],
                s = t[o];
            e[n] = [o, s, r(s)]
        }
        return e
    }
}, function(t, e, n) {
    var r = n(24),
        i = Object.prototype,
        o = i.hasOwnProperty,
        s = i.toString,
        a = r ? r.toStringTag : void 0;
    t.exports = function(t) {
        var e = o.call(t, a),
            n = t[a];
        try {
            t[a] = void 0;
            var r = !0
        } catch (t) {}
        var i = s.call(t);
        return r && (e ? t[a] = n : delete t[a]), i
    }
}, function(t, e, n) {
    var r = n(261),
        i = n(369),
        o = Object.prototype.propertyIsEnumerable,
        s = Object.getOwnPropertySymbols,
        a = s ? function(t) {
            return null == t ? [] : (t = Object(t), r(s(t), function(e) {
                return o.call(t, e)
            }))
        } : i;
    t.exports = a
}, function(t, e, n) {
    var r = n(254),
        i = n(57),
        o = n(256),
        s = n(257),
        a = n(108),
        u = n(25),
        l = n(135),
        c = l(r),
        h = l(i),
        f = l(o),
        d = l(s),
        p = l(a),
        v = u;
    (r && "[object DataView]" != v(new r(new ArrayBuffer(1))) || i && "[object Map]" != v(new i) || o && "[object Promise]" != v(o.resolve()) || s && "[object Set]" != v(new s) || a && "[object WeakMap]" != v(new a)) && (v = function(t) {
        var e = u(t),
            n = "[object Object]" == e ? t.constructor : void 0,
            r = n ? l(n) : "";
        if (r) switch (r) {
            case c:
                return "[object DataView]";
            case h:
                return "[object Map]";
            case f:
                return "[object Promise]";
            case d:
                return "[object Set]";
            case p:
                return "[object WeakMap]"
        }
        return e
    }), t.exports = v
}, function(t, e) {
    t.exports = function(t, e) {
        return null == t ? void 0 : t[e]
    }
}, function(t, e) {
    var n = /\{\n\/\* \[wrapped with (.+)\] \*/,
        r = /,? & /;
    t.exports = function(t) {
        var e = t.match(n);
        return e ? e[1].split(r) : []
    }
}, function(t, e, n) {
    var r = n(118),
        i = n(67),
        o = n(8),
        s = n(64),
        a = n(69),
        u = n(26);
    t.exports = function(t, e, n) {
        for (var l = -1, c = (e = r(e, t)).length, h = !1; ++l < c;) {
            var f = u(e[l]);
            if (!(h = null != t && n(t, f))) break;
            t = t[f]
        }
        return h || ++l != c ? h : !!(c = null == t ? 0 : t.length) && a(c) && s(f, c) && (o(t) || i(t))
    }
}, function(t, e, n) {
    var r = n(42);
    t.exports = function() {
        this.__data__ = r ? r(null) : {}, this.size = 0
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = this.has(t) && delete this.__data__[t];
        return this.size -= e ? 1 : 0, e
    }
}, function(t, e, n) {
    var r = n(42),
        i = Object.prototype.hasOwnProperty;
    t.exports = function(t) {
        var e = this.__data__;
        if (r) {
            var n = e[t];
            return "__lodash_hash_undefined__" === n ? void 0 : n
        }
        return i.call(e, t) ? e[t] : void 0
    }
}, function(t, e, n) {
    var r = n(42),
        i = Object.prototype.hasOwnProperty;
    t.exports = function(t) {
        var e = this.__data__;
        return r ? void 0 !== e[t] : i.call(e, t)
    }
}, function(t, e, n) {
    var r = n(42);
    t.exports = function(t, e) {
        var n = this.__data__;
        return this.size += this.has(t) ? 0 : 1, n[t] = r && void 0 === e ? "__lodash_hash_undefined__" : e, this
    }
}, function(t, e) {
    var n = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;
    t.exports = function(t, e) {
        var r = e.length;
        if (!r) return t;
        var i = r - 1;
        return e[i] = (r > 1 ? "& " : "") + e[i], e = e.join(r > 2 ? ", " : " "), t.replace(n, "{\n/* [wrapped with " + e + "] */\n")
    }
}, function(t, e, n) {
    var r = n(24),
        i = n(67),
        o = n(8),
        s = r ? r.isConcatSpreadable : void 0;
    t.exports = function(t) {
        return o(t) || i(t) || !!(s && t && t[s])
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = typeof t;
        return "string" == e || "number" == e || "symbol" == e || "boolean" == e ? "__proto__" !== t : null === t
    }
}, function(t, e, n) {
    var r = n(56),
        i = n(127),
        o = n(305),
        s = n(373);
    t.exports = function(t) {
        var e = o(t),
            n = s[e];
        if ("function" != typeof n || !(e in r.prototype)) return !1;
        if (t === n) return !0;
        var a = i(n);
        return !!a && t === a[0]
    }
}, function(t, e, n) {
    var r, i = n(292),
        o = (r = /[^.]+$/.exec(i && i.keys && i.keys.IE_PROTO || "")) ? "Symbol(src)_1." + r : "";
    t.exports = function(t) {
        return !!o && o in t
    }
}, function(t, e) {
    var n = Object.prototype;
    t.exports = function(t) {
        var e = t && t.constructor;
        return t === ("function" == typeof e && e.prototype || n)
    }
}, function(t, e) {
    t.exports = function() {
        this.__data__ = [], this.size = 0
    }
}, function(t, e, n) {
    var r = n(39),
        i = Array.prototype.splice;
    t.exports = function(t) {
        var e = this.__data__,
            n = r(e, t);
        return !(n < 0 || (n == e.length - 1 ? e.pop() : i.call(e, n, 1), --this.size, 0))
    }
}, function(t, e, n) {
    var r = n(39);
    t.exports = function(t) {
        var e = this.__data__,
            n = r(e, t);
        return n < 0 ? void 0 : e[n][1]
    }
}, function(t, e, n) {
    var r = n(39);
    t.exports = function(t) {
        return r(this.__data__, t) > -1
    }
}, function(t, e, n) {
    var r = n(39);
    t.exports = function(t, e) {
        var n = this.__data__,
            i = r(n, t);
        return i < 0 ? (++this.size, n.push([t, e])) : n[i][1] = e, this
    }
}, function(t, e, n) {
    var r = n(255),
        i = n(38),
        o = n(57);
    t.exports = function() {
        this.size = 0, this.__data__ = {
            hash: new r,
            map: new(o || i),
            string: new r
        }
    }
}, function(t, e, n) {
    var r = n(41);
    t.exports = function(t) {
        var e = r(this, t).delete(t);
        return this.size -= e ? 1 : 0, e
    }
}, function(t, e, n) {
    var r = n(41);
    t.exports = function(t) {
        return r(this, t).get(t)
    }
}, function(t, e, n) {
    var r = n(41);
    t.exports = function(t) {
        return r(this, t).has(t)
    }
}, function(t, e, n) {
    var r = n(41);
    t.exports = function(t, e) {
        var n = r(this, t),
            i = n.size;
        return n.set(t, e), this.size += n.size == i ? 0 : 1, this
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = -1,
            n = Array(t.size);
        return t.forEach(function(t, r) {
            n[++e] = [r, t]
        }), n
    }
}, function(t, e, n) {
    var r = n(366);
    t.exports = function(t) {
        var e = r(t, function(t) {
                return 500 === n.size && n.clear(), t
            }),
            n = e.cache;
        return e
    }
}, function(t, e, n) {
    var r = n(119),
        i = n(120),
        o = n(43),
        s = "__lodash_placeholder__",
        a = 128,
        u = Math.min;
    t.exports = function(t, e) {
        var n = t[1],
            l = e[1],
            c = n | l,
            h = c < 131,
            f = l == a && 8 == n || l == a && 256 == n && t[7].length <= e[8] || 384 == l && e[7].length <= e[8] && 8 == n;
        if (!h && !f) return t;
        1 & l && (t[2] = e[2], c |= 1 & n ? 0 : 4);
        var d = e[3];
        if (d) {
            var p = t[3];
            t[3] = p ? r(p, d, e[4]) : d, t[4] = p ? o(t[3], s) : e[4]
        }
        return (d = e[5]) && (p = t[5], t[5] = p ? i(p, d, e[6]) : d, t[6] = p ? o(t[5], s) : e[6]), (d = e[7]) && (t[7] = d), l & a && (t[8] = null == t[8] ? e[8] : u(t[8], e[8])), null == t[9] && (t[9] = e[9]), t[0] = e[0], t[1] = c, t
    }
}, function(t, e, n) {
    var r = n(340)(Object.keys, Object);
    t.exports = r
}, function(t, e, n) {
    (function(t) {
        var r = n(126),
            i = "object" == typeof e && e && !e.nodeType && e,
            o = i && "object" == typeof t && t && !t.nodeType && t,
            s = o && o.exports === i && r.process,
            a = function() {
                try {
                    return s && s.binding && s.binding("util")
                } catch (t) {}
            }();
        t.exports = a
    }).call(e, n(14)(t))
}, function(t, e) {
    var n = Object.prototype.toString;
    t.exports = function(t) {
        return n.call(t)
    }
}, function(t, e) {
    t.exports = function(t, e) {
        return function(n) {
            return t(e(n))
        }
    }
}, function(t, e) {
    t.exports = {}
}, function(t, e, n) {
    var r = n(121),
        i = n(64),
        o = Math.min;
    t.exports = function(t, e) {
        for (var n = t.length, s = o(e.length, n), a = r(t); s--;) {
            var u = e[s];
            t[s] = i(u, n) ? a[u] : void 0
        }
        return t
    }
}, function(t, e) {
    t.exports = function(t) {
        return this.__data__.set(t, "__lodash_hash_undefined__"), this
    }
}, function(t, e) {
    t.exports = function(t) {
        return this.__data__.has(t)
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = -1,
            n = Array(t.size);
        return t.forEach(function(t) {
            n[++e] = t
        }), n
    }
}, function(t, e, n) {
    var r = n(38);
    t.exports = function() {
        this.__data__ = new r, this.size = 0
    }
}, function(t, e) {
    t.exports = function(t) {
        var e = this.__data__,
            n = e.delete(t);
        return this.size = e.size, n
    }
}, function(t, e) {
    t.exports = function(t) {
        return this.__data__.get(t)
    }
}, function(t, e) {
    t.exports = function(t) {
        return this.__data__.has(t)
    }
}, function(t, e, n) {
    var r = n(38),
        i = n(57),
        o = n(58);
    t.exports = function(t, e) {
        var n = this.__data__;
        if (n instanceof r) {
            var s = n.__data__;
            if (!i || s.length < 199) return s.push([t, e]), this.size = ++n.size, this;
            n = this.__data__ = new o(s)
        }
        return n.set(t, e), this.size = n.size, this
    }
}, function(t, e) {
    t.exports = function(t, e, n) {
        for (var r = n - 1, i = t.length; ++r < i;)
            if (t[r] === e) return r;
        return -1
    }
}, function(t, e, n) {
    var r = /^\./,
        i = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
        o = /\\(\\)?/g,
        s = n(335)(function(t) {
            var e = [];
            return r.test(t) && e.push(""), t.replace(i, function(t, n, r, i) {
                e.push(r ? i.replace(o, "$1") : n || t)
            }), e
        });
    t.exports = s
}, function(t, e, n) {
    var r = n(60),
        i = n(262),
        o = [
            ["ary", 128],
            ["bind", 1],
            ["bindKey", 2],
            ["curry", 8],
            ["curryRight", 16],
            ["flip", 512],
            ["partial", 32],
            ["partialRight", 64],
            ["rearg", 256]
        ];
    t.exports = function(t, e) {
        return r(o, function(n) {
            var r = "_." + n[0];
            e & n[1] && !i(t, r) && t.push(r)
        }), t.sort()
    }
}, function(t, e, n) {
    var r = n(56),
        i = n(106),
        o = n(121);
    t.exports = function(t) {
        if (t instanceof r) return t.clone();
        var e = new i(t.__wrapped__, t.__chain__);
        return e.__actions__ = o(t.__actions__), e.__index__ = t.__index__, e.__values__ = t.__values__, e
    }
}, function(t, e, n) {
    var r = n(116),
        i = n(300),
        o = n(63),
        s = n(43),
        a = r(function(t, e, n) {
            var r = 1;
            if (n.length) {
                var u = s(n, o(a));
                r |= 32
            }
            return i(t, r, e, n, u)
        });
    a.placeholder = {}, t.exports = a
}, function(t, e, n) {
    var r = n(267),
        i = n(142);
    t.exports = function(t, e, n) {
        return void 0 === n && (n = e, e = void 0), void 0 !== n && (n = (n = i(n)) == n ? n : 0), void 0 !== e && (e = (e = i(e)) == e ? e : 0), r(i(t), e, n)
    }
}, function(t, e) {
    t.exports = function(t) {
        return function() {
            return t
        }
    }
}, function(t, e, n) {
    t.exports = n(361)
}, function(t, e, n) {
    var r = n(112),
        i = n(115),
        o = n(141),
        s = Math.max;
    t.exports = function(t, e, n) {
        var a = null == t ? 0 : t.length;
        if (!a) return -1;
        var u = null == n ? 0 : o(n);
        return u < 0 && (u = s(a + u, 0)), r(t, i(e, 3), u)
    }
}, function(t, e, n) {
    var r = n(269);
    t.exports = function(t) {
        return null != t && t.length ? r(t, 1) : []
    }
}, function(t, e, n) {
    var r = n(60),
        i = n(111),
        o = n(291),
        s = n(8);
    t.exports = function(t, e) {
        return (s(t) ? r : i)(t, o(e))
    }
}, function(t, e, n) {
    var r = n(113);
    t.exports = function(t, e, n) {
        var i = null == t ? void 0 : r(t, e);
        return void 0 === i ? n : i
    }
}, function(t, e, n) {
    var r = n(273),
        i = n(312);
    t.exports = function(t, e) {
        return null != t && i(t, e, r)
    }
}, function(t, e, n) {
    var r = n(110),
        i = n(294)(function(t, e, n) {
            r(t, n, e)
        });
    t.exports = i
}, function(t, e, n) {
    (function(t, r) {
        var i;
        (function() {
            var o, s = 200,
                a = "Expected a function",
                u = "__lodash_hash_undefined__",
                l = "__lodash_placeholder__",
                c = 1,
                h = 2,
                f = 4,
                d = 1,
                p = 2,
                v = 1,
                _ = 2,
                g = 4,
                y = 8,
                m = 16,
                b = 32,
                x = 64,
                w = 128,
                T = 256,
                E = 512,
                S = 800,
                P = 16,
                O = 1 / 0,
                M = 9007199254740991,
                C = 1.7976931348623157e308,
                A = NaN,
                I = 4294967295,
                R = I - 1,
                D = I >>> 1,
                L = [
                    ["ary", w],
                    ["bind", v],
                    ["bindKey", _],
                    ["curry", y],
                    ["curryRight", m],
                    ["flip", E],
                    ["partial", b],
                    ["partialRight", x],
                    ["rearg", T]
                ],
                k = "[object Arguments]",
                j = "[object Array]",
                N = "[object AsyncFunction]",
                B = "[object Boolean]",
                F = "[object Date]",
                U = "[object DOMException]",
                z = "[object Error]",
                X = "[object Function]",
                G = "[object GeneratorFunction]",
                W = "[object Map]",
                H = "[object Number]",
                V = "[object Null]",
                Y = "[object Object]",
                q = "[object Proxy]",
                Z = "[object RegExp]",
                $ = "[object Set]",
                K = "[object String]",
                Q = "[object Symbol]",
                J = "[object Undefined]",
                tt = "[object WeakMap]",
                et = "[object ArrayBuffer]",
                nt = "[object DataView]",
                rt = "[object Float32Array]",
                it = "[object Float64Array]",
                ot = "[object Int8Array]",
                st = "[object Int16Array]",
                at = "[object Int32Array]",
                ut = "[object Uint8Array]",
                lt = "[object Uint8ClampedArray]",
                ct = "[object Uint16Array]",
                ht = "[object Uint32Array]",
                ft = /\b__p \+= '';/g,
                dt = /\b(__p \+=) '' \+/g,
                pt = /(__e\(.*?\)|\b__t\)) \+\n'';/g,
                vt = /&(?:amp|lt|gt|quot|#39);/g,
                _t = /[&<>"']/g,
                gt = RegExp(vt.source),
                yt = RegExp(_t.source),
                mt = /<%-([\s\S]+?)%>/g,
                bt = /<%([\s\S]+?)%>/g,
                xt = /<%=([\s\S]+?)%>/g,
                wt = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
                Tt = /^\w*$/,
                Et = /^\./,
                St = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
                Pt = /[\\^$.*+?()[\]{}|]/g,
                Ot = RegExp(Pt.source),
                Mt = /^\s+|\s+$/g,
                Ct = /^\s+/,
                At = /\s+$/,
                It = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
                Rt = /\{\n\/\* \[wrapped with (.+)\] \*/,
                Dt = /,? & /,
                Lt = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,
                kt = /\\(\\)?/g,
                jt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,
                Nt = /\w*$/,
                Bt = /^[-+]0x[0-9a-f]+$/i,
                Ft = /^0b[01]+$/i,
                Ut = /^\[object .+?Constructor\]$/,
                zt = /^0o[0-7]+$/i,
                Xt = /^(?:0|[1-9]\d*)$/,
                Gt = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,
                Wt = /($^)/,
                Ht = /['\n\r\u2028\u2029\\]/g,
                Vt = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",
                Yt = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",
                qt = "[" + Yt + "]",
                Zt = "[" + Vt + "]",
                $t = "\\d+",
                Kt = "[a-z\\xdf-\\xf6\\xf8-\\xff]",
                Qt = "[^\\ud800-\\udfff" + Yt + $t + "\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",
                Jt = "\\ud83c[\\udffb-\\udfff]",
                te = "[^\\ud800-\\udfff]",
                ee = "(?:\\ud83c[\\udde6-\\uddff]){2}",
                ne = "[\\ud800-\\udbff][\\udc00-\\udfff]",
                re = "[A-Z\\xc0-\\xd6\\xd8-\\xde]",
                ie = "(?:" + Kt + "|" + Qt + ")",
                oe = "(?:" + re + "|" + Qt + ")",
                se = "(?:" + Zt + "|" + Jt + ")?",
                ae = "[\\ufe0e\\ufe0f]?" + se + "(?:\\u200d(?:" + [te, ee, ne].join("|") + ")[\\ufe0e\\ufe0f]?" + se + ")*",
                ue = "(?:" + ["[\\u2700-\\u27bf]", ee, ne].join("|") + ")" + ae,
                le = "(?:" + [te + Zt + "?", Zt, ee, ne, "[\\ud800-\\udfff]"].join("|") + ")",
                ce = RegExp("['’]", "g"),
                he = RegExp(Zt, "g"),
                fe = RegExp(Jt + "(?=" + Jt + ")|" + le + ae, "g"),
                de = RegExp([re + "?" + Kt + "+(?:['’](?:d|ll|m|re|s|t|ve))?(?=" + [qt, re, "$"].join("|") + ")", oe + "+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=" + [qt, re + ie, "$"].join("|") + ")", re + "?" + ie + "+(?:['’](?:d|ll|m|re|s|t|ve))?", re + "+(?:['’](?:D|LL|M|RE|S|T|VE))?", "\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)", "\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)", $t, ue].join("|"), "g"),
                pe = RegExp("[\\u200d\\ud800-\\udfff" + Vt + "\\ufe0e\\ufe0f]"),
                ve = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,
                _e = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"],
                ge = -1,
                ye = {};
            ye[rt] = ye[it] = ye[ot] = ye[st] = ye[at] = ye[ut] = ye[lt] = ye[ct] = ye[ht] = !0, ye[k] = ye[j] = ye[et] = ye[B] = ye[nt] = ye[F] = ye[z] = ye[X] = ye[W] = ye[H] = ye[Y] = ye[Z] = ye[$] = ye[K] = ye[tt] = !1;
            var me = {};
            me[k] = me[j] = me[et] = me[nt] = me[B] = me[F] = me[rt] = me[it] = me[ot] = me[st] = me[at] = me[W] = me[H] = me[Y] = me[Z] = me[$] = me[K] = me[Q] = me[ut] = me[lt] = me[ct] = me[ht] = !0, me[z] = me[X] = me[tt] = !1;
            var be = {
                    "\\": "\\",
                    "'": "'",
                    "\n": "n",
                    "\r": "r",
                    "\u2028": "u2028",
                    "\u2029": "u2029"
                },
                xe = parseFloat,
                we = parseInt,
                Te = "object" == typeof t && t && t.Object === Object && t,
                Ee = "object" == typeof self && self && self.Object === Object && self,
                Se = Te || Ee || Function("return this")(),
                Pe = "object" == typeof e && e && !e.nodeType && e,
                Oe = Pe && "object" == typeof r && r && !r.nodeType && r,
                Me = Oe && Oe.exports === Pe,
                Ce = Me && Te.process,
                Ae = function() {
                    try {
                        return Ce && Ce.binding && Ce.binding("util")
                    } catch (t) {}
                }(),
                Ie = Ae && Ae.isArrayBuffer,
                Re = Ae && Ae.isDate,
                De = Ae && Ae.isMap,
                Le = Ae && Ae.isRegExp,
                ke = Ae && Ae.isSet,
                je = Ae && Ae.isTypedArray;

            function Ne(t, e) {
                return t.set(e[0], e[1]), t
            }

            function Be(t, e) {
                return t.add(e), t
            }

            function Fe(t, e, n) {
                switch (n.length) {
                    case 0:
                        return t.call(e);
                    case 1:
                        return t.call(e, n[0]);
                    case 2:
                        return t.call(e, n[0], n[1]);
                    case 3:
                        return t.call(e, n[0], n[1], n[2])
                }
                return t.apply(e, n)
            }

            function Ue(t, e, n, r) {
                for (var i = -1, o = null == t ? 0 : t.length; ++i < o;) {
                    var s = t[i];
                    e(r, s, n(s), t)
                }
                return r
            }

            function ze(t, e) {
                for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t););
                return t
            }

            function Xe(t, e) {
                for (var n = -1, r = null == t ? 0 : t.length; ++n < r;)
                    if (!e(t[n], n, t)) return !1;
                return !0
            }

            function Ge(t, e) {
                for (var n = -1, r = null == t ? 0 : t.length, i = 0, o = []; ++n < r;) {
                    var s = t[n];
                    e(s, n, t) && (o[i++] = s)
                }
                return o
            }

            function We(t, e) {
                return !(null == t || !t.length) && tn(t, e, 0) > -1
            }

            function He(t, e, n) {
                for (var r = -1, i = null == t ? 0 : t.length; ++r < i;)
                    if (n(e, t[r])) return !0;
                return !1
            }

            function Ve(t, e) {
                for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r;) i[n] = e(t[n], n, t);
                return i
            }

            function Ye(t, e) {
                for (var n = -1, r = e.length, i = t.length; ++n < r;) t[i + n] = e[n];
                return t
            }

            function qe(t, e, n, r) {
                var i = -1,
                    o = null == t ? 0 : t.length;
                for (r && o && (n = t[++i]); ++i < o;) n = e(n, t[i], i, t);
                return n
            }

            function Ze(t, e, n, r) {
                var i = null == t ? 0 : t.length;
                for (r && i && (n = t[--i]); i--;) n = e(n, t[i], i, t);
                return n
            }

            function $e(t, e) {
                for (var n = -1, r = null == t ? 0 : t.length; ++n < r;)
                    if (e(t[n], n, t)) return !0;
                return !1
            }
            var Ke = on("length");

            function Qe(t, e, n) {
                var r;
                return n(t, function(t, n, i) {
                    if (e(t, n, i)) return r = n, !1
                }), r
            }

            function Je(t, e, n, r) {
                for (var i = t.length, o = n + (r ? 1 : -1); r ? o-- : ++o < i;)
                    if (e(t[o], o, t)) return o;
                return -1
            }

            function tn(t, e, n) {
                return e == e ? function(t, e, n) {
                    for (var r = n - 1, i = t.length; ++r < i;)
                        if (t[r] === e) return r;
                    return -1
                }(t, e, n) : Je(t, nn, n)
            }

            function en(t, e, n, r) {
                for (var i = n - 1, o = t.length; ++i < o;)
                    if (r(t[i], e)) return i;
                return -1
            }

            function nn(t) {
                return t != t
            }

            function rn(t, e) {
                var n = null == t ? 0 : t.length;
                return n ? un(t, e) / n : A
            }

            function on(t) {
                return function(e) {
                    return null == e ? o : e[t]
                }
            }

            function sn(t) {
                return function(e) {
                    return null == t ? o : t[e]
                }
            }

            function an(t, e, n, r, i) {
                return i(t, function(t, i, o) {
                    n = r ? (r = !1, t) : e(n, t, i, o)
                }), n
            }

            function un(t, e) {
                for (var n, r = -1, i = t.length; ++r < i;) {
                    var s = e(t[r]);
                    s !== o && (n = n === o ? s : n + s)
                }
                return n
            }

            function ln(t, e) {
                for (var n = -1, r = Array(t); ++n < t;) r[n] = e(n);
                return r
            }

            function cn(t) {
                return function(e) {
                    return t(e)
                }
            }

            function hn(t, e) {
                return Ve(e, function(e) {
                    return t[e]
                })
            }

            function fn(t, e) {
                return t.has(e)
            }

            function dn(t, e) {
                for (var n = -1, r = t.length; ++n < r && tn(e, t[n], 0) > -1;);
                return n
            }

            function pn(t, e) {
                for (var n = t.length; n-- && tn(e, t[n], 0) > -1;);
                return n
            }
            var vn = sn({
                    "À": "A",
                    "Á": "A",
                    "Â": "A",
                    "Ã": "A",
                    "Ä": "A",
                    "Å": "A",
                    "à": "a",
                    "á": "a",
                    "â": "a",
                    "ã": "a",
                    "ä": "a",
                    "å": "a",
                    "Ç": "C",
                    "ç": "c",
                    "Ð": "D",
                    "ð": "d",
                    "È": "E",
                    "É": "E",
                    "Ê": "E",
                    "Ë": "E",
                    "è": "e",
                    "é": "e",
                    "ê": "e",
                    "ë": "e",
                    "Ì": "I",
                    "Í": "I",
                    "Î": "I",
                    "Ï": "I",
                    "ì": "i",
                    "í": "i",
                    "î": "i",
                    "ï": "i",
                    "Ñ": "N",
                    "ñ": "n",
                    "Ò": "O",
                    "Ó": "O",
                    "Ô": "O",
                    "Õ": "O",
                    "Ö": "O",
                    "Ø": "O",
                    "ò": "o",
                    "ó": "o",
                    "ô": "o",
                    "õ": "o",
                    "ö": "o",
                    "ø": "o",
                    "Ù": "U",
                    "Ú": "U",
                    "Û": "U",
                    "Ü": "U",
                    "ù": "u",
                    "ú": "u",
                    "û": "u",
                    "ü": "u",
                    "Ý": "Y",
                    "ý": "y",
                    "ÿ": "y",
                    "Æ": "Ae",
                    "æ": "ae",
                    "Þ": "Th",
                    "þ": "th",
                    "ß": "ss",
                    "Ā": "A",
                    "Ă": "A",
                    "Ą": "A",
                    "ā": "a",
                    "ă": "a",
                    "ą": "a",
                    "Ć": "C",
                    "Ĉ": "C",
                    "Ċ": "C",
                    "Č": "C",
                    "ć": "c",
                    "ĉ": "c",
                    "ċ": "c",
                    "č": "c",
                    "Ď": "D",
                    "Đ": "D",
                    "ď": "d",
                    "đ": "d",
                    "Ē": "E",
                    "Ĕ": "E",
                    "Ė": "E",
                    "Ę": "E",
                    "Ě": "E",
                    "ē": "e",
                    "ĕ": "e",
                    "ė": "e",
                    "ę": "e",
                    "ě": "e",
                    "Ĝ": "G",
                    "Ğ": "G",
                    "Ġ": "G",
                    "Ģ": "G",
                    "ĝ": "g",
                    "ğ": "g",
                    "ġ": "g",
                    "ģ": "g",
                    "Ĥ": "H",
                    "Ħ": "H",
                    "ĥ": "h",
                    "ħ": "h",
                    "Ĩ": "I",
                    "Ī": "I",
                    "Ĭ": "I",
                    "Į": "I",
                    "İ": "I",
                    "ĩ": "i",
                    "ī": "i",
                    "ĭ": "i",
                    "į": "i",
                    "ı": "i",
                    "Ĵ": "J",
                    "ĵ": "j",
                    "Ķ": "K",
                    "ķ": "k",
                    "ĸ": "k",
                    "Ĺ": "L",
                    "Ļ": "L",
                    "Ľ": "L",
                    "Ŀ": "L",
                    "Ł": "L",
                    "ĺ": "l",
                    "ļ": "l",
                    "ľ": "l",
                    "ŀ": "l",
                    "ł": "l",
                    "Ń": "N",
                    "Ņ": "N",
                    "Ň": "N",
                    "Ŋ": "N",
                    "ń": "n",
                    "ņ": "n",
                    "ň": "n",
                    "ŋ": "n",
                    "Ō": "O",
                    "Ŏ": "O",
                    "Ő": "O",
                    "ō": "o",
                    "ŏ": "o",
                    "ő": "o",
                    "Ŕ": "R",
                    "Ŗ": "R",
                    "Ř": "R",
                    "ŕ": "r",
                    "ŗ": "r",
                    "ř": "r",
                    "Ś": "S",
                    "Ŝ": "S",
                    "Ş": "S",
                    "Š": "S",
                    "ś": "s",
                    "ŝ": "s",
                    "ş": "s",
                    "š": "s",
                    "Ţ": "T",
                    "Ť": "T",
                    "Ŧ": "T",
                    "ţ": "t",
                    "ť": "t",
                    "ŧ": "t",
                    "Ũ": "U",
                    "Ū": "U",
                    "Ŭ": "U",
                    "Ů": "U",
                    "Ű": "U",
                    "Ų": "U",
                    "ũ": "u",
                    "ū": "u",
                    "ŭ": "u",
                    "ů": "u",
                    "ű": "u",
                    "ų": "u",
                    "Ŵ": "W",
                    "ŵ": "w",
                    "Ŷ": "Y",
                    "ŷ": "y",
                    "Ÿ": "Y",
                    "Ź": "Z",
                    "Ż": "Z",
                    "Ž": "Z",
                    "ź": "z",
                    "ż": "z",
                    "ž": "z",
                    "Ĳ": "IJ",
                    "ĳ": "ij",
                    "Œ": "Oe",
                    "œ": "oe",
                    "ŉ": "'n",
                    "ſ": "s"
                }),
                _n = sn({
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    '"': "&quot;",
                    "'": "&#39;"
                });

            function gn(t) {
                return "\\" + be[t]
            }

            function yn(t) {
                return pe.test(t)
            }

            function mn(t) {
                var e = -1,
                    n = Array(t.size);
                return t.forEach(function(t, r) {
                    n[++e] = [r, t]
                }), n
            }

            function bn(t, e) {
                return function(n) {
                    return t(e(n))
                }
            }

            function xn(t, e) {
                for (var n = -1, r = t.length, i = 0, o = []; ++n < r;) {
                    var s = t[n];
                    s !== e && s !== l || (t[n] = l, o[i++] = n)
                }
                return o
            }

            function wn(t) {
                var e = -1,
                    n = Array(t.size);
                return t.forEach(function(t) {
                    n[++e] = t
                }), n
            }

            function Tn(t) {
                return yn(t) ? function(t) {
                    for (var e = fe.lastIndex = 0; fe.test(t);) ++e;
                    return e
                }(t) : Ke(t)
            }

            function En(t) {
                return yn(t) ? function(t) {
                    return t.match(fe) || []
                }(t) : function(t) {
                    return t.split("")
                }(t)
            }
            var Sn = sn({
                    "&amp;": "&",
                    "&lt;": "<",
                    "&gt;": ">",
                    "&quot;": '"',
                    "&#39;": "'"
                }),
                Pn = function t(e) {
                    var n, r = (e = null == e ? Se : Pn.defaults(Se.Object(), e, Pn.pick(Se, _e))).Array,
                        i = e.Date,
                        Vt = e.Error,
                        Yt = e.Function,
                        qt = e.Math,
                        Zt = e.Object,
                        $t = e.RegExp,
                        Kt = e.String,
                        Qt = e.TypeError,
                        Jt = r.prototype,
                        te = Yt.prototype,
                        ee = Zt.prototype,
                        ne = e["__core-js_shared__"],
                        re = te.toString,
                        ie = ee.hasOwnProperty,
                        oe = 0,
                        se = (n = /[^.]+$/.exec(ne && ne.keys && ne.keys.IE_PROTO || "")) ? "Symbol(src)_1." + n : "",
                        ae = ee.toString,
                        ue = re.call(Zt),
                        le = Se._,
                        fe = $t("^" + re.call(ie).replace(Pt, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
                        pe = Me ? e.Buffer : o,
                        be = e.Symbol,
                        Te = e.Uint8Array,
                        Ee = pe ? pe.allocUnsafe : o,
                        Pe = bn(Zt.getPrototypeOf, Zt),
                        Oe = Zt.create,
                        Ce = ee.propertyIsEnumerable,
                        Ae = Jt.splice,
                        Ke = be ? be.isConcatSpreadable : o,
                        sn = be ? be.iterator : o,
                        On = be ? be.toStringTag : o,
                        Mn = function() {
                            try {
                                var t = Oo(Zt, "defineProperty");
                                return t({}, "", {}), t
                            } catch (t) {}
                        }(),
                        Cn = e.clearTimeout !== Se.clearTimeout && e.clearTimeout,
                        An = i && i.now !== Se.Date.now && i.now,
                        In = e.setTimeout !== Se.setTimeout && e.setTimeout,
                        Rn = qt.ceil,
                        Dn = qt.floor,
                        Ln = Zt.getOwnPropertySymbols,
                        kn = pe ? pe.isBuffer : o,
                        jn = e.isFinite,
                        Nn = Jt.join,
                        Bn = bn(Zt.keys, Zt),
                        Fn = qt.max,
                        Un = qt.min,
                        zn = i.now,
                        Xn = e.parseInt,
                        Gn = qt.random,
                        Wn = Jt.reverse,
                        Hn = Oo(e, "DataView"),
                        Vn = Oo(e, "Map"),
                        Yn = Oo(e, "Promise"),
                        qn = Oo(e, "Set"),
                        Zn = Oo(e, "WeakMap"),
                        $n = Oo(Zt, "create"),
                        Kn = Zn && new Zn,
                        Qn = {},
                        Jn = Qo(Hn),
                        tr = Qo(Vn),
                        er = Qo(Yn),
                        nr = Qo(qn),
                        rr = Qo(Zn),
                        ir = be ? be.prototype : o,
                        or = ir ? ir.valueOf : o,
                        sr = ir ? ir.toString : o;

                    function ar(t) {
                        if (va(t) && !ia(t) && !(t instanceof hr)) {
                            if (t instanceof cr) return t;
                            if (ie.call(t, "__wrapped__")) return Jo(t)
                        }
                        return new cr(t)
                    }
                    var ur = function() {
                        function t() {}
                        return function(e) {
                            if (!pa(e)) return {};
                            if (Oe) return Oe(e);
                            t.prototype = e;
                            var n = new t;
                            return t.prototype = o, n
                        }
                    }();

                    function lr() {}

                    function cr(t, e) {
                        this.__wrapped__ = t, this.__actions__ = [], this.__chain__ = !!e, this.__index__ = 0, this.__values__ = o
                    }

                    function hr(t) {
                        this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = I, this.__views__ = []
                    }

                    function fr(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n;) {
                            var r = t[e];
                            this.set(r[0], r[1])
                        }
                    }

                    function dr(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n;) {
                            var r = t[e];
                            this.set(r[0], r[1])
                        }
                    }

                    function pr(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.clear(); ++e < n;) {
                            var r = t[e];
                            this.set(r[0], r[1])
                        }
                    }

                    function vr(t) {
                        var e = -1,
                            n = null == t ? 0 : t.length;
                        for (this.__data__ = new pr; ++e < n;) this.add(t[e])
                    }

                    function _r(t) {
                        var e = this.__data__ = new dr(t);
                        this.size = e.size
                    }

                    function gr(t, e) {
                        var n = ia(t),
                            r = !n && ra(t),
                            i = !n && !r && ua(t),
                            o = !n && !r && !i && Ta(t),
                            s = n || r || i || o,
                            a = s ? ln(t.length, Kt) : [],
                            u = a.length;
                        for (var l in t) !e && !ie.call(t, l) || s && ("length" == l || i && ("offset" == l || "parent" == l) || o && ("buffer" == l || "byteLength" == l || "byteOffset" == l) || Lo(l, u)) || a.push(l);
                        return a
                    }

                    function yr(t) {
                        var e = t.length;
                        return e ? t[fi(0, e - 1)] : o
                    }

                    function mr(t, e, n) {
                        (n === o || ta(t[e], n)) && (n !== o || e in t) || Er(t, e, n)
                    }

                    function br(t, e, n) {
                        var r = t[e];
                        ie.call(t, e) && ta(r, n) && (n !== o || e in t) || Er(t, e, n)
                    }

                    function xr(t, e) {
                        for (var n = t.length; n--;)
                            if (ta(t[n][0], e)) return n;
                        return -1
                    }

                    function wr(t, e, n, r) {
                        return Ir(t, function(t, i, o) {
                            e(r, t, n(t), o)
                        }), r
                    }

                    function Tr(t, e) {
                        return t && Hi(e, Ha(e), t)
                    }

                    function Er(t, e, n) {
                        "__proto__" == e && Mn ? Mn(t, e, {
                            configurable: !0,
                            enumerable: !0,
                            value: n,
                            writable: !0
                        }) : t[e] = n
                    }

                    function Sr(t, e) {
                        for (var n = -1, i = e.length, s = r(i), a = null == t; ++n < i;) s[n] = a ? o : Ua(t, e[n]);
                        return s
                    }

                    function Pr(t, e, n) {
                        return t == t && (n !== o && (t = t <= n ? t : n), e !== o && (t = t >= e ? t : e)), t
                    }

                    function Or(t, e, n, r, i, s) {
                        var a, u = e & c,
                            l = e & h,
                            d = e & f;
                        if (n && (a = i ? n(t, r, i, s) : n(t)), a !== o) return a;
                        if (!pa(t)) return t;
                        var p = ia(t);
                        if (p) {
                            if (a = function(t) {
                                    var e = t.length,
                                        n = t.constructor(e);
                                    return e && "string" == typeof t[0] && ie.call(t, "index") && (n.index = t.index, n.input = t.input), n
                                }(t), !u) return Wi(t, a)
                        } else {
                            var v = Ao(t),
                                _ = v == X || v == G;
                            if (ua(t)) return Bi(t, u);
                            if (v == Y || v == k || _ && !i) {
                                if (a = l || _ ? {} : Ro(t), !u) return l ? function(t, e) {
                                    return Hi(t, Co(t), e)
                                }(t, function(t, e) {
                                    return t && Hi(e, Va(e), t)
                                }(a, t)) : function(t, e) {
                                    return Hi(t, Mo(t), e)
                                }(t, Tr(a, t))
                            } else {
                                if (!me[v]) return i ? t : {};
                                a = function(t, e, n, r) {
                                    var i, o, s, a = t.constructor;
                                    switch (e) {
                                        case et:
                                            return Fi(t);
                                        case B:
                                        case F:
                                            return new a(+t);
                                        case nt:
                                            return function(t, e) {
                                                var n = r ? Fi(t.buffer) : t.buffer;
                                                return new t.constructor(n, t.byteOffset, t.byteLength)
                                            }(t);
                                        case rt:
                                        case it:
                                        case ot:
                                        case st:
                                        case at:
                                        case ut:
                                        case lt:
                                        case ct:
                                        case ht:
                                            return Ui(t, r);
                                        case W:
                                            return function(t, e, n) {
                                                return qe(r ? n(mn(t), c) : mn(t), Ne, new t.constructor)
                                            }(t, 0, n);
                                        case H:
                                        case K:
                                            return new a(t);
                                        case Z:
                                            return (s = new(o = t).constructor(o.source, Nt.exec(o))).lastIndex = o.lastIndex, s;
                                        case $:
                                            return function(t, e, n) {
                                                return qe(r ? n(wn(t), c) : wn(t), Be, new t.constructor)
                                            }(t, 0, n);
                                        case Q:
                                            return i = t, or ? Zt(or.call(i)) : {}
                                    }
                                }(t, v, Or, u)
                            }
                        }
                        s || (s = new _r);
                        var g = s.get(t);
                        if (g) return g;
                        s.set(t, a);
                        var y = p ? o : (d ? l ? bo : mo : l ? Va : Ha)(t);
                        return ze(y || t, function(r, i) {
                            y && (r = t[i = r]), br(a, i, Or(r, e, n, i, t, s))
                        }), a
                    }

                    function Mr(t, e, n) {
                        var r = n.length;
                        if (null == t) return !r;
                        for (t = Zt(t); r--;) {
                            var i = n[r],
                                s = e[i],
                                a = t[i];
                            if (a === o && !(i in t) || !s(a)) return !1
                        }
                        return !0
                    }

                    function Cr(t, e, n) {
                        if ("function" != typeof t) throw new Qt(a);
                        return Ho(function() {
                            t.apply(o, n)
                        }, e)
                    }

                    function Ar(t, e, n, r) {
                        var i = -1,
                            o = We,
                            a = !0,
                            u = t.length,
                            l = [],
                            c = e.length;
                        if (!u) return l;
                        n && (e = Ve(e, cn(n))), r ? (o = He, a = !1) : e.length >= s && (o = fn, a = !1, e = new vr(e));
                        t: for (; ++i < u;) {
                            var h = t[i],
                                f = null == n ? h : n(h);
                            if (h = r || 0 !== h ? h : 0, a && f == f) {
                                for (var d = c; d--;)
                                    if (e[d] === f) continue t;
                                l.push(h)
                            } else o(e, f, r) || l.push(h)
                        }
                        return l
                    }
                    ar.templateSettings = {
                        escape: mt,
                        evaluate: bt,
                        interpolate: xt,
                        variable: "",
                        imports: {
                            _: ar
                        }
                    }, ar.prototype = lr.prototype, ar.prototype.constructor = ar, cr.prototype = ur(lr.prototype), cr.prototype.constructor = cr, hr.prototype = ur(lr.prototype), hr.prototype.constructor = hr, fr.prototype.clear = function() {
                        this.__data__ = $n ? $n(null) : {}, this.size = 0
                    }, fr.prototype.delete = function(t) {
                        var e = this.has(t) && delete this.__data__[t];
                        return this.size -= e ? 1 : 0, e
                    }, fr.prototype.get = function(t) {
                        var e = this.__data__;
                        if ($n) {
                            var n = e[t];
                            return n === u ? o : n
                        }
                        return ie.call(e, t) ? e[t] : o
                    }, fr.prototype.has = function(t) {
                        var e = this.__data__;
                        return $n ? e[t] !== o : ie.call(e, t)
                    }, fr.prototype.set = function(t, e) {
                        var n = this.__data__;
                        return this.size += this.has(t) ? 0 : 1, n[t] = $n && e === o ? u : e, this
                    }, dr.prototype.clear = function() {
                        this.__data__ = [], this.size = 0
                    }, dr.prototype.delete = function(t) {
                        var e = this.__data__,
                            n = xr(e, t);
                        return !(n < 0 || (n == e.length - 1 ? e.pop() : Ae.call(e, n, 1), --this.size, 0))
                    }, dr.prototype.get = function(t) {
                        var e = this.__data__,
                            n = xr(e, t);
                        return n < 0 ? o : e[n][1]
                    }, dr.prototype.has = function(t) {
                        return xr(this.__data__, t) > -1
                    }, dr.prototype.set = function(t, e) {
                        var n = this.__data__,
                            r = xr(n, t);
                        return r < 0 ? (++this.size, n.push([t, e])) : n[r][1] = e, this
                    }, pr.prototype.clear = function() {
                        this.size = 0, this.__data__ = {
                            hash: new fr,
                            map: new(Vn || dr),
                            string: new fr
                        }
                    }, pr.prototype.delete = function(t) {
                        var e = So(this, t).delete(t);
                        return this.size -= e ? 1 : 0, e
                    }, pr.prototype.get = function(t) {
                        return So(this, t).get(t)
                    }, pr.prototype.has = function(t) {
                        return So(this, t).has(t)
                    }, pr.prototype.set = function(t, e) {
                        var n = So(this, t),
                            r = n.size;
                        return n.set(t, e), this.size += n.size == r ? 0 : 1, this
                    }, vr.prototype.add = vr.prototype.push = function(t) {
                        return this.__data__.set(t, u), this
                    }, vr.prototype.has = function(t) {
                        return this.__data__.has(t)
                    }, _r.prototype.clear = function() {
                        this.__data__ = new dr, this.size = 0
                    }, _r.prototype.delete = function(t) {
                        var e = this.__data__,
                            n = e.delete(t);
                        return this.size = e.size, n
                    }, _r.prototype.get = function(t) {
                        return this.__data__.get(t)
                    }, _r.prototype.has = function(t) {
                        return this.__data__.has(t)
                    }, _r.prototype.set = function(t, e) {
                        var n = this.__data__;
                        if (n instanceof dr) {
                            var r = n.__data__;
                            if (!Vn || r.length < s - 1) return r.push([t, e]), this.size = ++n.size, this;
                            n = this.__data__ = new pr(r)
                        }
                        return n.set(t, e), this.size = n.size, this
                    };
                    var Ir = qi(Fr),
                        Rr = qi(Ur, !0);

                    function Dr(t, e) {
                        var n = !0;
                        return Ir(t, function(t, r, i) {
                            return n = !!e(t, r, i)
                        }), n
                    }

                    function Lr(t, e, n) {
                        for (var r = -1, i = t.length; ++r < i;) {
                            var s = t[r],
                                a = e(s);
                            if (null != a && (u === o ? a == a && !wa(a) : n(a, u))) var u = a,
                                l = s
                        }
                        return l
                    }

                    function kr(t, e) {
                        var n = [];
                        return Ir(t, function(t, r, i) {
                            e(t, r, i) && n.push(t)
                        }), n
                    }

                    function jr(t, e, n, r, i) {
                        var o = -1,
                            s = t.length;
                        for (n || (n = Do), i || (i = []); ++o < s;) {
                            var a = t[o];
                            e > 0 && n(a) ? e > 1 ? jr(a, e - 1, n, r, i) : Ye(i, a) : r || (i[i.length] = a)
                        }
                        return i
                    }
                    var Nr = Zi(),
                        Br = Zi(!0);

                    function Fr(t, e) {
                        return t && Nr(t, e, Ha)
                    }

                    function Ur(t, e) {
                        return t && Br(t, e, Ha)
                    }

                    function zr(t, e) {
                        return Ge(e, function(e) {
                            return ha(t[e])
                        })
                    }

                    function Xr(t, e) {
                        for (var n = 0, r = (e = Li(e, t)).length; null != t && n < r;) t = t[Ko(e[n++])];
                        return n && n == r ? t : o
                    }

                    function Gr(t, e, n) {
                        var r = e(t);
                        return ia(t) ? r : Ye(r, n(t))
                    }

                    function Wr(t) {
                        return null == t ? t === o ? J : V : On && On in Zt(t) ? function(t) {
                            var e = ie.call(t, On),
                                n = t[On];
                            try {
                                t[On] = o;
                                var r = !0
                            } catch (t) {}
                            var i = ae.call(t);
                            return r && (e ? t[On] = n : delete t[On]), i
                        }(t) : function(t) {
                            return ae.call(t)
                        }(t)
                    }

                    function Hr(t, e) {
                        return t > e
                    }

                    function Vr(t, e) {
                        return null != t && ie.call(t, e)
                    }

                    function Yr(t, e) {
                        return null != t && e in Zt(t)
                    }

                    function qr(t, e, n) {
                        for (var i = n ? He : We, s = t[0].length, a = t.length, u = a, l = r(a), c = 1 / 0, h = []; u--;) {
                            var f = t[u];
                            u && e && (f = Ve(f, cn(e))), c = Un(f.length, c), l[u] = !n && (e || s >= 120 && f.length >= 120) ? new vr(u && f) : o
                        }
                        f = t[0];
                        var d = -1,
                            p = l[0];
                        t: for (; ++d < s && h.length < c;) {
                            var v = f[d],
                                _ = e ? e(v) : v;
                            if (v = n || 0 !== v ? v : 0, !(p ? fn(p, _) : i(h, _, n))) {
                                for (u = a; --u;) {
                                    var g = l[u];
                                    if (!(g ? fn(g, _) : i(t[u], _, n))) continue t
                                }
                                p && p.push(_), h.push(v)
                            }
                        }
                        return h
                    }

                    function Zr(t, e, n) {
                        var r = null == (t = Go(t, e = Li(e, t))) ? t : t[Ko(cs(e))];
                        return null == r ? o : Fe(r, t, n)
                    }

                    function $r(t) {
                        return va(t) && Wr(t) == k
                    }

                    function Kr(t, e, n, r, i) {
                        return t === e || (null == t || null == e || !va(t) && !va(e) ? t != t && e != e : function(t, e, n, r, i, s) {
                            var a = ia(t),
                                u = ia(e),
                                l = a ? j : Ao(t),
                                c = u ? j : Ao(e),
                                h = (l = l == k ? Y : l) == Y,
                                f = (c = c == k ? Y : c) == Y,
                                v = l == c;
                            if (v && ua(t)) {
                                if (!ua(e)) return !1;
                                a = !0, h = !1
                            }
                            if (v && !h) return s || (s = new _r), a || Ta(t) ? go(t, e, n, r, i, s) : function(t, e, n, r, i, o, s) {
                                switch (n) {
                                    case nt:
                                        if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1;
                                        t = t.buffer, e = e.buffer;
                                    case et:
                                        return !(t.byteLength != e.byteLength || !o(new Te(t), new Te(e)));
                                    case B:
                                    case F:
                                    case H:
                                        return ta(+t, +e);
                                    case z:
                                        return t.name == e.name && t.message == e.message;
                                    case Z:
                                    case K:
                                        return t == e + "";
                                    case W:
                                        var a = mn;
                                    case $:
                                        var u = r & d;
                                        if (a || (a = wn), t.size != e.size && !u) return !1;
                                        var l = s.get(t);
                                        if (l) return l == e;
                                        r |= p, s.set(t, e);
                                        var c = go(a(t), a(e), r, i, o, s);
                                        return s.delete(t), c;
                                    case Q:
                                        if (or) return or.call(t) == or.call(e)
                                }
                                return !1
                            }(t, e, l, n, r, i, s);
                            if (!(n & d)) {
                                var _ = h && ie.call(t, "__wrapped__"),
                                    g = f && ie.call(e, "__wrapped__");
                                if (_ || g) {
                                    var y = _ ? t.value() : t,
                                        m = g ? e.value() : e;
                                    return s || (s = new _r), i(y, m, n, r, s)
                                }
                            }
                            return !!v && (s || (s = new _r), function(t, e, n, r, i, s) {
                                var a = n & d,
                                    u = mo(t),
                                    l = u.length;
                                if (l != mo(e).length && !a) return !1;
                                for (var c = l; c--;) {
                                    var h = u[c];
                                    if (!(a ? h in e : ie.call(e, h))) return !1
                                }
                                var f = s.get(t);
                                if (f && s.get(e)) return f == e;
                                var p = !0;
                                s.set(t, e), s.set(e, t);
                                for (var v = a; ++c < l;) {
                                    var _ = t[h = u[c]],
                                        g = e[h];
                                    if (r) var y = a ? r(g, _, h, e, t, s) : r(_, g, h, t, e, s);
                                    if (!(y === o ? _ === g || i(_, g, n, r, s) : y)) {
                                        p = !1;
                                        break
                                    }
                                    v || (v = "constructor" == h)
                                }
                                if (p && !v) {
                                    var m = t.constructor,
                                        b = e.constructor;
                                    m != b && "constructor" in t && "constructor" in e && !("function" == typeof m && m instanceof m && "function" == typeof b && b instanceof b) && (p = !1)
                                }
                                return s.delete(t), s.delete(e), p
                            }(t, e, n, r, i, s))
                        }(t, e, n, r, Kr, i))
                    }

                    function Qr(t, e, n, r) {
                        var i = n.length,
                            s = i,
                            a = !r;
                        if (null == t) return !s;
                        for (t = Zt(t); i--;) {
                            var u = n[i];
                            if (a && u[2] ? u[1] !== t[u[0]] : !(u[0] in t)) return !1
                        }
                        for (; ++i < s;) {
                            var l = (u = n[i])[0],
                                c = t[l],
                                h = u[1];
                            if (a && u[2]) {
                                if (c === o && !(l in t)) return !1
                            } else {
                                var f = new _r;
                                if (r) var v = r(c, h, l, t, e, f);
                                if (!(v === o ? Kr(h, c, d | p, r, f) : v)) return !1
                            }
                        }
                        return !0
                    }

                    function Jr(t) {
                        return !(!pa(t) || se && se in t) && (ha(t) ? fe : Ut).test(Qo(t))
                    }

                    function ti(t) {
                        return "function" == typeof t ? t : null == t ? gu : "object" == typeof t ? ia(t) ? oi(t[0], t[1]) : ii(t) : Pu(t)
                    }

                    function ei(t) {
                        if (!Fo(t)) return Bn(t);
                        var e = [];
                        for (var n in Zt(t)) ie.call(t, n) && "constructor" != n && e.push(n);
                        return e
                    }

                    function ni(t, e) {
                        return t < e
                    }

                    function ri(t, e) {
                        var n = -1,
                            i = sa(t) ? r(t.length) : [];
                        return Ir(t, function(t, r, o) {
                            i[++n] = e(t, r, o)
                        }), i
                    }

                    function ii(t) {
                        var e = Po(t);
                        return 1 == e.length && e[0][2] ? zo(e[0][0], e[0][1]) : function(n) {
                            return n === t || Qr(n, t, e)
                        }
                    }

                    function oi(t, e) {
                        return jo(t) && Uo(e) ? zo(Ko(t), e) : function(n) {
                            var r = Ua(n, t);
                            return r === o && r === e ? za(n, t) : Kr(e, r, d | p)
                        }
                    }

                    function si(t, e, n, r, i) {
                        t !== e && Nr(e, function(s, a) {
                            if (pa(s)) i || (i = new _r),
                                function(t, e, n, r, i, s, a) {
                                    var u = t[n],
                                        l = e[n],
                                        c = a.get(l);
                                    if (c) mr(t, n, c);
                                    else {
                                        var h = s ? s(u, l, n + "", t, e, a) : o,
                                            f = h === o;
                                        if (f) {
                                            var d = ia(l),
                                                p = !d && ua(l),
                                                v = !d && !p && Ta(l);
                                            h = l, d || p || v ? ia(u) ? h = u : aa(u) ? h = Wi(u) : p ? (f = !1, h = Bi(l, !0)) : v ? (f = !1, h = Ui(l, !0)) : h = [] : ya(l) || ra(l) ? (h = u, ra(u) ? h = Ia(u) : (!pa(u) || r && ha(u)) && (h = Ro(l))) : f = !1
                                        }
                                        f && (a.set(l, h), i(h, l, r, s, a), a.delete(l)), mr(t, n, h)
                                    }
                                }(t, e, a, n, si, r, i);
                            else {
                                var u = r ? r(t[a], s, a + "", t, e, i) : o;
                                u === o && (u = s), mr(t, a, u)
                            }
                        }, Va)
                    }

                    function ai(t, e) {
                        var n = t.length;
                        if (n) return Lo(e += e < 0 ? n : 0, n) ? t[e] : o
                    }

                    function ui(t, e, n) {
                        var r = -1;
                        return e = Ve(e.length ? e : [gu], cn(Eo())),
                            function(t, e) {
                                var n = t.length;
                                for (t.sort(e); n--;) t[n] = t[n].value;
                                return t
                            }(ri(t, function(t, n, i) {
                                return {
                                    criteria: Ve(e, function(e) {
                                        return e(t)
                                    }),
                                    index: ++r,
                                    value: t
                                }
                            }), function(t, e) {
                                return function(t, e, n) {
                                    for (var r = -1, i = t.criteria, o = e.criteria, s = i.length, a = n.length; ++r < s;) {
                                        var u = zi(i[r], o[r]);
                                        if (u) return r >= a ? u : u * ("desc" == n[r] ? -1 : 1)
                                    }
                                    return t.index - e.index
                                }(t, e, n)
                            })
                    }

                    function li(t, e, n) {
                        for (var r = -1, i = e.length, o = {}; ++r < i;) {
                            var s = e[r],
                                a = Xr(t, s);
                            n(a, s) && vi(o, Li(s, t), a)
                        }
                        return o
                    }

                    function ci(t, e, n, r) {
                        var i = r ? en : tn,
                            o = -1,
                            s = e.length,
                            a = t;
                        for (t === e && (e = Wi(e)), n && (a = Ve(t, cn(n))); ++o < s;)
                            for (var u = 0, l = e[o], c = n ? n(l) : l;
                                (u = i(a, c, u, r)) > -1;) a !== t && Ae.call(a, u, 1), Ae.call(t, u, 1);
                        return t
                    }

                    function hi(t, e) {
                        for (var n = t ? e.length : 0, r = n - 1; n--;) {
                            var i = e[n];
                            if (n == r || i !== o) {
                                var o = i;
                                Lo(i) ? Ae.call(t, i, 1) : Pi(t, i)
                            }
                        }
                        return t
                    }

                    function fi(t, e) {
                        return t + Dn(Gn() * (e - t + 1))
                    }

                    function di(t, e) {
                        var n = "";
                        if (!t || e < 1 || e > M) return n;
                        do {
                            e % 2 && (n += t), (e = Dn(e / 2)) && (t += t)
                        } while (e);
                        return n
                    }

                    function pi(t, e) {
                        return Vo(Xo(t, e, gu), t + "")
                    }

                    function vi(t, e, n, r) {
                        if (!pa(t)) return t;
                        for (var i = -1, s = (e = Li(e, t)).length, a = s - 1, u = t; null != u && ++i < s;) {
                            var l = Ko(e[i]),
                                c = n;
                            if (i != a) {
                                var h = u[l];
                                (c = r ? r(h, l, u) : o) === o && (c = pa(h) ? h : Lo(e[i + 1]) ? [] : {})
                            }
                            br(u, l, c), u = u[l]
                        }
                        return t
                    }
                    var _i = Kn ? function(t, e) {
                            return Kn.set(t, e), t
                        } : gu,
                        gi = Mn ? function(t, e) {
                            return Mn(t, "toString", {
                                configurable: !0,
                                enumerable: !1,
                                value: pu(e),
                                writable: !0
                            })
                        } : gu;

                    function yi(t, e, n) {
                        var i = -1,
                            o = t.length;
                        e < 0 && (e = -e > o ? 0 : o + e), (n = n > o ? o : n) < 0 && (n += o), o = e > n ? 0 : n - e >>> 0, e >>>= 0;
                        for (var s = r(o); ++i < o;) s[i] = t[i + e];
                        return s
                    }

                    function mi(t, e) {
                        var n;
                        return Ir(t, function(t, r, i) {
                            return !(n = e(t, r, i))
                        }), !!n
                    }

                    function bi(t, e, n) {
                        var r = 0,
                            i = null == t ? r : t.length;
                        if ("number" == typeof e && e == e && i <= D) {
                            for (; r < i;) {
                                var o = r + i >>> 1,
                                    s = t[o];
                                null !== s && !wa(s) && (n ? s <= e : s < e) ? r = o + 1 : i = o
                            }
                            return i
                        }
                        return xi(t, e, gu, n)
                    }

                    function xi(t, e, n, r) {
                        e = n(e);
                        for (var i = 0, s = null == t ? 0 : t.length, a = e != e, u = null === e, l = wa(e), c = e === o; i < s;) {
                            var h = Dn((i + s) / 2),
                                f = n(t[h]),
                                d = f !== o,
                                p = null === f,
                                v = f == f,
                                _ = wa(f);
                            if (a) var g = r || v;
                            else g = c ? v && (r || d) : u ? v && d && (r || !p) : l ? v && d && !p && (r || !_) : !p && !_ && (r ? f <= e : f < e);
                            g ? i = h + 1 : s = h
                        }
                        return Un(s, R)
                    }

                    function wi(t, e) {
                        for (var n = -1, r = t.length, i = 0, o = []; ++n < r;) {
                            var s = t[n],
                                a = e ? e(s) : s;
                            if (!n || !ta(a, u)) {
                                var u = a;
                                o[i++] = 0 === s ? 0 : s
                            }
                        }
                        return o
                    }

                    function Ti(t) {
                        return "number" == typeof t ? t : wa(t) ? A : +t
                    }

                    function Ei(t) {
                        if ("string" == typeof t) return t;
                        if (ia(t)) return Ve(t, Ei) + "";
                        if (wa(t)) return sr ? sr.call(t) : "";
                        var e = t + "";
                        return "0" == e && 1 / t == -O ? "-0" : e
                    }

                    function Si(t, e, n) {
                        var r = -1,
                            i = We,
                            o = t.length,
                            a = !0,
                            u = [],
                            l = u;
                        if (n) a = !1, i = He;
                        else if (o >= s) {
                            var c = e ? null : co(t);
                            if (c) return wn(c);
                            a = !1, i = fn, l = new vr
                        } else l = e ? [] : u;
                        t: for (; ++r < o;) {
                            var h = t[r],
                                f = e ? e(h) : h;
                            if (h = n || 0 !== h ? h : 0, a && f == f) {
                                for (var d = l.length; d--;)
                                    if (l[d] === f) continue t;
                                e && l.push(f), u.push(h)
                            } else i(l, f, n) || (l !== u && l.push(f), u.push(h))
                        }
                        return u
                    }

                    function Pi(t, e) {
                        return null == (t = Go(t, e = Li(e, t))) || delete t[Ko(cs(e))]
                    }

                    function Oi(t, e, n, r) {
                        return vi(t, e, n(Xr(t, e)), r)
                    }

                    function Mi(t, e, n, r) {
                        for (var i = t.length, o = r ? i : -1;
                            (r ? o-- : ++o < i) && e(t[o], o, t););
                        return n ? yi(t, r ? 0 : o, r ? o + 1 : i) : yi(t, r ? o + 1 : 0, r ? i : o)
                    }

                    function Ci(t, e) {
                        var n = t;
                        return n instanceof hr && (n = n.value()), qe(e, function(t, e) {
                            return e.func.apply(e.thisArg, Ye([t], e.args))
                        }, n)
                    }

                    function Ai(t, e, n) {
                        var i = t.length;
                        if (i < 2) return i ? Si(t[0]) : [];
                        for (var o = -1, s = r(i); ++o < i;)
                            for (var a = t[o], u = -1; ++u < i;) u != o && (s[o] = Ar(s[o] || a, t[u], e, n));
                        return Si(jr(s, 1), e, n)
                    }

                    function Ii(t, e, n) {
                        for (var r = -1, i = t.length, s = e.length, a = {}; ++r < i;) {
                            var u = r < s ? e[r] : o;
                            n(a, t[r], u)
                        }
                        return a
                    }

                    function Ri(t) {
                        return aa(t) ? t : []
                    }

                    function Di(t) {
                        return "function" == typeof t ? t : gu
                    }

                    function Li(t, e) {
                        return ia(t) ? t : jo(t, e) ? [t] : $o(Ra(t))
                    }
                    var ki = pi;

                    function ji(t, e, n) {
                        var r = t.length;
                        return n = n === o ? r : n, !e && n >= r ? t : yi(t, e, n)
                    }
                    var Ni = Cn || function(t) {
                        return Se.clearTimeout(t)
                    };

                    function Bi(t, e) {
                        if (e) return t.slice();
                        var n = t.length,
                            r = Ee ? Ee(n) : new t.constructor(n);
                        return t.copy(r), r
                    }

                    function Fi(t) {
                        var e = new t.constructor(t.byteLength);
                        return new Te(e).set(new Te(t)), e
                    }

                    function Ui(t, e) {
                        var n = e ? Fi(t.buffer) : t.buffer;
                        return new t.constructor(n, t.byteOffset, t.length)
                    }

                    function zi(t, e) {
                        if (t !== e) {
                            var n = t !== o,
                                r = null === t,
                                i = t == t,
                                s = wa(t),
                                a = e !== o,
                                u = null === e,
                                l = e == e,
                                c = wa(e);
                            if (!u && !c && !s && t > e || s && a && l && !u && !c || r && a && l || !n && l || !i) return 1;
                            if (!r && !s && !c && t < e || c && n && i && !r && !s || u && n && i || !a && i || !l) return -1
                        }
                        return 0
                    }

                    function Xi(t, e, n, i) {
                        for (var o = -1, s = t.length, a = n.length, u = -1, l = e.length, c = Fn(s - a, 0), h = r(l + c), f = !i; ++u < l;) h[u] = e[u];
                        for (; ++o < a;)(f || o < s) && (h[n[o]] = t[o]);
                        for (; c--;) h[u++] = t[o++];
                        return h
                    }

                    function Gi(t, e, n, i) {
                        for (var o = -1, s = t.length, a = -1, u = n.length, l = -1, c = e.length, h = Fn(s - u, 0), f = r(h + c), d = !i; ++o < h;) f[o] = t[o];
                        for (var p = o; ++l < c;) f[p + l] = e[l];
                        for (; ++a < u;)(d || o < s) && (f[p + n[a]] = t[o++]);
                        return f
                    }

                    function Wi(t, e) {
                        var n = -1,
                            i = t.length;
                        for (e || (e = r(i)); ++n < i;) e[n] = t[n];
                        return e
                    }

                    function Hi(t, e, n, r) {
                        var i = !n;
                        n || (n = {});
                        for (var s = -1, a = e.length; ++s < a;) {
                            var u = e[s],
                                l = r ? r(n[u], t[u], u, n, t) : o;
                            l === o && (l = t[u]), i ? Er(n, u, l) : br(n, u, l)
                        }
                        return n
                    }

                    function Vi(t, e) {
                        return function(n, r) {
                            var i = ia(n) ? Ue : wr,
                                o = e ? e() : {};
                            return i(n, t, Eo(r, 2), o)
                        }
                    }

                    function Yi(t) {
                        return pi(function(e, n) {
                            var r = -1,
                                i = n.length,
                                s = i > 1 ? n[i - 1] : o,
                                a = i > 2 ? n[2] : o;
                            for (s = t.length > 3 && "function" == typeof s ? (i--, s) : o, a && ko(n[0], n[1], a) && (s = i < 3 ? o : s, i = 1), e = Zt(e); ++r < i;) {
                                var u = n[r];
                                u && t(e, u, r, s)
                            }
                            return e
                        })
                    }

                    function qi(t, e) {
                        return function(n, r) {
                            if (null == n) return n;
                            if (!sa(n)) return t(n, r);
                            for (var i = n.length, o = e ? i : -1, s = Zt(n);
                                (e ? o-- : ++o < i) && !1 !== r(s[o], o, s););
                            return n
                        }
                    }

                    function Zi(t) {
                        return function(e, n, r) {
                            for (var i = -1, o = Zt(e), s = r(e), a = s.length; a--;) {
                                var u = s[t ? a : ++i];
                                if (!1 === n(o[u], u, o)) break
                            }
                            return e
                        }
                    }

                    function $i(t) {
                        return function(e) {
                            var n = yn(e = Ra(e)) ? En(e) : o,
                                r = n ? n[0] : e.charAt(0),
                                i = n ? ji(n, 1).join("") : e.slice(1);
                            return r[t]() + i
                        }
                    }

                    function Ki(t) {
                        return function(e) {
                            return qe(hu(ru(e).replace(ce, "")), t, "")
                        }
                    }

                    function Qi(t) {
                        return function() {
                            var e = arguments;
                            switch (e.length) {
                                case 0:
                                    return new t;
                                case 1:
                                    return new t(e[0]);
                                case 2:
                                    return new t(e[0], e[1]);
                                case 3:
                                    return new t(e[0], e[1], e[2]);
                                case 4:
                                    return new t(e[0], e[1], e[2], e[3]);
                                case 5:
                                    return new t(e[0], e[1], e[2], e[3], e[4]);
                                case 6:
                                    return new t(e[0], e[1], e[2], e[3], e[4], e[5]);
                                case 7:
                                    return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6])
                            }
                            var n = ur(t.prototype),
                                r = t.apply(n, e);
                            return pa(r) ? r : n
                        }
                    }

                    function Ji(t) {
                        return function(e, n, r) {
                            var i = Zt(e);
                            if (!sa(e)) {
                                var s = Eo(n, 3);
                                e = Ha(e), n = function(t) {
                                    return s(i[t], t, i)
                                }
                            }
                            var a = t(e, n, r);
                            return a > -1 ? i[s ? e[a] : a] : o
                        }
                    }

                    function to(t) {
                        return yo(function(e) {
                            var n = e.length,
                                r = n,
                                i = cr.prototype.thru;
                            for (t && e.reverse(); r--;) {
                                var s = e[r];
                                if ("function" != typeof s) throw new Qt(a);
                                if (i && !u && "wrapper" == wo(s)) var u = new cr([], !0)
                            }
                            for (r = u ? r : n; ++r < n;) {
                                var l = wo(s = e[r]),
                                    c = "wrapper" == l ? xo(s) : o;
                                u = c && No(c[0]) && c[1] == (w | y | b | T) && !c[4].length && 1 == c[9] ? u[wo(c[0])].apply(u, c[3]) : 1 == s.length && No(s) ? u[l]() : u.thru(s)
                            }
                            return function() {
                                var t = arguments,
                                    r = t[0];
                                if (u && 1 == t.length && ia(r)) return u.plant(r).value();
                                for (var i = 0, o = n ? e[i].apply(this, t) : r; ++i < n;) o = e[i].call(this, o);
                                return o
                            }
                        })
                    }

                    function eo(t, e, n, i, s, a, u, l, c, h) {
                        var f = e & w,
                            d = e & v,
                            p = e & _,
                            g = e & (y | m),
                            b = e & E,
                            x = p ? o : Qi(t);
                        return function v() {
                            for (var _ = arguments.length, y = r(_), m = _; m--;) y[m] = arguments[m];
                            if (g) var w = To(v),
                                T = function(t, e) {
                                    for (var n = t.length, r = 0; n--;) t[n] === e && ++r;
                                    return r
                                }(y, w);
                            if (i && (y = Xi(y, i, s, g)), a && (y = Gi(y, a, u, g)), _ -= T, g && _ < h) {
                                var E = xn(y, w);
                                return uo(t, e, eo, v.placeholder, n, y, E, l, c, h - _)
                            }
                            var S = d ? n : this,
                                P = p ? S[t] : t;
                            return _ = y.length, l ? y = function(t, e) {
                                for (var n = t.length, r = Un(e.length, n), i = Wi(t); r--;) {
                                    var s = e[r];
                                    t[r] = Lo(s, n) ? i[s] : o
                                }
                                return t
                            }(y, l) : b && _ > 1 && y.reverse(), f && c < _ && (y.length = c), this && this !== Se && this instanceof v && (P = x || Qi(P)), P.apply(S, y)
                        }
                    }

                    function no(t, e) {
                        return function(n, r) {
                            return function(t, e, n, r) {
                                return Fr(t, function(t, i, o) {
                                    e(r, n(t), i, o)
                                }), r
                            }(n, t, e(r), {})
                        }
                    }

                    function ro(t, e) {
                        return function(n, r) {
                            var i;
                            if (n === o && r === o) return e;
                            if (n !== o && (i = n), r !== o) {
                                if (i === o) return r;
                                "string" == typeof n || "string" == typeof r ? (n = Ei(n), r = Ei(r)) : (n = Ti(n), r = Ti(r)), i = t(n, r)
                            }
                            return i
                        }
                    }

                    function io(t) {
                        return yo(function(e) {
                            return e = Ve(e, cn(Eo())), pi(function(n) {
                                var r = this;
                                return t(e, function(t) {
                                    return Fe(t, r, n)
                                })
                            })
                        })
                    }

                    function oo(t, e) {
                        var n = (e = e === o ? " " : Ei(e)).length;
                        if (n < 2) return n ? di(e, t) : e;
                        var r = di(e, Rn(t / Tn(e)));
                        return yn(e) ? ji(En(r), 0, t).join("") : r.slice(0, t)
                    }

                    function so(t) {
                        return function(e, n, i) {
                            return i && "number" != typeof i && ko(e, n, i) && (n = i = o), e = Oa(e), n === o ? (n = e, e = 0) : n = Oa(n),
                                function(t, e, n, i) {
                                    for (var o = -1, s = Fn(Rn((e - t) / (n || 1)), 0), a = r(s); s--;) a[i ? s : ++o] = t, t += n;
                                    return a
                                }(e, n, i = i === o ? e < n ? 1 : -1 : Oa(i), t)
                        }
                    }

                    function ao(t) {
                        return function(e, n) {
                            return "string" == typeof e && "string" == typeof n || (e = Aa(e), n = Aa(n)), t(e, n)
                        }
                    }

                    function uo(t, e, n, r, i, s, a, u, l, c) {
                        var h = e & y;
                        e |= h ? b : x, (e &= ~(h ? x : b)) & g || (e &= ~(v | _));
                        var f = [t, e, i, h ? s : o, h ? a : o, h ? o : s, h ? o : a, u, l, c],
                            d = n.apply(o, f);
                        return No(t) && Wo(d, f), d.placeholder = r, Yo(d, t, e)
                    }

                    function lo(t) {
                        var e = qt[t];
                        return function(t, n) {
                            if (t = Aa(t), n = null == n ? 0 : Un(Ma(n), 292)) {
                                var r = (Ra(t) + "e").split("e");
                                return +((r = (Ra(e(r[0] + "e" + (+r[1] + n))) + "e").split("e"))[0] + "e" + (+r[1] - n))
                            }
                            return e(t)
                        }
                    }
                    var co = qn && 1 / wn(new qn([, -0]))[1] == O ? function(t) {
                        return new qn(t)
                    } : wu;

                    function ho(t) {
                        return function(e) {
                            var n = Ao(e);
                            return n == W ? mn(e) : n == $ ? function(t) {
                                var e = -1,
                                    n = Array(t.size);
                                return t.forEach(function(t) {
                                    n[++e] = [t, t]
                                }), n
                            }(e) : function(t, e) {
                                return Ve(e, function(e) {
                                    return [e, t[e]]
                                })
                            }(e, t(e))
                        }
                    }

                    function fo(t, e, n, i, s, u, c, h) {
                        var f = e & _;
                        if (!f && "function" != typeof t) throw new Qt(a);
                        var d = i ? i.length : 0;
                        if (d || (e &= ~(b | x), i = s = o), c = c === o ? c : Fn(Ma(c), 0), h = h === o ? h : Ma(h), d -= s ? s.length : 0, e & x) {
                            var p = i,
                                E = s;
                            i = s = o
                        }
                        var S = f ? o : xo(t),
                            P = [t, e, n, i, s, p, E, u, c, h];
                        if (S && function(t, e) {
                                var n = t[1],
                                    r = e[1],
                                    i = n | r,
                                    o = i < (v | _ | w),
                                    s = r == w && n == y || r == w && n == T && t[7].length <= e[8] || r == (w | T) && e[7].length <= e[8] && n == y;
                                if (!o && !s) return t;
                                r & v && (t[2] = e[2], i |= n & v ? 0 : g);
                                var a = e[3];
                                if (a) {
                                    var u = t[3];
                                    t[3] = u ? Xi(u, a, e[4]) : a, t[4] = u ? xn(t[3], l) : e[4]
                                }(a = e[5]) && (u = t[5], t[5] = u ? Gi(u, a, e[6]) : a, t[6] = u ? xn(t[5], l) : e[6]), (a = e[7]) && (t[7] = a), r & w && (t[8] = null == t[8] ? e[8] : Un(t[8], e[8])), null == t[9] && (t[9] = e[9]), t[0] = e[0], t[1] = i
                            }(P, S), t = P[0], e = P[1], n = P[2], i = P[3], s = P[4], !(h = P[9] = P[9] === o ? f ? 0 : t.length : Fn(P[9] - d, 0)) && e & (y | m) && (e &= ~(y | m)), e && e != v) O = e == y || e == m ? function(t, e, n) {
                            var i = Qi(t);
                            return function s() {
                                for (var a = arguments.length, u = r(a), l = a, c = To(s); l--;) u[l] = arguments[l];
                                var h = a < 3 && u[0] !== c && u[a - 1] !== c ? [] : xn(u, c);
                                return (a -= h.length) < n ? uo(t, e, eo, s.placeholder, o, u, h, o, o, n - a) : Fe(this && this !== Se && this instanceof s ? i : t, this, u)
                            }
                        }(t, e, h) : e != b && e != (v | b) || s.length ? eo.apply(o, P) : function(t, e, n, i) {
                            var o = e & v,
                                s = Qi(t);
                            return function e() {
                                for (var a = -1, u = arguments.length, l = -1, c = i.length, h = r(c + u), f = this && this !== Se && this instanceof e ? s : t; ++l < c;) h[l] = i[l];
                                for (; u--;) h[l++] = arguments[++a];
                                return Fe(f, o ? n : this, h)
                            }
                        }(t, e, n, i);
                        else var O = function(t, e, n) {
                            var r = e & v,
                                i = Qi(t);
                            return function e() {
                                return (this && this !== Se && this instanceof e ? i : t).apply(r ? n : this, arguments)
                            }
                        }(t, e, n);
                        return Yo((S ? _i : Wo)(O, P), t, e)
                    }

                    function po(t, e, n, r) {
                        return t === o || ta(t, ee[n]) && !ie.call(r, n) ? e : t
                    }

                    function vo(t, e, n, r, i, s) {
                        return pa(t) && pa(e) && (s.set(e, t), si(t, e, o, vo, s), s.delete(e)), t
                    }

                    function _o(t) {
                        return ya(t) ? o : t
                    }

                    function go(t, e, n, r, i, s) {
                        var a = n & d,
                            u = t.length,
                            l = e.length;
                        if (u != l && !(a && l > u)) return !1;
                        var c = s.get(t);
                        if (c && s.get(e)) return c == e;
                        var h = -1,
                            f = !0,
                            v = n & p ? new vr : o;
                        for (s.set(t, e), s.set(e, t); ++h < u;) {
                            var _ = t[h],
                                g = e[h];
                            if (r) var y = a ? r(g, _, h, e, t, s) : r(_, g, h, t, e, s);
                            if (y !== o) {
                                if (y) continue;
                                f = !1;
                                break
                            }
                            if (v) {
                                if (!$e(e, function(t, e) {
                                        if (!fn(v, e) && (_ === t || i(_, t, n, r, s))) return v.push(e)
                                    })) {
                                    f = !1;
                                    break
                                }
                            } else if (_ !== g && !i(_, g, n, r, s)) {
                                f = !1;
                                break
                            }
                        }
                        return s.delete(t), s.delete(e), f
                    }

                    function yo(t) {
                        return Vo(Xo(t, o, os), t + "")
                    }

                    function mo(t) {
                        return Gr(t, Ha, Mo)
                    }

                    function bo(t) {
                        return Gr(t, Va, Co)
                    }
                    var xo = Kn ? function(t) {
                        return Kn.get(t)
                    } : wu;

                    function wo(t) {
                        for (var e = t.name + "", n = Qn[e], r = ie.call(Qn, e) ? n.length : 0; r--;) {
                            var i = n[r],
                                o = i.func;
                            if (null == o || o == t) return i.name
                        }
                        return e
                    }

                    function To(t) {
                        return (ie.call(ar, "placeholder") ? ar : t).placeholder
                    }

                    function Eo() {
                        var t = ar.iteratee || yu;
                        return t = t === yu ? ti : t, arguments.length ? t(arguments[0], arguments[1]) : t
                    }

                    function So(t, e) {
                        var n, r, i = t.__data__;
                        return ("string" == (r = typeof(n = e)) || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== n : null === n) ? i["string" == typeof e ? "string" : "hash"] : i.map
                    }

                    function Po(t) {
                        for (var e = Ha(t), n = e.length; n--;) {
                            var r = e[n],
                                i = t[r];
                            e[n] = [r, i, Uo(i)]
                        }
                        return e
                    }

                    function Oo(t, e) {
                        var n = function(t, e) {
                            return null == t ? o : t[e]
                        }(t, e);
                        return Jr(n) ? n : o
                    }
                    var Mo = Ln ? function(t) {
                            return null == t ? [] : (t = Zt(t), Ge(Ln(t), function(e) {
                                return Ce.call(t, e)
                            }))
                        } : Cu,
                        Co = Ln ? function(t) {
                            for (var e = []; t;) Ye(e, Mo(t)), t = Pe(t);
                            return e
                        } : Cu,
                        Ao = Wr;

                    function Io(t, e, n) {
                        for (var r = -1, i = (e = Li(e, t)).length, o = !1; ++r < i;) {
                            var s = Ko(e[r]);
                            if (!(o = null != t && n(t, s))) break;
                            t = t[s]
                        }
                        return o || ++r != i ? o : !!(i = null == t ? 0 : t.length) && da(i) && Lo(s, i) && (ia(t) || ra(t))
                    }

                    function Ro(t) {
                        return "function" != typeof t.constructor || Fo(t) ? {} : ur(Pe(t))
                    }

                    function Do(t) {
                        return ia(t) || ra(t) || !!(Ke && t && t[Ke])
                    }

                    function Lo(t, e) {
                        return !!(e = null == e ? M : e) && ("number" == typeof t || Xt.test(t)) && t > -1 && t % 1 == 0 && t < e
                    }

                    function ko(t, e, n) {
                        if (!pa(n)) return !1;
                        var r = typeof e;
                        return !!("number" == r ? sa(n) && Lo(e, n.length) : "string" == r && e in n) && ta(n[e], t)
                    }

                    function jo(t, e) {
                        if (ia(t)) return !1;
                        var n = typeof t;
                        return !("number" != n && "symbol" != n && "boolean" != n && null != t && !wa(t)) || Tt.test(t) || !wt.test(t) || null != e && t in Zt(e)
                    }

                    function No(t) {
                        var e = wo(t),
                            n = ar[e];
                        if ("function" != typeof n || !(e in hr.prototype)) return !1;
                        if (t === n) return !0;
                        var r = xo(n);
                        return !!r && t === r[0]
                    }(Hn && Ao(new Hn(new ArrayBuffer(1))) != nt || Vn && Ao(new Vn) != W || Yn && "[object Promise]" != Ao(Yn.resolve()) || qn && Ao(new qn) != $ || Zn && Ao(new Zn) != tt) && (Ao = function(t) {
                        var e = Wr(t),
                            n = e == Y ? t.constructor : o,
                            r = n ? Qo(n) : "";
                        if (r) switch (r) {
                            case Jn:
                                return nt;
                            case tr:
                                return W;
                            case er:
                                return "[object Promise]";
                            case nr:
                                return $;
                            case rr:
                                return tt
                        }
                        return e
                    });
                    var Bo = ne ? ha : Au;

                    function Fo(t) {
                        var e = t && t.constructor;
                        return t === ("function" == typeof e && e.prototype || ee)
                    }

                    function Uo(t) {
                        return t == t && !pa(t)
                    }

                    function zo(t, e) {
                        return function(n) {
                            return null != n && n[t] === e && (e !== o || t in Zt(n))
                        }
                    }

                    function Xo(t, e, n) {
                        return e = Fn(e === o ? t.length - 1 : e, 0),
                            function() {
                                for (var i = arguments, o = -1, s = Fn(i.length - e, 0), a = r(s); ++o < s;) a[o] = i[e + o];
                                o = -1;
                                for (var u = r(e + 1); ++o < e;) u[o] = i[o];
                                return u[e] = n(a), Fe(t, this, u)
                            }
                    }

                    function Go(t, e) {
                        return e.length < 2 ? t : Xr(t, yi(e, 0, -1))
                    }
                    var Wo = qo(_i),
                        Ho = In || function(t, e) {
                            return Se.setTimeout(t, e)
                        },
                        Vo = qo(gi);

                    function Yo(t, e, n) {
                        var r = e + "";
                        return Vo(t, function(t, e) {
                            var n = e.length;
                            if (!n) return t;
                            var r = n - 1;
                            return e[r] = (n > 1 ? "& " : "") + e[r], e = e.join(n > 2 ? ", " : " "), t.replace(It, "{\n/* [wrapped with " + e + "] */\n")
                        }(r, function(t, e) {
                            return ze(L, function(n) {
                                var r = "_." + n[0];
                                e & n[1] && !We(t, r) && t.push(r)
                            }), t.sort()
                        }(function(t) {
                            var e = r.match(Rt);
                            return e ? e[1].split(Dt) : []
                        }(), n)))
                    }

                    function qo(t) {
                        var e = 0,
                            n = 0;
                        return function() {
                            var r = zn(),
                                i = P - (r - n);
                            if (n = r, i > 0) {
                                if (++e >= S) return arguments[0]
                            } else e = 0;
                            return t.apply(o, arguments)
                        }
                    }

                    function Zo(t, e) {
                        var n = -1,
                            r = t.length,
                            i = r - 1;
                        for (e = e === o ? r : e; ++n < e;) {
                            var s = fi(n, i),
                                a = t[s];
                            t[s] = t[n], t[n] = a
                        }
                        return t.length = e, t
                    }
                    var $o = function(t) {
                        var e = qs(function(t) {
                                var e = [];
                                return Et.test(t) && e.push(""), t.replace(St, function(t, n, r, i) {
                                    e.push(r ? i.replace(kt, "$1") : n || t)
                                }), e
                            }, function(t) {
                                return 500 === n.size && n.clear(), t
                            }),
                            n = e.cache;
                        return e
                    }();

                    function Ko(t) {
                        if ("string" == typeof t || wa(t)) return t;
                        var e = t + "";
                        return "0" == e && 1 / t == -O ? "-0" : e
                    }

                    function Qo(t) {
                        if (null != t) {
                            try {
                                return re.call(t)
                            } catch (t) {}
                            try {
                                return t + ""
                            } catch (t) {}
                        }
                        return ""
                    }

                    function Jo(t) {
                        if (t instanceof hr) return t.clone();
                        var e = new cr(t.__wrapped__, t.__chain__);
                        return e.__actions__ = Wi(t.__actions__), e.__index__ = t.__index__, e.__values__ = t.__values__, e
                    }
                    var ts = pi(function(t, e) {
                            return aa(t) ? Ar(t, jr(e, 1, aa, !0)) : []
                        }),
                        es = pi(function(t, e) {
                            var n = cs(e);
                            return aa(n) && (n = o), aa(t) ? Ar(t, jr(e, 1, aa, !0), Eo(n, 2)) : []
                        }),
                        ns = pi(function(t, e) {
                            var n = cs(e);
                            return aa(n) && (n = o), aa(t) ? Ar(t, jr(e, 1, aa, !0), o, n) : []
                        });

                    function rs(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        if (!r) return -1;
                        var i = null == n ? 0 : Ma(n);
                        return i < 0 && (i = Fn(r + i, 0)), Je(t, Eo(e, 3), i)
                    }

                    function is(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        if (!r) return -1;
                        var i = r - 1;
                        return n !== o && (i = Ma(n), i = n < 0 ? Fn(r + i, 0) : Un(i, r - 1)), Je(t, Eo(e, 3), i, !0)
                    }

                    function os(t) {
                        return null != t && t.length ? jr(t, 1) : []
                    }

                    function ss(t) {
                        return t && t.length ? t[0] : o
                    }
                    var as = pi(function(t) {
                            var e = Ve(t, Ri);
                            return e.length && e[0] === t[0] ? qr(e) : []
                        }),
                        us = pi(function(t) {
                            var e = cs(t),
                                n = Ve(t, Ri);
                            return e === cs(n) ? e = o : n.pop(), n.length && n[0] === t[0] ? qr(n, Eo(e, 2)) : []
                        }),
                        ls = pi(function(t) {
                            var e = cs(t),
                                n = Ve(t, Ri);
                            return (e = "function" == typeof e ? e : o) && n.pop(), n.length && n[0] === t[0] ? qr(n, o, e) : []
                        });

                    function cs(t) {
                        var e = null == t ? 0 : t.length;
                        return e ? t[e - 1] : o
                    }
                    var hs = pi(fs);

                    function fs(t, e) {
                        return t && t.length && e && e.length ? ci(t, e) : t
                    }
                    var ds = yo(function(t, e) {
                        var n = null == t ? 0 : t.length,
                            r = Sr(t, e);
                        return hi(t, Ve(e, function(t) {
                            return Lo(t, n) ? +t : t
                        }).sort(zi)), r
                    });

                    function ps(t) {
                        return null == t ? t : Wn.call(t)
                    }
                    var vs = pi(function(t) {
                            return Si(jr(t, 1, aa, !0))
                        }),
                        _s = pi(function(t) {
                            var e = cs(t);
                            return aa(e) && (e = o), Si(jr(t, 1, aa, !0), Eo(e, 2))
                        }),
                        gs = pi(function(t) {
                            var e = cs(t);
                            return e = "function" == typeof e ? e : o, Si(jr(t, 1, aa, !0), o, e)
                        });

                    function ys(t) {
                        if (!t || !t.length) return [];
                        var e = 0;
                        return t = Ge(t, function(t) {
                            if (aa(t)) return e = Fn(t.length, e), !0
                        }), ln(e, function(e) {
                            return Ve(t, on(e))
                        })
                    }

                    function ms(t, e) {
                        if (!t || !t.length) return [];
                        var n = ys(t);
                        return null == e ? n : Ve(n, function(t) {
                            return Fe(e, o, t)
                        })
                    }
                    var bs = pi(function(t, e) {
                            return aa(t) ? Ar(t, e) : []
                        }),
                        xs = pi(function(t) {
                            return Ai(Ge(t, aa))
                        }),
                        ws = pi(function(t) {
                            var e = cs(t);
                            return aa(e) && (e = o), Ai(Ge(t, aa), Eo(e, 2))
                        }),
                        Ts = pi(function(t) {
                            var e = cs(t);
                            return e = "function" == typeof e ? e : o, Ai(Ge(t, aa), o, e)
                        }),
                        Es = pi(ys),
                        Ss = pi(function(t) {
                            var e = t.length,
                                n = e > 1 ? t[e - 1] : o;
                            return ms(t, n = "function" == typeof n ? (t.pop(), n) : o)
                        });

                    function Ps(t) {
                        var e = ar(t);
                        return e.__chain__ = !0, e
                    }

                    function Os(t, e) {
                        return e(t)
                    }
                    var Ms = yo(function(t) {
                            var e = t.length,
                                n = e ? t[0] : 0,
                                r = this.__wrapped__,
                                i = function(e) {
                                    return Sr(e, t)
                                };
                            return !(e > 1 || this.__actions__.length) && r instanceof hr && Lo(n) ? ((r = r.slice(n, +n + (e ? 1 : 0))).__actions__.push({
                                func: Os,
                                args: [i],
                                thisArg: o
                            }), new cr(r, this.__chain__).thru(function(t) {
                                return e && !t.length && t.push(o), t
                            })) : this.thru(i)
                        }),
                        Cs = Vi(function(t, e, n) {
                            ie.call(t, n) ? ++t[n] : Er(t, n, 1)
                        }),
                        As = Ji(rs),
                        Is = Ji(is);

                    function Rs(t, e) {
                        return (ia(t) ? ze : Ir)(t, Eo(e, 3))
                    }

                    function Ds(t, e) {
                        return (ia(t) ? function(t, e) {
                            for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t););
                            return t
                        } : Rr)(t, Eo(e, 3))
                    }
                    var Ls = Vi(function(t, e, n) {
                            ie.call(t, n) ? t[n].push(e) : Er(t, n, [e])
                        }),
                        ks = pi(function(t, e, n) {
                            var i = -1,
                                o = "function" == typeof e,
                                s = sa(t) ? r(t.length) : [];
                            return Ir(t, function(t) {
                                s[++i] = o ? Fe(e, t, n) : Zr(t, e, n)
                            }), s
                        }),
                        js = Vi(function(t, e, n) {
                            Er(t, n, e)
                        });

                    function Ns(t, e) {
                        return (ia(t) ? Ve : ri)(t, Eo(e, 3))
                    }
                    var Bs = Vi(function(t, e, n) {
                            t[n ? 0 : 1].push(e)
                        }, function() {
                            return [
                                [],
                                []
                            ]
                        }),
                        Fs = pi(function(t, e) {
                            if (null == t) return [];
                            var n = e.length;
                            return n > 1 && ko(t, e[0], e[1]) ? e = [] : n > 2 && ko(e[0], e[1], e[2]) && (e = [e[0]]), ui(t, jr(e, 1), [])
                        }),
                        Us = An || function() {
                            return Se.Date.now()
                        };

                    function zs(t, e, n) {
                        return e = n ? o : e, e = t && null == e ? t.length : e, fo(t, w, o, o, o, o, e)
                    }

                    function Xs(t, e) {
                        var n;
                        if ("function" != typeof e) throw new Qt(a);
                        return t = Ma(t),
                            function() {
                                return --t > 0 && (n = e.apply(this, arguments)), t <= 1 && (e = o), n
                            }
                    }
                    var Gs = pi(function(t, e, n) {
                            var r = v;
                            if (n.length) {
                                var i = xn(n, To(Gs));
                                r |= b
                            }
                            return fo(t, r, e, n, i)
                        }),
                        Ws = pi(function(t, e, n) {
                            var r = v | _;
                            if (n.length) {
                                var i = xn(n, To(Ws));
                                r |= b
                            }
                            return fo(e, r, t, n, i)
                        });

                    function Hs(t, e, n) {
                        var r, i, s, u, l, c, h = 0,
                            f = !1,
                            d = !1,
                            p = !0;
                        if ("function" != typeof t) throw new Qt(a);

                        function v(e) {
                            var n = r,
                                s = i;
                            return r = i = o, h = e, u = t.apply(s, n)
                        }

                        function _(t) {
                            var n = t - c;
                            return c === o || n >= e || n < 0 || d && t - h >= s
                        }

                        function g() {
                            var t = Us();
                            if (_(t)) return y(t);
                            l = Ho(g, function(t) {
                                var n = e - (t - c);
                                return d ? Un(n, s - (t - h)) : n
                            }(t))
                        }

                        function y(t) {
                            return l = o, p && r ? v(t) : (r = i = o, u)
                        }

                        function m() {
                            var t = Us(),
                                n = _(t);
                            if (r = arguments, i = this, c = t, n) {
                                if (l === o) return function(t) {
                                    return h = t, l = Ho(g, e), f ? v(t) : u
                                }(c);
                                if (d) return l = Ho(g, e), v(c)
                            }
                            return l === o && (l = Ho(g, e)), u
                        }
                        return e = Aa(e) || 0, pa(n) && (f = !!n.leading, s = (d = "maxWait" in n) ? Fn(Aa(n.maxWait) || 0, e) : s, p = "trailing" in n ? !!n.trailing : p), m.cancel = function() {
                            l !== o && Ni(l), h = 0, r = c = i = l = o
                        }, m.flush = function() {
                            return l === o ? u : y(Us())
                        }, m
                    }
                    var Vs = pi(function(t, e) {
                            return Cr(t, 1, e)
                        }),
                        Ys = pi(function(t, e, n) {
                            return Cr(t, Aa(e) || 0, n)
                        });

                    function qs(t, e) {
                        if ("function" != typeof t || null != e && "function" != typeof e) throw new Qt(a);
                        var n = function() {
                            var r = arguments,
                                i = e ? e.apply(this, r) : r[0],
                                o = n.cache;
                            if (o.has(i)) return o.get(i);
                            var s = t.apply(this, r);
                            return n.cache = o.set(i, s) || o, s
                        };
                        return n.cache = new(qs.Cache || pr), n
                    }

                    function Zs(t) {
                        if ("function" != typeof t) throw new Qt(a);
                        return function() {
                            var e = arguments;
                            switch (e.length) {
                                case 0:
                                    return !t.call(this);
                                case 1:
                                    return !t.call(this, e[0]);
                                case 2:
                                    return !t.call(this, e[0], e[1]);
                                case 3:
                                    return !t.call(this, e[0], e[1], e[2])
                            }
                            return !t.apply(this, e)
                        }
                    }
                    qs.Cache = pr;
                    var $s = ki(function(t, e) {
                            var n = (e = 1 == e.length && ia(e[0]) ? Ve(e[0], cn(Eo())) : Ve(jr(e, 1), cn(Eo()))).length;
                            return pi(function(r) {
                                for (var i = -1, o = Un(r.length, n); ++i < o;) r[i] = e[i].call(this, r[i]);
                                return Fe(t, this, r)
                            })
                        }),
                        Ks = pi(function(t, e) {
                            var n = xn(e, To(Ks));
                            return fo(t, b, o, e, n)
                        }),
                        Qs = pi(function(t, e) {
                            var n = xn(e, To(Qs));
                            return fo(t, x, o, e, n)
                        }),
                        Js = yo(function(t, e) {
                            return fo(t, T, o, o, o, e)
                        });

                    function ta(t, e) {
                        return t === e || t != t && e != e
                    }
                    var ea = ao(Hr),
                        na = ao(function(t, e) {
                            return t >= e
                        }),
                        ra = $r(function() {
                            return arguments
                        }()) ? $r : function(t) {
                            return va(t) && ie.call(t, "callee") && !Ce.call(t, "callee")
                        },
                        ia = r.isArray,
                        oa = Ie ? cn(Ie) : function(t) {
                            return va(t) && Wr(t) == et
                        };

                    function sa(t) {
                        return null != t && da(t.length) && !ha(t)
                    }

                    function aa(t) {
                        return va(t) && sa(t)
                    }
                    var ua = kn || Au,
                        la = Re ? cn(Re) : function(t) {
                            return va(t) && Wr(t) == F
                        };

                    function ca(t) {
                        if (!va(t)) return !1;
                        var e = Wr(t);
                        return e == z || e == U || "string" == typeof t.message && "string" == typeof t.name && !ya(t)
                    }

                    function ha(t) {
                        if (!pa(t)) return !1;
                        var e = Wr(t);
                        return e == X || e == G || e == N || e == q
                    }

                    function fa(t) {
                        return "number" == typeof t && t == Ma(t)
                    }

                    function da(t) {
                        return "number" == typeof t && t > -1 && t % 1 == 0 && t <= M
                    }

                    function pa(t) {
                        var e = typeof t;
                        return null != t && ("object" == e || "function" == e)
                    }

                    function va(t) {
                        return null != t && "object" == typeof t
                    }
                    var _a = De ? cn(De) : function(t) {
                        return va(t) && Ao(t) == W
                    };

                    function ga(t) {
                        return "number" == typeof t || va(t) && Wr(t) == H
                    }

                    function ya(t) {
                        if (!va(t) || Wr(t) != Y) return !1;
                        var e = Pe(t);
                        if (null === e) return !0;
                        var n = ie.call(e, "constructor") && e.constructor;
                        return "function" == typeof n && n instanceof n && re.call(n) == ue
                    }
                    var ma = Le ? cn(Le) : function(t) {
                            return va(t) && Wr(t) == Z
                        },
                        ba = ke ? cn(ke) : function(t) {
                            return va(t) && Ao(t) == $
                        };

                    function xa(t) {
                        return "string" == typeof t || !ia(t) && va(t) && Wr(t) == K
                    }

                    function wa(t) {
                        return "symbol" == typeof t || va(t) && Wr(t) == Q
                    }
                    var Ta = je ? cn(je) : function(t) {
                            return va(t) && da(t.length) && !!ye[Wr(t)]
                        },
                        Ea = ao(ni),
                        Sa = ao(function(t, e) {
                            return t <= e
                        });

                    function Pa(t) {
                        if (!t) return [];
                        if (sa(t)) return xa(t) ? En(t) : Wi(t);
                        if (sn && t[sn]) return function(t) {
                            for (var e, n = []; !(e = t.next()).done;) n.push(e.value);
                            return n
                        }(t[sn]());
                        var e = Ao(t);
                        return (e == W ? mn : e == $ ? wn : tu)(t)
                    }

                    function Oa(t) {
                        return t ? (t = Aa(t)) === O || t === -O ? (t < 0 ? -1 : 1) * C : t == t ? t : 0 : 0 === t ? t : 0
                    }

                    function Ma(t) {
                        var e = Oa(t),
                            n = e % 1;
                        return e == e ? n ? e - n : e : 0
                    }

                    function Ca(t) {
                        return t ? Pr(Ma(t), 0, I) : 0
                    }

                    function Aa(t) {
                        if ("number" == typeof t) return t;
                        if (wa(t)) return A;
                        if (pa(t)) {
                            var e = "function" == typeof t.valueOf ? t.valueOf() : t;
                            t = pa(e) ? e + "" : e
                        }
                        if ("string" != typeof t) return 0 === t ? t : +t;
                        t = t.replace(Mt, "");
                        var n = Ft.test(t);
                        return n || zt.test(t) ? we(t.slice(2), n ? 2 : 8) : Bt.test(t) ? A : +t
                    }

                    function Ia(t) {
                        return Hi(t, Va(t))
                    }

                    function Ra(t) {
                        return null == t ? "" : Ei(t)
                    }
                    var Da = Yi(function(t, e) {
                            if (Fo(e) || sa(e)) Hi(e, Ha(e), t);
                            else
                                for (var n in e) ie.call(e, n) && br(t, n, e[n])
                        }),
                        La = Yi(function(t, e) {
                            Hi(e, Va(e), t)
                        }),
                        ka = Yi(function(t, e, n, r) {
                            Hi(e, Va(e), t, r)
                        }),
                        ja = Yi(function(t, e, n, r) {
                            Hi(e, Ha(e), t, r)
                        }),
                        Na = yo(Sr),
                        Ba = pi(function(t) {
                            return t.push(o, po), Fe(ka, o, t)
                        }),
                        Fa = pi(function(t) {
                            return t.push(o, vo), Fe(qa, o, t)
                        });

                    function Ua(t, e, n) {
                        var r = null == t ? o : Xr(t, e);
                        return r === o ? n : r
                    }

                    function za(t, e) {
                        return null != t && Io(t, e, Yr)
                    }
                    var Xa = no(function(t, e, n) {
                            t[e] = n
                        }, pu(gu)),
                        Ga = no(function(t, e, n) {
                            ie.call(t, e) ? t[e].push(n) : t[e] = [n]
                        }, Eo),
                        Wa = pi(Zr);

                    function Ha(t) {
                        return sa(t) ? gr(t) : ei(t)
                    }

                    function Va(t) {
                        return sa(t) ? gr(t, !0) : function(t) {
                            if (!pa(t)) return function(t) {
                                var e = [];
                                if (null != t)
                                    for (var n in Zt(t)) e.push(n);
                                return e
                            }(t);
                            var e = Fo(t),
                                n = [];
                            for (var r in t)("constructor" != r || !e && ie.call(t, r)) && n.push(r);
                            return n
                        }(t)
                    }
                    var Ya = Yi(function(t, e, n) {
                            si(t, e, n)
                        }),
                        qa = Yi(function(t, e, n, r) {
                            si(t, e, n, r)
                        }),
                        Za = yo(function(t, e) {
                            var n = {};
                            if (null == t) return n;
                            var r = !1;
                            e = Ve(e, function(e) {
                                return e = Li(e, t), r || (r = e.length > 1), e
                            }), Hi(t, bo(t), n), r && (n = Or(n, c | h | f, _o));
                            for (var i = e.length; i--;) Pi(n, e[i]);
                            return n
                        }),
                        $a = yo(function(t, e) {
                            return null == t ? {} : function(t, e) {
                                return li(t, e, function(e, n) {
                                    return za(t, n)
                                })
                            }(t, e)
                        });

                    function Ka(t, e) {
                        if (null == t) return {};
                        var n = Ve(bo(t), function(t) {
                            return [t]
                        });
                        return e = Eo(e), li(t, n, function(t, n) {
                            return e(t, n[0])
                        })
                    }
                    var Qa = ho(Ha),
                        Ja = ho(Va);

                    function tu(t) {
                        return null == t ? [] : hn(t, Ha(t))
                    }
                    var eu = Ki(function(t, e, n) {
                        return e = e.toLowerCase(), t + (n ? nu(e) : e)
                    });

                    function nu(t) {
                        return cu(Ra(t).toLowerCase())
                    }

                    function ru(t) {
                        return (t = Ra(t)) && t.replace(Gt, vn).replace(he, "")
                    }
                    var iu = Ki(function(t, e, n) {
                            return t + (n ? "-" : "") + e.toLowerCase()
                        }),
                        ou = Ki(function(t, e, n) {
                            return t + (n ? " " : "") + e.toLowerCase()
                        }),
                        su = $i("toLowerCase"),
                        au = Ki(function(t, e, n) {
                            return t + (n ? "_" : "") + e.toLowerCase()
                        }),
                        uu = Ki(function(t, e, n) {
                            return t + (n ? " " : "") + cu(e)
                        }),
                        lu = Ki(function(t, e, n) {
                            return t + (n ? " " : "") + e.toUpperCase()
                        }),
                        cu = $i("toUpperCase");

                    function hu(t, e, n) {
                        return t = Ra(t), (e = n ? o : e) === o ? function(t) {
                            return ve.test(t)
                        }(t) ? function(t) {
                            return t.match(de) || []
                        }(t) : function(t) {
                            return t.match(Lt) || []
                        }(t) : t.match(e) || []
                    }
                    var fu = pi(function(t, e) {
                            try {
                                return Fe(t, o, e)
                            } catch (t) {
                                return ca(t) ? t : new Vt(t)
                            }
                        }),
                        du = yo(function(t, e) {
                            return ze(e, function(e) {
                                e = Ko(e), Er(t, e, Gs(t[e], t))
                            }), t
                        });

                    function pu(t) {
                        return function() {
                            return t
                        }
                    }
                    var vu = to(),
                        _u = to(!0);

                    function gu(t) {
                        return t
                    }

                    function yu(t) {
                        return ti("function" == typeof t ? t : Or(t, c))
                    }
                    var mu = pi(function(t, e) {
                            return function(n) {
                                return Zr(n, t, e)
                            }
                        }),
                        bu = pi(function(t, e) {
                            return function(n) {
                                return Zr(t, n, e)
                            }
                        });

                    function xu(t, e, n) {
                        var r = Ha(e),
                            i = zr(e, r);
                        null != n || pa(e) && (i.length || !r.length) || (n = e, e = t, t = this, i = zr(e, Ha(e)));
                        var o = !(pa(n) && "chain" in n && !n.chain),
                            s = ha(t);
                        return ze(i, function(n) {
                            var r = e[n];
                            t[n] = r, s && (t.prototype[n] = function() {
                                var e = this.__chain__;
                                if (o || e) {
                                    var n = t(this.__wrapped__);
                                    return (n.__actions__ = Wi(this.__actions__)).push({
                                        func: r,
                                        args: arguments,
                                        thisArg: t
                                    }), n.__chain__ = e, n
                                }
                                return r.apply(t, Ye([this.value()], arguments))
                            })
                        }), t
                    }

                    function wu() {}
                    var Tu = io(Ve),
                        Eu = io(Xe),
                        Su = io($e);

                    function Pu(t) {
                        return jo(t) ? on(Ko(t)) : function(t) {
                            return function(e) {
                                return Xr(e, t)
                            }
                        }(t)
                    }
                    var Ou = so(),
                        Mu = so(!0);

                    function Cu() {
                        return []
                    }

                    function Au() {
                        return !1
                    }
                    var Iu, Ru = ro(function(t, e) {
                            return t + e
                        }, 0),
                        Du = lo("ceil"),
                        Lu = ro(function(t, e) {
                            return t / e
                        }, 1),
                        ku = lo("floor"),
                        ju = ro(function(t, e) {
                            return t * e
                        }, 1),
                        Nu = lo("round"),
                        Bu = ro(function(t, e) {
                            return t - e
                        }, 0);
                    return ar.after = function(t, e) {
                        if ("function" != typeof e) throw new Qt(a);
                        return t = Ma(t),
                            function() {
                                if (--t < 1) return e.apply(this, arguments)
                            }
                    }, ar.ary = zs, ar.assign = Da, ar.assignIn = La, ar.assignInWith = ka, ar.assignWith = ja, ar.at = Na, ar.before = Xs, ar.bind = Gs, ar.bindAll = du, ar.bindKey = Ws, ar.castArray = function() {
                        if (!arguments.length) return [];
                        var t = arguments[0];
                        return ia(t) ? t : [t]
                    }, ar.chain = Ps, ar.chunk = function(t, e, n) {
                        e = (n ? ko(t, e, n) : e === o) ? 1 : Fn(Ma(e), 0);
                        var i = null == t ? 0 : t.length;
                        if (!i || e < 1) return [];
                        for (var s = 0, a = 0, u = r(Rn(i / e)); s < i;) u[a++] = yi(t, s, s += e);
                        return u
                    }, ar.compact = function(t) {
                        for (var e = -1, n = null == t ? 0 : t.length, r = 0, i = []; ++e < n;) {
                            var o = t[e];
                            o && (i[r++] = o)
                        }
                        return i
                    }, ar.concat = function() {
                        var t = arguments.length;
                        if (!t) return [];
                        for (var e = r(t - 1), n = arguments[0], i = t; i--;) e[i - 1] = arguments[i];
                        return Ye(ia(n) ? Wi(n) : [n], jr(e, 1))
                    }, ar.cond = function(t) {
                        var e = null == t ? 0 : t.length,
                            n = Eo();
                        return t = e ? Ve(t, function(t) {
                            if ("function" != typeof t[1]) throw new Qt(a);
                            return [n(t[0]), t[1]]
                        }) : [], pi(function(n) {
                            for (var r = -1; ++r < e;) {
                                var i = t[r];
                                if (Fe(i[0], this, n)) return Fe(i[1], this, n)
                            }
                        })
                    }, ar.conforms = function(t) {
                        return function(t) {
                            var e = Ha(t);
                            return function(n) {
                                return Mr(n, t, e)
                            }
                        }(Or(t, c))
                    }, ar.constant = pu, ar.countBy = Cs, ar.create = function(t, e) {
                        var n = ur(t);
                        return null == e ? n : Tr(n, e)
                    }, ar.curry = function t(e, n, r) {
                        var i = fo(e, y, o, o, o, o, o, n = r ? o : n);
                        return i.placeholder = t.placeholder, i
                    }, ar.curryRight = function t(e, n, r) {
                        var i = fo(e, m, o, o, o, o, o, n = r ? o : n);
                        return i.placeholder = t.placeholder, i
                    }, ar.debounce = Hs, ar.defaults = Ba, ar.defaultsDeep = Fa, ar.defer = Vs, ar.delay = Ys, ar.difference = ts, ar.differenceBy = es, ar.differenceWith = ns, ar.drop = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        return r ? yi(t, (e = n || e === o ? 1 : Ma(e)) < 0 ? 0 : e, r) : []
                    }, ar.dropRight = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        return r ? yi(t, 0, (e = r - (e = n || e === o ? 1 : Ma(e))) < 0 ? 0 : e) : []
                    }, ar.dropRightWhile = function(t, e) {
                        return t && t.length ? Mi(t, Eo(e, 3), !0, !0) : []
                    }, ar.dropWhile = function(t, e) {
                        return t && t.length ? Mi(t, Eo(e, 3), !0) : []
                    }, ar.fill = function(t, e, n, r) {
                        var i = null == t ? 0 : t.length;
                        return i ? (n && "number" != typeof n && ko(t, e, n) && (n = 0, r = i), function(t, e, n, r) {
                            var i = t.length;
                            for ((n = Ma(n)) < 0 && (n = -n > i ? 0 : i + n), (r = r === o || r > i ? i : Ma(r)) < 0 && (r += i), r = n > r ? 0 : Ca(r); n < r;) t[n++] = e;
                            return t
                        }(t, e, n, r)) : []
                    }, ar.filter = function(t, e) {
                        return (ia(t) ? Ge : kr)(t, Eo(e, 3))
                    }, ar.flatMap = function(t, e) {
                        return jr(Ns(t, e), 1)
                    }, ar.flatMapDeep = function(t, e) {
                        return jr(Ns(t, e), O)
                    }, ar.flatMapDepth = function(t, e, n) {
                        return n = n === o ? 1 : Ma(n), jr(Ns(t, e), n)
                    }, ar.flatten = os, ar.flattenDeep = function(t) {
                        return null != t && t.length ? jr(t, O) : []
                    }, ar.flattenDepth = function(t, e) {
                        return null != t && t.length ? jr(t, e = e === o ? 1 : Ma(e)) : []
                    }, ar.flip = function(t) {
                        return fo(t, E)
                    }, ar.flow = vu, ar.flowRight = _u, ar.fromPairs = function(t) {
                        for (var e = -1, n = null == t ? 0 : t.length, r = {}; ++e < n;) {
                            var i = t[e];
                            r[i[0]] = i[1]
                        }
                        return r
                    }, ar.functions = function(t) {
                        return null == t ? [] : zr(t, Ha(t))
                    }, ar.functionsIn = function(t) {
                        return null == t ? [] : zr(t, Va(t))
                    }, ar.groupBy = Ls, ar.initial = function(t) {
                        return null != t && t.length ? yi(t, 0, -1) : []
                    }, ar.intersection = as, ar.intersectionBy = us, ar.intersectionWith = ls, ar.invert = Xa, ar.invertBy = Ga, ar.invokeMap = ks, ar.iteratee = yu, ar.keyBy = js, ar.keys = Ha, ar.keysIn = Va, ar.map = Ns, ar.mapKeys = function(t, e) {
                        var n = {};
                        return e = Eo(e, 3), Fr(t, function(t, r, i) {
                            Er(n, e(t, r, i), t)
                        }), n
                    }, ar.mapValues = function(t, e) {
                        var n = {};
                        return e = Eo(e, 3), Fr(t, function(t, r, i) {
                            Er(n, r, e(t, r, i))
                        }), n
                    }, ar.matches = function(t) {
                        return ii(Or(t, c))
                    }, ar.matchesProperty = function(t, e) {
                        return oi(t, Or(e, c))
                    }, ar.memoize = qs, ar.merge = Ya, ar.mergeWith = qa, ar.method = mu, ar.methodOf = bu, ar.mixin = xu, ar.negate = Zs, ar.nthArg = function(t) {
                        return t = Ma(t), pi(function(e) {
                            return ai(e, t)
                        })
                    }, ar.omit = Za, ar.omitBy = function(t, e) {
                        return Ka(t, Zs(Eo(e)))
                    }, ar.once = function(t) {
                        return Xs(2, t)
                    }, ar.orderBy = function(t, e, n, r) {
                        return null == t ? [] : (ia(e) || (e = null == e ? [] : [e]), ia(n = r ? o : n) || (n = null == n ? [] : [n]), ui(t, e, n))
                    }, ar.over = Tu, ar.overArgs = $s, ar.overEvery = Eu, ar.overSome = Su, ar.partial = Ks, ar.partialRight = Qs, ar.partition = Bs, ar.pick = $a, ar.pickBy = Ka, ar.property = Pu, ar.propertyOf = function(t) {
                        return function(e) {
                            return null == t ? o : Xr(t, e)
                        }
                    }, ar.pull = hs, ar.pullAll = fs, ar.pullAllBy = function(t, e, n) {
                        return t && t.length && e && e.length ? ci(t, e, Eo(n, 2)) : t
                    }, ar.pullAllWith = function(t, e, n) {
                        return t && t.length && e && e.length ? ci(t, e, o, n) : t
                    }, ar.pullAt = ds, ar.range = Ou, ar.rangeRight = Mu, ar.rearg = Js, ar.reject = function(t, e) {
                        return (ia(t) ? Ge : kr)(t, Zs(Eo(e, 3)))
                    }, ar.remove = function(t, e) {
                        var n = [];
                        if (!t || !t.length) return n;
                        var r = -1,
                            i = [],
                            o = t.length;
                        for (e = Eo(e, 3); ++r < o;) {
                            var s = t[r];
                            e(s, r, t) && (n.push(s), i.push(r))
                        }
                        return hi(t, i), n
                    }, ar.rest = function(t, e) {
                        if ("function" != typeof t) throw new Qt(a);
                        return pi(t, e = e === o ? e : Ma(e))
                    }, ar.reverse = ps, ar.sampleSize = function(t, e, n) {
                        return e = (n ? ko(t, e, n) : e === o) ? 1 : Ma(e), (ia(t) ? function(t, e) {
                            return Zo(Wi(t), Pr(e, 0, t.length))
                        } : function(t, e) {
                            var n = tu(t);
                            return Zo(n, Pr(e, 0, n.length))
                        })(t, e)
                    }, ar.set = function(t, e, n) {
                        return null == t ? t : vi(t, e, n)
                    }, ar.setWith = function(t, e, n, r) {
                        return r = "function" == typeof r ? r : o, null == t ? t : vi(t, e, n, r)
                    }, ar.shuffle = function(t) {
                        return (ia(t) ? function(t) {
                            return Zo(Wi(t))
                        } : function(t) {
                            return Zo(tu(t))
                        })(t)
                    }, ar.slice = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        return r ? (n && "number" != typeof n && ko(t, e, n) ? (e = 0, n = r) : (e = null == e ? 0 : Ma(e), n = n === o ? r : Ma(n)), yi(t, e, n)) : []
                    }, ar.sortBy = Fs, ar.sortedUniq = function(t) {
                        return t && t.length ? wi(t) : []
                    }, ar.sortedUniqBy = function(t, e) {
                        return t && t.length ? wi(t, Eo(e, 2)) : []
                    }, ar.split = function(t, e, n) {
                        return n && "number" != typeof n && ko(t, e, n) && (e = n = o), (n = n === o ? I : n >>> 0) ? (t = Ra(t)) && ("string" == typeof e || null != e && !ma(e)) && !(e = Ei(e)) && yn(t) ? ji(En(t), 0, n) : t.split(e, n) : []
                    }, ar.spread = function(t, e) {
                        if ("function" != typeof t) throw new Qt(a);
                        return e = null == e ? 0 : Fn(Ma(e), 0), pi(function(n) {
                            var r = n[e],
                                i = ji(n, 0, e);
                            return r && Ye(i, r), Fe(t, this, i)
                        })
                    }, ar.tail = function(t) {
                        var e = null == t ? 0 : t.length;
                        return e ? yi(t, 1, e) : []
                    }, ar.take = function(t, e, n) {
                        return t && t.length ? yi(t, 0, (e = n || e === o ? 1 : Ma(e)) < 0 ? 0 : e) : []
                    }, ar.takeRight = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        return r ? yi(t, (e = r - (e = n || e === o ? 1 : Ma(e))) < 0 ? 0 : e, r) : []
                    }, ar.takeRightWhile = function(t, e) {
                        return t && t.length ? Mi(t, Eo(e, 3), !1, !0) : []
                    }, ar.takeWhile = function(t, e) {
                        return t && t.length ? Mi(t, Eo(e, 3)) : []
                    }, ar.tap = function(t, e) {
                        return e(t), t
                    }, ar.throttle = function(t, e, n) {
                        var r = !0,
                            i = !0;
                        if ("function" != typeof t) throw new Qt(a);
                        return pa(n) && (r = "leading" in n ? !!n.leading : r, i = "trailing" in n ? !!n.trailing : i), Hs(t, e, {
                            leading: r,
                            maxWait: e,
                            trailing: i
                        })
                    }, ar.thru = Os, ar.toArray = Pa, ar.toPairs = Qa, ar.toPairsIn = Ja, ar.toPath = function(t) {
                        return ia(t) ? Ve(t, Ko) : wa(t) ? [t] : Wi($o(Ra(t)))
                    }, ar.toPlainObject = Ia, ar.transform = function(t, e, n) {
                        var r = ia(t),
                            i = r || ua(t) || Ta(t);
                        if (e = Eo(e, 4), null == n) {
                            var o = t && t.constructor;
                            n = i ? r ? new o : [] : pa(t) && ha(o) ? ur(Pe(t)) : {}
                        }
                        return (i ? ze : Fr)(t, function(t, r, i) {
                            return e(n, t, r, i)
                        }), n
                    }, ar.unary = function(t) {
                        return zs(t, 1)
                    }, ar.union = vs, ar.unionBy = _s, ar.unionWith = gs, ar.uniq = function(t) {
                        return t && t.length ? Si(t) : []
                    }, ar.uniqBy = function(t, e) {
                        return t && t.length ? Si(t, Eo(e, 2)) : []
                    }, ar.uniqWith = function(t, e) {
                        return e = "function" == typeof e ? e : o, t && t.length ? Si(t, o, e) : []
                    }, ar.unset = function(t, e) {
                        return null == t || Pi(t, e)
                    }, ar.unzip = ys, ar.unzipWith = ms, ar.update = function(t, e, n) {
                        return null == t ? t : Oi(t, e, Di(n))
                    }, ar.updateWith = function(t, e, n, r) {
                        return r = "function" == typeof r ? r : o, null == t ? t : Oi(t, e, Di(n), r)
                    }, ar.values = tu, ar.valuesIn = function(t) {
                        return null == t ? [] : hn(t, Va(t))
                    }, ar.without = bs, ar.words = hu, ar.wrap = function(t, e) {
                        return Ks(Di(e), t)
                    }, ar.xor = xs, ar.xorBy = ws, ar.xorWith = Ts, ar.zip = Es, ar.zipObject = function(t, e) {
                        return Ii(t || [], e || [], br)
                    }, ar.zipObjectDeep = function(t, e) {
                        return Ii(t || [], e || [], vi)
                    }, ar.zipWith = Ss, ar.entries = Qa, ar.entriesIn = Ja, ar.extend = La, ar.extendWith = ka, xu(ar, ar), ar.add = Ru, ar.attempt = fu, ar.camelCase = eu, ar.capitalize = nu, ar.ceil = Du, ar.clamp = function(t, e, n) {
                        return n === o && (n = e, e = o), n !== o && (n = (n = Aa(n)) == n ? n : 0), e !== o && (e = (e = Aa(e)) == e ? e : 0), Pr(Aa(t), e, n)
                    }, ar.clone = function(t) {
                        return Or(t, f)
                    }, ar.cloneDeep = function(t) {
                        return Or(t, c | f)
                    }, ar.cloneDeepWith = function(t, e) {
                        return Or(t, c | f, e = "function" == typeof e ? e : o)
                    }, ar.cloneWith = function(t, e) {
                        return Or(t, f, e = "function" == typeof e ? e : o)
                    }, ar.conformsTo = function(t, e) {
                        return null == e || Mr(t, e, Ha(e))
                    }, ar.deburr = ru, ar.defaultTo = function(t, e) {
                        return null == t || t != t ? e : t
                    }, ar.divide = Lu, ar.endsWith = function(t, e, n) {
                        t = Ra(t), e = Ei(e);
                        var r = t.length,
                            i = n = n === o ? r : Pr(Ma(n), 0, r);
                        return (n -= e.length) >= 0 && t.slice(n, i) == e
                    }, ar.eq = ta, ar.escape = function(t) {
                        return (t = Ra(t)) && yt.test(t) ? t.replace(_t, _n) : t
                    }, ar.escapeRegExp = function(t) {
                        return (t = Ra(t)) && Ot.test(t) ? t.replace(Pt, "\\$&") : t
                    }, ar.every = function(t, e, n) {
                        var r = ia(t) ? Xe : Dr;
                        return n && ko(t, e, n) && (e = o), r(t, Eo(e, 3))
                    }, ar.find = As, ar.findIndex = rs, ar.findKey = function(t, e) {
                        return Qe(t, Eo(e, 3), Fr)
                    }, ar.findLast = Is, ar.findLastIndex = is, ar.findLastKey = function(t, e) {
                        return Qe(t, Eo(e, 3), Ur)
                    }, ar.floor = ku, ar.forEach = Rs, ar.forEachRight = Ds, ar.forIn = function(t, e) {
                        return null == t ? t : Nr(t, Eo(e, 3), Va)
                    }, ar.forInRight = function(t, e) {
                        return null == t ? t : Br(t, Eo(e, 3), Va)
                    }, ar.forOwn = function(t, e) {
                        return t && Fr(t, Eo(e, 3))
                    }, ar.forOwnRight = function(t, e) {
                        return t && Ur(t, Eo(e, 3))
                    }, ar.get = Ua, ar.gt = ea, ar.gte = na, ar.has = function(t, e) {
                        return null != t && Io(t, e, Vr)
                    }, ar.hasIn = za, ar.head = ss, ar.identity = gu, ar.includes = function(t, e, n, r) {
                        t = sa(t) ? t : tu(t), n = n && !r ? Ma(n) : 0;
                        var i = t.length;
                        return n < 0 && (n = Fn(i + n, 0)), xa(t) ? n <= i && t.indexOf(e, n) > -1 : !!i && tn(t, e, n) > -1
                    }, ar.indexOf = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        if (!r) return -1;
                        var i = null == n ? 0 : Ma(n);
                        return i < 0 && (i = Fn(r + i, 0)), tn(t, e, i)
                    }, ar.inRange = function(t, e, n) {
                        return e = Oa(e), n === o ? (n = e, e = 0) : n = Oa(n),
                            function(t, e, n) {
                                return t >= Un(e, n) && t < Fn(e, n)
                            }(t = Aa(t), e, n)
                    }, ar.invoke = Wa, ar.isArguments = ra, ar.isArray = ia, ar.isArrayBuffer = oa, ar.isArrayLike = sa, ar.isArrayLikeObject = aa, ar.isBoolean = function(t) {
                        return !0 === t || !1 === t || va(t) && Wr(t) == B
                    }, ar.isBuffer = ua, ar.isDate = la, ar.isElement = function(t) {
                        return va(t) && 1 === t.nodeType && !ya(t)
                    }, ar.isEmpty = function(t) {
                        if (null == t) return !0;
                        if (sa(t) && (ia(t) || "string" == typeof t || "function" == typeof t.splice || ua(t) || Ta(t) || ra(t))) return !t.length;
                        var e = Ao(t);
                        if (e == W || e == $) return !t.size;
                        if (Fo(t)) return !ei(t).length;
                        for (var n in t)
                            if (ie.call(t, n)) return !1;
                        return !0
                    }, ar.isEqual = function(t, e) {
                        return Kr(t, e)
                    }, ar.isEqualWith = function(t, e, n) {
                        var r = (n = "function" == typeof n ? n : o) ? n(t, e) : o;
                        return r === o ? Kr(t, e, o, n) : !!r
                    }, ar.isError = ca, ar.isFinite = function(t) {
                        return "number" == typeof t && jn(t)
                    }, ar.isFunction = ha, ar.isInteger = fa, ar.isLength = da, ar.isMap = _a, ar.isMatch = function(t, e) {
                        return t === e || Qr(t, e, Po(e))
                    }, ar.isMatchWith = function(t, e, n) {
                        return n = "function" == typeof n ? n : o, Qr(t, e, Po(e), n)
                    }, ar.isNaN = function(t) {
                        return ga(t) && t != +t
                    }, ar.isNative = function(t) {
                        if (Bo(t)) throw new Vt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");
                        return Jr(t)
                    }, ar.isNil = function(t) {
                        return null == t
                    }, ar.isNull = function(t) {
                        return null === t
                    }, ar.isNumber = ga, ar.isObject = pa, ar.isObjectLike = va, ar.isPlainObject = ya, ar.isRegExp = ma, ar.isSafeInteger = function(t) {
                        return fa(t) && t >= -M && t <= M
                    }, ar.isSet = ba, ar.isString = xa, ar.isSymbol = wa, ar.isTypedArray = Ta, ar.isUndefined = function(t) {
                        return t === o
                    }, ar.isWeakMap = function(t) {
                        return va(t) && Ao(t) == tt
                    }, ar.isWeakSet = function(t) {
                        return va(t) && "[object WeakSet]" == Wr(t)
                    }, ar.join = function(t, e) {
                        return null == t ? "" : Nn.call(t, e)
                    }, ar.kebabCase = iu, ar.last = cs, ar.lastIndexOf = function(t, e, n) {
                        var r = null == t ? 0 : t.length;
                        if (!r) return -1;
                        var i = r;
                        return n !== o && (i = (i = Ma(n)) < 0 ? Fn(r + i, 0) : Un(i, r - 1)), e == e ? function(t, e, n) {
                            for (var r = i + 1; r--;)
                                if (t[r] === e) return r;
                            return r
                        }(t, e) : Je(t, nn, i, !0)
                    }, ar.lowerCase = ou, ar.lowerFirst = su, ar.lt = Ea, ar.lte = Sa, ar.max = function(t) {
                        return t && t.length ? Lr(t, gu, Hr) : o
                    }, ar.maxBy = function(t, e) {
                        return t && t.length ? Lr(t, Eo(e, 2), Hr) : o
                    }, ar.mean = function(t) {
                        return rn(t, gu)
                    }, ar.meanBy = function(t, e) {
                        return rn(t, Eo(e, 2))
                    }, ar.min = function(t) {
                        return t && t.length ? Lr(t, gu, ni) : o
                    }, ar.minBy = function(t, e) {
                        return t && t.length ? Lr(t, Eo(e, 2), ni) : o
                    }, ar.stubArray = Cu, ar.stubFalse = Au, ar.stubObject = function() {
                        return {}
                    }, ar.stubString = function() {
                        return ""
                    }, ar.stubTrue = function() {
                        return !0
                    }, ar.multiply = ju, ar.nth = function(t, e) {
                        return t && t.length ? ai(t, Ma(e)) : o
                    }, ar.noConflict = function() {
                        return Se._ === this && (Se._ = le), this
                    }, ar.noop = wu, ar.now = Us, ar.pad = function(t, e, n) {
                        t = Ra(t);
                        var r = (e = Ma(e)) ? Tn(t) : 0;
                        if (!e || r >= e) return t;
                        var i = (e - r) / 2;
                        return oo(Dn(i), n) + t + oo(Rn(i), n)
                    }, ar.padEnd = function(t, e, n) {
                        t = Ra(t);
                        var r = (e = Ma(e)) ? Tn(t) : 0;
                        return e && r < e ? t + oo(e - r, n) : t
                    }, ar.padStart = function(t, e, n) {
                        t = Ra(t);
                        var r = (e = Ma(e)) ? Tn(t) : 0;
                        return e && r < e ? oo(e - r, n) + t : t
                    }, ar.parseInt = function(t, e, n) {
                        return n || null == e ? e = 0 : e && (e = +e), Xn(Ra(t).replace(Ct, ""), e || 0)
                    }, ar.random = function(t, e, n) {
                        if (n && "boolean" != typeof n && ko(t, e, n) && (e = n = o), n === o && ("boolean" == typeof e ? (n = e, e = o) : "boolean" == typeof t && (n = t, t = o)), t === o && e === o ? (t = 0, e = 1) : (t = Oa(t), e === o ? (e = t, t = 0) : e = Oa(e)), t > e) {
                            var r = t;
                            t = e, e = r
                        }
                        if (n || t % 1 || e % 1) {
                            var i = Gn();
                            return Un(t + i * (e - t + xe("1e-" + ((i + "").length - 1))), e)
                        }
                        return fi(t, e)
                    }, ar.reduce = function(t, e, n) {
                        var r = ia(t) ? qe : an,
                            i = arguments.length < 3;
                        return r(t, Eo(e, 4), n, i, Ir)
                    }, ar.reduceRight = function(t, e, n) {
                        var r = ia(t) ? Ze : an,
                            i = arguments.length < 3;
                        return r(t, Eo(e, 4), n, i, Rr)
                    }, ar.repeat = function(t, e, n) {
                        return e = (n ? ko(t, e, n) : e === o) ? 1 : Ma(e), di(Ra(t), e)
                    }, ar.replace = function() {
                        var t = arguments,
                            e = Ra(t[0]);
                        return t.length < 3 ? e : e.replace(t[1], t[2])
                    }, ar.result = function(t, e, n) {
                        var r = -1,
                            i = (e = Li(e, t)).length;
                        for (i || (i = 1, t = o); ++r < i;) {
                            var s = null == t ? o : t[Ko(e[r])];
                            s === o && (r = i, s = n), t = ha(s) ? s.call(t) : s
                        }
                        return t
                    }, ar.round = Nu, ar.runInContext = t, ar.sample = function(t) {
                        return (ia(t) ? yr : function(t) {
                            return yr(tu(t))
                        })(t)
                    }, ar.size = function(t) {
                        if (null == t) return 0;
                        if (sa(t)) return xa(t) ? Tn(t) : t.length;
                        var e = Ao(t);
                        return e == W || e == $ ? t.size : ei(t).length
                    }, ar.snakeCase = au, ar.some = function(t, e, n) {
                        var r = ia(t) ? $e : mi;
                        return n && ko(t, e, n) && (e = o), r(t, Eo(e, 3))
                    }, ar.sortedIndex = function(t, e) {
                        return bi(t, e)
                    }, ar.sortedIndexBy = function(t, e, n) {
                        return xi(t, e, Eo(n, 2))
                    }, ar.sortedIndexOf = function(t, e) {
                        var n = null == t ? 0 : t.length;
                        if (n) {
                            var r = bi(t, e);
                            if (r < n && ta(t[r], e)) return r
                        }
                        return -1
                    }, ar.sortedLastIndex = function(t, e) {
                        return bi(t, e, !0)
                    }, ar.sortedLastIndexBy = function(t, e, n) {
                        return xi(t, e, Eo(n, 2), !0)
                    }, ar.sortedLastIndexOf = function(t, e) {
                        if (null != t && t.length) {
                            var n = bi(t, e, !0) - 1;
                            if (ta(t[n], e)) return n
                        }
                        return -1
                    }, ar.startCase = uu, ar.startsWith = function(t, e, n) {
                        return t = Ra(t), n = null == n ? 0 : Pr(Ma(n), 0, t.length), e = Ei(e), t.slice(n, n + e.length) == e
                    }, ar.subtract = Bu, ar.sum = function(t) {
                        return t && t.length ? un(t, gu) : 0
                    }, ar.sumBy = function(t, e) {
                        return t && t.length ? un(t, Eo(e, 2)) : 0
                    }, ar.template = function(t, e, n) {
                        var r = ar.templateSettings;
                        n && ko(t, e, n) && (e = o), t = Ra(t), e = ka({}, e, r, po);
                        var i, s, a = ka({}, e.imports, r.imports, po),
                            u = Ha(a),
                            l = hn(a, u),
                            c = 0,
                            h = e.interpolate || Wt,
                            f = "__p += '",
                            d = $t((e.escape || Wt).source + "|" + h.source + "|" + (h === xt ? jt : Wt).source + "|" + (e.evaluate || Wt).source + "|$", "g"),
                            p = "//# sourceURL=" + ("sourceURL" in e ? e.sourceURL : "lodash.templateSources[" + ++ge + "]") + "\n";
                        t.replace(d, function(e, n, r, o, a, u) {
                            return r || (r = o), f += t.slice(c, u).replace(Ht, gn), n && (i = !0, f += "' +\n__e(" + n + ") +\n'"), a && (s = !0, f += "';\n" + a + ";\n__p += '"), r && (f += "' +\n((__t = (" + r + ")) == null ? '' : __t) +\n'"), c = u + e.length, e
                        }), f += "';\n";
                        var v = e.variable;
                        v || (f = "with (obj) {\n" + f + "\n}\n"), f = (s ? f.replace(ft, "") : f).replace(dt, "$1").replace(pt, "$1;"), f = "function(" + (v || "obj") + ") {\n" + (v ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (i ? ", __e = _.escape" : "") + (s ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + f + "return __p\n}";
                        var _ = fu(function() {
                            return Yt(u, p + "return " + f).apply(o, l)
                        });
                        if (_.source = f, ca(_)) throw _;
                        return _
                    }, ar.times = function(t, e) {
                        if ((t = Ma(t)) < 1 || t > M) return [];
                        var n = I,
                            r = Un(t, I);
                        e = Eo(e), t -= I;
                        for (var i = ln(r, e); ++n < t;) e(n);
                        return i
                    }, ar.toFinite = Oa, ar.toInteger = Ma, ar.toLength = Ca, ar.toLower = function(t) {
                        return Ra(t).toLowerCase()
                    }, ar.toNumber = Aa, ar.toSafeInteger = function(t) {
                        return t ? Pr(Ma(t), -M, M) : 0 === t ? t : 0
                    }, ar.toString = Ra, ar.toUpper = function(t) {
                        return Ra(t).toUpperCase()
                    }, ar.trim = function(t, e, n) {
                        if ((t = Ra(t)) && (n || e === o)) return t.replace(Mt, "");
                        if (!t || !(e = Ei(e))) return t;
                        var r = En(t),
                            i = En(e);
                        return ji(r, dn(r, i), pn(r, i) + 1).join("")
                    }, ar.trimEnd = function(t, e, n) {
                        if ((t = Ra(t)) && (n || e === o)) return t.replace(At, "");
                        if (!t || !(e = Ei(e))) return t;
                        var r = En(t);
                        return ji(r, 0, pn(r, En(e)) + 1).join("")
                    }, ar.trimStart = function(t, e, n) {
                        if ((t = Ra(t)) && (n || e === o)) return t.replace(Ct, "");
                        if (!t || !(e = Ei(e))) return t;
                        var r = En(t);
                        return ji(r, dn(r, En(e))).join("")
                    }, ar.truncate = function(t, e) {
                        var n = 30,
                            r = "...";
                        if (pa(e)) {
                            var i = "separator" in e ? e.separator : i;
                            n = "length" in e ? Ma(e.length) : n, r = "omission" in e ? Ei(e.omission) : r
                        }
                        var s = (t = Ra(t)).length;
                        if (yn(t)) {
                            var a = En(t);
                            s = a.length
                        }
                        if (n >= s) return t;
                        var u = n - Tn(r);
                        if (u < 1) return r;
                        var l = a ? ji(a, 0, u).join("") : t.slice(0, u);
                        if (i === o) return l + r;
                        if (a && (u += l.length - u), ma(i)) {
                            if (t.slice(u).search(i)) {
                                var c, h = l;
                                for (i.global || (i = $t(i.source, Ra(Nt.exec(i)) + "g")), i.lastIndex = 0; c = i.exec(h);) var f = c.index;
                                l = l.slice(0, f === o ? u : f)
                            }
                        } else if (t.indexOf(Ei(i), u) != u) {
                            var d = l.lastIndexOf(i);
                            d > -1 && (l = l.slice(0, d))
                        }
                        return l + r
                    }, ar.unescape = function(t) {
                        return (t = Ra(t)) && gt.test(t) ? t.replace(vt, Sn) : t
                    }, ar.uniqueId = function(t) {
                        var e = ++oe;
                        return Ra(t) + e
                    }, ar.upperCase = lu, ar.upperFirst = cu, ar.each = Rs, ar.eachRight = Ds, ar.first = ss, xu(ar, (Iu = {}, Fr(ar, function(t, e) {
                        ie.call(ar.prototype, e) || (Iu[e] = t)
                    }), Iu), {
                        chain: !1
                    }), ar.VERSION = "4.17.4", ze(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(t) {
                        ar[t].placeholder = ar
                    }), ze(["drop", "take"], function(t, e) {
                        hr.prototype[t] = function(n) {
                            n = n === o ? 1 : Fn(Ma(n), 0);
                            var r = this.__filtered__ && !e ? new hr(this) : this.clone();
                            return r.__filtered__ ? r.__takeCount__ = Un(n, r.__takeCount__) : r.__views__.push({
                                size: Un(n, I),
                                type: t + (r.__dir__ < 0 ? "Right" : "")
                            }), r
                        }, hr.prototype[t + "Right"] = function(e) {
                            return this.reverse()[t](e).reverse()
                        }
                    }), ze(["filter", "map", "takeWhile"], function(t, e) {
                        var n = e + 1,
                            r = 1 == n || 3 == n;
                        hr.prototype[t] = function(t) {
                            var e = this.clone();
                            return e.__iteratees__.push({
                                iteratee: Eo(t, 3),
                                type: n
                            }), e.__filtered__ = e.__filtered__ || r, e
                        }
                    }), ze(["head", "last"], function(t, e) {
                        var n = "take" + (e ? "Right" : "");
                        hr.prototype[t] = function() {
                            return this[n](1).value()[0]
                        }
                    }), ze(["initial", "tail"], function(t, e) {
                        var n = "drop" + (e ? "" : "Right");
                        hr.prototype[t] = function() {
                            return this.__filtered__ ? new hr(this) : this[n](1)
                        }
                    }), hr.prototype.compact = function() {
                        return this.filter(gu)
                    }, hr.prototype.find = function(t) {
                        return this.filter(t).head()
                    }, hr.prototype.findLast = function(t) {
                        return this.reverse().find(t)
                    }, hr.prototype.invokeMap = pi(function(t, e) {
                        return "function" == typeof t ? new hr(this) : this.map(function(n) {
                            return Zr(n, t, e)
                        })
                    }), hr.prototype.reject = function(t) {
                        return this.filter(Zs(Eo(t)))
                    }, hr.prototype.slice = function(t, e) {
                        t = Ma(t);
                        var n = this;
                        return n.__filtered__ && (t > 0 || e < 0) ? new hr(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)), e !== o && (n = (e = Ma(e)) < 0 ? n.dropRight(-e) : n.take(e - t)), n)
                    }, hr.prototype.takeRightWhile = function(t) {
                        return this.reverse().takeWhile(t).reverse()
                    }, hr.prototype.toArray = function() {
                        return this.take(I)
                    }, Fr(hr.prototype, function(t, e) {
                        var n = /^(?:filter|find|map|reject)|While$/.test(e),
                            r = /^(?:head|last)$/.test(e),
                            i = ar[r ? "take" + ("last" == e ? "Right" : "") : e],
                            s = r || /^find/.test(e);
                        i && (ar.prototype[e] = function() {
                            var e = this.__wrapped__,
                                a = r ? [1] : arguments,
                                u = e instanceof hr,
                                l = a[0],
                                c = u || ia(e),
                                h = function(t) {
                                    var e = i.apply(ar, Ye([t], a));
                                    return r && f ? e[0] : e
                                };
                            c && n && "function" == typeof l && 1 != l.length && (u = c = !1);
                            var f = this.__chain__,
                                d = !!this.__actions__.length,
                                p = s && !f,
                                v = u && !d;
                            if (!s && c) {
                                e = v ? e : new hr(this);
                                var _ = t.apply(e, a);
                                return _.__actions__.push({
                                    func: Os,
                                    args: [h],
                                    thisArg: o
                                }), new cr(_, f)
                            }
                            return p && v ? t.apply(this, a) : (_ = this.thru(h), p ? r ? _.value()[0] : _.value() : _)
                        })
                    }), ze(["pop", "push", "shift", "sort", "splice", "unshift"], function(t) {
                        var e = Jt[t],
                            n = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru",
                            r = /^(?:pop|shift)$/.test(t);
                        ar.prototype[t] = function() {
                            var t = arguments;
                            if (r && !this.__chain__) {
                                var i = this.value();
                                return e.apply(ia(i) ? i : [], t)
                            }
                            return this[n](function(n) {
                                return e.apply(ia(n) ? n : [], t)
                            })
                        }
                    }), Fr(hr.prototype, function(t, e) {
                        var n = ar[e];
                        if (n) {
                            var r = n.name + "";
                            (Qn[r] || (Qn[r] = [])).push({
                                name: e,
                                func: n
                            })
                        }
                    }), Qn[eo(o, _).name] = [{
                        name: "wrapper",
                        func: o
                    }], hr.prototype.clone = function() {
                        var t = new hr(this.__wrapped__);
                        return t.__actions__ = Wi(this.__actions__), t.__dir__ = this.__dir__, t.__filtered__ = this.__filtered__, t.__iteratees__ = Wi(this.__iteratees__), t.__takeCount__ = this.__takeCount__, t.__views__ = Wi(this.__views__), t
                    }, hr.prototype.reverse = function() {
                        if (this.__filtered__) {
                            var t = new hr(this);
                            t.__dir__ = -1, t.__filtered__ = !0
                        } else(t = this.clone()).__dir__ *= -1;
                        return t
                    }, hr.prototype.value = function() {
                        var t = this.__wrapped__.value(),
                            e = this.__dir__,
                            n = ia(t),
                            r = e < 0,
                            i = n ? t.length : 0,
                            o = function(t, e, n) {
                                for (var r = -1, i = n.length; ++r < i;) {
                                    var o = n[r],
                                        s = o.size;
                                    switch (o.type) {
                                        case "drop":
                                            t += s;
                                            break;
                                        case "dropRight":
                                            e -= s;
                                            break;
                                        case "take":
                                            e = Un(e, t + s);
                                            break;
                                        case "takeRight":
                                            t = Fn(t, e - s)
                                    }
                                }
                                return {
                                    start: t,
                                    end: e
                                }
                            }(0, i, this.__views__),
                            s = o.start,
                            a = o.end,
                            u = a - s,
                            l = r ? a : s - 1,
                            c = this.__iteratees__,
                            h = c.length,
                            f = 0,
                            d = Un(u, this.__takeCount__);
                        if (!n || !r && i == u && d == u) return Ci(t, this.__actions__);
                        var p = [];
                        t: for (; u-- && f < d;) {
                            for (var v = -1, _ = t[l += e]; ++v < h;) {
                                var g = c[v],
                                    y = g.iteratee,
                                    m = g.type,
                                    b = y(_);
                                if (2 == m) _ = b;
                                else if (!b) {
                                    if (1 == m) continue t;
                                    break t
                                }
                            }
                            p[f++] = _
                        }
                        return p
                    }, ar.prototype.at = Ms, ar.prototype.chain = function() {
                        return Ps(this)
                    }, ar.prototype.commit = function() {
                        return new cr(this.value(), this.__chain__)
                    }, ar.prototype.next = function() {
                        this.__values__ === o && (this.__values__ = Pa(this.value()));
                        var t = this.__index__ >= this.__values__.length;
                        return {
                            done: t,
                            value: t ? o : this.__values__[this.__index__++]
                        }
                    }, ar.prototype.plant = function(t) {
                        for (var e, n = this; n instanceof lr;) {
                            var r = Jo(n);
                            r.__index__ = 0, r.__values__ = o, e ? i.__wrapped__ = r : e = r;
                            var i = r;
                            n = n.__wrapped__
                        }
                        return i.__wrapped__ = t, e
                    }, ar.prototype.reverse = function() {
                        var t = this.__wrapped__;
                        if (t instanceof hr) {
                            var e = t;
                            return this.__actions__.length && (e = new hr(this)), (e = e.reverse()).__actions__.push({
                                func: Os,
                                args: [ps],
                                thisArg: o
                            }), new cr(e, this.__chain__)
                        }
                        return this.thru(ps)
                    }, ar.prototype.toJSON = ar.prototype.valueOf = ar.prototype.value = function() {
                        return Ci(this.__wrapped__, this.__actions__)
                    }, ar.prototype.first = ar.prototype.head, sn && (ar.prototype[sn] = function() {
                        return this
                    }), ar
                }();
            Se._ = Pn, (i = function() {
                return Pn
            }.call(e, n, e, r)) === o || (r.exports = i)
        }).call(this)
    }).call(e, n(18), n(14)(t))
}, function(t, e, n) {
    var r = n(58),
        i = "Expected a function";

    function o(t, e) {
        if ("function" != typeof t || null != e && "function" != typeof e) throw new TypeError(i);
        var n = function() {
            var r = arguments,
                i = e ? e.apply(this, r) : r[0],
                o = n.cache;
            if (o.has(i)) return o.get(i);
            var s = t.apply(this, r);
            return n.cache = o.set(i, s) || o, s
        };
        return n.cache = new(o.Cache || r), n
    }
    o.Cache = r, t.exports = o
}, function(t, e) {
    t.exports = function() {}
}, function(t, e, n) {
    var r = n(284),
        i = n(285),
        o = n(65),
        s = n(26);
    t.exports = function(t) {
        return o(t) ? r(s(t)) : i(t)
    }
}, function(t, e) {
    t.exports = function() {
        return []
    }
}, function(t, e) {
    t.exports = function() {
        return !1
    }
}, function(t, e, n) {
    var r = n(142);
    t.exports = function(t) {
        return t ? (t = r(t)) === 1 / 0 || t === -1 / 0 ? 1.7976931348623157e308 * (t < 0 ? -1 : 1) : t == t ? t : 0 : 0 === t ? t : 0
    }
}, function(t, e, n) {
    var r = n(288);
    t.exports = function(t) {
        return null == t ? "" : r(t)
    }
}, function(t, e, n) {
    var r = n(56),
        i = n(106),
        o = n(62),
        s = n(8),
        a = n(21),
        u = n(354),
        l = Object.prototype.hasOwnProperty;

    function c(t) {
        if (a(t) && !s(t) && !(t instanceof r)) {
            if (t instanceof i) return t;
            if (l.call(t, "__wrapped__")) return u(t)
        }
        return new i(t)
    }
    c.prototype = o.prototype, c.prototype.constructor = c, t.exports = c
}, function(t, e, n) {
    "use strict";
    var r = Object.getOwnPropertySymbols,
        i = Object.prototype.hasOwnProperty,
        o = Object.prototype.propertyIsEnumerable;
    t.exports = function() {
        try {
            if (!Object.assign) return !1;
            var t = new String("abc");
            if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) return !1;
            for (var e = {}, n = 0; n < 10; n++) e["_" + String.fromCharCode(n)] = n;
            if ("0123456789" !== Object.getOwnPropertyNames(e).map(function(t) {
                    return e[t]
                }).join("")) return !1;
            var r = {};
            return "abcdefghijklmnopqrst".split("").forEach(function(t) {
                r[t] = t
            }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("")
        } catch (t) {
            return !1
        }
    }() ? Object.assign : function(t, e) {
        for (var n, s, a = function(t) {
                if (null == t) throw new TypeError("Object.assign cannot be called with null or undefined");
                return Object(t)
            }(t), u = 1; u < arguments.length; u++) {
            for (var l in n = Object(arguments[u])) i.call(n, l) && (a[l] = n[l]);
            if (r) {
                s = r(n);
                for (var c = 0; c < s.length; c++) o.call(n, s[c]) && (a[s[c]] = n[s[c]])
            }
        }
        return a
    }
}, function(t, e) {
    var n = new ArrayBuffer(0),
        r = function(t, e, r, i) {
            this.gl = t, this.buffer = t.createBuffer(), this.type = e || t.ARRAY_BUFFER, this.drawType = i || t.STATIC_DRAW, this.data = n, r && this.upload(r), this._updateID = 0
        };
    r.prototype.upload = function(t, e, n) {
        n || this.bind();
        var r = this.gl;
        t = t || this.data, e = e || 0, this.data.byteLength >= t.byteLength ? r.bufferSubData(this.type, e, t) : r.bufferData(this.type, t, this.drawType), this.data = t
    }, r.prototype.bind = function() {
        this.gl.bindBuffer(this.type, this.buffer)
    }, r.createVertexBuffer = function(t, e, n) {
        return new r(t, t.ARRAY_BUFFER, e, n)
    }, r.createIndexBuffer = function(t, e, n) {
        return new r(t, t.ELEMENT_ARRAY_BUFFER, e, n)
    }, r.create = function(t, e, n, i) {
        return new r(t, e, n, i)
    }, r.prototype.destroy = function() {
        this.gl.deleteBuffer(this.buffer)
    }, t.exports = r
}, function(t, e, n) {
    var r = n(144),
        i = function(t, e, n) {
            this.gl = t, this.framebuffer = t.createFramebuffer(), this.stencil = null, this.texture = null, this.width = e || 100, this.height = n || 100
        };
    i.prototype.enableTexture = function(t) {
        var e = this.gl;
        this.texture = t || new r(e), this.texture.bind(), this.bind(), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0, e.TEXTURE_2D, this.texture.texture, 0)
    }, i.prototype.enableStencil = function() {
        if (!this.stencil) {
            var t = this.gl;
            this.stencil = t.createRenderbuffer(), t.bindRenderbuffer(t.RENDERBUFFER, this.stencil), t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.RENDERBUFFER, this.stencil), t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_STENCIL, this.width, this.height)
        }
    }, i.prototype.clear = function(t, e, n, r) {
        this.bind();
        var i = this.gl;
        i.clearColor(t, e, n, r), i.clear(i.COLOR_BUFFER_BIT | i.DEPTH_BUFFER_BIT)
    }, i.prototype.bind = function() {
        var t = this.gl;
        t.bindFramebuffer(t.FRAMEBUFFER, this.framebuffer)
    }, i.prototype.unbind = function() {
        var t = this.gl;
        t.bindFramebuffer(t.FRAMEBUFFER, null)
    }, i.prototype.resize = function(t, e) {
        var n = this.gl;
        this.width = t, this.height = e, this.texture && this.texture.uploadData(null, t, e), this.stencil && (n.bindRenderbuffer(n.RENDERBUFFER, this.stencil), n.renderbufferStorage(n.RENDERBUFFER, n.DEPTH_STENCIL, t, e))
    }, i.prototype.destroy = function() {
        var t = this.gl;
        this.texture && this.texture.destroy(), t.deleteFramebuffer(this.framebuffer), this.gl = null, this.stencil = null, this.texture = null
    }, i.createRGBA = function(t, e, n, o) {
        var s = r.fromData(t, null, e, n);
        s.enableNearestScaling(), s.enableWrapClamp();
        var a = new i(t, e, n);
        return a.enableTexture(s), a.unbind(), a
    }, i.createFloat32 = function(t, e, n, o) {
        var s = new r.fromData(t, o, e, n);
        s.enableNearestScaling(), s.enableWrapClamp();
        var a = new i(t, e, n);
        return a.enableTexture(s), a.unbind(), a
    }, t.exports = i
}, function(t, e, n) {
    var r = n(146),
        i = n(148),
        o = n(149),
        s = n(152),
        a = n(150),
        u = function(t, e, n, u, l) {
            this.gl = t, u && (e = s(e, u), n = s(n, u)), this.program = r(t, e, n, l), this.attributes = i(t, this.program), this.uniformData = o(t, this.program), this.uniforms = a(t, this.uniformData)
        };
    u.prototype.bind = function() {
        return this.gl.useProgram(this.program), this
    }, u.prototype.destroy = function() {
        this.attributes = null, this.uniformData = null, this.uniforms = null, this.gl.deleteProgram(this.program)
    }, t.exports = u
}, function(t, e, n) {
    var r = n(145);

    function i(t, e) {
        if (this.nativeVaoExtension = null, i.FORCE_NATIVE || (this.nativeVaoExtension = t.getExtension("OES_vertex_array_object") || t.getExtension("MOZ_OES_vertex_array_object") || t.getExtension("WEBKIT_OES_vertex_array_object")), this.nativeState = e, this.nativeVaoExtension) {
            this.nativeVao = this.nativeVaoExtension.createVertexArrayOES();
            var n = t.getParameter(t.MAX_VERTEX_ATTRIBS);
            this.nativeState = {
                tempAttribState: new Array(n),
                attribState: new Array(n)
            }
        }
        this.gl = t, this.attributes = [], this.indexBuffer = null, this.dirty = !1
    }
    i.prototype.constructor = i, t.exports = i, i.FORCE_NATIVE = !1, i.prototype.bind = function() {
        if (this.nativeVao) {
            if (this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.dirty) return this.dirty = !1, this.activate(), this;
            this.indexBuffer && this.indexBuffer.bind()
        } else this.activate();
        return this
    }, i.prototype.unbind = function() {
        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(null), this
    }, i.prototype.activate = function() {
        for (var t = this.gl, e = null, n = 0; n < this.attributes.length; n++) {
            var i = this.attributes[n];
            e !== i.buffer && (i.buffer.bind(), e = i.buffer), t.vertexAttribPointer(i.attribute.location, i.attribute.size, i.type || t.FLOAT, i.normalized || !1, i.stride || 0, i.start || 0)
        }
        return r(t, this.attributes, this.nativeState), this.indexBuffer && this.indexBuffer.bind(), this
    }, i.prototype.addAttribute = function(t, e, n, r, i, o) {
        return this.attributes.push({
            buffer: t,
            attribute: e,
            location: e.location,
            type: n || this.gl.FLOAT,
            normalized: r || !1,
            stride: i || 0,
            start: o || 0
        }), this.dirty = !0, this
    }, i.prototype.addIndex = function(t) {
        return this.indexBuffer = t, this.dirty = !0, this
    }, i.prototype.clear = function() {
        return this.nativeVao && this.nativeVaoExtension.bindVertexArrayOES(this.nativeVao), this.attributes.length = 0, this.indexBuffer = null, this
    }, i.prototype.draw = function(t, e, n) {
        var r = this.gl;
        return this.indexBuffer ? r.drawElements(t, e || this.indexBuffer.data.length, r.UNSIGNED_SHORT, 2 * (n || 0)) : r.drawArrays(t, n, e || this.getSize()), this
    }, i.prototype.destroy = function() {
        this.gl = null, this.indexBuffer = null, this.attributes = null, this.nativeState = null, this.nativeVao && this.nativeVaoExtension.deleteVertexArrayOES(this.nativeVao), this.nativeVaoExtension = null, this.nativeVao = null
    }, i.prototype.getSize = function() {
        var t = this.attributes[0];
        return t.buffer.data.length / (t.stride / 4 || t.attribute.size)
    }
}, function(t, e) {
    t.exports = function(t, e) {
        var n = t.getContext("webgl", e) || t.getContext("experimental-webgl", e);
        if (!n) throw new Error("This browser does not support webGL. Try using the canvas renderer");
        return n
    }
}, function(t, e, n) {
    t.exports = {
        compileProgram: n(146),
        defaultValue: n(147),
        extractAttributes: n(148),
        extractUniforms: n(149),
        generateUniformAccessObject: n(150),
        setPrecision: n(152),
        mapSize: n(151),
        mapType: n(72)
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = s(n(53)),
        o = s(n(153));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    r.utils.mixins.delayMixin(r.DisplayObject.prototype, o.default);
    var a = 100,
        u = 0,
        l = 0,
        c = 2,
        h = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), !i.default.tablet && !i.default.phone || navigator.isCocoonJS || this.createTouchHook();
                var n = document.createElement("div");
                n.style.width = a + "px", n.style.height = a + "px", n.style.position = "absolute", n.style.top = u + "px", n.style.left = l + "px", n.style.zIndex = c, this.div = n, this.pool = [], this.renderId = 0, this.debug = !1, this.renderer = e, this.children = [], this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this.isActive = !1, this.isMobileAccessabillity = !1, window.addEventListener("keydown", this._onKeyDown, !1)
            }
            return t.prototype.createTouchHook = function() {
                var t = this,
                    e = document.createElement("button");
                e.style.width = "1px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.left = "-1000px", e.style.zIndex = 2, e.style.backgroundColor = "#FF0000", e.title = "HOOK DIV", e.addEventListener("focus", function() {
                    t.isMobileAccessabillity = !0, t.activate(), document.body.removeChild(e)
                }), document.body.appendChild(e)
            }, t.prototype.activate = function() {
                this.isActive || (this.isActive = !0, window.document.addEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown, !1), this.renderer.on("postrender", this.update, this), this.renderer.view.parentNode && this.renderer.view.parentNode.appendChild(this.div))
            }, t.prototype.deactivate = function() {
                this.isActive && !this.isMobileAccessabillity && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div))
            }, t.prototype.updateAccessibleObjects = function(t) {
                if (t.visible) {
                    t.accessible && t.interactive && (t._accessibleActive || this.addChild(t), t.renderId = this.renderId);
                    for (var e = t.children, n = 0; n < e.length; n++) this.updateAccessibleObjects(e[n])
                }
            }, t.prototype.update = function() {
                if (this.renderer.renderingToScreen) {
                    this.updateAccessibleObjects(this.renderer._lastObjectRendered);
                    var t = this.renderer.view.getBoundingClientRect(),
                        e = t.width / this.renderer.width,
                        n = t.height / this.renderer.height,
                        i = this.div;
                    i.style.left = t.left + "px", i.style.top = t.top + "px", i.style.width = this.renderer.width + "px", i.style.height = this.renderer.height + "px";
                    for (var o = 0; o < this.children.length; o++) {
                        var s = this.children[o];
                        if (s.renderId !== this.renderId) s._accessibleActive = !1, r.utils.removeItems(this.children, o, 1), this.div.removeChild(s._accessibleDiv), this.pool.push(s._accessibleDiv), s._accessibleDiv = null, o--, 0 === this.children.length && this.deactivate();
                        else {
                            i = s._accessibleDiv;
                            var a = s.hitArea,
                                u = s.worldTransform;
                            s.hitArea ? (i.style.left = (u.tx + a.x * u.a) * e + "px", i.style.top = (u.ty + a.y * u.d) * n + "px", i.style.width = a.width * u.a * e + "px", i.style.height = a.height * u.d * n + "px") : (a = s.getBounds(), this.capHitArea(a), i.style.left = a.x * e + "px", i.style.top = a.y * n + "px", i.style.width = a.width * e + "px", i.style.height = a.height * n + "px", i.title !== s.accessibleTitle && null !== s.accessibleTitle && (i.title = s.accessibleTitle), i.getAttribute("aria-label") !== s.accessibleHint && null !== s.accessibleHint && i.setAttribute("aria-label", s.accessibleHint))
                        }
                    }
                    this.renderId++
                }
            }, t.prototype.capHitArea = function(t) {
                t.x < 0 && (t.width += t.x, t.x = 0), t.y < 0 && (t.height += t.y, t.y = 0), t.x + t.width > this.renderer.width && (t.width = this.renderer.width - t.x), t.y + t.height > this.renderer.height && (t.height = this.renderer.height - t.y)
            }, t.prototype.addChild = function(t) {
                var e = this.pool.pop();
                e || ((e = document.createElement("button")).style.width = a + "px", e.style.height = a + "px", e.style.backgroundColor = this.debug ? "rgba(255,0,0,0.5)" : "transparent", e.style.position = "absolute", e.style.zIndex = c, e.style.borderStyle = "none", navigator.userAgent.toLowerCase().indexOf("chrome") > -1 ? e.setAttribute("aria-live", "off") : e.setAttribute("aria-live", "polite"), navigator.userAgent.match(/rv:.*Gecko\//) ? e.setAttribute("aria-relevant", "additions") : e.setAttribute("aria-relevant", "text"), e.addEventListener("click", this._onClick.bind(this)), e.addEventListener("focus", this._onFocus.bind(this)), e.addEventListener("focusout", this._onFocusOut.bind(this))), t.accessibleTitle && null !== t.accessibleTitle ? e.title = t.accessibleTitle : t.accessibleHint && null !== t.accessibleHint || (e.title = "displayObject " + t.tabIndex), t.accessibleHint && null !== t.accessibleHint && e.setAttribute("aria-label", t.accessibleHint), t._accessibleActive = !0, t._accessibleDiv = e, e.displayObject = t, this.children.push(t), this.div.appendChild(t._accessibleDiv), t._accessibleDiv.tabIndex = t.tabIndex
            }, t.prototype._onClick = function(t) {
                var e = this.renderer.plugins.interaction;
                e.dispatchEvent(t.target.displayObject, "click", e.eventData)
            }, t.prototype._onFocus = function(t) {
                t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "assertive");
                var e = this.renderer.plugins.interaction;
                e.dispatchEvent(t.target.displayObject, "mouseover", e.eventData)
            }, t.prototype._onFocusOut = function(t) {
                t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "polite");
                var e = this.renderer.plugins.interaction;
                e.dispatchEvent(t.target.displayObject, "mouseout", e.eventData)
            }, t.prototype._onKeyDown = function(t) {
                9 === t.keyCode && this.activate()
            }, t.prototype._onMouseMove = function(t) {
                0 === t.movementX && 0 === t.movementY || this.deactivate()
            }, t.prototype.destroy = function() {
                this.div = null;
                for (var t = 0; t < this.children.length; t++) this.children[t].div = null;
                window.document.removeEventListener("mousemove", this._onMouseMove), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null
            }, t
        }();
    e.default = h, r.WebGLRenderer.registerPlugin("accessibility", h), r.CanvasRenderer.registerPlugin("accessibility", h)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(153);
    Object.defineProperty(e, "accessibleTarget", {
        enumerable: !0,
        get: function() {
            return o(r).default
        }
    });
    var i = n(381);

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "AccessibilityManager", {
        enumerable: !0,
        get: function() {
            return o(i).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = p(n(29)),
        i = p(n(80)),
        o = p(n(15)),
        s = p(n(159)),
        a = p(n(78)),
        u = n(5),
        l = n(2),
        c = n(0),
        h = p(n(73)),
        f = p(n(385)),
        d = p(n(30));

    function p(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var v = void 0,
        _ = new u.Matrix,
        g = new u.Point,
        y = new Float32Array(4),
        m = new Float32Array(4),
        b = function(t) {
            function e() {
                var n = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return r.fillAlpha = 1, r.lineWidth = 0, r.nativeLines = n, r.lineColor = 0, r.lineAlignment = .5, r.graphicsData = [], r.tint = 16777215, r._prevTint = 16777215, r.blendMode = c.BLEND_MODES.NORMAL, r.currentPath = null, r._webGL = {}, r.isMask = !1, r.boundsPadding = 0, r._localBounds = new h.default, r.dirty = 0, r.fastRectDirty = -1, r.clearDirty = 0, r.boundsDirty = -1, r.cachedSpriteDirty = !1, r._spriteRect = null, r._fastRect = !1, r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.clone = function() {
                var t = new e;
                t.renderable = this.renderable, t.fillAlpha = this.fillAlpha, t.lineWidth = this.lineWidth, t.lineColor = this.lineColor, t.lineAlignment = this.lineAlignment, t.tint = this.tint, t.blendMode = this.blendMode, t.isMask = this.isMask, t.boundsPadding = this.boundsPadding, t.dirty = 0, t.cachedSpriteDirty = this.cachedSpriteDirty;
                for (var n = 0; n < this.graphicsData.length; ++n) t.graphicsData.push(this.graphicsData[n].clone());
                return t.currentPath = t.graphicsData[t.graphicsData.length - 1], t.updateLocalBounds(), t
            }, e.prototype._quadraticCurveLength = function(t, e, n, r, i, o) {
                var s = t - (2 * n + i),
                    a = e - (2 * r + o),
                    u = (n - 2) * t * 2,
                    l = (r - 2) * e * 2,
                    c = 4 * (s * s + a * a),
                    h = 4 * (s * u + a * l),
                    f = u * u + l * l,
                    d = 2 * Math.sqrt(c + h + f),
                    p = Math.sqrt(c),
                    v = 2 * c * p,
                    _ = 2 * Math.sqrt(f),
                    g = h / p;
                return (v * d + p * h * (d - _) + (4 * f * c - h * h) * Math.log((2 * p + g + d) / (g + _))) / (4 * v)
            }, e.prototype._bezierCurveLength = function(t, e, n, r, i, o, s, a) {
                for (var u = 0, l = 0, c = 0, h = 0, f = 0, d = 0, p = 0, v = 0, _ = 0, g = 0, y = 0, m = t, b = e, x = 1; x <= 10; ++x) g = m - (v = (p = (d = (f = 1 - (l = x / 10)) * f) * f) * t + 3 * d * l * n + 3 * f * (c = l * l) * i + (h = c * l) * s), y = b - (_ = p * e + 3 * d * l * r + 3 * f * c * o + h * a), m = v, b = _, u += Math.sqrt(g * g + y * y);
                return u
            }, e.prototype._segmentsCount = function(t) {
                var n = Math.ceil(t / e.CURVES.maxLength);
                return n < e.CURVES.minSegments ? n = e.CURVES.minSegments : n > e.CURVES.maxSegments && (n = e.CURVES.maxSegments), n
            }, e.prototype.lineStyle = function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1,
                    r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : .5;
                if (this.lineWidth = t, this.lineColor = e, this.lineAlpha = n, this.lineAlignment = r, this.currentPath)
                    if (this.currentPath.shape.points.length) {
                        var i = new u.Polygon(this.currentPath.shape.points.slice(-2));
                        i.closed = !1, this.drawShape(i)
                    } else this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha, this.currentPath.lineAlignment = this.lineAlignment;
                return this
            }, e.prototype.moveTo = function(t, e) {
                var n = new u.Polygon([t, e]);
                return n.closed = !1, this.drawShape(n), this
            }, e.prototype.lineTo = function(t, e) {
                return this.currentPath.shape.points.push(t, e), this.dirty++, this
            }, e.prototype.quadraticCurveTo = function(t, n, r, i) {
                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                var o = this.currentPath.shape.points,
                    s = 0,
                    a = 0;
                0 === o.length && this.moveTo(0, 0);
                for (var u = o[o.length - 2], l = o[o.length - 1], c = e.CURVES.adaptive ? this._segmentsCount(this._quadraticCurveLength(u, l, t, n, r, i)) : 20, h = 1; h <= c; ++h) {
                    var f = h / c;
                    s = u + (t - u) * f, a = l + (n - l) * f, o.push(s + (t + (r - t) * f - s) * f, a + (n + (i - n) * f - a) * f)
                }
                return this.dirty++, this
            }, e.prototype.bezierCurveTo = function(t, n, r, i, o, s) {
                this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0);
                var a = this.currentPath.shape.points,
                    u = a[a.length - 2],
                    l = a[a.length - 1];
                a.length -= 2;
                var c = e.CURVES.adaptive ? this._segmentsCount(this._bezierCurveLength(u, l, t, n, r, i, o, s)) : 20;
                return (0, f.default)(u, l, t, n, r, i, o, s, c, a), this.dirty++, this
            }, e.prototype.arcTo = function(t, e, n, r, i) {
                this.currentPath ? 0 === this.currentPath.shape.points.length && this.currentPath.shape.points.push(t, e) : this.moveTo(t, e);
                var o = this.currentPath.shape.points,
                    s = o[o.length - 2],
                    a = o[o.length - 1] - e,
                    u = s - t,
                    l = r - e,
                    c = n - t,
                    h = Math.abs(a * c - u * l);
                if (h < 1e-8 || 0 === i) o[o.length - 2] === t && o[o.length - 1] === e || o.push(t, e);
                else {
                    var f = a * a + u * u,
                        d = l * l + c * c,
                        p = a * l + u * c,
                        v = i * Math.sqrt(f) / h,
                        _ = i * Math.sqrt(d) / h,
                        g = v * p / f,
                        y = _ * p / d,
                        m = v * c + _ * u,
                        b = v * l + _ * a,
                        x = u * (_ + g),
                        w = a * (_ + g),
                        T = c * (v + y),
                        E = l * (v + y),
                        S = Math.atan2(w - b, x - m),
                        P = Math.atan2(E - b, T - m);
                    this.arc(m + t, b + e, i, S, P, u * l > c * a)
                }
                return this.dirty++, this
            }, e.prototype.arc = function(t, n, r, i, o) {
                var s = arguments.length > 5 && void 0 !== arguments[5] && arguments[5];
                if (i === o) return this;
                !s && o <= i ? o += c.PI_2 : s && i <= o && (i += c.PI_2);
                var a = o - i,
                    u = e.CURVES.adaptive ? this._segmentsCount(Math.abs(a) * r) : 40 * Math.ceil(Math.abs(a) / c.PI_2);
                if (0 === a) return this;
                var l = t + Math.cos(i) * r,
                    h = n + Math.sin(i) * r,
                    f = this.currentPath ? this.currentPath.shape.points : null;
                f ? f[f.length - 2] === l && f[f.length - 1] === h || f.push(l, h) : (this.moveTo(l, h), f = this.currentPath.shape.points);
                for (var d = a / (2 * u), p = 2 * d, v = Math.cos(d), _ = Math.sin(d), g = u - 1, y = g % 1 / g, m = 0; m <= g; ++m) {
                    var b = d + i + p * (m + y * m),
                        x = Math.cos(b),
                        w = -Math.sin(b);
                    f.push((v * x + _ * w) * r + t, (v * -w + _ * x) * r + n)
                }
                return this.dirty++, this
            }, e.prototype.beginFill = function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                return this.filling = !0, this.fillColor = t, this.fillAlpha = e, this.currentPath && this.currentPath.shape.points.length <= 2 && (this.currentPath.fill = this.filling, this.currentPath.fillColor = this.fillColor, this.currentPath.fillAlpha = this.fillAlpha), this
            }, e.prototype.endFill = function() {
                return this.filling = !1, this.fillColor = null, this.fillAlpha = 1, this
            }, e.prototype.drawRect = function(t, e, n, r) {
                return this.drawShape(new u.Rectangle(t, e, n, r)), this
            }, e.prototype.drawRoundedRect = function(t, e, n, r, i) {
                return this.drawShape(new u.RoundedRectangle(t, e, n, r, i)), this
            }, e.prototype.drawCircle = function(t, e, n) {
                return this.drawShape(new u.Circle(t, e, n)), this
            }, e.prototype.drawEllipse = function(t, e, n, r) {
                return this.drawShape(new u.Ellipse(t, e, n, r)), this
            }, e.prototype.drawPolygon = function(t) {
                var e = t,
                    n = !0;
                if (e instanceof u.Polygon && (n = e.closed, e = e.points), !Array.isArray(e)) {
                    e = new Array(arguments.length);
                    for (var r = 0; r < e.length; ++r) e[r] = arguments[r]
                }
                var i = new u.Polygon(e);
                return i.closed = n, this.drawShape(i), this
            }, e.prototype.drawStar = function(t, e, n, r, i) {
                var o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
                i = i || r / 2;
                for (var s = -1 * Math.PI / 2 + o, a = 2 * n, u = c.PI_2 / a, l = [], h = 0; h < a; h++) {
                    var f = h % 2 ? i : r,
                        d = h * u + s;
                    l.push(t + f * Math.cos(d), e + f * Math.sin(d))
                }
                return this.drawPolygon(l)
            }, e.prototype.clear = function() {
                return (this.lineWidth || this.filling || this.graphicsData.length > 0) && (this.lineWidth = 0, this.lineAlignment = .5, this.filling = !1, this.boundsDirty = -1, this.dirty++, this.clearDirty++, this.graphicsData.length = 0), this.currentPath = null, this._spriteRect = null, this
            }, e.prototype.isFastRect = function() {
                return 1 === this.graphicsData.length && this.graphicsData[0].shape.type === c.SHAPES.RECT && !this.graphicsData[0].lineWidth
            }, e.prototype._renderWebGL = function(t) {
                this.dirty !== this.fastRectDirty && (this.fastRectDirty = this.dirty, this._fastRect = this.isFastRect()), this._fastRect ? this._renderSpriteRect(t) : (t.setObjectRenderer(t.plugins.graphics), t.plugins.graphics.render(this))
            }, e.prototype._renderSpriteRect = function(t) {
                var e = this.graphicsData[0].shape;
                this._spriteRect || (this._spriteRect = new a.default(new o.default(o.default.WHITE)));
                var n = this._spriteRect;
                if (16777215 === this.tint) n.tint = this.graphicsData[0].fillColor;
                else {
                    var r = y,
                        i = m;
                    (0, l.hex2rgb)(this.graphicsData[0].fillColor, r), (0, l.hex2rgb)(this.tint, i), r[0] *= i[0], r[1] *= i[1], r[2] *= i[2], n.tint = (0, l.rgb2hex)(r)
                }
                n.alpha = this.graphicsData[0].fillAlpha, n.worldAlpha = this.worldAlpha * n.alpha, n.blendMode = this.blendMode, n._texture._frame.width = e.width, n._texture._frame.height = e.height, n.transform.worldTransform = this.transform.worldTransform, n.anchor.set(-e.x / e.width, -e.y / e.height), n._onAnchorUpdate(), n._renderWebGL(t)
            }, e.prototype._renderCanvas = function(t) {
                !0 !== this.isMask && t.plugins.graphics.render(this)
            }, e.prototype._calculateBounds = function() {
                this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.updateLocalBounds(), this.cachedSpriteDirty = !0);
                var t = this._localBounds;
                this._bounds.addFrame(this.transform, t.minX, t.minY, t.maxX, t.maxY)
            }, e.prototype.containsPoint = function(t) {
                this.worldTransform.applyInverse(t, g);
                for (var e = this.graphicsData, n = 0; n < e.length; ++n) {
                    var r = e[n];
                    if (r.fill && r.shape && r.shape.contains(g.x, g.y)) {
                        if (r.holes)
                            for (var i = 0; i < r.holes.length; i++)
                                if (r.holes[i].contains(g.x, g.y)) return !1;
                        return !0
                    }
                }
                return !1
            }, e.prototype.updateLocalBounds = function() {
                var t = 1 / 0,
                    e = -1 / 0,
                    n = 1 / 0,
                    r = -1 / 0;
                if (this.graphicsData.length)
                    for (var i = 0, o = 0, s = 0, a = 0, u = 0, l = 0; l < this.graphicsData.length; l++) {
                        var h = this.graphicsData[l],
                            f = h.type,
                            d = h.lineWidth;
                        if (i = h.shape, f === c.SHAPES.RECT || f === c.SHAPES.RREC) o = i.x - d / 2, s = i.y - d / 2, t = o < t ? o : t, e = o + (a = i.width + d) > e ? o + a : e, n = s < n ? s : n, r = s + (u = i.height + d) > r ? s + u : r;
                        else if (f === c.SHAPES.CIRC) o = i.x, s = i.y, t = o - (a = i.radius + d / 2) < t ? o - a : t, e = o + a > e ? o + a : e, n = s - (u = i.radius + d / 2) < n ? s - u : n, r = s + u > r ? s + u : r;
                        else if (f === c.SHAPES.ELIP) o = i.x, s = i.y, t = o - (a = i.width + d / 2) < t ? o - a : t, e = o + a > e ? o + a : e, n = s - (u = i.height + d / 2) < n ? s - u : n, r = s + u > r ? s + u : r;
                        else
                            for (var p = i.points, v = 0, _ = 0, g = 0, y = 0, m = 0, b = 0, x = 0, w = 0, T = 0; T + 2 < p.length; T += 2) o = p[T], s = p[T + 1], v = p[T + 2], _ = p[T + 3], g = Math.abs(v - o), y = Math.abs(_ - s), u = d, (a = Math.sqrt(g * g + y * y)) < 1e-9 || (t = (x = (v + o) / 2) - (m = (u / a * y + g) / 2) < t ? x - m : t, e = x + m > e ? x + m : e, n = (w = (_ + s) / 2) - (b = (u / a * g + y) / 2) < n ? w - b : n, r = w + b > r ? w + b : r)
                    } else t = 0, e = 0, n = 0, r = 0;
                var E = this.boundsPadding;
                this._localBounds.minX = t - E, this._localBounds.maxX = e + E, this._localBounds.minY = n - E, this._localBounds.maxY = r + E
            }, e.prototype.drawShape = function(t) {
                this.currentPath && this.currentPath.shape.points.length <= 2 && this.graphicsData.pop(), this.currentPath = null;
                var e = new s.default(this.lineWidth, this.lineColor, this.lineAlpha, this.fillColor, this.fillAlpha, this.filling, this.nativeLines, t, this.lineAlignment);
                return this.graphicsData.push(e), e.type === c.SHAPES.POLY && (e.shape.closed = e.shape.closed || this.filling, this.currentPath = e), this.dirty++, e
            }, e.prototype.generateCanvasTexture = function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,
                    n = this.getLocalBounds(),
                    r = i.default.create(n.width, n.height, t, e);
                v || (v = new d.default), this.transform.updateLocalTransform(), this.transform.localTransform.copy(_), _.invert(), _.tx -= n.x, _.ty -= n.y, v.render(this, r, !0, _);
                var s = o.default.fromCanvas(r.baseTexture._canvasRenderTarget.canvas, t, "graphics");
                return s.baseTexture.resolution = e, s.baseTexture.update(), s
            }, e.prototype.closePath = function() {
                var t = this.currentPath;
                return t && t.shape && t.shape.close(), this
            }, e.prototype.addHole = function() {
                var t = this.graphicsData.pop();
                return this.currentPath = this.graphicsData[this.graphicsData.length - 1], this.currentPath.addHole(t.shape), this.currentPath = null, this
            }, e.prototype.destroy = function(e) {
                t.prototype.destroy.call(this, e);
                for (var n = 0; n < this.graphicsData.length; ++n) this.graphicsData[n].destroy();
                for (var r in this._webGL)
                    for (var i = 0; i < this._webGL[r].data.length; ++i) this._webGL[r].data[i].destroy();
                this._spriteRect && this._spriteRect.destroy(), this.graphicsData = null, this.currentPath = null, this._webGL = null, this._localBounds = null
            }, e
        }(r.default);
    e.default = b, b._SPRITE_TEXTURE = null, b.CURVES = {
        adaptive: !1,
        maxLength: 10,
        minSegments: 8,
        maxSegments: 2048
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(30)) && r.__esModule ? r : {
            default: r
        },
        o = n(0),
        s = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e
            }
            return t.prototype.render = function(t) {
                var e = this.renderer,
                    n = e.context,
                    r = t.worldAlpha,
                    i = t.transform.worldTransform,
                    s = e.resolution;
                this._prevTint !== this.tint && (this.dirty = !0), n.setTransform(i.a * s, i.b * s, i.c * s, i.d * s, i.tx * s, i.ty * s), t.dirty && (this.updateGraphicsTint(t), t.dirty = !1), e.setBlendMode(t.blendMode);
                for (var a = 0; a < t.graphicsData.length; a++) {
                    var u = t.graphicsData[a],
                        l = u.shape,
                        c = u._fillTint,
                        h = u._lineTint;
                    if (n.lineWidth = u.lineWidth, u.type === o.SHAPES.POLY) {
                        n.beginPath(), this.renderPolygon(l.points, l.closed, n);
                        for (var f = 0; f < u.holes.length; f++) this.renderPolygon(u.holes[f].points, !0, n);
                        u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                    } else if (u.type === o.SHAPES.RECT)(u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fillRect(l.x, l.y, l.width, l.height)), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.strokeRect(l.x, l.y, l.width, l.height));
                    else if (u.type === o.SHAPES.CIRC) n.beginPath(), n.arc(l.x, l.y, l.radius, 0, 2 * Math.PI), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke());
                    else if (u.type === o.SHAPES.ELIP) {
                        var d = 2 * l.width,
                            p = 2 * l.height,
                            v = l.x - d / 2,
                            _ = l.y - p / 2;
                        n.beginPath();
                        var g = d / 2 * .5522848,
                            y = p / 2 * .5522848,
                            m = v + d,
                            b = _ + p,
                            x = v + d / 2,
                            w = _ + p / 2;
                        n.moveTo(v, w), n.bezierCurveTo(v, w - y, x - g, _, x, _), n.bezierCurveTo(x + g, _, m, w - y, m, w), n.bezierCurveTo(m, w + y, x + g, b, x, b), n.bezierCurveTo(x - g, b, v, w + y, v, w), n.closePath(), u.fill && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                    } else if (u.type === o.SHAPES.RREC) {
                        var T = l.x,
                            E = l.y,
                            S = l.width,
                            P = l.height,
                            O = l.radius,
                            M = Math.min(S, P) / 2 | 0;
                        O = O > M ? M : O, n.beginPath(), n.moveTo(T, E + O), n.lineTo(T, E + P - O), n.quadraticCurveTo(T, E + P, T + O, E + P), n.lineTo(T + S - O, E + P), n.quadraticCurveTo(T + S, E + P, T + S, E + P - O), n.lineTo(T + S, E + O), n.quadraticCurveTo(T + S, E, T + S - O, E), n.lineTo(T + O, E), n.quadraticCurveTo(T, E, T, E + O), n.closePath(), (u.fillColor || 0 === u.fillColor) && (n.globalAlpha = u.fillAlpha * r, n.fillStyle = "#" + ("00000" + (0 | c).toString(16)).substr(-6), n.fill()), u.lineWidth && (n.globalAlpha = u.lineAlpha * r, n.strokeStyle = "#" + ("00000" + (0 | h).toString(16)).substr(-6), n.stroke())
                    }
                }
            }, t.prototype.updateGraphicsTint = function(t) {
                t._prevTint = t.tint;
                for (var e = (t.tint >> 16 & 255) / 255, n = (t.tint >> 8 & 255) / 255, r = (255 & t.tint) / 255, i = 0; i < t.graphicsData.length; ++i) {
                    var o = t.graphicsData[i],
                        s = 0 | o.fillColor,
                        a = 0 | o.lineColor;
                    o._fillTint = ((s >> 16 & 255) / 255 * e * 255 << 16) + ((s >> 8 & 255) / 255 * n * 255 << 8) + (255 & s) / 255 * r * 255, o._lineTint = ((a >> 16 & 255) / 255 * e * 255 << 16) + ((a >> 8 & 255) / 255 * n * 255 << 8) + (255 & a) / 255 * r * 255
                }
            }, t.prototype.renderPolygon = function(t, e, n) {
                n.moveTo(t[0], t[1]);
                for (var r = 1; r < t.length / 2; ++r) n.lineTo(t[2 * r], t[2 * r + 1]);
                e && n.closePath()
            }, t.prototype.destroy = function() {
                this.renderer = null
            }, t
        }();
    e.default = s, i.default.registerPlugin("graphics", s)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n, r, i, o, s, a, u) {
        var l = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : [],
            c = 0,
            h = 0,
            f = 0,
            d = 0,
            p = 0;
        l.push(t, e);
        for (var v = 1, _ = 0; v <= u; ++v) f = (h = (c = 1 - (_ = v / u)) * c) * c, p = (d = _ * _) * _, l.push(f * t + 3 * h * _ * n + 3 * c * d * i + p * s, f * e + 3 * h * _ * r + 3 * c * d * o + p * a);
        return l
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(2),
        i = n(0),
        o = d(n(48)),
        s = d(n(47)),
        a = d(n(387)),
        u = d(n(388)),
        l = d(n(390)),
        c = d(n(391)),
        h = d(n(392)),
        f = d(n(389));

    function d(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var p = function(t) {
        function e(n) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var r = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n));
            return r.graphicsDataPool = [], r.primitiveShader = null, r.gl = n.gl, r.CONTEXT_UID = 0, r
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.onContextChange = function() {
            this.gl = this.renderer.gl, this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.primitiveShader = new u.default(this.gl)
        }, e.prototype.destroy = function() {
            o.default.prototype.destroy.call(this);
            for (var t = 0; t < this.graphicsDataPool.length; ++t) this.graphicsDataPool[t].destroy();
            this.graphicsDataPool = null
        }, e.prototype.render = function(t) {
            var e = this.renderer,
                n = e.gl,
                i = void 0,
                o = t._webGL[this.CONTEXT_UID];
            o && t.dirty === o.dirty || (this.updateGraphics(t), o = t._webGL[this.CONTEXT_UID]);
            var s = this.primitiveShader;
            e.bindShader(s), e.state.setBlendMode(t.blendMode);
            for (var a = 0, u = o.data.length; a < u; a++) {
                var l = (i = o.data[a]).shader;
                e.bindShader(l), l.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), l.uniforms.tint = (0, r.hex2rgb)(t.tint), l.uniforms.alpha = t.worldAlpha, e.bindVao(i.vao), i.nativeLines ? n.drawArrays(n.LINES, 0, i.points.length / 6) : i.vao.draw(n.TRIANGLE_STRIP, i.indices.length)
            }
        }, e.prototype.updateGraphics = function(t) {
            var e = this.renderer.gl,
                n = t._webGL[this.CONTEXT_UID];
            if (n || (n = t._webGL[this.CONTEXT_UID] = {
                    lastIndex: 0,
                    data: [],
                    gl: e,
                    clearDirty: -1,
                    dirty: -1
                }), n.dirty = t.dirty, t.clearDirty !== n.clearDirty) {
                n.clearDirty = t.clearDirty;
                for (var r = 0; r < n.data.length; r++) this.graphicsDataPool.push(n.data[r]);
                n.data.length = 0, n.lastIndex = 0
            }
            for (var o = void 0, s = void 0, a = n.lastIndex; a < t.graphicsData.length; a++) {
                var u = t.graphicsData[a];
                o = this.getWebGLData(n, 0), u.nativeLines && u.lineWidth && (s = this.getWebGLData(n, 0, !0), n.lastIndex++), u.type === i.SHAPES.POLY && (0, l.default)(u, o, s), u.type === i.SHAPES.RECT ? (0, c.default)(u, o, s) : u.type === i.SHAPES.CIRC || u.type === i.SHAPES.ELIP ? (0, f.default)(u, o, s) : u.type === i.SHAPES.RREC && (0, h.default)(u, o, s), n.lastIndex++
            }
            this.renderer.bindVao(null);
            for (var d = 0; d < n.data.length; d++)(o = n.data[d]).dirty && o.upload()
        }, e.prototype.getWebGLData = function(t, e, n) {
            var r = t.data[t.data.length - 1];
            return (!r || r.nativeLines !== n || r.points.length > 32e4) && ((r = this.graphicsDataPool.pop() || new a.default(this.renderer.gl, this.primitiveShader, this.renderer.state.attribsState)).nativeLines = n, r.reset(e), t.data.push(r)), r.dirty = !0, r
        }, e
    }(o.default);
    e.default = p, s.default.registerPlugin("graphics", p)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(9)) && r.__esModule ? r : {
            default: r
        },
        o = function() {
            function t(e, n, r) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.gl = e, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = i.default.GLBuffer.createVertexBuffer(e), this.indexBuffer = i.default.GLBuffer.createIndexBuffer(e), this.dirty = !0, this.nativeLines = !1, this.glPoints = null, this.glIndices = null, this.shader = n, this.vao = new i.default.VertexArrayObject(e, r).addIndex(this.indexBuffer).addAttribute(this.buffer, n.attributes.aVertexPosition, e.FLOAT, !1, 24, 0).addAttribute(this.buffer, n.attributes.aColor, e.FLOAT, !1, 24, 8)
            }
            return t.prototype.reset = function() {
                this.points.length = 0, this.indices.length = 0
            }, t.prototype.upload = function() {
                this.glPoints = new Float32Array(this.points), this.buffer.upload(this.glPoints), this.glIndices = new Uint16Array(this.indices), this.indexBuffer.upload(this.glIndices), this.dirty = !1
            }, t.prototype.destroy = function() {
                this.color = null, this.points = null, this.indices = null, this.vao.destroy(), this.buffer.destroy(), this.indexBuffer.destroy(), this.gl = null, this.buffer = null, this.indexBuffer = null, this.glPoints = null, this.glIndices = null
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
        function e(n) {
            return function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e),
                function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec4 aColor;", "uniform mat3 translationMatrix;", "uniform mat3 projectionMatrix;", "uniform float alpha;", "uniform vec3 tint;", "varying vec4 vColor;", "void main(void){", "   gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);", "   vColor = aColor * vec4(tint * alpha, alpha);", "}"].join("\n"), ["varying vec4 vColor;", "void main(void){", "   gl_FragColor = vColor;", "}"].join("\n")))
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e
    }(((r = n(28)) && r.__esModule ? r : {
        default: r
    }).default);
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        var r = t.shape,
            a = r.x,
            u = r.y,
            l = void 0,
            c = void 0;
        if (t.type === o.SHAPES.CIRC ? (l = r.radius, c = r.radius) : (l = r.width, c = r.height), 0 !== l && 0 !== c) {
            var h = Math.floor(30 * Math.sqrt(r.radius)) || Math.floor(15 * Math.sqrt(r.width + r.height)),
                f = 2 * Math.PI / h;
            if (t.fill) {
                var d = (0, s.hex2rgb)(t.fillColor),
                    p = t.fillAlpha,
                    v = d[0] * p,
                    _ = d[1] * p,
                    g = d[2] * p,
                    y = e.points,
                    m = e.indices,
                    b = y.length / 6;
                m.push(b);
                for (var x = 0; x < h + 1; x++) y.push(a, u, v, _, g, p), y.push(a + Math.sin(f * x) * l, u + Math.cos(f * x) * c, v, _, g, p), m.push(b++, b++);
                m.push(b - 1)
            }
            if (t.lineWidth) {
                var w = t.points;
                t.points = [];
                for (var T = 0; T < h + 1; T++) t.points.push(a + Math.sin(f * -T) * l, u + Math.cos(f * -T) * c);
                (0, i.default)(t, e, n), t.points = w
            }
        }
    };
    var r, i = (r = n(46)) && r.__esModule ? r : {
            default: r
        },
        o = n(0),
        s = n(2)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        t.points = t.shape.points.slice();
        var s = t.points;
        if (t.fill && s.length >= 6) {
            for (var a = [], u = t.holes, l = 0; l < u.length; l++) {
                var c = u[l];
                a.push(s.length / 2), s = s.concat(c.points)
            }
            var h = e.points,
                f = e.indices,
                d = s.length / 2,
                p = (0, i.hex2rgb)(t.fillColor),
                v = t.fillAlpha,
                _ = p[0] * v,
                g = p[1] * v,
                y = p[2] * v,
                m = (0, o.default)(s, a, 2);
            if (!m) return;
            for (var b = h.length / 6, x = 0; x < m.length; x += 3) f.push(m[x] + b), f.push(m[x] + b), f.push(m[x + 1] + b), f.push(m[x + 2] + b), f.push(m[x + 2] + b);
            for (var w = 0; w < d; w++) h.push(s[2 * w], s[2 * w + 1], _, g, y, v)
        }
        t.lineWidth > 0 && (0, r.default)(t, e, n)
    };
    var r = s(n(46)),
        i = n(2),
        o = s(n(52));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        var r = t.shape,
            s = r.x,
            a = r.y,
            u = r.width,
            l = r.height;
        if (t.fill) {
            var c = (0, o.hex2rgb)(t.fillColor),
                h = t.fillAlpha,
                f = c[0] * h,
                d = c[1] * h,
                p = c[2] * h,
                v = e.points,
                _ = e.indices,
                g = v.length / 6;
            v.push(s, a), v.push(f, d, p, h), v.push(s + u, a), v.push(f, d, p, h), v.push(s, a + l), v.push(f, d, p, h), v.push(s + u, a + l), v.push(f, d, p, h), _.push(g, g, g + 1, g + 2, g + 3, g + 3)
        }
        if (t.lineWidth) {
            var y = t.points;
            t.points = [s, a, s + u, a, s + u, a + l, s, a + l, s, a], (0, i.default)(t, e, n), t.points = y
        }
    };
    var r, i = (r = n(46)) && r.__esModule ? r : {
            default: r
        },
        o = n(2)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        var s = t.shape,
            a = s.x,
            l = s.y,
            c = s.width,
            h = s.height,
            f = s.radius,
            d = [];
        if (d.push(a, l + f), u(a, l + h - f, a, l + h, a + f, l + h, d), u(a + c - f, l + h, a + c, l + h, a + c, l + h - f, d), u(a + c, l + f, a + c, l, a + c - f, l, d), u(a + f, l, a, l, a, l + f + 1e-10, d), t.fill) {
            for (var p = (0, o.hex2rgb)(t.fillColor), v = t.fillAlpha, _ = p[0] * v, g = p[1] * v, y = p[2] * v, m = e.points, b = e.indices, x = m.length / 6, w = (0, r.default)(d, null, 2), T = 0, E = w.length; T < E; T += 3) b.push(w[T] + x), b.push(w[T] + x), b.push(w[T + 1] + x), b.push(w[T + 2] + x), b.push(w[T + 2] + x);
            for (var S = 0, P = d.length; S < P; S++) m.push(d[S], d[++S], _, g, y, v)
        }
        if (t.lineWidth) {
            var O = t.points;
            t.points = d, (0, i.default)(t, e, n), t.points = O
        }
    };
    var r = s(n(52)),
        i = s(n(46)),
        o = n(2);

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }

    function a(t, e, n) {
        return t + (e - t) * n
    }

    function u(t, e, n, r, i, o) {
        for (var s = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : [], u = 0, l = 0, c = 0, h = 0, f = 0, d = 0, p = 0, v = 0; p <= 20; ++p) u = a(t, n, v = p / 20), l = a(e, r, v), c = a(n, i, v), h = a(r, o, v), f = a(u, c, v), d = a(l, h, v), s.push(f, d);
        return s
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(77)) && r.__esModule ? r : {
            default: r
        },
        o = n(0),
        s = function() {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.x = e, this.y = n, this.radius = r, this.type = o.SHAPES.CIRC
            }
            return t.prototype.clone = function() {
                return new t(this.x, this.y, this.radius)
            }, t.prototype.contains = function(t, e) {
                if (this.radius <= 0) return !1;
                var n = this.radius * this.radius,
                    r = this.x - t,
                    i = this.y - e;
                return (r *= r) + (i *= i) <= n
            }, t.prototype.getBounds = function() {
                return new i.default(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius)
            }, t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(77)) && r.__esModule ? r : {
            default: r
        },
        o = n(0),
        s = function() {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                    i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.x = e, this.y = n, this.width = r, this.height = i, this.type = o.SHAPES.ELIP
            }
            return t.prototype.clone = function() {
                return new t(this.x, this.y, this.width, this.height)
            }, t.prototype.contains = function(t, e) {
                if (this.width <= 0 || this.height <= 0) return !1;
                var n = (t - this.x) / this.width,
                    r = (e - this.y) / this.height;
                return (n *= n) + (r *= r) <= 1
            }, t.prototype.getBounds = function() {
                return new i.default(this.x - this.width, this.y - this.height, this.width, this.height)
            }, t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(76)) && r.__esModule ? r : {
            default: r
        },
        o = n(0),
        s = function() {
            function t() {
                for (var e = arguments.length, n = Array(e), r = 0; r < e; r++) n[r] = arguments[r];
                if (function(t, e) {
                        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                    }(this, t), Array.isArray(n[0]) && (n = n[0]), n[0] instanceof i.default) {
                    for (var s = [], a = 0, u = n.length; a < u; a++) s.push(n[a].x, n[a].y);
                    n = s
                }
                this.closed = !0, this.points = n, this.type = o.SHAPES.POLY
            }
            return t.prototype.clone = function() {
                return new t(this.points.slice())
            }, t.prototype.close = function() {
                var t = this.points;
                t[0] === t[t.length - 2] && t[1] === t[t.length - 1] || t.push(t[0], t[1])
            }, t.prototype.contains = function(t, e) {
                for (var n = !1, r = this.points.length / 2, i = 0, o = r - 1; i < r; o = i++) {
                    var s = this.points[2 * i],
                        a = this.points[2 * i + 1],
                        u = this.points[2 * o],
                        l = this.points[2 * o + 1];
                    a > e != l > e && t < (e - a) / (l - a) * (u - s) + s && (n = !n)
                }
                return n
            }, t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(0),
        i = function() {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                    n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                    o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0,
                    s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 20;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.x = e, this.y = n, this.width = i, this.height = o, this.radius = s, this.type = r.SHAPES.RREC
            }
            return t.prototype.clone = function() {
                return new t(this.x, this.y, this.width, this.height, this.radius)
            }, t.prototype.contains = function(t, e) {
                if (this.width <= 0 || this.height <= 0) return !1;
                if (t >= this.x && t <= this.x + this.width && e >= this.y && e <= this.y + this.height) {
                    if (e >= this.y + this.radius && e <= this.y + this.height - this.radius || t >= this.x + this.radius && t <= this.x + this.width - this.radius) return !0;
                    var n = t - (this.x + this.radius),
                        r = e - (this.y + this.radius),
                        i = this.radius * this.radius;
                    if (n * n + r * r <= i) return !0;
                    if ((n = t - (this.x + this.width - this.radius)) * n + r * r <= i) return !0;
                    if (n * n + (r = e - (this.y + this.height - this.radius)) * r <= i) return !0;
                    if ((n = t - (this.x + this.radius)) * n + r * r <= i) return !0
                }
                return !1
            }, t
        }();
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(0),
        i = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e
            }
            return t.prototype.pushMask = function(t) {
                var e = this.renderer;
                e.context.save();
                var n = t.alpha,
                    r = t.transform.worldTransform,
                    i = e.resolution;
                e.context.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), t._texture || (this.renderGraphicsShape(t), e.context.clip()), t.worldAlpha = n
            }, t.prototype.renderGraphicsShape = function(t) {
                var e = this.renderer.context,
                    n = t.graphicsData.length;
                if (0 !== n) {
                    e.beginPath();
                    for (var i = 0; i < n; i++) {
                        var o = t.graphicsData[i],
                            s = o.shape;
                        if (o.type === r.SHAPES.POLY) {
                            var a = s.points;
                            e.moveTo(a[0], a[1]);
                            for (var u = 1; u < a.length / 2; u++) e.lineTo(a[2 * u], a[2 * u + 1]);
                            a[0] === a[a.length - 2] && a[1] === a[a.length - 1] && e.closePath()
                        } else if (o.type === r.SHAPES.RECT) e.rect(s.x, s.y, s.width, s.height), e.closePath();
                        else if (o.type === r.SHAPES.CIRC) e.arc(s.x, s.y, s.radius, 0, 2 * Math.PI), e.closePath();
                        else if (o.type === r.SHAPES.ELIP) {
                            var l = 2 * s.width,
                                c = 2 * s.height,
                                h = s.x - l / 2,
                                f = s.y - c / 2,
                                d = l / 2 * .5522848,
                                p = c / 2 * .5522848,
                                v = h + l,
                                _ = f + c,
                                g = h + l / 2,
                                y = f + c / 2;
                            e.moveTo(h, y), e.bezierCurveTo(h, y - p, g - d, f, g, f), e.bezierCurveTo(g + d, f, v, y - p, v, y), e.bezierCurveTo(v, y + p, g + d, _, g, _), e.bezierCurveTo(g - d, _, h, y + p, h, y), e.closePath()
                        } else if (o.type === r.SHAPES.RREC) {
                            var m = s.x,
                                b = s.y,
                                x = s.width,
                                w = s.height,
                                T = s.radius,
                                E = Math.min(x, w) / 2 | 0;
                            T = T > E ? E : T, e.moveTo(m, b + T), e.lineTo(m, b + w - T), e.quadraticCurveTo(m, b + w, m + T, b + w), e.lineTo(m + x - T, b + w), e.quadraticCurveTo(m + x, b + w, m + x, b + w - T), e.lineTo(m + x, b + T), e.quadraticCurveTo(m + x, b, m + x - T, b), e.lineTo(m + T, b), e.quadraticCurveTo(m, b, m, b + T), e.closePath()
                        }
                    }
                }
            }, t.prototype.popMask = function(t) {
                t.context.restore(), t.invalidateBlendMode()
            }, t.prototype.destroy = function() {}, t
        }();
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function() {
        var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
        return (0, o.default)() ? (t[i.BLEND_MODES.NORMAL] = "source-over", t[i.BLEND_MODES.ADD] = "lighter", t[i.BLEND_MODES.MULTIPLY] = "multiply", t[i.BLEND_MODES.SCREEN] = "screen", t[i.BLEND_MODES.OVERLAY] = "overlay", t[i.BLEND_MODES.DARKEN] = "darken", t[i.BLEND_MODES.LIGHTEN] = "lighten", t[i.BLEND_MODES.COLOR_DODGE] = "color-dodge", t[i.BLEND_MODES.COLOR_BURN] = "color-burn", t[i.BLEND_MODES.HARD_LIGHT] = "hard-light", t[i.BLEND_MODES.SOFT_LIGHT] = "soft-light", t[i.BLEND_MODES.DIFFERENCE] = "difference", t[i.BLEND_MODES.EXCLUSION] = "exclusion", t[i.BLEND_MODES.HUE] = "hue", t[i.BLEND_MODES.SATURATION] = "saturate", t[i.BLEND_MODES.COLOR] = "color", t[i.BLEND_MODES.LUMINOSITY] = "luminosity") : (t[i.BLEND_MODES.NORMAL] = "source-over", t[i.BLEND_MODES.ADD] = "lighter", t[i.BLEND_MODES.MULTIPLY] = "source-over", t[i.BLEND_MODES.SCREEN] = "source-over", t[i.BLEND_MODES.OVERLAY] = "source-over", t[i.BLEND_MODES.DARKEN] = "source-over", t[i.BLEND_MODES.LIGHTEN] = "source-over", t[i.BLEND_MODES.COLOR_DODGE] = "source-over", t[i.BLEND_MODES.COLOR_BURN] = "source-over", t[i.BLEND_MODES.HARD_LIGHT] = "source-over", t[i.BLEND_MODES.SOFT_LIGHT] = "source-over", t[i.BLEND_MODES.DIFFERENCE] = "source-over", t[i.BLEND_MODES.EXCLUSION] = "source-over", t[i.BLEND_MODES.HUE] = "source-over", t[i.BLEND_MODES.SATURATION] = "source-over", t[i.BLEND_MODES.COLOR] = "source-over", t[i.BLEND_MODES.LUMINOSITY] = "source-over"), t[i.BLEND_MODES.NORMAL_NPM] = t[i.BLEND_MODES.NORMAL], t[i.BLEND_MODES.ADD_NPM] = t[i.BLEND_MODES.ADD], t[i.BLEND_MODES.SCREEN_NPM] = t[i.BLEND_MODES.SCREEN], t
    };
    var r, i = n(0),
        o = (r = n(164)) && r.__esModule ? r : {
            default: r
        }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = n(0),
        o = (r = n(3)) && r.__esModule ? r : {
            default: r
        },
        s = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e, this.count = 0, this.checkCount = 0, this.maxIdle = o.default.GC_MAX_IDLE, this.checkCountMax = o.default.GC_MAX_CHECK_COUNT, this.mode = o.default.GC_MODE
            }
            return t.prototype.update = function() {
                this.count++, this.mode !== i.GC_MODES.MANUAL && (this.checkCount++, this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run()))
            }, t.prototype.run = function() {
                for (var t = this.renderer.textureManager, e = t._managedTextures, n = !1, r = 0; r < e.length; r++) {
                    var i = e[r];
                    !i._glRenderTargets && this.count - i.touched > this.maxIdle && (t.destroyTexture(i, !0), e[r] = null, n = !0)
                }
                if (n) {
                    for (var o = 0, s = 0; s < e.length; s++) null !== e[s] && (e[o++] = e[s]);
                    e.length = o
                }
            }, t.prototype.unload = function(t) {
                var e = this.renderer.textureManager;
                t._texture && t._texture._glRenderTargets && e.destroyTexture(t._texture, !0);
                for (var n = t.children.length - 1; n >= 0; n--) this.unload(t.children[n])
            }, t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = n(9),
        o = n(0),
        s = (r = n(49)) && r.__esModule ? r : {
            default: r
        },
        a = n(2),
        u = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e, this.gl = e.gl, this._managedTextures = []
            }
            return t.prototype.bindTexture = function() {}, t.prototype.getTexture = function() {}, t.prototype.updateTexture = function(t, e) {
                var n = this.gl,
                    r = !!t._glRenderTargets;
                if (!t.hasLoaded) return null;
                var a = this.renderer.boundTextures;
                if (void 0 === e) {
                    e = 0;
                    for (var u = 0; u < a.length; ++u)
                        if (a[u] === t) {
                            e = u;
                            break
                        }
                }
                a[e] = t, n.activeTexture(n.TEXTURE0 + e);
                var l = t._glTextures[this.renderer.CONTEXT_UID];
                if (l) r ? t._glRenderTargets[this.renderer.CONTEXT_UID].resize(t.width, t.height) : l.upload(t.source);
                else {
                    if (r) {
                        var c = new s.default(this.gl, t.width, t.height, t.scaleMode, t.resolution);
                        c.resize(t.width, t.height), t._glRenderTargets[this.renderer.CONTEXT_UID] = c, l = c.texture
                    } else(l = new i.GLTexture(this.gl, null, null, null, null)).bind(e), l.premultiplyAlpha = !0, l.upload(t.source);
                    t._glTextures[this.renderer.CONTEXT_UID] = l, t.on("update", this.updateTexture, this), t.on("dispose", this.destroyTexture, this), this._managedTextures.push(t), t.isPowerOfTwo ? (t.mipmap && l.enableMipmap(), t.wrapMode === o.WRAP_MODES.CLAMP ? l.enableWrapClamp() : t.wrapMode === o.WRAP_MODES.REPEAT ? l.enableWrapRepeat() : l.enableWrapMirrorRepeat()) : l.enableWrapClamp(), t.scaleMode === o.SCALE_MODES.NEAREST ? l.enableNearestScaling() : l.enableLinearScaling()
                }
                return l
            }, t.prototype.destroyTexture = function(t, e) {
                if ((t = t.baseTexture || t).hasLoaded) {
                    var n = this.renderer.CONTEXT_UID,
                        r = t._glTextures,
                        i = t._glRenderTargets;
                    if (r[n] && (this.renderer.unbindTexture(t), r[n].destroy(), t.off("update", this.updateTexture, this), t.off("dispose", this.destroyTexture, this), delete r[n], !e)) {
                        var o = this._managedTextures.indexOf(t); - 1 !== o && (0, a.removeItems)(this._managedTextures, o, 1)
                    }
                    i && i[n] && (i[n].destroy(), delete i[n])
                }
            }, t.prototype.removeAll = function() {
                for (var t = 0; t < this._managedTextures.length; ++t) {
                    var e = this._managedTextures[t];
                    e._glTextures[this.renderer.CONTEXT_UID] && delete e._glTextures[this.renderer.CONTEXT_UID]
                }
            }, t.prototype.destroy = function() {
                for (var t = 0; t < this._managedTextures.length; ++t) {
                    var e = this._managedTextures[t];
                    this.destroyTexture(e, !0), e.off("update", this.updateTexture, this), e.off("dispose", this.destroyTexture, this)
                }
                this._managedTextures = null
            }, t
        }();
    e.default = u
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(408)) && r.__esModule ? r : {
            default: r
        },
        o = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.activeState = new Uint8Array(16), this.defaultState = new Uint8Array(16), this.defaultState[0] = 1, this.stackIndex = 0, this.stack = [], this.gl = e, this.maxAttribs = e.getParameter(e.MAX_VERTEX_ATTRIBS), this.attribState = {
                    tempAttribState: new Array(this.maxAttribs),
                    attribState: new Array(this.maxAttribs)
                }, this.blendModes = (0, i.default)(e), this.nativeVaoExtension = e.getExtension("OES_vertex_array_object") || e.getExtension("MOZ_OES_vertex_array_object") || e.getExtension("WEBKIT_OES_vertex_array_object")
            }
            return t.prototype.push = function() {
                var t = this.stack[this.stackIndex];
                t || (t = this.stack[this.stackIndex] = new Uint8Array(16)), ++this.stackIndex;
                for (var e = 0; e < this.activeState.length; e++) t[e] = this.activeState[e]
            }, t.prototype.pop = function() {
                var t = this.stack[--this.stackIndex];
                this.setState(t)
            }, t.prototype.setState = function(t) {
                this.setBlend(t[0]), this.setDepthTest(t[1]), this.setFrontFace(t[2]), this.setCullFace(t[3]), this.setBlendMode(t[4])
            }, t.prototype.setBlend = function(t) {
                t = t ? 1 : 0, this.activeState[0] !== t && (this.activeState[0] = t, this.gl[t ? "enable" : "disable"](this.gl.BLEND))
            }, t.prototype.setBlendMode = function(t) {
                if (t !== this.activeState[4]) {
                    this.activeState[4] = t;
                    var e = this.blendModes[t];
                    2 === e.length ? this.gl.blendFunc(e[0], e[1]) : this.gl.blendFuncSeparate(e[0], e[1], e[2], e[3])
                }
            }, t.prototype.setDepthTest = function(t) {
                t = t ? 1 : 0, this.activeState[1] !== t && (this.activeState[1] = t, this.gl[t ? "enable" : "disable"](this.gl.DEPTH_TEST))
            }, t.prototype.setCullFace = function(t) {
                t = t ? 1 : 0, this.activeState[3] !== t && (this.activeState[3] = t, this.gl[t ? "enable" : "disable"](this.gl.CULL_FACE))
            }, t.prototype.setFrontFace = function(t) {
                t = t ? 1 : 0, this.activeState[2] !== t && (this.activeState[2] = t, this.gl.frontFace(this.gl[t ? "CW" : "CCW"]))
            }, t.prototype.resetAttributes = function() {
                for (var t = 0; t < this.attribState.tempAttribState.length; t++) this.attribState.tempAttribState[t] = 0;
                for (var e = 0; e < this.attribState.attribState.length; e++) this.attribState.attribState[e] = 0;
                for (var n = 1; n < this.maxAttribs; n++) this.gl.disableVertexAttribArray(n)
            }, t.prototype.resetToDefault = function() {
                this.nativeVaoExtension && this.nativeVaoExtension.bindVertexArrayOES(null), this.resetAttributes();
                for (var t = 0; t < this.activeState.length; ++t) this.activeState[t] = 32;
                this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.setState(this.defaultState)
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e, n) {
        var r = o(t),
            i = o(e);
        return Object.assign(r, i)
    };
    var r, i = ((r = n(9)) && r.__esModule ? r : {
        default: r
    }).default.shader.defaultValue;

    function o(t) {
        for (var e = new RegExp("^(projectionMatrix|uSampler|filterArea|filterClamp)$"), n = {}, r = void 0, o = t.replace(/\s+/g, " ").split(/\s*;\s*/), s = 0; s < o.length; s++) {
            var a = o[s].trim();
            if (a.indexOf("uniform") > -1) {
                var u = a.split(" "),
                    l = u[1],
                    c = u[2],
                    h = 1;
                c.indexOf("[") > -1 && (c = (r = c.split(/\[|]/))[0], h *= Number(r[1])), c.match(e) || (n[c] = {
                    value: i(l, h),
                    name: c,
                    type: l
                })
            }
        }
        return n
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.calculateScreenSpaceMatrix = function(t, e, n) {
        var r = t.identity();
        return r.translate(e.x / n.width, e.y / n.height), r.scale(n.width, n.height), r
    }, e.calculateNormalizedScreenSpaceMatrix = function(t, e, n) {
        var r = t.identity();
        r.translate(e.x / n.width, e.y / n.height);
        var i = n.width / e.width,
            o = n.height / e.height;
        return r.scale(i, o), r
    }, e.calculateSpriteMatrix = function(t, e, n, i) {
        var o = i._texture.orig,
            s = t.set(n.width, 0, 0, n.height, e.x, e.y),
            a = i.worldTransform.copy(r.Matrix.TEMP_MATRIX);
        return a.invert(), s.prepend(a), s.scale(1 / o.width, 1 / o.height), s.translate(i.anchor.x, i.anchor.y), s
    };
    var r = n(5)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = c(n(31)),
        i = c(n(49)),
        o = c(n(167)),
        s = n(5),
        a = c(n(28)),
        u = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(403)),
        l = c(n(51));

    function c(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }

    function h(t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
    }
    var f = function() {
            function t() {
                h(this, t), this.renderTarget = null, this.target = null, this.resolution = 1, this.sourceFrame = new s.Rectangle, this.destinationFrame = new s.Rectangle, this.filters = []
            }
            return t.prototype.clear = function() {
                this.filters = null, this.target = null, this.renderTarget = null
            }, t
        }(),
        d = function(t) {
            function e(n) {
                h(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.gl = r.renderer.gl, r.quad = new o.default(r.gl, n.state.attribState), r.shaderCache = {}, r.pool = {}, r.filterData = null, r.managedFilters = [], r.renderer.on("prerender", r.onPrerender, r), r._screenWidth = n.view.width, r._screenHeight = n.view.height, r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.pushFilter = function(t, e) {
                var n = this.renderer,
                    r = this.filterData;
                if (!r) {
                    r = this.renderer._activeRenderTarget.filterStack;
                    var i = new f;
                    i.sourceFrame = i.destinationFrame = this.renderer._activeRenderTarget.size, i.renderTarget = n._activeRenderTarget, this.renderer._activeRenderTarget.filterData = r = {
                        index: 0,
                        stack: [i]
                    }, this.filterData = r
                }
                var o = r.stack[++r.index],
                    s = r.stack[0].destinationFrame;
                o || (o = r.stack[r.index] = new f);
                var a = t.filterArea && 0 === t.filterArea.x && 0 === t.filterArea.y && t.filterArea.width === n.screen.width && t.filterArea.height === n.screen.height,
                    u = e[0].resolution,
                    l = 0 | e[0].padding,
                    c = a ? n.screen : t.filterArea || t.getBounds(!0),
                    h = o.sourceFrame,
                    d = o.destinationFrame;
                h.x = (c.x * u | 0) / u, h.y = (c.y * u | 0) / u, h.width = (c.width * u | 0) / u, h.height = (c.height * u | 0) / u, a || (r.stack[0].renderTarget.transform || e[0].autoFit && h.fit(s), h.pad(l)), d.width = h.width, d.height = h.height;
                var p = this.getPotRenderTarget(n.gl, h.width, h.height, u);
                o.target = t, o.filters = e, o.resolution = u, o.renderTarget = p, p.setFrame(d, h), n.bindRenderTarget(p), p.clear()
            }, e.prototype.popFilter = function() {
                var t = this.filterData,
                    e = t.stack[t.index - 1],
                    n = t.stack[t.index];
                this.quad.map(n.renderTarget.size, n.sourceFrame).upload();
                var r = n.filters;
                if (1 === r.length) r[0].apply(this, n.renderTarget, e.renderTarget, !1, n), this.freePotRenderTarget(n.renderTarget);
                else {
                    var i = n.renderTarget,
                        o = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, n.resolution);
                    o.setFrame(n.destinationFrame, n.sourceFrame), o.clear();
                    var s = 0;
                    for (s = 0; s < r.length - 1; ++s) {
                        r[s].apply(this, i, o, !0, n);
                        var a = i;
                        i = o, o = a
                    }
                    r[s].apply(this, i, e.renderTarget, !1, n), this.freePotRenderTarget(i), this.freePotRenderTarget(o)
                }
                n.clear(), t.index--, 0 === t.index && (this.filterData = null)
            }, e.prototype.applyFilter = function(t, e, n, r) {
                var i = this.renderer,
                    o = i.gl,
                    s = t.glShaders[i.CONTEXT_UID];
                s || (t.glShaderKey ? (s = this.shaderCache[t.glShaderKey]) || (s = new a.default(this.gl, t.vertexSrc, t.fragmentSrc), t.glShaders[i.CONTEXT_UID] = this.shaderCache[t.glShaderKey] = s, this.managedFilters.push(t)) : (s = t.glShaders[i.CONTEXT_UID] = new a.default(this.gl, t.vertexSrc, t.fragmentSrc), this.managedFilters.push(t)), i.bindVao(null), this.quad.initVao(s)), i.bindVao(this.quad.vao), i.bindRenderTarget(n), r && (o.disable(o.SCISSOR_TEST), i.clear(), o.enable(o.SCISSOR_TEST)), n === i.maskManager.scissorRenderTarget && i.maskManager.pushScissorMask(null, i.maskManager.scissorData), i.bindShader(s);
                var u = this.renderer.emptyTextures[0];
                this.renderer.boundTextures[0] = u, this.syncUniforms(s, t), i.state.setBlendMode(t.blendMode), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, e.texture.texture), this.quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0), o.bindTexture(o.TEXTURE_2D, u._glTextures[this.renderer.CONTEXT_UID].texture)
            }, e.prototype.syncUniforms = function(t, e) {
                var n = e.uniformData,
                    r = e.uniforms,
                    i = 1,
                    o = void 0;
                if (t.uniforms.filterArea) {
                    o = this.filterData.stack[this.filterData.index];
                    var s = t.uniforms.filterArea;
                    s[0] = o.renderTarget.size.width, s[1] = o.renderTarget.size.height, s[2] = o.sourceFrame.x, s[3] = o.sourceFrame.y, t.uniforms.filterArea = s
                }
                if (t.uniforms.filterClamp) {
                    o = o || this.filterData.stack[this.filterData.index];
                    var a = t.uniforms.filterClamp;
                    a[0] = 0, a[1] = 0, a[2] = (o.sourceFrame.width - 1) / o.renderTarget.size.width, a[3] = (o.sourceFrame.height - 1) / o.renderTarget.size.height, t.uniforms.filterClamp = a
                }
                for (var u in n) {
                    var l = n[u].type;
                    if ("sampler2d" === l && 0 !== r[u]) {
                        if (r[u].baseTexture) t.uniforms[u] = this.renderer.bindTexture(r[u].baseTexture, i);
                        else {
                            t.uniforms[u] = i;
                            var c = this.renderer.gl;
                            this.renderer.boundTextures[i] = this.renderer.emptyTextures[i], c.activeTexture(c.TEXTURE0 + i), r[u].texture.bind()
                        }
                        i++
                    } else if ("mat3" === l) void 0 !== r[u].a ? t.uniforms[u] = r[u].toArray(!0) : t.uniforms[u] = r[u];
                    else if ("vec2" === l)
                        if (void 0 !== r[u].x) {
                            var h = t.uniforms[u] || new Float32Array(2);
                            h[0] = r[u].x, h[1] = r[u].y, t.uniforms[u] = h
                        } else t.uniforms[u] = r[u];
                    else "float" === l ? t.uniforms.data[u].value !== n[u] && (t.uniforms[u] = r[u]) : t.uniforms[u] = r[u]
                }
            }, e.prototype.getRenderTarget = function(t, e) {
                var n = this.filterData.stack[this.filterData.index],
                    r = this.getPotRenderTarget(this.renderer.gl, n.sourceFrame.width, n.sourceFrame.height, e || n.resolution);
                return r.setFrame(n.destinationFrame, n.sourceFrame), r
            }, e.prototype.returnRenderTarget = function(t) {
                this.freePotRenderTarget(t)
            }, e.prototype.calculateScreenSpaceMatrix = function(t) {
                var e = this.filterData.stack[this.filterData.index];
                return u.calculateScreenSpaceMatrix(t, e.sourceFrame, e.renderTarget.size)
            }, e.prototype.calculateNormalizedScreenSpaceMatrix = function(t) {
                var e = this.filterData.stack[this.filterData.index];
                return u.calculateNormalizedScreenSpaceMatrix(t, e.sourceFrame, e.renderTarget.size, e.destinationFrame)
            }, e.prototype.calculateSpriteMatrix = function(t, e) {
                var n = this.filterData.stack[this.filterData.index];
                return u.calculateSpriteMatrix(t, n.sourceFrame, n.renderTarget.size, e)
            }, e.prototype.destroy = function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0],
                    e = this.renderer,
                    n = this.managedFilters;
                e.off("prerender", this.onPrerender, this);
                for (var r = 0; r < n.length; r++) t || n[r].glShaders[e.CONTEXT_UID].destroy(), delete n[r].glShaders[e.CONTEXT_UID];
                this.shaderCache = {}, t ? this.pool = {} : this.emptyPool()
            }, e.prototype.getPotRenderTarget = function(t, e, n, r) {
                var o = "screen";
                n *= r, (e *= r) === this._screenWidth && n === this._screenHeight || (o = (65535 & (e = l.default.nextPow2(e))) << 16 | 65535 & (n = l.default.nextPow2(n))), this.pool[o] || (this.pool[o] = []);
                var s = this.pool[o].pop();
                if (!s) {
                    var a = this.renderer.boundTextures[0];
                    t.activeTexture(t.TEXTURE0), s = new i.default(t, e, n, null, 1), t.bindTexture(t.TEXTURE_2D, a._glTextures[this.renderer.CONTEXT_UID].texture)
                }
                return s.resolution = r, s.defaultFrame.width = s.size.width = e / r, s.defaultFrame.height = s.size.height = n / r, s.filterPoolKey = o, s
            }, e.prototype.emptyPool = function() {
                for (var t in this.pool) {
                    var e = this.pool[t];
                    if (e)
                        for (var n = 0; n < e.length; n++) e[n].destroy(!0)
                }
                this.pool = {}
            }, e.prototype.freePotRenderTarget = function(t) {
                this.pool[t.filterPoolKey].push(t)
            }, e.prototype.onPrerender = function() {
                if (this._screenWidth !== this.renderer.view.width || this._screenHeight !== this.renderer.view.height) {
                    this._screenWidth = this.renderer.view.width, this._screenHeight = this.renderer.view.height;
                    var t = this.pool.screen;
                    if (t)
                        for (var e = 0; e < t.length; e++) t[e].destroy(!0);
                    this.pool.screen = []
                }
            }, e
        }(r.default);
    e.default = d
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = o(n(31)),
        i = o(n(166));

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var s = function(t) {
        function e(n) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var r = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n));
            return r.scissor = !1, r.scissorData = null, r.scissorRenderTarget = null, r.enableScissor = !0, r.alphaMaskPool = [], r.alphaMaskIndex = 0, r
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.pushMask = function(t, e) {
            if (e.texture) this.pushSpriteMask(t, e);
            else if (this.enableScissor && !this.scissor && this.renderer._activeRenderTarget.root && !this.renderer.stencilManager.stencilMaskStack.length && e.isFastRect()) {
                var n = e.worldTransform,
                    r = Math.atan2(n.b, n.a);
                (r = Math.round(r * (180 / Math.PI))) % 90 ? this.pushStencilMask(e) : this.pushScissorMask(t, e)
            } else this.pushStencilMask(e)
        }, e.prototype.popMask = function(t, e) {
            e.texture ? this.popSpriteMask(t, e) : this.enableScissor && !this.renderer.stencilManager.stencilMaskStack.length ? this.popScissorMask(t, e) : this.popStencilMask(t, e)
        }, e.prototype.pushSpriteMask = function(t, e) {
            var n = this.alphaMaskPool[this.alphaMaskIndex];
            n || (n = this.alphaMaskPool[this.alphaMaskIndex] = [new i.default(e)]), n[0].resolution = this.renderer.resolution, n[0].maskSprite = e, t.filterArea = e.getBounds(!0), this.renderer.filterManager.pushFilter(t, n), this.alphaMaskIndex++
        }, e.prototype.popSpriteMask = function() {
            this.renderer.filterManager.popFilter(), this.alphaMaskIndex--
        }, e.prototype.pushStencilMask = function(t) {
            this.renderer.currentRenderer.stop(), this.renderer.stencilManager.pushStencil(t)
        }, e.prototype.popStencilMask = function() {
            this.renderer.currentRenderer.stop(), this.renderer.stencilManager.popStencil()
        }, e.prototype.pushScissorMask = function(t, e) {
            e.renderable = !0;
            var n = this.renderer._activeRenderTarget,
                r = e.getBounds();
            r.fit(n.size), e.renderable = !1, this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST);
            var i = this.renderer.resolution;
            this.renderer.gl.scissor(r.x * i, (n.root ? n.size.height - r.y - r.height : r.y) * i, r.width * i, r.height * i), this.scissorRenderTarget = n, this.scissorData = e, this.scissor = !0
        }, e.prototype.popScissorMask = function() {
            this.scissorRenderTarget = null, this.scissorData = null, this.scissor = !1;
            var t = this.renderer.gl;
            t.disable(t.SCISSOR_TEST)
        }, e
    }(r.default);
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = (r = n(31)) && r.__esModule ? r : {
            default: r
        },
        o = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.stencilMaskStack = null, r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.setMaskStack = function(t) {
                this.stencilMaskStack = t;
                var e = this.renderer.gl;
                0 === t.length ? e.disable(e.STENCIL_TEST) : e.enable(e.STENCIL_TEST)
            }, e.prototype.pushStencil = function(t) {
                this.renderer.setObjectRenderer(this.renderer.plugins.graphics), this.renderer._activeRenderTarget.attachStencilBuffer();
                var e = this.renderer.gl,
                    n = this.stencilMaskStack.length;
                0 === n && e.enable(e.STENCIL_TEST), this.stencilMaskStack.push(t), e.colorMask(!1, !1, !1, !1), e.stencilFunc(e.EQUAL, n, this._getBitwiseMask()), e.stencilOp(e.KEEP, e.KEEP, e.INCR), this.renderer.plugins.graphics.render(t), this._useCurrent()
            }, e.prototype.popStencil = function() {
                this.renderer.setObjectRenderer(this.renderer.plugins.graphics);
                var t = this.renderer.gl,
                    e = this.stencilMaskStack.pop();
                0 === this.stencilMaskStack.length ? (t.disable(t.STENCIL_TEST), t.clear(t.STENCIL_BUFFER_BIT), t.clearStencil(0)) : (t.colorMask(!1, !1, !1, !1), t.stencilOp(t.KEEP, t.KEEP, t.DECR), this.renderer.plugins.graphics.render(e), this._useCurrent())
            }, e.prototype._useCurrent = function() {
                var t = this.renderer.gl;
                t.colorMask(!0, !0, !0, !0), t.stencilFunc(t.EQUAL, this.stencilMaskStack.length, this._getBitwiseMask()), t.stencilOp(t.KEEP, t.KEEP, t.KEEP)
            }, e.prototype._getBitwiseMask = function() {
                return (1 << this.stencilMaskStack.length) - 1
            }, e.prototype.destroy = function() {
                i.default.prototype.destroy.call(this), this.stencilMaskStack.stencilStack = null
            }, e
        }(i.default);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e) {
        var n = !e;
        if (0 === t) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");
        if (n) {
            var r = document.createElement("canvas");
            r.width = 1, r.height = 1, e = i.default.createContext(r)
        }
        for (var a = e.createShader(e.FRAGMENT_SHADER);;) {
            var u = o.replace(/%forloop%/gi, s(t));
            if (e.shaderSource(a, u), e.compileShader(a), e.getShaderParameter(a, e.COMPILE_STATUS)) break;
            t = t / 2 | 0
        }
        return n && e.getExtension("WEBGL_lose_context") && e.getExtension("WEBGL_lose_context").loseContext(), t
    };
    var r, i = (r = n(9)) && r.__esModule ? r : {
            default: r
        },
        o = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n");

    function s(t) {
        for (var e = "", n = 0; n < t; ++n) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(test == " + n + ".0){}");
        return e
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
        return e[r.BLEND_MODES.NORMAL] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.ADD] = [t.ONE, t.DST_ALPHA], e[r.BLEND_MODES.MULTIPLY] = [t.DST_COLOR, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.SCREEN] = [t.ONE, t.ONE_MINUS_SRC_COLOR], e[r.BLEND_MODES.OVERLAY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.DARKEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.LIGHTEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.COLOR_DODGE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.COLOR_BURN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.HARD_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.SOFT_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.DIFFERENCE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.EXCLUSION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.HUE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.SATURATION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.COLOR] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.LUMINOSITY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.NORMAL_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[r.BLEND_MODES.ADD_NPM] = [t.SRC_ALPHA, t.DST_ALPHA, t.ONE, t.DST_ALPHA], e[r.BLEND_MODES.SCREEN_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_COLOR, t.ONE, t.ONE_MINUS_SRC_COLOR], e
    };
    var r = n(0)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
        return e[r.DRAW_MODES.POINTS] = t.POINTS, e[r.DRAW_MODES.LINES] = t.LINES, e[r.DRAW_MODES.LINE_LOOP] = t.LINE_LOOP, e[r.DRAW_MODES.LINE_STRIP] = t.LINE_STRIP, e[r.DRAW_MODES.TRIANGLES] = t.TRIANGLES, e[r.DRAW_MODES.TRIANGLE_STRIP] = t.TRIANGLE_STRIP, e[r.DRAW_MODES.TRIANGLE_FAN] = t.TRIANGLE_FAN, e
    };
    var r = n(0)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        t.getContextAttributes().stencil
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = a(n(30)),
        i = n(0),
        o = n(5),
        s = a(n(79));

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var u = new o.Matrix,
        l = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e
            }
            return t.prototype.render = function(t) {
                var e = t._texture,
                    n = this.renderer,
                    r = e._frame.width,
                    a = e._frame.height,
                    l = t.transform.worldTransform,
                    c = 0,
                    h = 0;
                if (!(e.orig.width <= 0 || e.orig.height <= 0) && e.baseTexture.source && (n.setBlendMode(t.blendMode), e.valid)) {
                    n.context.globalAlpha = t.worldAlpha;
                    var f = e.baseTexture.scaleMode === i.SCALE_MODES.LINEAR;
                    n.smoothProperty && n.context[n.smoothProperty] !== f && (n.context[n.smoothProperty] = f), e.trim ? (c = e.trim.width / 2 + e.trim.x - t.anchor.x * e.orig.width, h = e.trim.height / 2 + e.trim.y - t.anchor.y * e.orig.height) : (c = (.5 - t.anchor.x) * e.orig.width, h = (.5 - t.anchor.y) * e.orig.height), e.rotate && (l.copy(u), l = u, o.GroupD8.matrixAppendRotationInv(l, e.rotate, c, h), c = 0, h = 0), c -= r / 2, h -= a / 2, n.roundPixels ? (n.context.setTransform(l.a, l.b, l.c, l.d, l.tx * n.resolution | 0, l.ty * n.resolution | 0), c |= 0, h |= 0) : n.context.setTransform(l.a, l.b, l.c, l.d, l.tx * n.resolution, l.ty * n.resolution);
                    var d = e.baseTexture.resolution;
                    16777215 !== t.tint ? (t.cachedTint === t.tint && t.tintedTexture.tintId === t._texture._updateID || (t.cachedTint = t.tint, t.tintedTexture = s.default.getTintedTexture(t, t.tint)), n.context.drawImage(t.tintedTexture, 0, 0, r * d, a * d, c * n.resolution, h * n.resolution, r * n.resolution, a * n.resolution)) : n.context.drawImage(e.baseTexture.source, e._frame.x * d, e._frame.y * d, r * d, a * d, c * n.resolution, h * n.resolution, r * n.resolution, a * n.resolution)
                }
            }, t.prototype.destroy = function() {
                this.renderer = null
            }, t
        }();
    e.default = l, r.default.registerPlugin("sprite", l)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.vertices = new ArrayBuffer(e), this.float32View = new Float32Array(this.vertices), this.uint32View = new Uint32Array(this.vertices)
        }
        return t.prototype.destroy = function() {
            this.vertices = null, this.positions = null, this.uvs = null, this.colors = null
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = d(n(48)),
        i = d(n(47)),
        o = d(n(82)),
        s = d(n(414)),
        a = d(n(407)),
        u = d(n(412)),
        l = d(n(3)),
        c = n(2),
        h = d(n(9)),
        f = d(n(51));

    function d(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var p = 0,
        v = 0,
        _ = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                r.vertSize = 5, r.vertByteSize = 4 * r.vertSize, r.size = l.default.SPRITE_BATCH_SIZE, r.buffers = [];
                for (var i = 1; i <= f.default.nextPow2(r.size); i *= 2) r.buffers.push(new u.default(4 * i * r.vertByteSize));
                r.indices = (0, o.default)(r.size), r.shader = null, r.currentIndex = 0, r.groups = [];
                for (var s = 0; s < r.size; s++) r.groups[s] = {
                    textures: [],
                    textureCount: 0,
                    ids: [],
                    size: 0,
                    start: 0,
                    blend: 0
                };
                return r.sprites = [], r.vertexBuffers = [], r.vaos = [], r.vaoMax = 2, r.vertexCount = 0, r.renderer.on("prerender", r.onPrerender, r), r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.onContextChange = function() {
                var t = this.renderer.gl;
                this.renderer.legacy ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS), l.default.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = (0, a.default)(this.MAX_TEXTURES, t)), this.shader = (0, s.default)(t, this.MAX_TEXTURES), this.indexBuffer = h.default.GLBuffer.createIndexBuffer(t, this.indices, t.STATIC_DRAW), this.renderer.bindVao(null);
                for (var e = this.shader.attributes, n = 0; n < this.vaoMax; n++) {
                    var r = this.vertexBuffers[n] = h.default.GLBuffer.createVertexBuffer(t, null, t.STREAM_DRAW),
                        i = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(r, e.aVertexPosition, t.FLOAT, !1, this.vertByteSize, 0).addAttribute(r, e.aTextureCoord, t.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(r, e.aColor, t.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                    e.aTextureId && i.addAttribute(r, e.aTextureId, t.FLOAT, !1, this.vertByteSize, 16), this.vaos[n] = i
                }
                this.vao = this.vaos[0], this.currentBlendMode = 99999, this.boundTextures = new Array(this.MAX_TEXTURES)
            }, e.prototype.onPrerender = function() {
                this.vertexCount = 0
            }, e.prototype.render = function(t) {
                this.currentIndex >= this.size && this.flush(), t._texture._uvs && (this.sprites[this.currentIndex++] = t)
            }, e.prototype.flush = function() {
                if (0 !== this.currentIndex) {
                    var t = this.renderer.gl,
                        e = this.MAX_TEXTURES,
                        n = f.default.nextPow2(this.currentIndex),
                        r = f.default.log2(n),
                        i = this.buffers[r],
                        o = this.sprites,
                        s = this.groups,
                        a = i.float32View,
                        u = i.uint32View,
                        d = this.boundTextures,
                        _ = this.renderer.boundTextures,
                        g = this.renderer.textureGC.count,
                        y = 0,
                        m = void 0,
                        b = void 0,
                        x = 1,
                        w = 0,
                        T = s[0],
                        E = void 0,
                        S = void 0,
                        P = c.premultiplyBlendMode[o[0]._texture.baseTexture.premultipliedAlpha ? 1 : 0][o[0].blendMode];
                    T.textureCount = 0, T.start = 0, T.blend = P, p++;
                    var O = void 0;
                    for (O = 0; O < e; ++O) {
                        var M = _[O];
                        M._enabled !== p ? (d[O] = M, M._virtalBoundId = O, M._enabled = p) : d[O] = this.renderer.emptyTextures[O]
                    }
                    for (p++, O = 0; O < this.currentIndex; ++O) {
                        var C = o[O];
                        o[O] = null, m = C._texture.baseTexture;
                        var A = c.premultiplyBlendMode[Number(m.premultipliedAlpha)][C.blendMode];
                        if (P !== A && (P = A, b = null, w = e, p++), b !== m && (b = m, m._enabled !== p)) {
                            if (w === e && (p++, T.size = O - T.start, w = 0, (T = s[x++]).blend = P, T.textureCount = 0, T.start = O), m.touched = g, -1 === m._virtalBoundId)
                                for (var I = 0; I < e; ++I) {
                                    var R = (I + v) % e,
                                        D = d[R];
                                    if (D._enabled !== p) {
                                        v++, D._virtalBoundId = -1, m._virtalBoundId = R, d[R] = m;
                                        break
                                    }
                                }
                            m._enabled = p, T.textureCount++, T.ids[w] = m._virtalBoundId, T.textures[w++] = m
                        }
                        if (E = C.vertexData, S = C._texture._uvs.uvsUint32, this.renderer.roundPixels) {
                            var L = this.renderer.resolution;
                            a[y] = (E[0] * L | 0) / L, a[y + 1] = (E[1] * L | 0) / L, a[y + 5] = (E[2] * L | 0) / L, a[y + 6] = (E[3] * L | 0) / L, a[y + 10] = (E[4] * L | 0) / L, a[y + 11] = (E[5] * L | 0) / L, a[y + 15] = (E[6] * L | 0) / L, a[y + 16] = (E[7] * L | 0) / L
                        } else a[y] = E[0], a[y + 1] = E[1], a[y + 5] = E[2], a[y + 6] = E[3], a[y + 10] = E[4], a[y + 11] = E[5], a[y + 15] = E[6], a[y + 16] = E[7];
                        u[y + 2] = S[0], u[y + 7] = S[1], u[y + 12] = S[2], u[y + 17] = S[3];
                        var k = Math.min(C.worldAlpha, 1),
                            j = k < 1 && m.premultipliedAlpha ? (0, c.premultiplyTint)(C._tintRGB, k) : C._tintRGB + (255 * k << 24);
                        u[y + 3] = u[y + 8] = u[y + 13] = u[y + 18] = j, a[y + 4] = a[y + 9] = a[y + 14] = a[y + 19] = m._virtalBoundId, y += 20
                    }
                    if (T.size = O - T.start, l.default.CAN_UPLOAD_SAME_BUFFER) this.vertexBuffers[this.vertexCount].upload(i.vertices, 0, !0);
                    else {
                        if (this.vaoMax <= this.vertexCount) {
                            this.vaoMax++;
                            var N = this.shader.attributes,
                                B = this.vertexBuffers[this.vertexCount] = h.default.GLBuffer.createVertexBuffer(t, null, t.STREAM_DRAW),
                                F = this.renderer.createVao().addIndex(this.indexBuffer).addAttribute(B, N.aVertexPosition, t.FLOAT, !1, this.vertByteSize, 0).addAttribute(B, N.aTextureCoord, t.UNSIGNED_SHORT, !0, this.vertByteSize, 8).addAttribute(B, N.aColor, t.UNSIGNED_BYTE, !0, this.vertByteSize, 12);
                            N.aTextureId && F.addAttribute(B, N.aTextureId, t.FLOAT, !1, this.vertByteSize, 16), this.vaos[this.vertexCount] = F
                        }
                        this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].upload(i.vertices, 0, !1), this.vertexCount++
                    }
                    for (O = 0; O < e; ++O) _[O]._virtalBoundId = -1;
                    for (O = 0; O < x; ++O) {
                        for (var U = s[O], z = U.textureCount, X = 0; X < z; X++) b = U.textures[X], _[U.ids[X]] !== b && this.renderer.bindTexture(b, U.ids[X], !0), b._virtalBoundId = -1;
                        this.renderer.state.setBlendMode(U.blend), t.drawElements(t.TRIANGLES, 6 * U.size, t.UNSIGNED_SHORT, 6 * U.start * 2)
                    }
                    this.currentIndex = 0
                }
            }, e.prototype.start = function() {
                this.renderer.bindShader(this.shader), l.default.CAN_UPLOAD_SAME_BUFFER && (this.renderer.bindVao(this.vaos[this.vertexCount]), this.vertexBuffers[this.vertexCount].bind())
            }, e.prototype.stop = function() {
                this.flush()
            }, e.prototype.destroy = function() {
                for (var e = 0; e < this.vaoMax; e++) this.vertexBuffers[e] && this.vertexBuffers[e].destroy(), this.vaos[e] && this.vaos[e].destroy();
                this.indexBuffer && this.indexBuffer.destroy(), this.renderer.off("prerender", this.onPrerender, this), t.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.vertexBuffers = null, this.vaos = null, this.indexBuffer = null, this.indices = null, this.sprites = null;
                for (var n = 0; n < this.buffers.length; ++n) this.buffers[n].destroy()
            }, e
        }(r.default);
    e.default = _, i.default.registerPlugin("sprite", _)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t, e) {
        var n = o;
        n = (n = n.replace(/%count%/gi, e)).replace(/%forloop%/gi, function(t) {
            var e = "";
            e += "\n", e += "\n";
            for (var n = 0; n < t; n++) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(textureId == " + n + ".0)"), e += "\n{", e += "\n\tcolor = texture2D(uSamplers[" + n + "], vTextureCoord);", e += "\n}";
            return (e += "\n") + "\n"
        }(e));
        for (var r = new i.default(t, "precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = aTextureCoord;\n    vTextureId = aTextureId;\n    vColor = aColor;\n}\n", n), s = [], a = 0; a < e; a++) s[a] = a;
        return r.bind(), r.uniforms.uSamplers = s, r
    };
    var r, i = (r = n(28)) && r.__esModule ? r : {
        default: r
    };
    n(12);
    var o = ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "varying float vTextureId;", "uniform sampler2D uSamplers[%count%];", "void main(void){", "vec4 color;", "float textureId = floor(vTextureId+0.5);", "%forloop%", "gl_FragColor = color * vColor;", "}"].join("\n")
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = d(n(78)),
        o = d(n(15)),
        s = n(5),
        a = n(2),
        u = n(0),
        l = d(n(3)),
        c = d(n(169)),
        h = d(n(168)),
        f = d(n(424));

    function d(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var p = {
            texture: !0,
            children: !1,
            baseTexture: !0
        },
        v = function(t) {
            function e(n, r, i) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e), (i = i || document.createElement("canvas")).width = 3, i.height = 3;
                var a = o.default.fromCanvas(i, l.default.SCALE_MODE, "text");
                a.orig = new s.Rectangle, a.trim = new s.Rectangle;
                var u = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, a));
                return o.default.addToCache(u._texture, u._texture.baseTexture.textureCacheIds[0]), u.canvas = i, u.context = u.canvas.getContext("2d"), u.resolution = l.default.RESOLUTION, u._text = null, u._style = null, u._styleListener = null, u._font = "", u.text = n, u.style = r, u.localStyleID = -1, u
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.updateText = function(t) {
                var e = this._style;
                if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), this.dirty || !t) {
                    this._font = this._style.toFontString();
                    var n = this.context,
                        r = h.default.measureText(this._text, this._style, this._style.wordWrap, this.canvas),
                        i = r.width,
                        o = r.height,
                        s = r.lines,
                        a = r.lineHeight,
                        u = r.lineWidths,
                        l = r.maxLineWidth,
                        c = r.fontProperties;
                    this.canvas.width = Math.ceil((Math.max(1, i) + 2 * e.padding) * this.resolution), this.canvas.height = Math.ceil((Math.max(1, o) + 2 * e.padding) * this.resolution), n.scale(this.resolution, this.resolution), n.clearRect(0, 0, this.canvas.width, this.canvas.height), n.font = this._font, n.strokeStyle = e.stroke, n.lineWidth = e.strokeThickness, n.textBaseline = e.textBaseline, n.lineJoin = e.lineJoin, n.miterLimit = e.miterLimit;
                    var f = void 0,
                        d = void 0;
                    if (e.dropShadow) {
                        n.fillStyle = e.dropShadowColor, n.globalAlpha = e.dropShadowAlpha, n.shadowBlur = e.dropShadowBlur, e.dropShadowBlur > 0 && (n.shadowColor = e.dropShadowColor);
                        for (var p = Math.cos(e.dropShadowAngle) * e.dropShadowDistance, v = Math.sin(e.dropShadowAngle) * e.dropShadowDistance, _ = 0; _ < s.length; _++) f = e.strokeThickness / 2, d = e.strokeThickness / 2 + _ * a + c.ascent, "right" === e.align ? f += l - u[_] : "center" === e.align && (f += (l - u[_]) / 2), e.fill && (this.drawLetterSpacing(s[_], f + p + e.padding, d + v + e.padding), e.stroke && e.strokeThickness && (n.strokeStyle = e.dropShadowColor, this.drawLetterSpacing(s[_], f + p + e.padding, d + v + e.padding, !0), n.strokeStyle = e.stroke))
                    }
                    n.shadowBlur = 0, n.globalAlpha = 1, n.fillStyle = this._generateFillStyle(e, s);
                    for (var g = 0; g < s.length; g++) f = e.strokeThickness / 2, d = e.strokeThickness / 2 + g * a + c.ascent, "right" === e.align ? f += l - u[g] : "center" === e.align && (f += (l - u[g]) / 2), e.stroke && e.strokeThickness && this.drawLetterSpacing(s[g], f + e.padding, d + e.padding, !0), e.fill && this.drawLetterSpacing(s[g], f + e.padding, d + e.padding);
                    this.updateTexture()
                }
            }, e.prototype.drawLetterSpacing = function(t, e, n) {
                var r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
                    i = this._style.letterSpacing;
                if (0 !== i)
                    for (var o = String.prototype.split.call(t, ""), s = e, a = 0, u = ""; a < t.length;) u = o[a++], r ? this.context.strokeText(u, s, n) : this.context.fillText(u, s, n), s += this.context.measureText(u).width + i;
                else r ? this.context.strokeText(t, e, n) : this.context.fillText(t, e, n)
            }, e.prototype.updateTexture = function() {
                var t = this.canvas;
                if (this._style.trim) {
                    var e = (0, f.default)(t);
                    t.width = e.width, t.height = e.height, this.context.putImageData(e.data, 0, 0)
                }
                var n = this._texture,
                    r = this._style,
                    i = r.trim ? 0 : r.padding,
                    o = n.baseTexture;
                o.hasLoaded = !0, o.resolution = this.resolution, o.realWidth = t.width, o.realHeight = t.height, o.width = t.width / this.resolution, o.height = t.height / this.resolution, n.trim.width = n._frame.width = t.width / this.resolution, n.trim.height = n._frame.height = t.height / this.resolution, n.trim.x = -i, n.trim.y = -i, n.orig.width = n._frame.width - 2 * i, n.orig.height = n._frame.height - 2 * i, this._onTextureUpdate(), o.emit("update", o), this.dirty = !1
            }, e.prototype.renderWebGL = function(e) {
                this.resolution !== e.resolution && (this.resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype.renderWebGL.call(this, e)
            }, e.prototype._renderCanvas = function(e) {
                this.resolution !== e.resolution && (this.resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype._renderCanvas.call(this, e)
            }, e.prototype.getLocalBounds = function(e) {
                return this.updateText(!0), t.prototype.getLocalBounds.call(this, e)
            }, e.prototype._calculateBounds = function() {
                this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData)
            }, e.prototype._onStyleChange = function() {
                this.dirty = !0
            }, e.prototype._generateFillStyle = function(t, e) {
                if (!Array.isArray(t.fill)) return t.fill;
                if (navigator.isCocoonJS) return t.fill[0];
                var n = void 0,
                    r = void 0,
                    i = void 0,
                    o = void 0,
                    s = this.canvas.width / this.resolution,
                    a = this.canvas.height / this.resolution,
                    l = t.fill.slice(),
                    c = t.fillGradientStops.slice();
                if (!c.length)
                    for (var h = l.length + 1, f = 1; f < h; ++f) c.push(f / h);
                if (l.unshift(t.fill[0]), c.unshift(0), l.push(t.fill[t.fill.length - 1]), c.push(1), t.fillGradientType === u.TEXT_GRADIENT.LINEAR_VERTICAL) {
                    n = this.context.createLinearGradient(s / 2, 0, s / 2, a), r = (l.length + 1) * e.length, i = 0;
                    for (var d = 0; d < e.length; d++) {
                        i += 1;
                        for (var p = 0; p < l.length; p++) o = "number" == typeof c[p] ? c[p] / e.length + d / e.length : i / r, n.addColorStop(o, l[p]), i++
                    }
                } else {
                    n = this.context.createLinearGradient(0, a / 2, s, a / 2), r = l.length + 1, i = 1;
                    for (var v = 0; v < l.length; v++) o = "number" == typeof c[v] ? c[v] : i / r, n.addColorStop(o, l[v]), i++
                }
                return n
            }, e.prototype.destroy = function(e) {
                "boolean" == typeof e && (e = {
                    children: e
                }), e = Object.assign({}, p, e), t.prototype.destroy.call(this, e), this.context = null, this.canvas = null, this._style = null
            }, r(e, [{
                key: "width",
                get: function() {
                    return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width
                },
                set: function(t) {
                    this.updateText(!0);
                    var e = (0, a.sign)(this.scale.x) || 1;
                    this.scale.x = e * t / this._texture.orig.width, this._width = t
                }
            }, {
                key: "height",
                get: function() {
                    return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height
                },
                set: function(t) {
                    this.updateText(!0);
                    var e = (0, a.sign)(this.scale.y) || 1;
                    this.scale.y = e * t / this._texture.orig.height, this._height = t
                }
            }, {
                key: "style",
                get: function() {
                    return this._style
                },
                set: function(t) {
                    (t = t || {}) instanceof c.default ? this._style = t : this._style = new c.default(t), this.localStyleID = -1, this.dirty = !0
                }
            }, {
                key: "text",
                get: function() {
                    return this._text
                },
                set: function(t) {
                    t = String("" === t || null == t ? " " : t), this._text !== t && (this._text = t, this.dirty = !0)
                }
            }]), e
        }(i.default);
    e.default = v
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = n(1),
        o = n(2),
        s = function() {
            function t(e, n) {
                var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.baseTexture = e, this.textures = {}, this.data = n, this.resolution = this._updateResolution(r || this.baseTexture.imageUrl), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null
            }
            return r(t, null, [{
                key: "BATCH_SIZE",
                get: function() {
                    return 1e3
                }
            }]), t.prototype._updateResolution = function(t) {
                var e = this.data.meta.scale,
                    n = (0, o.getResolutionOfUrl)(t, null);
                return null === n && (n = void 0 !== e ? parseFloat(e) : 1), 1 !== n && (this.baseTexture.resolution = n, this.baseTexture.update()), n
            }, t.prototype.parse = function(e) {
                this._batchIndex = 0, this._callback = e, this._frameKeys.length <= t.BATCH_SIZE ? (this._processFrames(0), this._parseComplete()) : this._nextBatch()
            }, t.prototype._processFrames = function(e) {
                for (var n = e, r = t.BATCH_SIZE, o = this.baseTexture.sourceScale; n - e < r && n < this._frameKeys.length;) {
                    var s = this._frameKeys[n],
                        a = this._frames[s],
                        u = a.frame;
                    if (u) {
                        var l, c = null,
                            h = !1 !== a.trimmed && a.sourceSize ? a.sourceSize : a.frame,
                            f = new i.Rectangle(0, 0, Math.floor(h.w * o) / this.resolution, Math.floor(h.h * o) / this.resolution);
                        l = a.rotated ? new i.Rectangle(Math.floor(u.x * o) / this.resolution, Math.floor(u.y * o) / this.resolution, Math.floor(u.h * o) / this.resolution, Math.floor(u.w * o) / this.resolution) : new i.Rectangle(Math.floor(u.x * o) / this.resolution, Math.floor(u.y * o) / this.resolution, Math.floor(u.w * o) / this.resolution, Math.floor(u.h * o) / this.resolution), !1 !== a.trimmed && a.spriteSourceSize && (c = new i.Rectangle(Math.floor(a.spriteSourceSize.x * o) / this.resolution, Math.floor(a.spriteSourceSize.y * o) / this.resolution, Math.floor(u.w * o) / this.resolution, Math.floor(u.h * o) / this.resolution)), this.textures[s] = new i.Texture(this.baseTexture, l, f, c, a.rotated ? 2 : 0), i.Texture.addToCache(this.textures[s], s)
                    }
                    n++
                }
            }, t.prototype._parseComplete = function() {
                var t = this._callback;
                this._callback = null, this._batchIndex = 0, t.call(this, this.textures)
            }, t.prototype._nextBatch = function() {
                var e = this;
                this._processFrames(this._batchIndex * t.BATCH_SIZE), this._batchIndex++, setTimeout(function() {
                    e._batchIndex * t.BATCH_SIZE < e._frameKeys.length ? e._nextBatch() : e._parseComplete()
                }, 0)
            }, t.prototype.destroy = function() {
                var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
                for (var e in this.textures) this.textures[e].destroy();
                this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, t && this.baseTexture.destroy(), this.baseTexture = null
            }, t
        }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = a(n(3)),
        o = n(0),
        s = a(n(418));

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var u = function() {
        function t() {
            var e = this;
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this._head = new s.default(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this.autoStart = !1, this.deltaTime = 1, this.elapsedMS = 1 / i.default.TARGET_FPMS, this.lastTime = -1, this.speed = 1, this.started = !1, this._tick = function(t) {
                e._requestId = null, e.started && (e.update(t), e.started && null === e._requestId && e._head.next && (e._requestId = requestAnimationFrame(e._tick)))
            }
        }
        return t.prototype._requestIfNeeded = function() {
            null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._requestId = requestAnimationFrame(this._tick))
        }, t.prototype._cancelIfNeeded = function() {
            null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null)
        }, t.prototype._startIfPossible = function() {
            this.started ? this._requestIfNeeded() : this.autoStart && this.start()
        }, t.prototype.add = function(t, e) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : o.UPDATE_PRIORITY.NORMAL;
            return this._addListener(new s.default(t, e, n))
        }, t.prototype.addOnce = function(t, e) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : o.UPDATE_PRIORITY.NORMAL;
            return this._addListener(new s.default(t, e, n, !0))
        }, t.prototype._addListener = function(t) {
            var e = this._head.next,
                n = this._head;
            if (e) {
                for (; e;) {
                    if (t.priority > e.priority) {
                        t.connect(n);
                        break
                    }
                    n = e, e = e.next
                }
                t.previous || t.connect(n)
            } else t.connect(n);
            return this._startIfPossible(), this
        }, t.prototype.remove = function(t, e) {
            for (var n = this._head.next; n;) n = n.match(t, e) ? n.destroy() : n.next;
            return this._head.next || this._cancelIfNeeded(), this
        }, t.prototype.start = function() {
            this.started || (this.started = !0, this._requestIfNeeded())
        }, t.prototype.stop = function() {
            this.started && (this.started = !1, this._cancelIfNeeded())
        }, t.prototype.destroy = function() {
            this.stop();
            for (var t = this._head.next; t;) t = t.destroy(!0);
            this._head.destroy(), this._head = null
        }, t.prototype.update = function() {
            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : performance.now(),
                e = void 0;
            if (t > this.lastTime) {
                (e = this.elapsedMS = t - this.lastTime) > this._maxElapsedMS && (e = this._maxElapsedMS), this.deltaTime = e * i.default.TARGET_FPMS * this.speed;
                for (var n = this._head, r = n.next; r;) r = r.emit(this.deltaTime);
                n.next || this._cancelIfNeeded()
            } else this.deltaTime = this.elapsedMS = 0;
            this.lastTime = t
        }, r(t, [{
            key: "FPS",
            get: function() {
                return 1e3 / this.elapsedMS
            }
        }, {
            key: "minFPS",
            get: function() {
                return 1e3 / this._maxElapsedMS
            },
            set: function(t) {
                var e = Math.min(Math.max(0, t) / 1e3, i.default.TARGET_FPMS);
                this._maxElapsedMS = 1 / e
            }
        }]), t
    }();
    e.default = u
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e) {
            var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
                r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0,
                i = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.fn = e, this.context = n, this.priority = r, this.once = i, this.next = null, this.previous = null, this._destroyed = !1
        }
        return t.prototype.match = function(t, e) {
            return e = e || null, this.fn === t && this.context === e
        }, t.prototype.emit = function(t) {
            this.fn && (this.context ? this.fn.call(this.context, t) : this.fn(t));
            var e = this.next;
            return this.once && this.destroy(!0), this._destroyed && (this.next = null), e
        }, t.prototype.connect = function(t) {
            this.previous = t, t.next && (t.next.previous = this), this.next = t.next, t.next = this
        }, t.prototype.destroy = function() {
            var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
            this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous);
            var e = this.next;
            return this.next = t ? null : e, this.previous = null, e
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function() {
        return !(navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform))
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function() {
        for (var t = [], e = [], n = 0; n < 32; n++) t[n] = n, e[n] = n;
        t[r.BLEND_MODES.NORMAL_NPM] = r.BLEND_MODES.NORMAL, t[r.BLEND_MODES.ADD_NPM] = r.BLEND_MODES.ADD, t[r.BLEND_MODES.SCREEN_NPM] = r.BLEND_MODES.SCREEN, e[r.BLEND_MODES.NORMAL] = r.BLEND_MODES.NORMAL_NPM, e[r.BLEND_MODES.ADD] = r.BLEND_MODES.ADD_NPM, e[r.BLEND_MODES.SCREEN] = r.BLEND_MODES.SCREEN_NPM;
        var i = [];
        return i.push(e), i.push(t), i
    };
    var r = n(0)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        return i.default.tablet || i.default.phone ? 4 : t
    };
    var r, i = (r = n(53)) && r.__esModule ? r : {
        default: r
    }
}, function(t, e, n) {
    "use strict";

    function r(t, e) {
        if (t && e)
            for (var n = Object.keys(e), r = 0; r < n.length; ++r) {
                var i = n[r];
                Object.defineProperty(t, i, Object.getOwnPropertyDescriptor(e, i))
            }
    }
    e.__esModule = !0, e.mixin = r, e.delayMixin = function(t, e) {
        i.push(t, e)
    }, e.performMixins = function() {
        for (var t = 0; t < i.length; t += 2) r(i[t], i[t + 1]);
        i.length = 0
    };
    var i = []
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = {
        mixin: function(t) {
            ! function(t) {
                t.__plugins = {}, t.registerPlugin = function(e, n) {
                    t.__plugins[e] = n
                }, t.prototype.initPlugins = function() {
                    for (var e in this.plugins = this.plugins || {}, t.__plugins) this.plugins[e] = new t.__plugins[e](this)
                }, t.prototype.destroyPlugins = function() {
                    for (var t in this.plugins) this.plugins[t].destroy(), this.plugins[t] = null;
                    this.plugins = null
                }
            }(t)
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        var e = t.width,
            n = t.height,
            r = t.getContext("2d"),
            i = r.getImageData(0, 0, e, n).data,
            o = i.length,
            s = {
                top: null,
                left: null,
                right: null,
                bottom: null
            },
            a = void 0,
            u = void 0,
            l = void 0;
        for (a = 0; a < o; a += 4) 0 !== i[a + 3] && (u = a / 4 % e, l = ~~(a / 4 / e), null === s.top && (s.top = l), null === s.left ? s.left = u : u < s.left && (s.left = u), null === s.right ? s.right = u + 1 : s.right < u && (s.right = u + 1), null === s.bottom ? s.bottom = l : s.bottom < l && (s.bottom = l));
        return e = s.right - s.left, {
            height: n = s.bottom - s.top + 1,
            width: e,
            data: r.getImageData(s.left, s.top, e, n)
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.default = function(t) {
        var e = t.mesh,
            n = t.particles,
            r = t.extras,
            o = t.filters,
            s = t.prepare,
            a = t.loaders,
            u = t.interaction;
        Object.defineProperties(t, {
            SpriteBatch: {
                get: function() {
                    throw new ReferenceError("SpriteBatch does not exist any more, please use the new ParticleContainer instead.")
                }
            },
            AssetLoader: {
                get: function() {
                    throw new ReferenceError("The loader system was overhauled in PixiJS v3, please see the new PIXI.loaders.Loader class.")
                }
            },
            Stage: {
                get: function() {
                    return i("You do not need to use a PIXI Stage any more, you can simply render any container."), t.Container
                }
            },
            DisplayObjectContainer: {
                get: function() {
                    return i("DisplayObjectContainer has been shortened to Container, please use Container from now on."), t.Container
                }
            },
            Strip: {
                get: function() {
                    return i("The Strip class has been renamed to Mesh and moved to mesh.Mesh, please use mesh.Mesh from now on."), e.Mesh
                }
            },
            Rope: {
                get: function() {
                    return i("The Rope class has been moved to mesh.Rope, please use mesh.Rope from now on."), e.Rope
                }
            },
            ParticleContainer: {
                get: function() {
                    return i("The ParticleContainer class has been moved to particles.ParticleContainer, please use particles.ParticleContainer from now on."), n.ParticleContainer
                }
            },
            MovieClip: {
                get: function() {
                    return i("The MovieClip class has been moved to extras.AnimatedSprite, please use extras.AnimatedSprite."), r.AnimatedSprite
                }
            },
            TilingSprite: {
                get: function() {
                    return i("The TilingSprite class has been moved to extras.TilingSprite, please use extras.TilingSprite from now on."), r.TilingSprite
                }
            },
            BitmapText: {
                get: function() {
                    return i("The BitmapText class has been moved to extras.BitmapText, please use extras.BitmapText from now on."), r.BitmapText
                }
            },
            blendModes: {
                get: function() {
                    return i("The blendModes has been moved to BLEND_MODES, please use BLEND_MODES from now on."), t.BLEND_MODES
                }
            },
            scaleModes: {
                get: function() {
                    return i("The scaleModes has been moved to SCALE_MODES, please use SCALE_MODES from now on."), t.SCALE_MODES
                }
            },
            BaseTextureCache: {
                get: function() {
                    return i("The BaseTextureCache class has been moved to utils.BaseTextureCache, please use utils.BaseTextureCache from now on."), t.utils.BaseTextureCache
                }
            },
            TextureCache: {
                get: function() {
                    return i("The TextureCache class has been moved to utils.TextureCache, please use utils.TextureCache from now on."), t.utils.TextureCache
                }
            },
            math: {
                get: function() {
                    return i("The math namespace is deprecated, please access members already accessible on PIXI."), t
                }
            },
            AbstractFilter: {
                get: function() {
                    return i("AstractFilter has been renamed to Filter, please use PIXI.Filter"), t.Filter
                }
            },
            TransformManual: {
                get: function() {
                    return i("TransformManual has been renamed to TransformBase, please update your pixi-spine"), t.TransformBase
                }
            },
            TARGET_FPMS: {
                get: function() {
                    return i("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), t.settings.TARGET_FPMS
                },
                set: function(e) {
                    i("PIXI.TARGET_FPMS has been deprecated, please use PIXI.settings.TARGET_FPMS"), t.settings.TARGET_FPMS = e
                }
            },
            FILTER_RESOLUTION: {
                get: function() {
                    return i("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), t.settings.FILTER_RESOLUTION
                },
                set: function(e) {
                    i("PIXI.FILTER_RESOLUTION has been deprecated, please use PIXI.settings.FILTER_RESOLUTION"), t.settings.FILTER_RESOLUTION = e
                }
            },
            RESOLUTION: {
                get: function() {
                    return i("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), t.settings.RESOLUTION
                },
                set: function(e) {
                    i("PIXI.RESOLUTION has been deprecated, please use PIXI.settings.RESOLUTION"), t.settings.RESOLUTION = e
                }
            },
            MIPMAP_TEXTURES: {
                get: function() {
                    return i("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), t.settings.MIPMAP_TEXTURES
                },
                set: function(e) {
                    i("PIXI.MIPMAP_TEXTURES has been deprecated, please use PIXI.settings.MIPMAP_TEXTURES"), t.settings.MIPMAP_TEXTURES = e
                }
            },
            SPRITE_BATCH_SIZE: {
                get: function() {
                    return i("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), t.settings.SPRITE_BATCH_SIZE
                },
                set: function(e) {
                    i("PIXI.SPRITE_BATCH_SIZE has been deprecated, please use PIXI.settings.SPRITE_BATCH_SIZE"), t.settings.SPRITE_BATCH_SIZE = e
                }
            },
            SPRITE_MAX_TEXTURES: {
                get: function() {
                    return i("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), t.settings.SPRITE_MAX_TEXTURES
                },
                set: function(e) {
                    i("PIXI.SPRITE_MAX_TEXTURES has been deprecated, please use PIXI.settings.SPRITE_MAX_TEXTURES"), t.settings.SPRITE_MAX_TEXTURES = e
                }
            },
            RETINA_PREFIX: {
                get: function() {
                    return i("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), t.settings.RETINA_PREFIX
                },
                set: function(e) {
                    i("PIXI.RETINA_PREFIX has been deprecated, please use PIXI.settings.RETINA_PREFIX"), t.settings.RETINA_PREFIX = e
                }
            },
            DEFAULT_RENDER_OPTIONS: {
                get: function() {
                    return i("PIXI.DEFAULT_RENDER_OPTIONS has been deprecated, please use PIXI.settings.DEFAULT_RENDER_OPTIONS"), t.settings.RENDER_OPTIONS
                }
            }
        });
        for (var l = [{
                parent: "TRANSFORM_MODE",
                target: "TRANSFORM_MODE"
            }, {
                parent: "GC_MODES",
                target: "GC_MODE"
            }, {
                parent: "WRAP_MODES",
                target: "WRAP_MODE"
            }, {
                parent: "SCALE_MODES",
                target: "SCALE_MODE"
            }, {
                parent: "PRECISION",
                target: "PRECISION_FRAGMENT"
            }], c = function(e) {
                var n = l[e];
                Object.defineProperty(t[n.parent], "DEFAULT", {
                    get: function() {
                        return i("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), t.settings[n.target]
                    },
                    set: function(e) {
                        i("PIXI." + n.parent + ".DEFAULT has been deprecated, please use PIXI.settings." + n.target), t.settings[n.target] = e
                    }
                })
            }, h = 0; h < l.length; h++) c(h);
        Object.defineProperties(t.settings, {
            PRECISION: {
                get: function() {
                    return i("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), t.settings.PRECISION_FRAGMENT
                },
                set: function(e) {
                    i("PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT"), t.settings.PRECISION_FRAGMENT = e
                }
            }
        }), r.AnimatedSprite && Object.defineProperties(r, {
            MovieClip: {
                get: function() {
                    return i("The MovieClip class has been renamed to AnimatedSprite, please use AnimatedSprite from now on."), r.AnimatedSprite
                }
            }
        }), r && Object.defineProperties(r, {
            TextureTransform: {
                get: function() {
                    return i("The TextureTransform class has been renamed to TextureMatrix, please use PIXI.TextureMatrix from now on."), t.TextureMatrix
                }
            }
        }), t.DisplayObject.prototype.generateTexture = function(t, e, n) {
            return i("generateTexture has moved to the renderer, please use renderer.generateTexture(displayObject)"), t.generateTexture(this, e, n)
        }, t.Graphics.prototype.generateTexture = function(t, e) {
            return i("graphics generate texture has moved to the renderer. Or to render a graphics to a texture using canvas please use generateCanvasTexture"), this.generateCanvasTexture(t, e)
        }, t.GroupD8.isSwapWidthHeight = function(e) {
            return i("GroupD8.isSwapWidthHeight was renamed to GroupD8.isVertical"), t.GroupD8.isVertical(e)
        }, t.RenderTexture.prototype.render = function(t, e, n, r) {
            this.legacyRenderer.render(t, this, n, e, !r), i("RenderTexture.render is now deprecated, please use renderer.render(displayObject, renderTexture)")
        }, t.RenderTexture.prototype.getImage = function(t) {
            return i("RenderTexture.getImage is now deprecated, please use renderer.extract.image(target)"), this.legacyRenderer.extract.image(t)
        }, t.RenderTexture.prototype.getBase64 = function(t) {
            return i("RenderTexture.getBase64 is now deprecated, please use renderer.extract.base64(target)"), this.legacyRenderer.extract.base64(t)
        }, t.RenderTexture.prototype.getCanvas = function(t) {
            return i("RenderTexture.getCanvas is now deprecated, please use renderer.extract.canvas(target)"), this.legacyRenderer.extract.canvas(t)
        }, t.RenderTexture.prototype.getPixels = function(t) {
            return i("RenderTexture.getPixels is now deprecated, please use renderer.extract.pixels(target)"), this.legacyRenderer.pixels(t)
        }, t.Sprite.prototype.setTexture = function(t) {
            this.texture = t, i("setTexture is now deprecated, please use the texture property, e.g : sprite.texture = texture;")
        }, r.BitmapText && (r.BitmapText.prototype.setText = function(t) {
            this.text = t, i("setText is now deprecated, please use the text property, e.g : myBitmapText.text = 'my text';")
        }), t.Text.prototype.setText = function(t) {
            this.text = t, i("setText is now deprecated, please use the text property, e.g : myText.text = 'my text';")
        }, t.Text.calculateFontProperties = function(e) {
            return i("Text.calculateFontProperties is now deprecated, please use the TextMetrics.measureFont"), t.TextMetrics.measureFont(e)
        }, Object.defineProperties(t.Text, {
            fontPropertiesCache: {
                get: function() {
                    return i("Text.fontPropertiesCache is deprecated"), t.TextMetrics._fonts
                }
            },
            fontPropertiesCanvas: {
                get: function() {
                    return i("Text.fontPropertiesCanvas is deprecated"), t.TextMetrics._canvas
                }
            },
            fontPropertiesContext: {
                get: function() {
                    return i("Text.fontPropertiesContext is deprecated"), t.TextMetrics._context
                }
            }
        }), t.Text.prototype.setStyle = function(t) {
            this.style = t, i("setStyle is now deprecated, please use the style property, e.g : myText.style = style;")
        }, t.Text.prototype.determineFontProperties = function(e) {
            return i("determineFontProperties is now deprecated, please use TextMetrics.measureFont method"), t.TextMetrics.measureFont(e)
        }, t.Text.getFontStyle = function(e) {
            return i("getFontStyle is now deprecated, please use TextStyle.toFontString() instead"), (e = e || {}) instanceof t.TextStyle || (e = new t.TextStyle(e)), e.toFontString()
        }, Object.defineProperties(t.TextStyle.prototype, {
            font: {
                get: function() {
                    i("text style property 'font' is now deprecated, please use the 'fontFamily', 'fontSize', 'fontStyle', 'fontVariant' and 'fontWeight' properties from now on");
                    var t = "number" == typeof this._fontSize ? this._fontSize + "px" : this._fontSize;
                    return this._fontStyle + " " + this._fontVariant + " " + this._fontWeight + " " + t + " " + this._fontFamily
                },
                set: function(t) {
                    i("text style property 'font' is now deprecated, please use the 'fontFamily','fontSize',fontStyle','fontVariant' and 'fontWeight' properties from now on"), t.indexOf("italic") > 1 ? this._fontStyle = "italic" : t.indexOf("oblique") > -1 ? this._fontStyle = "oblique" : this._fontStyle = "normal", t.indexOf("small-caps") > -1 ? this._fontVariant = "small-caps" : this._fontVariant = "normal";
                    var e = t.split(" "),
                        n = -1;
                    this._fontSize = 26;
                    for (var r = 0; r < e.length; ++r)
                        if (e[r].match(/(px|pt|em|%)/)) {
                            n = r, this._fontSize = e[r];
                            break
                        }
                    this._fontWeight = "normal";
                    for (var o = 0; o < n; ++o)
                        if (e[o].match(/(bold|bolder|lighter|100|200|300|400|500|600|700|800|900)/)) {
                            this._fontWeight = e[o];
                            break
                        }
                    if (n > -1 && n < e.length - 1) {
                        this._fontFamily = "";
                        for (var s = n + 1; s < e.length; ++s) this._fontFamily += e[s] + " ";
                        this._fontFamily = this._fontFamily.slice(0, -1)
                    } else this._fontFamily = "Arial";
                    this.styleID++
                }
            }
        }), t.Texture.prototype.setFrame = function(t) {
            this.frame = t, i("setFrame is now deprecated, please use the frame property, e.g: myTexture.frame = frame;")
        }, t.Texture.addTextureToCache = function(e, n) {
            t.Texture.addToCache(e, n), i("Texture.addTextureToCache is deprecated, please use Texture.addToCache from now on.")
        }, t.Texture.removeTextureFromCache = function(e) {
            return i("Texture.removeTextureFromCache is deprecated, please use Texture.removeFromCache from now on. Be aware that Texture.removeFromCache does not automatically its BaseTexture from the BaseTextureCache. For that, use BaseTexture.removeFromCache"), t.BaseTexture.removeFromCache(e), t.Texture.removeFromCache(e)
        }, Object.defineProperties(o, {
            AbstractFilter: {
                get: function() {
                    return i("AstractFilter has been renamed to Filter, please use PIXI.Filter"), t.AbstractFilter
                }
            },
            SpriteMaskFilter: {
                get: function() {
                    return i("filters.SpriteMaskFilter is an undocumented alias, please use SpriteMaskFilter from now on."), t.SpriteMaskFilter
                }
            },
            VoidFilter: {
                get: function() {
                    return i("VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter"), o.AlphaFilter
                }
            }
        }), t.utils.uuid = function() {
            return i("utils.uuid() is deprecated, please use utils.uid() from now on."), t.utils.uid()
        }, t.utils.canUseNewCanvasBlendModes = function() {
            return i("utils.canUseNewCanvasBlendModes() is deprecated, please use CanvasTinter.canUseMultiply from now on"), t.CanvasTinter.canUseMultiply
        };
        var f = !0;
        if (Object.defineProperty(t.utils, "_saidHello", {
                set: function(t) {
                    t && (i("PIXI.utils._saidHello is deprecated, please use PIXI.utils.skipHello()"), this.skipHello()), f = t
                },
                get: function() {
                    return f
                }
            }), s.BasePrepare && (s.BasePrepare.prototype.register = function(t, e) {
                return i("renderer.plugins.prepare.register is now deprecated, please use renderer.plugins.prepare.registerFindHook & renderer.plugins.prepare.registerUploadHook"), t && this.registerFindHook(t), e && this.registerUploadHook(e), this
            }), s.canvas && Object.defineProperty(s.canvas, "UPLOADS_PER_FRAME", {
                set: function() {
                    i("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                },
                get: function() {
                    return i("PIXI.CanvasPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                }
            }), s.webgl && Object.defineProperty(s.webgl, "UPLOADS_PER_FRAME", {
                set: function() {
                    i("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please set renderer.plugins.prepare.limiter.maxItemsPerFrame on your renderer")
                },
                get: function() {
                    return i("PIXI.WebGLPrepare.UPLOADS_PER_FRAME has been removed. Please use renderer.plugins.prepare.limiter"), NaN
                }
            }), a.Loader) {
            var d = a.Resource,
                p = a.Loader;
            Object.defineProperties(d.prototype, {
                isJson: {
                    get: function() {
                        return i("The isJson property is deprecated, please use `resource.type === Resource.TYPE.JSON`."), this.type === d.TYPE.JSON
                    }
                },
                isXml: {
                    get: function() {
                        return i("The isXml property is deprecated, please use `resource.type === Resource.TYPE.XML`."), this.type === d.TYPE.XML
                    }
                },
                isImage: {
                    get: function() {
                        return i("The isImage property is deprecated, please use `resource.type === Resource.TYPE.IMAGE`."), this.type === d.TYPE.IMAGE
                    }
                },
                isAudio: {
                    get: function() {
                        return i("The isAudio property is deprecated, please use `resource.type === Resource.TYPE.AUDIO`."), this.type === d.TYPE.AUDIO
                    }
                },
                isVideo: {
                    get: function() {
                        return i("The isVideo property is deprecated, please use `resource.type === Resource.TYPE.VIDEO`."), this.type === d.TYPE.VIDEO
                    }
                }
            }), Object.defineProperties(p.prototype, {
                before: {
                    get: function() {
                        return i("The before() method is deprecated, please use pre()."), this.pre
                    }
                },
                after: {
                    get: function() {
                        return i("The after() method is deprecated, please use use()."), this.use
                    }
                }
            })
        }
        u.interactiveTarget && Object.defineProperty(u.interactiveTarget, "defaultCursor", {
            set: function(t) {
                i("Property defaultCursor has been replaced with 'cursor'. "), this.cursor = t
            },
            get: function() {
                return i("Property defaultCursor has been replaced with 'cursor'. "), this.cursor
            }
        }), u.InteractionManager && (Object.defineProperty(u.InteractionManager, "defaultCursorStyle", {
            set: function(t) {
                i("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default = t
            },
            get: function() {
                return i("Property defaultCursorStyle has been replaced with 'cursorStyles.default'. "), this.cursorStyles.default
            }
        }), Object.defineProperty(u.InteractionManager, "currentCursorStyle", {
            set: function(t) {
                i("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode = t
            },
            get: function() {
                return i("Property currentCursorStyle has been removed.See the currentCursorMode property, which works differently."), this.currentCursorMode
            }
        }))
    };
    var r = {};

    function i(t) {
        if (!r[t]) {
            var e = (new Error).stack;
            void 0 === e || (e = e.split("\n").splice(3).join("\n"), console.groupCollapsed), r[t] = !0
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = new r.Rectangle,
        o = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e, e.extract = this
            }
            return t.prototype.image = function(t) {
                var e = new Image;
                return e.src = this.base64(t), e
            }, t.prototype.base64 = function(t) {
                return this.canvas(t).toDataURL()
            }, t.prototype.canvas = function(t) {
                var e = this.renderer,
                    n = void 0,
                    o = void 0,
                    s = void 0,
                    a = void 0;
                t && (a = t instanceof r.RenderTexture ? t : e.generateTexture(t)), a ? (n = a.baseTexture._canvasRenderTarget.context, o = a.baseTexture._canvasRenderTarget.resolution, s = a.frame) : (n = e.rootContext, (s = i).width = this.renderer.width, s.height = this.renderer.height);
                var u = s.width * o,
                    l = s.height * o,
                    c = new r.CanvasRenderTarget(u, l),
                    h = n.getImageData(s.x * o, s.y * o, u, l);
                return c.context.putImageData(h, 0, 0), c.canvas
            }, t.prototype.pixels = function(t) {
                var e = this.renderer,
                    n = void 0,
                    o = void 0,
                    s = void 0,
                    a = void 0;
                return t && (a = t instanceof r.RenderTexture ? t : e.generateTexture(t)), a ? (n = a.baseTexture._canvasRenderTarget.context, o = a.baseTexture._canvasRenderTarget.resolution, s = a.frame) : (n = e.rootContext, (s = i).width = e.width, s.height = e.height), n.getImageData(0, 0, s.width * o, s.height * o).data
            }, t.prototype.destroy = function() {
                this.renderer.extract = null, this.renderer = null
            }, t
        }();
    e.default = o, r.CanvasRenderer.registerPlugin("extract", o)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(428);
    Object.defineProperty(e, "webgl", {
        enumerable: !0,
        get: function() {
            return o(r).default
        }
    });
    var i = n(426);

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "canvas", {
        enumerable: !0,
        get: function() {
            return o(i).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = new r.Rectangle,
        o = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e, e.extract = this
            }
            return t.prototype.image = function(t) {
                var e = new Image;
                return e.src = this.base64(t), e
            }, t.prototype.base64 = function(t) {
                return this.canvas(t).toDataURL()
            }, t.prototype.canvas = function(t) {
                var e = this.renderer,
                    n = void 0,
                    o = void 0,
                    s = void 0,
                    a = !1,
                    u = void 0,
                    l = !1;
                t && (t instanceof r.RenderTexture ? u = t : (u = this.renderer.generateTexture(t), l = !0)), u ? (o = (n = u.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID]).resolution, s = u.frame, a = !1) : (o = (n = this.renderer.rootRenderTarget).resolution, a = !0, (s = i).width = n.size.width, s.height = n.size.height);
                var c = s.width * o,
                    h = s.height * o,
                    f = new r.CanvasRenderTarget(c, h);
                if (n) {
                    e.bindRenderTarget(n);
                    var d = new Uint8Array(4 * c * h),
                        p = e.gl;
                    p.readPixels(s.x * o, s.y * o, c, h, p.RGBA, p.UNSIGNED_BYTE, d);
                    var v = f.context.getImageData(0, 0, c, h);
                    v.data.set(d), f.context.putImageData(v, 0, 0), a && (f.context.scale(1, -1), f.context.drawImage(f.canvas, 0, -h))
                }
                return l && u.destroy(!0), f.canvas
            }, t.prototype.pixels = function(t) {
                var e = this.renderer,
                    n = void 0,
                    o = void 0,
                    s = void 0,
                    a = void 0,
                    u = !1;
                t && (t instanceof r.RenderTexture ? a = t : (a = this.renderer.generateTexture(t), u = !0)), a ? (o = (n = a.baseTexture._glRenderTargets[this.renderer.CONTEXT_UID]).resolution, s = a.frame) : (o = (n = this.renderer.rootRenderTarget).resolution, (s = i).width = n.size.width, s.height = n.size.height);
                var l = s.width * o,
                    c = s.height * o,
                    h = new Uint8Array(4 * l * c);
                if (n) {
                    e.bindRenderTarget(n);
                    var f = e.gl;
                    f.readPixels(s.x * o, s.y * o, l, c, f.RGBA, f.UNSIGNED_BYTE, h)
                }
                return u && a.destroy(!0), h
            }, t.prototype.destroy = function() {
                this.renderer.extract = null, this.renderer = null
            }, t
        }();
    e.default = o, r.WebGLRenderer.registerPlugin("extract", o)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = function(t) {
            function e(n, r) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var o = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n[0] instanceof i.Texture ? n[0] : n[0].texture));
                return o._textures = null, o._durations = null, o.textures = n, o._autoUpdate = !1 !== r, o.animationSpeed = 1, o.loop = !0, o.onComplete = null, o.onFrameChange = null, o.onLoop = null, o._currentTime = 0, o.playing = !1, o
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.stop = function() {
                this.playing && (this.playing = !1, this._autoUpdate && i.ticker.shared.remove(this.update, this))
            }, e.prototype.play = function() {
                this.playing || (this.playing = !0, this._autoUpdate && i.ticker.shared.add(this.update, this, i.UPDATE_PRIORITY.HIGH))
            }, e.prototype.gotoAndStop = function(t) {
                this.stop();
                var e = this.currentFrame;
                this._currentTime = t, e !== this.currentFrame && this.updateTexture()
            }, e.prototype.gotoAndPlay = function(t) {
                var e = this.currentFrame;
                this._currentTime = t, e !== this.currentFrame && this.updateTexture(), this.play()
            }, e.prototype.update = function(t) {
                var e = this.animationSpeed * t,
                    n = this.currentFrame;
                if (null !== this._durations) {
                    var r = this._currentTime % 1 * this._durations[this.currentFrame];
                    for (r += e / 60 * 1e3; r < 0;) this._currentTime--, r += this._durations[this.currentFrame];
                    var i = Math.sign(this.animationSpeed * t);
                    for (this._currentTime = Math.floor(this._currentTime); r >= this._durations[this.currentFrame];) r -= this._durations[this.currentFrame] * i, this._currentTime += i;
                    this._currentTime += r / this._durations[this.currentFrame]
                } else this._currentTime += e;
                this._currentTime < 0 && !this.loop ? (this.gotoAndStop(0), this.onComplete && this.onComplete()) : this._currentTime >= this._textures.length && !this.loop ? (this.gotoAndStop(this._textures.length - 1), this.onComplete && this.onComplete()) : n !== this.currentFrame && (this.loop && this.onLoop && (this.animationSpeed > 0 && this.currentFrame < n ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > n && this.onLoop()), this.updateTexture())
            }, e.prototype.updateTexture = function() {
                this._texture = this._textures[this.currentFrame], this._textureID = -1, this.cachedTint = 16777215, this.onFrameChange && this.onFrameChange(this.currentFrame)
            }, e.prototype.destroy = function(e) {
                this.stop(), t.prototype.destroy.call(this, e)
            }, e.fromFrames = function(t) {
                for (var n = [], r = 0; r < t.length; ++r) n.push(i.Texture.fromFrame(t[r]));
                return new e(n)
            }, e.fromImages = function(t) {
                for (var n = [], r = 0; r < t.length; ++r) n.push(i.Texture.fromImage(t[r]));
                return new e(n)
            }, r(e, [{
                key: "totalFrames",
                get: function() {
                    return this._textures.length
                }
            }, {
                key: "textures",
                get: function() {
                    return this._textures
                },
                set: function(t) {
                    if (t[0] instanceof i.Texture) this._textures = t, this._durations = null;
                    else {
                        this._textures = [], this._durations = [];
                        for (var e = 0; e < t.length; e++) this._textures.push(t[e].texture), this._durations.push(t[e].time)
                    }
                    this.gotoAndStop(0), this.updateTexture()
                }
            }, {
                key: "currentFrame",
                get: function() {
                    var t = Math.floor(this._currentTime) % this._textures.length;
                    return t < 0 && (t += this._textures.length), t
                }
            }]), e
        }(i.Sprite);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = u(n(161)),
        s = n(2),
        a = u(n(3));

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var l = function(t) {
        function e(n) {
            var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this));
            return i._textWidth = 0, i._textHeight = 0, i._glyphs = [], i._font = {
                tint: void 0 !== r.tint ? r.tint : 16777215,
                align: r.align || "left",
                name: null,
                size: 0
            }, i.font = r.font, i._text = n, i._maxWidth = 0, i._maxLineHeight = 0, i._letterSpacing = 0, i._anchor = new o.default(function() {
                i.dirty = !0
            }, i, 0, 0), i.dirty = !1, i.updateText(), i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.updateText = function() {
            for (var t = e.fonts[this._font.name], n = this._font.size / t.size, r = new i.Point, o = [], s = [], a = this.text.replace(/(?:\r\n|\r)/g, "\n"), u = a.length, l = this._maxWidth * t.size / this._font.size, c = null, h = 0, f = 0, d = 0, p = -1, v = 0, _ = 0, g = 0, y = 0; y < u; y++) {
                var m = a.charCodeAt(y),
                    b = a.charAt(y);
                if (/(?:\s)/.test(b) && (p = y, v = h), "\r" !== b && "\n" !== b) {
                    var x = t.chars[m];
                    x && (c && x.kerning[c] && (r.x += x.kerning[c]), o.push({
                        texture: x.texture,
                        line: d,
                        charCode: m,
                        position: new i.Point(r.x + x.xOffset + this._letterSpacing / 2, r.y + x.yOffset)
                    }), r.x += x.xAdvance + this._letterSpacing, h = r.x, g = Math.max(g, x.yOffset + x.texture.height), c = m, -1 !== p && l > 0 && r.x > l && (++_, i.utils.removeItems(o, 1 + p - _, 1 + y - p), y = p, p = -1, s.push(v), f = Math.max(f, v), d++, r.x = 0, r.y += t.lineHeight, c = null))
                } else s.push(h), f = Math.max(f, h), ++d, ++_, r.x = 0, r.y += t.lineHeight, c = null
            }
            var w = a.charAt(a.length - 1);
            "\r" !== w && "\n" !== w && (/(?:\s)/.test(w) && (h = v), s.push(h), f = Math.max(f, h));
            for (var T = [], E = 0; E <= d; E++) {
                var S = 0;
                "right" === this._font.align ? S = f - s[E] : "center" === this._font.align && (S = (f - s[E]) / 2), T.push(S)
            }
            for (var P = o.length, O = this.tint, M = 0; M < P; M++) {
                var C = this._glyphs[M];
                C ? C.texture = o[M].texture : (C = new i.Sprite(o[M].texture), this._glyphs.push(C)), C.position.x = (o[M].position.x + T[o[M].line]) * n, C.position.y = o[M].position.y * n, C.scale.x = C.scale.y = n, C.tint = O, C.parent || this.addChild(C)
            }
            for (var A = P; A < this._glyphs.length; ++A) this.removeChild(this._glyphs[A]);
            if (this._textWidth = f * n, this._textHeight = (r.y + t.lineHeight) * n, 0 !== this.anchor.x || 0 !== this.anchor.y)
                for (var I = 0; I < P; I++) this._glyphs[I].x -= this._textWidth * this.anchor.x, this._glyphs[I].y -= this._textHeight * this.anchor.y;
            this._maxLineHeight = g * n
        }, e.prototype.updateTransform = function() {
            this.validate(), this.containerUpdateTransform()
        }, e.prototype.getLocalBounds = function() {
            return this.validate(), t.prototype.getLocalBounds.call(this)
        }, e.prototype.validate = function() {
            this.dirty && (this.updateText(), this.dirty = !1)
        }, e.registerFont = function(t, n) {
            var r = {},
                o = t.getElementsByTagName("info")[0],
                u = t.getElementsByTagName("common")[0],
                l = t.getElementsByTagName("page"),
                c = (0, s.getResolutionOfUrl)(l[0].getAttribute("file"), a.default.RESOLUTION),
                h = {};
            r.font = o.getAttribute("face"), r.size = parseInt(o.getAttribute("size"), 10), r.lineHeight = parseInt(u.getAttribute("lineHeight"), 10) / c, r.chars = {}, n instanceof i.Texture && (n = [n]);
            for (var f = 0; f < l.length; f++) {
                var d = l[f].getAttribute("id"),
                    p = l[f].getAttribute("file");
                h[d] = n instanceof Array ? n[f] : n[p]
            }
            for (var v = t.getElementsByTagName("char"), _ = 0; _ < v.length; _++) {
                var g = v[_],
                    y = parseInt(g.getAttribute("id"), 10),
                    m = g.getAttribute("page") || 0,
                    b = new i.Rectangle(parseInt(g.getAttribute("x"), 10) / c + h[m].frame.x / c, parseInt(g.getAttribute("y"), 10) / c + h[m].frame.y / c, parseInt(g.getAttribute("width"), 10) / c, parseInt(g.getAttribute("height"), 10) / c);
                r.chars[y] = {
                    xOffset: parseInt(g.getAttribute("xoffset"), 10) / c,
                    yOffset: parseInt(g.getAttribute("yoffset"), 10) / c,
                    xAdvance: parseInt(g.getAttribute("xadvance"), 10) / c,
                    kerning: {},
                    texture: new i.Texture(h[m].baseTexture, b),
                    page: m
                }
            }
            for (var x = t.getElementsByTagName("kerning"), w = 0; w < x.length; w++) {
                var T = x[w],
                    E = parseInt(T.getAttribute("first"), 10) / c,
                    S = parseInt(T.getAttribute("second"), 10) / c,
                    P = parseInt(T.getAttribute("amount"), 10) / c;
                r.chars[S] && (r.chars[S].kerning[E] = P)
            }
            return e.fonts[r.font] = r, r
        }, r(e, [{
            key: "tint",
            get: function() {
                return this._font.tint
            },
            set: function(t) {
                this._font.tint = "number" == typeof t && t >= 0 ? t : 16777215, this.dirty = !0
            }
        }, {
            key: "align",
            get: function() {
                return this._font.align
            },
            set: function(t) {
                this._font.align = t || "left", this.dirty = !0
            }
        }, {
            key: "anchor",
            get: function() {
                return this._anchor
            },
            set: function(t) {
                "number" == typeof t ? this._anchor.set(t) : this._anchor.copy(t)
            }
        }, {
            key: "font",
            get: function() {
                return this._font
            },
            set: function(t) {
                t && ("string" == typeof t ? (t = t.split(" "), this._font.name = 1 === t.length ? t[0] : t.slice(1).join(" "), this._font.size = t.length >= 2 ? parseInt(t[0], 10) : e.fonts[this._font.name].size) : (this._font.name = t.name, this._font.size = "number" == typeof t.size ? t.size : parseInt(t.size, 10)), this.dirty = !0)
            }
        }, {
            key: "text",
            get: function() {
                return this._text
            },
            set: function(t) {
                t = t.toString() || " ", this._text !== t && (this._text = t, this.dirty = !0)
            }
        }, {
            key: "maxWidth",
            get: function() {
                return this._maxWidth
            },
            set: function(t) {
                this._maxWidth !== t && (this._maxWidth = t, this.dirty = !0)
            }
        }, {
            key: "maxLineHeight",
            get: function() {
                return this.validate(), this._maxLineHeight
            }
        }, {
            key: "textWidth",
            get: function() {
                return this.validate(), this._textWidth
            }
        }, {
            key: "letterSpacing",
            get: function() {
                return this._letterSpacing
            },
            set: function(t) {
                this._letterSpacing !== t && (this._letterSpacing = t, this.dirty = !0)
            }
        }, {
            key: "textHeight",
            get: function() {
                return this.validate(), this._textHeight
            }
        }]), e
    }(i.Container);
    e.default = l, l.fonts = {}
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        s = (r = n(79)) && r.__esModule ? r : {
            default: r
        },
        a = new o.Point,
        u = function(t) {
            function e(n) {
                var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 100,
                    i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 100;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var s = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return s.tileTransform = new o.TransformStatic, s._width = r, s._height = i, s._canvasPattern = null, s.uvTransform = n.transform || new o.TextureMatrix(n), s.pluginName = "tilingSprite", s.uvRespectAnchor = !1, s
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype._onTextureUpdate = function() {
                this.uvTransform && (this.uvTransform.texture = this._texture), this.cachedTint = 16777215
            }, e.prototype._renderWebGL = function(t) {
                var e = this._texture;
                e && e.valid && (this.tileTransform.updateLocalTransform(), this.uvTransform.update(), t.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this))
            }, e.prototype._renderCanvas = function(t) {
                var e = this._texture;
                if (e.baseTexture.hasLoaded) {
                    var n = t.context,
                        r = this.worldTransform,
                        i = t.resolution,
                        a = e.baseTexture,
                        u = a.resolution,
                        l = this.tilePosition.x / this.tileScale.x % e._frame.width * u,
                        c = this.tilePosition.y / this.tileScale.y % e._frame.height * u;
                    if (this._textureID !== this._texture._updateID || this.cachedTint !== this.tint) {
                        this._textureID = this._texture._updateID;
                        var h = new o.CanvasRenderTarget(e._frame.width, e._frame.height, u);
                        16777215 !== this.tint ? (this.tintedTexture = s.default.getTintedTexture(this, this.tint), h.context.drawImage(this.tintedTexture, 0, 0)) : h.context.drawImage(a.source, -e._frame.x * u, -e._frame.y * u), this.cachedTint = this.tint, this._canvasPattern = h.context.createPattern(h.canvas, "repeat")
                    }
                    n.globalAlpha = this.worldAlpha, n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), t.setBlendMode(this.blendMode), n.fillStyle = this._canvasPattern, n.scale(this.tileScale.x / u, this.tileScale.y / u);
                    var f = this.anchor.x * -this._width,
                        d = this.anchor.y * -this._height;
                    this.uvRespectAnchor ? (n.translate(l, c), n.fillRect(-l + f, -c + d, this._width / this.tileScale.x * u, this._height / this.tileScale.y * u)) : (n.translate(l + f, c + d), n.fillRect(-l, -c, this._width / this.tileScale.x * u, this._height / this.tileScale.y * u))
                }
            }, e.prototype._calculateBounds = function() {
                var t = this._width * -this._anchor._x,
                    e = this._height * -this._anchor._y,
                    n = this._width * (1 - this._anchor._x),
                    r = this._height * (1 - this._anchor._y);
                this._bounds.addFrame(this.transform, t, e, n, r)
            }, e.prototype.getLocalBounds = function(e) {
                return 0 === this.children.length ? (this._bounds.minX = this._width * -this._anchor._x, this._bounds.minY = this._height * -this._anchor._y, this._bounds.maxX = this._width * (1 - this._anchor._x), this._bounds.maxY = this._height * (1 - this._anchor._y), e || (this._localBoundsRect || (this._localBoundsRect = new o.Rectangle), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e)
            }, e.prototype.containsPoint = function(t) {
                this.worldTransform.applyInverse(t, a);
                var e = this._width,
                    n = this._height,
                    r = -e * this.anchor._x;
                if (a.x >= r && a.x < r + e) {
                    var i = -n * this.anchor._y;
                    if (a.y >= i && a.y < i + n) return !0
                }
                return !1
            }, e.prototype.destroy = function(e) {
                t.prototype.destroy.call(this, e), this.tileTransform = null, this.uvTransform = null
            }, e.from = function(t, n, r) {
                return new e(o.Texture.from(t), n, r)
            }, e.fromFrame = function(t, n, r) {
                var i = o.utils.TextureCache[t];
                if (!i) throw new Error('The frameId "' + t + '" does not exist in the texture cache ' + this);
                return new e(i, n, r)
            }, e.fromImage = function(t, n, r, i, s) {
                return new e(o.Texture.fromImage(t, i, s), n, r)
            }, i(e, [{
                key: "clampMargin",
                get: function() {
                    return this.uvTransform.clampMargin
                },
                set: function(t) {
                    this.uvTransform.clampMargin = t, this.uvTransform.update(!0)
                }
            }, {
                key: "tileScale",
                get: function() {
                    return this.tileTransform.scale
                },
                set: function(t) {
                    this.tileTransform.scale.copy(t)
                }
            }, {
                key: "tilePosition",
                get: function() {
                    return this.tileTransform.position
                },
                set: function(t) {
                    this.tileTransform.position.copy(t)
                }
            }, {
                key: "width",
                get: function() {
                    return this._width
                },
                set: function(t) {
                    this._width = t
                }
            }, {
                key: "height",
                get: function() {
                    return this._height
                },
                set: function(t) {
                    this._height = t
                }
            }]), e
        }(o.Sprite);
    e.default = u
}, function(t, e, n) {
    "use strict";
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = a(n(15)),
        o = a(n(22)),
        s = n(2);

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var u = r.DisplayObject,
        l = new r.Matrix;
    u.prototype._cacheAsBitmap = !1, u.prototype._cacheData = !1;
    var c = function t() {
        ! function(t, e) {
            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
        }(this, t), this.textureCacheId = null, this.originalRenderWebGL = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalHitTest = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.sprite = null
    };
    Object.defineProperties(u.prototype, {
        cacheAsBitmap: {
            get: function() {
                return this._cacheAsBitmap
            },
            set: function(t) {
                if (this._cacheAsBitmap !== t) {
                    this._cacheAsBitmap = t;
                    var e = void 0;
                    t ? (this._cacheData || (this._cacheData = new c), (e = this._cacheData).originalRenderWebGL = this.renderWebGL, e.originalRenderCanvas = this.renderCanvas, e.originalUpdateTransform = this.updateTransform, e.originalCalculateBounds = this._calculateBounds, e.originalGetLocalBounds = this.getLocalBounds, e.originalDestroy = this.destroy, e.originalContainsPoint = this.containsPoint, e.originalMask = this._mask, e.originalFilterArea = this.filterArea, this.renderWebGL = this._renderCachedWebGL, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : ((e = this._cacheData).sprite && this._destroyCachedDisplayObject(), this.renderWebGL = e.originalRenderWebGL, this.renderCanvas = e.originalRenderCanvas, this._calculateBounds = e.originalCalculateBounds, this.getLocalBounds = e.originalGetLocalBounds, this.destroy = e.originalDestroy, this.updateTransform = e.originalUpdateTransform, this.containsPoint = e.originalContainsPoint, this._mask = e.originalMask, this.filterArea = e.originalFilterArea)
                }
            }
        }
    }), u.prototype._renderCachedWebGL = function(t) {
        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(t), this._cacheData.sprite._transformID = -1, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderWebGL(t))
    }, u.prototype._initCachedDisplayObject = function(t) {
        if (!this._cacheData || !this._cacheData.sprite) {
            var e = this.alpha;
            this.alpha = 1, t.currentRenderer.flush();
            var n = this.getLocalBounds().clone();
            if (this._filters) {
                var a = this._filters[0].padding;
                n.pad(a)
            }
            var u = t._activeRenderTarget,
                c = t.filterManager.filterStack,
                h = r.RenderTexture.create(0 | n.width, 0 | n.height),
                f = "cacheAsBitmap_" + (0, s.uid)();
            this._cacheData.textureCacheId = f, o.default.addToCache(h.baseTexture, f), i.default.addToCache(h, f);
            var d = l;
            d.tx = -n.x, d.ty = -n.y, this.transform.worldTransform.identity(), this.renderWebGL = this._cacheData.originalRenderWebGL, t.render(this, h, !0, d, !0), t.bindRenderTarget(u), t.filterManager.filterStack = c, this.renderWebGL = this._renderCachedWebGL, this.updateTransform = this.displayObjectUpdateTransform, this._mask = null, this.filterArea = null;
            var p = new r.Sprite(h);
            p.transform.worldTransform = this.transform.worldTransform, p.anchor.x = -n.x / n.width, p.anchor.y = -n.y / n.height, p.alpha = e, p._bounds = this._bounds, this._calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._cacheData.sprite = p, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = p.containsPoint.bind(p)
        }
    }, u.prototype._renderCachedCanvas = function(t) {
        !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(t), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite.renderCanvas(t))
    }, u.prototype._initCachedDisplayObjectCanvas = function(t) {
        if (!this._cacheData || !this._cacheData.sprite) {
            var e = this.getLocalBounds(),
                n = this.alpha;
            this.alpha = 1;
            var a = t.context,
                u = r.RenderTexture.create(0 | e.width, 0 | e.height),
                c = "cacheAsBitmap_" + (0, s.uid)();
            this._cacheData.textureCacheId = c, o.default.addToCache(u.baseTexture, c), i.default.addToCache(u, c);
            var h = l;
            this.transform.localTransform.copy(h), h.invert(), h.tx -= e.x, h.ty -= e.y, this.renderCanvas = this._cacheData.originalRenderCanvas, t.render(this, u, !0, h, !1), t.context = a, this.renderCanvas = this._renderCachedCanvas, this._calculateBounds = this._calculateCachedBounds, this._mask = null, this.filterArea = null;
            var f = new r.Sprite(u);
            f.transform.worldTransform = this.transform.worldTransform, f.anchor.x = -e.x / e.width, f.anchor.y = -e.y / e.height, f._bounds = this._bounds, f.alpha = n, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.updateTransform = this.displayObjectUpdateTransform, this._cacheData.sprite = f, this.containsPoint = f.containsPoint.bind(f)
        }
    }, u.prototype._calculateCachedBounds = function() {
        this._cacheData.sprite._calculateBounds()
    }, u.prototype._getCachedLocalBounds = function() {
        return this._cacheData.sprite.getLocalBounds()
    }, u.prototype._destroyCachedDisplayObject = function() {
        this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, o.default.removeFromCache(this._cacheData.textureCacheId), i.default.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null
    }, u.prototype._cacheAsBitmapDestroy = function(t) {
        this.cacheAsBitmap = !1, this.destroy(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = function(t) {
        if (t && t.__esModule) return t;
        var e = {};
        if (null != t)
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e.default = t, e
    }(n(1));
    r.DisplayObject.prototype.name = null, r.Container.prototype.getChildByName = function(t) {
        for (var e = 0; e < this.children.length; e++)
            if (this.children[e].name === t) return this.children[e];
        return null
    }
}, function(t, e, n) {
    "use strict";
    var r = function(t) {
        if (t && t.__esModule) return t;
        var e = {};
        if (null != t)
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e.default = t, e
    }(n(1));
    r.DisplayObject.prototype.getGlobalPosition = function() {
        var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new r.Point,
            e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
        return this.parent ? this.parent.toGlobal(this.position, t, e) : (t.x = this.position.x, t.y = this.position.y), t
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = n(0);
    n(12);
    var o = new r.Matrix,
        s = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.shader = null, r.simpleShader = null, r.quad = null, r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.onContextChange = function() {
                var t = this.renderer.gl;
                this.shader = new r.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n    vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n    coord = (uMapCoord * vec3(coord, 1.0)).xy;\n    coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n    vec4 sample = texture2D(uSampler, coord);\n    gl_FragColor = sample * uColor;\n}\n"), this.simpleShader = new r.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n    vec4 sample = texture2D(uSampler, vTextureCoord);\n    gl_FragColor = sample * uColor;\n}\n"), this.renderer.bindVao(null), this.quad = new r.Quad(t, this.renderer.state.attribState), this.quad.initVao(this.shader)
            }, e.prototype.render = function(t) {
                var e = this.renderer,
                    n = this.quad;
                e.bindVao(n.vao);
                var s = n.vertices;
                s[0] = s[6] = t._width * -t.anchor.x, s[1] = s[3] = t._height * -t.anchor.y, s[2] = s[4] = t._width * (1 - t.anchor.x), s[5] = s[7] = t._height * (1 - t.anchor.y), t.uvRespectAnchor && ((s = n.uvs)[0] = s[6] = -t.anchor.x, s[1] = s[3] = -t.anchor.y, s[2] = s[4] = 1 - t.anchor.x, s[5] = s[7] = 1 - t.anchor.y), n.upload();
                var a = t._texture,
                    u = a.baseTexture,
                    l = t.tileTransform.localTransform,
                    c = t.uvTransform,
                    h = u.isPowerOfTwo && a.frame.width === u.width && a.frame.height === u.height;
                h && (u._glTextures[e.CONTEXT_UID] ? h = u.wrapMode !== i.WRAP_MODES.CLAMP : u.wrapMode === i.WRAP_MODES.CLAMP && (u.wrapMode = i.WRAP_MODES.REPEAT));
                var f = h ? this.simpleShader : this.shader;
                e.bindShader(f);
                var d = a.width,
                    p = a.height,
                    v = t._width,
                    _ = t._height;
                o.set(l.a * d / v, l.b * d / _, l.c * p / v, l.d * p / _, l.tx / v, l.ty / _), o.invert(), h ? o.prepend(c.mapCoord) : (f.uniforms.uMapCoord = c.mapCoord.toArray(!0), f.uniforms.uClampFrame = c.uClampFrame, f.uniforms.uClampOffset = c.uClampOffset), f.uniforms.uTransform = o.toArray(!0), f.uniforms.uColor = r.utils.premultiplyTintToRgba(t.tint, t.worldAlpha, f.uniforms.uColor, u.premultipliedAlpha), f.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), f.uniforms.uSampler = e.bindTexture(a), e.setBlendMode(r.utils.correctBlendMode(t.blendMode, u.premultipliedAlpha)), n.vao.draw(this.renderer.gl.TRIANGLES, 6, 0)
            }, e
        }(r.ObjectRenderer);
    e.default = s, r.WebGLRenderer.registerPlugin("tilingSprite", s)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1));
    n(12);
    var o = function(t) {
        function e() {
            var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1;
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var r = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float uAlpha;\n\nvoid main(void)\n{\n   gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;\n}\n"));
            return r.alpha = n, r.glShaderKey = "alpha", r
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), r(e, [{
            key: "alpha",
            get: function() {
                return this.uniforms.uAlpha
            },
            set: function(t) {
                this.uniforms.uAlpha = t
            }
        }]), e
    }(i.Filter);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = a(n(176)),
        s = a(n(177));

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var u = function(t) {
        function e(n, r, a, u) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var l = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this));
            return l.blurXFilter = new o.default(n, r, a, u), l.blurYFilter = new s.default(n, r, a, u), l.padding = 0, l.resolution = a || i.settings.RESOLUTION, l.quality = r || 4, l.blur = n || 8, l
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.apply = function(t, e, n) {
            var r = t.getRenderTarget(!0);
            this.blurXFilter.apply(t, e, r, !0), this.blurYFilter.apply(t, r, n, !1), t.returnRenderTarget(r)
        }, r(e, [{
            key: "blur",
            get: function() {
                return this.blurXFilter.blur
            },
            set: function(t) {
                this.blurXFilter.blur = this.blurYFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
            }
        }, {
            key: "quality",
            get: function() {
                return this.blurXFilter.quality
            },
            set: function(t) {
                this.blurXFilter.quality = this.blurYFilter.quality = t
            }
        }, {
            key: "blurX",
            get: function() {
                return this.blurXFilter.blur
            },
            set: function(t) {
                this.blurXFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
            }
        }, {
            key: "blurY",
            get: function() {
                return this.blurYFilter.blur
            },
            set: function(t) {
                this.blurYFilter.blur = t, this.padding = 2 * Math.max(Math.abs(this.blurXFilter.strength), Math.abs(this.blurYFilter.strength))
            }
        }, {
            key: "blendMode",
            get: function() {
                return this.blurYFilter._blendMode
            },
            set: function(t) {
                this.blurYFilter._blendMode = t
            }
        }]), e
    }(i.Filter);
    e.default = u
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1));
    n(12);
    var o = function(t) {
        function e() {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var n = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n    vec4 c = texture2D(uSampler, vTextureCoord);\n\n    if (uAlpha == 0.0) {\n        gl_FragColor = c;\n        return;\n    }\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (c.a > 0.0) {\n      c.rgb /= c.a;\n    }\n\n    vec4 result;\n\n    result.r = (m[0] * c.r);\n        result.r += (m[1] * c.g);\n        result.r += (m[2] * c.b);\n        result.r += (m[3] * c.a);\n        result.r += m[4];\n\n    result.g = (m[5] * c.r);\n        result.g += (m[6] * c.g);\n        result.g += (m[7] * c.b);\n        result.g += (m[8] * c.a);\n        result.g += m[9];\n\n    result.b = (m[10] * c.r);\n       result.b += (m[11] * c.g);\n       result.b += (m[12] * c.b);\n       result.b += (m[13] * c.a);\n       result.b += m[14];\n\n    result.a = (m[15] * c.r);\n       result.a += (m[16] * c.g);\n       result.a += (m[17] * c.b);\n       result.a += (m[18] * c.a);\n       result.a += m[19];\n\n    vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n    // Premultiply alpha again.\n    rgb *= result.a;\n\n    gl_FragColor = vec4(rgb, result.a);\n}\n"));
            return n.uniforms.m = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], n.alpha = 1, n
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype._loadMatrix = function(t) {
            var e = t;
            arguments.length > 1 && void 0 !== arguments[1] && arguments[1] && (this._multiply(e, this.uniforms.m, t), e = this._colorMatrix(e)), this.uniforms.m = e
        }, e.prototype._multiply = function(t, e, n) {
            return t[0] = e[0] * n[0] + e[1] * n[5] + e[2] * n[10] + e[3] * n[15], t[1] = e[0] * n[1] + e[1] * n[6] + e[2] * n[11] + e[3] * n[16], t[2] = e[0] * n[2] + e[1] * n[7] + e[2] * n[12] + e[3] * n[17], t[3] = e[0] * n[3] + e[1] * n[8] + e[2] * n[13] + e[3] * n[18], t[4] = e[0] * n[4] + e[1] * n[9] + e[2] * n[14] + e[3] * n[19] + e[4], t[5] = e[5] * n[0] + e[6] * n[5] + e[7] * n[10] + e[8] * n[15], t[6] = e[5] * n[1] + e[6] * n[6] + e[7] * n[11] + e[8] * n[16], t[7] = e[5] * n[2] + e[6] * n[7] + e[7] * n[12] + e[8] * n[17], t[8] = e[5] * n[3] + e[6] * n[8] + e[7] * n[13] + e[8] * n[18], t[9] = e[5] * n[4] + e[6] * n[9] + e[7] * n[14] + e[8] * n[19] + e[9], t[10] = e[10] * n[0] + e[11] * n[5] + e[12] * n[10] + e[13] * n[15], t[11] = e[10] * n[1] + e[11] * n[6] + e[12] * n[11] + e[13] * n[16], t[12] = e[10] * n[2] + e[11] * n[7] + e[12] * n[12] + e[13] * n[17], t[13] = e[10] * n[3] + e[11] * n[8] + e[12] * n[13] + e[13] * n[18], t[14] = e[10] * n[4] + e[11] * n[9] + e[12] * n[14] + e[13] * n[19] + e[14], t[15] = e[15] * n[0] + e[16] * n[5] + e[17] * n[10] + e[18] * n[15], t[16] = e[15] * n[1] + e[16] * n[6] + e[17] * n[11] + e[18] * n[16], t[17] = e[15] * n[2] + e[16] * n[7] + e[17] * n[12] + e[18] * n[17], t[18] = e[15] * n[3] + e[16] * n[8] + e[17] * n[13] + e[18] * n[18], t[19] = e[15] * n[4] + e[16] * n[9] + e[17] * n[14] + e[18] * n[19] + e[19], t
        }, e.prototype._colorMatrix = function(t) {
            var e = new Float32Array(t);
            return e[4] /= 255, e[9] /= 255, e[14] /= 255, e[19] /= 255, e
        }, e.prototype.brightness = function(t, e) {
            var n = [t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 1, 0];
            this._loadMatrix(n, e)
        }, e.prototype.greyscale = function(t, e) {
            var n = [t, t, t, 0, 0, t, t, t, 0, 0, t, t, t, 0, 0, 0, 0, 0, 1, 0];
            this._loadMatrix(n, e)
        }, e.prototype.blackAndWhite = function(t) {
            this._loadMatrix([.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.hue = function(t, e) {
            t = (t || 0) / 180 * Math.PI;
            var n = Math.cos(t),
                r = Math.sin(t),
                i = 1 / 3,
                o = (0, Math.sqrt)(i),
                s = [n + (1 - n) * i, i * (1 - n) - o * r, i * (1 - n) + o * r, 0, 0, i * (1 - n) + o * r, n + i * (1 - n), i * (1 - n) - o * r, 0, 0, i * (1 - n) - o * r, i * (1 - n) + o * r, n + i * (1 - n), 0, 0, 0, 0, 0, 1, 0];
            this._loadMatrix(s, e)
        }, e.prototype.contrast = function(t, e) {
            var n = (t || 0) + 1,
                r = -.5 * (n - 1),
                i = [n, 0, 0, 0, r, 0, n, 0, 0, r, 0, 0, n, 0, r, 0, 0, 0, 1, 0];
            this._loadMatrix(i, e)
        }, e.prototype.saturate = function() {
            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0,
                e = arguments[1],
                n = 2 * t / 3 + 1,
                r = -.5 * (n - 1),
                i = [n, r, r, 0, 0, r, n, r, 0, 0, r, r, n, 0, 0, 0, 0, 0, 1, 0];
            this._loadMatrix(i, e)
        }, e.prototype.desaturate = function() {
            this.saturate(-1)
        }, e.prototype.negative = function(t) {
            this._loadMatrix([-1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.sepia = function(t) {
            this._loadMatrix([.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.technicolor = function(t) {
            this._loadMatrix([1.9125277891456083, -.8545344976951645, -.09155508482755585, 0, 11.793603434377337, -.3087833385928097, 1.7658908555458428, -.10601743074722245, 0, -70.35205161461398, -.231103377548616, -.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0], t)
        }, e.prototype.polaroid = function(t) {
            this._loadMatrix([1.438, -.062, -.062, 0, 0, -.122, 1.378, -.122, 0, 0, -.016, -.016, 1.483, 0, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.toBGR = function(t) {
            this._loadMatrix([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.kodachrome = function(t) {
            this._loadMatrix([1.1285582396593525, -.3967382283601348, -.03992559172921793, 0, 63.72958762196502, -.16404339962244616, 1.0835251566291304, -.05498805115633132, 0, 24.732407896706203, -.16786010706155763, -.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0], t)
        }, e.prototype.browni = function(t) {
            this._loadMatrix([.5997023498159715, .34553243048391263, -.2708298674538042, 0, 47.43192855600873, -.037703249837783157, .8609577587992641, .15059552388459913, 0, -36.96841498319127, .24113635128153335, -.07441037908422492, .44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0], t)
        }, e.prototype.vintage = function(t) {
            this._loadMatrix([.6279345635605994, .3202183420819367, -.03965408211312453, 0, 9.651285835294123, .02578397704808868, .6441188644374771, .03259127616149294, 0, 7.462829176470591, .0466055556782719, -.0851232987247891, .5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0], t)
        }, e.prototype.colorTone = function(t, e, n, r, i) {
            var o = ((n = n || 16770432) >> 16 & 255) / 255,
                s = (n >> 8 & 255) / 255,
                a = (255 & n) / 255,
                u = ((r = r || 3375104) >> 16 & 255) / 255,
                l = (r >> 8 & 255) / 255,
                c = (255 & r) / 255,
                h = [.3, .59, .11, 0, 0, o, s, a, t = t || .2, 0, u, l, c, e = e || .15, 0, o - u, s - l, a - c, 0, 0];
            this._loadMatrix(h, i)
        }, e.prototype.night = function(t, e) {
            var n = [-2 * (t = t || .1), -t, 0, 0, 0, -t, 0, t, 0, 0, 0, t, 2 * t, 0, 0, 0, 0, 0, 1, 0];
            this._loadMatrix(n, e)
        }, e.prototype.predator = function(t, e) {
            var n = [11.224130630493164 * t, -4.794486999511719 * t, -2.8746118545532227 * t, 0 * t, .40342438220977783 * t, -3.6330697536468506 * t, 9.193157196044922 * t, -2.951810836791992 * t, 0 * t, -1.316135048866272 * t, -3.2184197902679443 * t, -4.2375030517578125 * t, 7.476448059082031 * t, 0 * t, .8044459223747253 * t, 0, 0, 0, 1, 0];
            this._loadMatrix(n, e)
        }, e.prototype.lsd = function(t) {
            this._loadMatrix([2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0], t)
        }, e.prototype.reset = function() {
            this._loadMatrix([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], !1)
        }, r(e, [{
            key: "matrix",
            get: function() {
                return this.uniforms.m
            },
            set: function(t) {
                this.uniforms.m = t
            }
        }, {
            key: "alpha",
            get: function() {
                return this.uniforms.uAlpha
            },
            set: function(t) {
                this.uniforms.uAlpha = t
            }
        }]), e
    }(i.Filter);
    e.default = o, o.prototype.grayscale = o.prototype.greyscale
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1));
    n(12);
    var o = function(t) {
        function e(n, r) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var o = new i.Matrix;
            n.renderable = !1;
            var s = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 filterMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vFilterCoord;\n\nvoid main(void)\n{\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n   vFilterCoord = ( filterMatrix * vec3( aTextureCoord, 1.0)  ).xy;\n   vTextureCoord = aTextureCoord;\n}", "varying vec2 vFilterCoord;\nvarying vec2 vTextureCoord;\n\nuniform vec2 scale;\n\nuniform sampler2D uSampler;\nuniform sampler2D mapSampler;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\n\nvoid main(void)\n{\n  vec4 map =  texture2D(mapSampler, vFilterCoord);\n\n  map -= 0.5;\n  map.xy *= scale / filterArea.xy;\n\n  gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), filterClamp.xy, filterClamp.zw));\n}\n"));
            return s.maskSprite = n, s.maskMatrix = o, s.uniforms.mapSampler = n._texture, s.uniforms.filterMatrix = o, s.uniforms.scale = {
                x: 1,
                y: 1
            }, null != r || (r = 20), s.scale = new i.Point(r, r), s
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.apply = function(t, e, n) {
            this.uniforms.filterMatrix = t.calculateSpriteMatrix(this.maskMatrix, this.maskSprite), this.uniforms.scale.x = this.scale.x, this.uniforms.scale.y = this.scale.y, t.applyFilter(this, e, n)
        }, r(e, [{
            key: "map",
            get: function() {
                return this.uniforms.mapSampler
            },
            set: function(t) {
                this.uniforms.mapSampler = t
            }
        }]), e
    }(i.Filter);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
        if (t && t.__esModule) return t;
        var e = {};
        if (null != t)
            for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e.default = t, e
    }(n(1));
    n(12);
    var i = function(t) {
        function e() {
            return function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e),
                function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nuniform vec4 filterArea;\n\nvarying vec2 vTextureCoord;\n\nvec2 mapCoord( vec2 coord )\n{\n    coord *= filterArea.xy;\n    coord += filterArea.zw;\n\n    return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n    coord -= filterArea.zw;\n    coord /= filterArea.xy;\n\n    return coord;\n}\n\nvoid texcoords(vec2 fragCoord, vec2 resolution,\n               out vec2 v_rgbNW, out vec2 v_rgbNE,\n               out vec2 v_rgbSW, out vec2 v_rgbSE,\n               out vec2 v_rgbM) {\n    vec2 inverseVP = 1.0 / resolution.xy;\n    v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;\n    v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;\n    v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;\n    v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;\n    v_rgbM = vec2(fragCoord * inverseVP);\n}\n\nvoid main(void) {\n\n   gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n   vTextureCoord = aTextureCoord;\n\n   vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n   texcoords(fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n}", 'varying vec2 v_rgbNW;\nvarying vec2 v_rgbNE;\nvarying vec2 v_rgbSW;\nvarying vec2 v_rgbSE;\nvarying vec2 v_rgbM;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\n/**\n Basic FXAA with the\n modification that the texture2DLod stuff was removed since it\'s\n unsupported by WebGL.\n \n --\n \n From:\n https://github.com/gradle\n \n Copyright (c) 2019 by Gradle.\n \n Some rights reserved.\n \n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n \n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n \n * The names of the contributors may not be used to endorse or\n promote products derived from this software without specific\n prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef FXAA_REDUCE_MIN\n#define FXAA_REDUCE_MIN   (1.0/ 128.0)\n#endif\n#ifndef FXAA_REDUCE_MUL\n#define FXAA_REDUCE_MUL   (1.0 / 8.0)\n#endif\n#ifndef FXAA_SPAN_MAX\n#define FXAA_SPAN_MAX     8.0\n#endif\n\n//optimized version for mobile, where dependent\n//texture reads can be a bottleneck\nvec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 resolution,\n          vec2 v_rgbNW, vec2 v_rgbNE,\n          vec2 v_rgbSW, vec2 v_rgbSE,\n          vec2 v_rgbM) {\n    vec4 color;\n    mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n    vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;\n    vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;\n    vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;\n    vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;\n    vec4 texColor = texture2D(tex, v_rgbM);\n    vec3 rgbM  = texColor.xyz;\n    vec3 luma = vec3(0.299, 0.587, 0.114);\n    float lumaNW = dot(rgbNW, luma);\n    float lumaNE = dot(rgbNE, luma);\n    float lumaSW = dot(rgbSW, luma);\n    float lumaSE = dot(rgbSE, luma);\n    float lumaM  = dot(rgbM,  luma);\n    float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n    float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n    \n    mediump vec2 dir;\n    dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n    dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n    \n    float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *\n                          (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\n    \n    float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n    dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n              max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n                  dir * rcpDirMin)) * inverseVP;\n    \n    vec3 rgbA = 0.5 * (\n                       texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +\n                       texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\n    vec3 rgbB = rgbA * 0.5 + 0.25 * (\n                                     texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +\n                                     texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\n    \n    float lumaB = dot(rgbB, luma);\n    if ((lumaB < lumaMin) || (lumaB > lumaMax))\n        color = vec4(rgbA, texColor.a);\n    else\n        color = vec4(rgbB, texColor.a);\n    return color;\n}\n\nvoid main() {\n\n      vec2 fragCoord = vTextureCoord * filterArea.xy;\n\n      vec4 color;\n\n    color = fxaa(uSampler, fragCoord, filterArea.xy, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);\n\n      gl_FragColor = color;\n}\n'))
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e
    }(r.Filter);
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(440);
    Object.defineProperty(e, "FXAAFilter", {
        enumerable: !0,
        get: function() {
            return h(r).default
        }
    });
    var i = n(442);
    Object.defineProperty(e, "NoiseFilter", {
        enumerable: !0,
        get: function() {
            return h(i).default
        }
    });
    var o = n(439);
    Object.defineProperty(e, "DisplacementFilter", {
        enumerable: !0,
        get: function() {
            return h(o).default
        }
    });
    var s = n(437);
    Object.defineProperty(e, "BlurFilter", {
        enumerable: !0,
        get: function() {
            return h(s).default
        }
    });
    var a = n(176);
    Object.defineProperty(e, "BlurXFilter", {
        enumerable: !0,
        get: function() {
            return h(a).default
        }
    });
    var u = n(177);
    Object.defineProperty(e, "BlurYFilter", {
        enumerable: !0,
        get: function() {
            return h(u).default
        }
    });
    var l = n(438);
    Object.defineProperty(e, "ColorMatrixFilter", {
        enumerable: !0,
        get: function() {
            return h(l).default
        }
    });
    var c = n(436);

    function h(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "AlphaFilter", {
        enumerable: !0,
        get: function() {
            return h(c).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1));
    n(12);
    var o = function(t) {
        function e() {
            var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5,
                r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Math.random();
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n    vTextureCoord = aTextureCoord;\n}", "precision highp float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uSampler;\n\nfloat rand(vec2 co)\n{\n    return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n    vec4 color = texture2D(uSampler, vTextureCoord);\n    float randomValue = rand(gl_FragCoord.xy * uSeed);\n    float diff = (randomValue - 0.5) * uNoise;\n\n    // Un-premultiply alpha before applying the color matrix. See issue #3539.\n    if (color.a > 0.0) {\n        color.rgb /= color.a;\n    }\n\n    color.r += diff;\n    color.g += diff;\n    color.b += diff;\n\n    // Premultiply alpha again.\n    color.rgb *= color.a;\n\n    gl_FragColor = color;\n}\n"));
            return i.noise = n, i.seed = r, i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), r(e, [{
            key: "noise",
            get: function() {
                return this.uniforms.uNoise
            },
            set: function(t) {
                this.uniforms.uNoise = t
            }
        }, {
            key: "seed",
            get: function() {
                return this.uniforms.uSeed
            },
            set: function(t) {
                this.uniforms.uSeed = t
            }
        }]), e
    }(i.Filter);
    e.default = o
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        },
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = c(n(181)),
        s = c(n(182)),
        a = c(n(183)),
        u = c(n(16)),
        l = c(n(184));

    function c(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    i.utils.mixins.delayMixin(i.DisplayObject.prototype, l.default);
    var h = 1,
        f = {
            target: null,
            data: {
                global: null
            }
        },
        d = function(t) {
            function e(n, r) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var a = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return r = r || {}, a.renderer = n, a.autoPreventDefault = void 0 === r.autoPreventDefault || r.autoPreventDefault, a.interactionFrequency = r.interactionFrequency || 10, a.mouse = new o.default, a.mouse.identifier = h, a.mouse.global.set(-999999), a.activeInteractionData = {}, a.activeInteractionData[h] = a.mouse, a.interactionDataPool = [], a.eventData = new s.default, a.interactionDOMElement = null, a.moveWhenInside = !1, a.eventsAdded = !1, a.mouseOverRenderer = !1, a.supportsTouchEvents = "ontouchstart" in window, a.supportsPointerEvents = !!window.PointerEvent, a.onPointerUp = a.onPointerUp.bind(a), a.processPointerUp = a.processPointerUp.bind(a), a.onPointerCancel = a.onPointerCancel.bind(a), a.processPointerCancel = a.processPointerCancel.bind(a), a.onPointerDown = a.onPointerDown.bind(a), a.processPointerDown = a.processPointerDown.bind(a), a.onPointerMove = a.onPointerMove.bind(a), a.processPointerMove = a.processPointerMove.bind(a), a.onPointerOut = a.onPointerOut.bind(a), a.processPointerOverOut = a.processPointerOverOut.bind(a), a.onPointerOver = a.onPointerOver.bind(a), a.cursorStyles = {
                    default: "inherit",
                    pointer: "pointer"
                }, a.currentCursorMode = null, a.cursor = null, a._tempPoint = new i.Point, a.resolution = 1, a.setTargetElement(a.renderer.view, a.renderer.resolution), a
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.hitTest = function(t, e) {
                return f.target = null, f.data.global = t, e || (e = this.renderer._lastObjectRendered), this.processInteractive(f, e, null, !0), f.target
            }, e.prototype.setTargetElement = function(t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
                this.removeEvents(), this.interactionDOMElement = t, this.resolution = e, this.addEvents()
            }, e.prototype.addEvents = function() {
                this.interactionDOMElement && (i.ticker.shared.add(this.update, this, i.UPDATE_PRIORITY.INTERACTION), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "none", this.interactionDOMElement.style["-ms-touch-action"] = "none") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = "none"), this.supportsPointerEvents ? (window.document.addEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("pointerover", this.onPointerOver, !0), window.addEventListener("pointercancel", this.onPointerCancel, !0), window.addEventListener("pointerup", this.onPointerUp, !0)) : (window.document.addEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("mouseover", this.onPointerOver, !0), window.addEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.addEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.addEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.addEventListener("touchmove", this.onPointerMove, !0)), this.eventsAdded = !0)
            }, e.prototype.removeEvents = function() {
                this.interactionDOMElement && (i.ticker.shared.remove(this.update, this), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = ""), this.supportsPointerEvents ? (window.document.removeEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("pointerover", this.onPointerOver, !0), window.removeEventListener("pointercancel", this.onPointerCancel, !0), window.removeEventListener("pointerup", this.onPointerUp, !0)) : (window.document.removeEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("mouseover", this.onPointerOver, !0), window.removeEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.removeEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.removeEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onPointerMove, !0)), this.interactionDOMElement = null, this.eventsAdded = !1)
            }, e.prototype.update = function(t) {
                if (this._deltaTime += t, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.interactionDOMElement))
                    if (this.didMove) this.didMove = !1;
                    else {
                        for (var e in this.cursor = null, this.activeInteractionData)
                            if (this.activeInteractionData.hasOwnProperty(e)) {
                                var n = this.activeInteractionData[e];
                                if (n.originalEvent && "touch" !== n.pointerType) {
                                    var r = this.configureInteractionEventForDOMEvent(this.eventData, n.originalEvent, n);
                                    this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !0)
                                }
                            }
                        this.setCursorMode(this.cursor)
                    }
            }, e.prototype.setCursorMode = function(t) {
                if (t = t || "default", this.currentCursorMode !== t) {
                    this.currentCursorMode = t;
                    var e = this.cursorStyles[t];
                    if (e) switch (void 0 === e ? "undefined" : r(e)) {
                        case "string":
                            this.interactionDOMElement.style.cursor = e;
                            break;
                        case "function":
                            e(t);
                            break;
                        case "object":
                            Object.assign(this.interactionDOMElement.style, e)
                    } else "string" != typeof t || Object.prototype.hasOwnProperty.call(this.cursorStyles, t) || (this.interactionDOMElement.style.cursor = t)
                }
            }, e.prototype.dispatchEvent = function(t, e, n) {
                n.stopped || (n.currentTarget = t, n.type = e, t.emit(e, n), t[e] && t[e](n))
            }, e.prototype.mapPositionToPoint = function(t, e, n) {
                var r;
                r = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : {
                    x: 0,
                    y: 0,
                    width: 0,
                    height: 0
                };
                var i = navigator.isCocoonJS ? this.resolution : 1 / this.resolution;
                t.x = (e - r.left) * (this.interactionDOMElement.width / r.width) * i, t.y = (n - r.top) * (this.interactionDOMElement.height / r.height) * i
            }, e.prototype.processInteractive = function(t, e, n, r, i) {
                if (!e || !e.visible) return !1;
                var o = t.data.global,
                    s = !1,
                    a = i = e.interactive || i,
                    u = !0;
                if (e.hitArea ? (r && (e.worldTransform.applyInverse(o, this._tempPoint), e.hitArea.contains(this._tempPoint.x, this._tempPoint.y) ? s = !0 : (r = !1, u = !1)), a = !1) : e._mask && r && (e._mask.containsPoint(o) || (r = !1, u = !1)), u && e.interactiveChildren && e.children)
                    for (var l = e.children, c = l.length - 1; c >= 0; c--) {
                        var h = l[c],
                            f = this.processInteractive(t, h, n, r, a);
                        if (f) {
                            if (!h.parent) continue;
                            a = !1, f && (t.target && (r = !1), s = !0)
                        }
                    }
                return i && (r && !t.target && !e.hitArea && e.containsPoint && e.containsPoint(o) && (s = !0), e.interactive && (s && !t.target && (t.target = e), n && n(t, e, !!s))), s
            }, e.prototype.onPointerDown = function(t) {
                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                    var e = this.normalizeToPointerData(t);
                    this.autoPreventDefault && e[0].isNormalized && t.preventDefault();
                    for (var n = e.length, r = 0; r < n; r++) {
                        var i = e[r],
                            o = this.getInteractionDataForPointerId(i),
                            s = this.configureInteractionEventForDOMEvent(this.eventData, i, o);
                        if (s.data.originalEvent = t, this.processInteractive(s, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", s), "touch" === i.pointerType) this.emit("touchstart", s);
                        else if ("mouse" === i.pointerType || "pen" === i.pointerType) {
                            var a = 2 === i.button;
                            this.emit(a ? "rightdown" : "mousedown", this.eventData)
                        }
                    }
                }
            }, e.prototype.processPointerDown = function(t, e, n) {
                var r = t.data,
                    i = t.data.identifier;
                if (n)
                    if (e.trackedPointers[i] || (e.trackedPointers[i] = new a.default(i)), this.dispatchEvent(e, "pointerdown", t), "touch" === r.pointerType) this.dispatchEvent(e, "touchstart", t);
                    else if ("mouse" === r.pointerType || "pen" === r.pointerType) {
                    var o = 2 === r.button;
                    o ? e.trackedPointers[i].rightDown = !0 : e.trackedPointers[i].leftDown = !0, this.dispatchEvent(e, o ? "rightdown" : "mousedown", t)
                }
            }, e.prototype.onPointerComplete = function(t, e, n) {
                for (var r = this.normalizeToPointerData(t), i = r.length, o = t.target !== this.interactionDOMElement ? "outside" : "", s = 0; s < i; s++) {
                    var a = r[s],
                        u = this.getInteractionDataForPointerId(a),
                        l = this.configureInteractionEventForDOMEvent(this.eventData, a, u);
                    if (l.data.originalEvent = t, this.processInteractive(l, this.renderer._lastObjectRendered, n, e || !o), this.emit(e ? "pointercancel" : "pointerup" + o, l), "mouse" === a.pointerType || "pen" === a.pointerType) {
                        var c = 2 === a.button;
                        this.emit(c ? "rightup" + o : "mouseup" + o, l)
                    } else "touch" === a.pointerType && (this.emit(e ? "touchcancel" : "touchend" + o, l), this.releaseInteractionDataForPointerId(a.pointerId, u))
                }
            }, e.prototype.onPointerCancel = function(t) {
                this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !0, this.processPointerCancel)
            }, e.prototype.processPointerCancel = function(t, e) {
                var n = t.data,
                    r = t.data.identifier;
                void 0 !== e.trackedPointers[r] && (delete e.trackedPointers[r], this.dispatchEvent(e, "pointercancel", t), "touch" === n.pointerType && this.dispatchEvent(e, "touchcancel", t))
            }, e.prototype.onPointerUp = function(t) {
                this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !1, this.processPointerUp)
            }, e.prototype.processPointerUp = function(t, e, n) {
                var r = t.data,
                    i = t.data.identifier,
                    o = e.trackedPointers[i],
                    s = "touch" === r.pointerType,
                    u = "mouse" === r.pointerType || "pen" === r.pointerType,
                    l = !1;
                if (u) {
                    var c = 2 === r.button,
                        h = a.default.FLAGS,
                        f = c ? h.RIGHT_DOWN : h.LEFT_DOWN,
                        d = void 0 !== o && o.flags & f;
                    n ? (this.dispatchEvent(e, c ? "rightup" : "mouseup", t), d && (this.dispatchEvent(e, c ? "rightclick" : "click", t), l = !0)) : d && this.dispatchEvent(e, c ? "rightupoutside" : "mouseupoutside", t), o && (c ? o.rightDown = !1 : o.leftDown = !1)
                }
                n ? (this.dispatchEvent(e, "pointerup", t), s && this.dispatchEvent(e, "touchend", t), o && (u && !l || this.dispatchEvent(e, "pointertap", t), s && (this.dispatchEvent(e, "tap", t), o.over = !1))) : o && (this.dispatchEvent(e, "pointerupoutside", t), s && this.dispatchEvent(e, "touchendoutside", t)), o && o.none && delete e.trackedPointers[i]
            }, e.prototype.onPointerMove = function(t) {
                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                    var e = this.normalizeToPointerData(t);
                    "mouse" !== e[0].pointerType && "pen" !== e[0].pointerType || (this.didMove = !0, this.cursor = null);
                    for (var n = e.length, r = 0; r < n; r++) {
                        var i = e[r],
                            o = this.getInteractionDataForPointerId(i),
                            s = this.configureInteractionEventForDOMEvent(this.eventData, i, o);
                        s.data.originalEvent = t;
                        var a = "touch" !== i.pointerType || this.moveWhenInside;
                        this.processInteractive(s, this.renderer._lastObjectRendered, this.processPointerMove, a), this.emit("pointermove", s), "touch" === i.pointerType && this.emit("touchmove", s), "mouse" !== i.pointerType && "pen" !== i.pointerType || this.emit("mousemove", s)
                    }
                    "mouse" === e[0].pointerType && this.setCursorMode(this.cursor)
                }
            }, e.prototype.processPointerMove = function(t, e, n) {
                var r = t.data,
                    i = "touch" === r.pointerType,
                    o = "mouse" === r.pointerType || "pen" === r.pointerType;
                o && this.processPointerOverOut(t, e, n), this.moveWhenInside && !n || (this.dispatchEvent(e, "pointermove", t), i && this.dispatchEvent(e, "touchmove", t), o && this.dispatchEvent(e, "mousemove", t))
            }, e.prototype.onPointerOut = function(t) {
                if (!this.supportsTouchEvents || "touch" !== t.pointerType) {
                    var e = this.normalizeToPointerData(t)[0];
                    "mouse" === e.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null));
                    var n = this.getInteractionDataForPointerId(e),
                        r = this.configureInteractionEventForDOMEvent(this.eventData, e, n);
                    r.data.originalEvent = e, this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", r), "mouse" === e.pointerType || "pen" === e.pointerType ? this.emit("mouseout", r) : this.releaseInteractionDataForPointerId(n.identifier)
                }
            }, e.prototype.processPointerOverOut = function(t, e, n) {
                var r = t.data,
                    i = t.data.identifier,
                    o = "mouse" === r.pointerType || "pen" === r.pointerType,
                    s = e.trackedPointers[i];
                n && !s && (s = e.trackedPointers[i] = new a.default(i)), void 0 !== s && (n && this.mouseOverRenderer ? (s.over || (s.over = !0, this.dispatchEvent(e, "pointerover", t), o && this.dispatchEvent(e, "mouseover", t)), o && null === this.cursor && (this.cursor = e.cursor)) : s.over && (s.over = !1, this.dispatchEvent(e, "pointerout", this.eventData), o && this.dispatchEvent(e, "mouseout", t), s.none && delete e.trackedPointers[i]))
            }, e.prototype.onPointerOver = function(t) {
                var e = this.normalizeToPointerData(t)[0],
                    n = this.getInteractionDataForPointerId(e),
                    r = this.configureInteractionEventForDOMEvent(this.eventData, e, n);
                r.data.originalEvent = e, "mouse" === e.pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", r), "mouse" !== e.pointerType && "pen" !== e.pointerType || this.emit("mouseover", r)
            }, e.prototype.getInteractionDataForPointerId = function(t) {
                var e = t.pointerId,
                    n = void 0;
                return e === h || "mouse" === t.pointerType ? n = this.mouse : this.activeInteractionData[e] ? n = this.activeInteractionData[e] : ((n = this.interactionDataPool.pop() || new o.default).identifier = e, this.activeInteractionData[e] = n), n.copyEvent(t), n
            }, e.prototype.releaseInteractionDataForPointerId = function(t) {
                var e = this.activeInteractionData[t];
                e && (delete this.activeInteractionData[t], e.reset(), this.interactionDataPool.push(e))
            }, e.prototype.configureInteractionEventForDOMEvent = function(t, e, n) {
                return t.data = n, this.mapPositionToPoint(n.global, e.clientX, e.clientY), navigator.isCocoonJS && "touch" === e.pointerType && (n.global.x = n.global.x / this.resolution, n.global.y = n.global.y / this.resolution), "touch" === e.pointerType && (e.globalX = n.global.x, e.globalY = n.global.y), n.originalEvent = e, t.reset(), t
            }, e.prototype.normalizeToPointerData = function(t) {
                var e = [];
                if (this.supportsTouchEvents && t instanceof TouchEvent)
                    for (var n = 0, r = t.changedTouches.length; n < r; n++) {
                        var i = t.changedTouches[n];
                        void 0 === i.button && (i.button = t.touches.length ? 1 : 0), void 0 === i.buttons && (i.buttons = t.touches.length ? 1 : 0), void 0 === i.isPrimary && (i.isPrimary = 1 === t.touches.length && "touchstart" === t.type), void 0 === i.width && (i.width = i.radiusX || 1), void 0 === i.height && (i.height = i.radiusY || 1), void 0 === i.tiltX && (i.tiltX = 0), void 0 === i.tiltY && (i.tiltY = 0), void 0 === i.pointerType && (i.pointerType = "touch"), void 0 === i.pointerId && (i.pointerId = i.identifier || 0), void 0 === i.pressure && (i.pressure = i.force || .5), i.twist = 0, i.tangentialPressure = 0, void 0 === i.layerX && (i.layerX = i.offsetX = i.clientX), void 0 === i.layerY && (i.layerY = i.offsetY = i.clientY), i.isNormalized = !0, e.push(i)
                    } else !(t instanceof MouseEvent) || this.supportsPointerEvents && t instanceof window.PointerEvent ? e.push(t) : (void 0 === t.isPrimary && (t.isPrimary = !0), void 0 === t.width && (t.width = 1), void 0 === t.height && (t.height = 1), void 0 === t.tiltX && (t.tiltX = 0), void 0 === t.tiltY && (t.tiltY = 0), void 0 === t.pointerType && (t.pointerType = "mouse"), void 0 === t.pointerId && (t.pointerId = h), void 0 === t.pressure && (t.pressure = .5), t.twist = 0, t.tangentialPressure = 0, t.isNormalized = !0, e.push(t));
                return e
            }, e.prototype.destroy = function() {
                this.removeEvents(), this.removeAllListeners(), this.renderer = null, this.mouse = null, this.eventData = null, this.interactionDOMElement = null, this.onPointerDown = null, this.processPointerDown = null, this.onPointerUp = null, this.processPointerUp = null, this.onPointerCancel = null, this.processPointerCancel = null, this.onPointerMove = null, this.processPointerMove = null, this.onPointerOut = null, this.processPointerOverOut = null, this.onPointerOver = null, this._tempPoint = null
            }, e
        }(u.default);
    e.default = d, i.WebGLRenderer.registerPlugin("interaction", d), i.CanvasRenderer.registerPlugin("interaction", d)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(181);
    Object.defineProperty(e, "InteractionData", {
        enumerable: !0,
        get: function() {
            return u(r).default
        }
    });
    var i = n(443);
    Object.defineProperty(e, "InteractionManager", {
        enumerable: !0,
        get: function() {
            return u(i).default
        }
    });
    var o = n(184);
    Object.defineProperty(e, "interactiveTarget", {
        enumerable: !0,
        get: function() {
            return u(o).default
        }
    });
    var s = n(183);
    Object.defineProperty(e, "InteractionTrackingData", {
        enumerable: !0,
        get: function() {
            return u(s).default
        }
    });
    var a = n(182);

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "InteractionEvent", {
        enumerable: !0,
        get: function() {
            return u(a).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0, e.shared = e.Resource = e.textureParser = e.getResourcePath = e.spritesheetParser = e.parseBitmapFontData = e.bitmapFontParser = e.Loader = void 0;
    var r = n(185);
    Object.defineProperty(e, "bitmapFontParser", {
        enumerable: !0,
        get: function() {
            return l(r).default
        }
    }), Object.defineProperty(e, "parseBitmapFontData", {
        enumerable: !0,
        get: function() {
            return r.parse
        }
    });
    var i = n(186);
    Object.defineProperty(e, "spritesheetParser", {
        enumerable: !0,
        get: function() {
            return l(i).default
        }
    }), Object.defineProperty(e, "getResourcePath", {
        enumerable: !0,
        get: function() {
            return i.getResourcePath
        }
    });
    var o = n(187);
    Object.defineProperty(e, "textureParser", {
        enumerable: !0,
        get: function() {
            return l(o).default
        }
    });
    var s = n(33);
    Object.defineProperty(e, "Resource", {
        enumerable: !0,
        get: function() {
            return s.Resource
        }
    });
    var a = l(n(154)),
        u = l(n(446));

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    e.Loader = u.default;
    var c = new u.default;
    c.destroy = function() {}, e.shared = c;
    var h = a.default.prototype;
    h._loader = null, Object.defineProperty(h, "loader", {
        get: function() {
            if (!this._loader) {
                var t = this._options.sharedLoader;
                this._loader = t ? c : new u.default
            }
            return this._loader
        }
    }), h._parentDestroy = h.destroy, h.destroy = function(t, e) {
        this._loader && (this._loader.destroy(), this._loader = null), this._parentDestroy(t, e)
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = l(n(33)),
        i = n(473),
        o = l(n(16)),
        s = l(n(187)),
        a = l(n(186)),
        u = l(n(185));

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var c = function(t) {
        function e(n, r) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n, r));
            o.default.call(i);
            for (var s = 0; s < e._pixiMiddleware.length; ++s) i.use(e._pixiMiddleware[s]());
            return i.onStart.add(function(t) {
                return i.emit("start", t)
            }), i.onProgress.add(function(t, e) {
                return i.emit("progress", t, e)
            }), i.onError.add(function(t, e, n) {
                return i.emit("error", t, e, n)
            }), i.onLoad.add(function(t, e) {
                return i.emit("load", t, e)
            }), i.onComplete.add(function(t, e) {
                return i.emit("complete", t, e)
            }), i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.addPixiMiddleware = function(t) {
            e._pixiMiddleware.push(t)
        }, e.prototype.destroy = function() {
            this.removeAllListeners(), this.reset()
        }, e
    }(r.default);
    for (var h in e.default = c, o.default.prototype) c.prototype[h] = o.default.prototype[h];
    c._pixiMiddleware = [i.blobMiddlewareFactory, s.default, a.default, u.default];
    var f = r.default.Resource;
    f.setExtensionXhrType("fnt", f.XHR_RESPONSE_TYPE.DOCUMENT)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = n(188),
        s = 10,
        a = function(t) {
            function e(n, r, i, o, a) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var u = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n, 4, 4));
                return u._origWidth = n.orig.width, u._origHeight = n.orig.height, u._width = u._origWidth, u._height = u._origHeight, u._leftWidth = void 0 !== r ? r : s, u._rightWidth = void 0 !== o ? o : s, u._topHeight = void 0 !== i ? i : s, u._bottomHeight = void 0 !== a ? a : s, u.refresh(!0), u
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.updateHorizontalVertices = function() {
                var t = this.vertices,
                    e = this._topHeight + this._bottomHeight,
                    n = this._height > e ? 1 : this._height / e;
                t[9] = t[11] = t[13] = t[15] = this._topHeight * n, t[17] = t[19] = t[21] = t[23] = this._height - this._bottomHeight * n, t[25] = t[27] = t[29] = t[31] = this._height
            }, e.prototype.updateVerticalVertices = function() {
                var t = this.vertices,
                    e = this._leftWidth + this._rightWidth,
                    n = this._width > e ? 1 : this._width / e;
                t[2] = t[10] = t[18] = t[26] = this._leftWidth * n, t[4] = t[12] = t[20] = t[28] = this._width - this._rightWidth * n, t[6] = t[14] = t[22] = t[30] = this._width
            }, e.prototype._renderCanvas = function(t) {
                var e = t.context;
                e.globalAlpha = this.worldAlpha, t.setBlendMode(this.blendMode);
                var n = this.worldTransform,
                    r = t.resolution;
                t.roundPixels ? e.setTransform(n.a * r, n.b * r, n.c * r, n.d * r, n.tx * r | 0, n.ty * r | 0) : e.setTransform(n.a * r, n.b * r, n.c * r, n.d * r, n.tx * r, n.ty * r);
                var i = this._texture.baseTexture,
                    o = i.source,
                    s = i.width * i.resolution,
                    a = i.height * i.resolution;
                this.drawSegment(e, o, s, a, 0, 1, 10, 11), this.drawSegment(e, o, s, a, 2, 3, 12, 13), this.drawSegment(e, o, s, a, 4, 5, 14, 15), this.drawSegment(e, o, s, a, 8, 9, 18, 19), this.drawSegment(e, o, s, a, 10, 11, 20, 21), this.drawSegment(e, o, s, a, 12, 13, 22, 23), this.drawSegment(e, o, s, a, 16, 17, 26, 27), this.drawSegment(e, o, s, a, 18, 19, 28, 29), this.drawSegment(e, o, s, a, 20, 21, 30, 31)
            }, e.prototype.drawSegment = function(t, e, n, r, i, o, s, a) {
                var u = this.uvs,
                    l = this.vertices,
                    c = (u[s] - u[i]) * n,
                    h = (u[a] - u[o]) * r,
                    f = l[s] - l[i],
                    d = l[a] - l[o];
                c < 1 && (c = 1), h < 1 && (h = 1), f < 1 && (f = 1), d < 1 && (d = 1), t.drawImage(e, u[i] * n, u[o] * r, c, h, l[i], l[o], f, d)
            }, e.prototype._refresh = function() {
                t.prototype._refresh.call(this);
                var e = this.uvs,
                    n = this._texture;
                this._origWidth = n.orig.width, this._origHeight = n.orig.height;
                var r = 1 / this._origWidth,
                    i = 1 / this._origHeight;
                e[0] = e[8] = e[16] = e[24] = 0, e[1] = e[3] = e[5] = e[7] = 0, e[6] = e[14] = e[22] = e[30] = 1, e[25] = e[27] = e[29] = e[31] = 1, e[2] = e[10] = e[18] = e[26] = r * this._leftWidth, e[4] = e[12] = e[20] = e[28] = 1 - r * this._rightWidth, e[9] = e[11] = e[13] = e[15] = i * this._topHeight, e[17] = e[19] = e[21] = e[23] = 1 - i * this._bottomHeight, this.updateHorizontalVertices(), this.updateVerticalVertices(), this.dirty++, this.multiplyUvs()
            }, i(e, [{
                key: "width",
                get: function() {
                    return this._width
                },
                set: function(t) {
                    this._width = t, this._refresh()
                }
            }, {
                key: "height",
                get: function() {
                    return this._height
                },
                set: function(t) {
                    this._height = t, this._refresh()
                }
            }, {
                key: "leftWidth",
                get: function() {
                    return this._leftWidth
                },
                set: function(t) {
                    this._leftWidth = t, this._refresh()
                }
            }, {
                key: "rightWidth",
                get: function() {
                    return this._rightWidth
                },
                set: function(t) {
                    this._rightWidth = t, this._refresh()
                }
            }, {
                key: "topHeight",
                get: function() {
                    return this._topHeight
                },
                set: function(t) {
                    this._topHeight = t, this._refresh()
                }
            }, {
                key: "bottomHeight",
                get: function() {
                    return this._bottomHeight
                },
                set: function(t) {
                    this._bottomHeight = t, this._refresh()
                }
            }]), e
        }(((r = o) && r.__esModule ? r : {
            default: r
        }).default);
    e.default = a
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
        function e(n, r) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n));
            return i.points = r, i.vertices = new Float32Array(4 * r.length), i.uvs = new Float32Array(4 * r.length), i.colors = new Float32Array(2 * r.length), i.indices = new Uint16Array(2 * r.length), i.autoUpdate = !0, i.refresh(), i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype._refresh = function() {
            var t = this.points;
            if (!(t.length < 1) && this._texture._uvs) {
                this.vertices.length / 4 !== t.length && (this.vertices = new Float32Array(4 * t.length), this.uvs = new Float32Array(4 * t.length), this.colors = new Float32Array(2 * t.length), this.indices = new Uint16Array(2 * t.length));
                var e = this.uvs,
                    n = this.indices,
                    r = this.colors;
                e[0] = 0, e[1] = 0, e[2] = 0, e[3] = 1, r[0] = 1, r[1] = 1, n[0] = 0, n[1] = 1;
                for (var i = t.length, o = 1; o < i; o++) {
                    var s = 4 * o,
                        a = o / (i - 1);
                    e[s] = a, e[s + 1] = 0, e[s + 2] = a, e[s + 3] = 1, r[s = 2 * o] = 1, r[s + 1] = 1, n[s = 2 * o] = s, n[s + 1] = s + 1
                }
                this.dirty++, this.indexDirty++, this.multiplyUvs(), this.refreshVertices()
            }
        }, e.prototype.refreshVertices = function() {
            var t = this.points;
            if (!(t.length < 1))
                for (var e = t[0], n = void 0, r = 0, i = 0, o = this.vertices, s = t.length, a = 0; a < s; a++) {
                    var u = t[a],
                        l = 4 * a;
                    i = -((n = a < t.length - 1 ? t[a + 1] : u).x - e.x), r = n.y - e.y;
                    var c = 10 * (1 - a / (s - 1));
                    c > 1 && (c = 1);
                    var h = Math.sqrt(r * r + i * i),
                        f = this._texture.height / 2;
                    r /= h, i /= h, r *= f, i *= f, o[l] = u.x + r, o[l + 1] = u.y + i, o[l + 2] = u.x - r, o[l + 3] = u.y - i, e = u
                }
        }, e.prototype.updateTransform = function() {
            this.autoUpdate && this.refreshVertices(), this.containerUpdateTransform()
        }, e
    }(((r = n(32)) && r.__esModule ? r : {
        default: r
    }).default);
    e.default = i
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = (r = n(32)) && r.__esModule ? r : {
            default: r
        },
        s = function() {
            function t(e) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.renderer = e
            }
            return t.prototype.render = function(t) {
                var e = this.renderer,
                    n = e.context,
                    r = t.worldTransform,
                    i = e.resolution;
                e.roundPixels ? n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i | 0, r.ty * i | 0) : n.setTransform(r.a * i, r.b * i, r.c * i, r.d * i, r.tx * i, r.ty * i), e.context.globalAlpha = t.worldAlpha, e.setBlendMode(t.blendMode), t.drawMode === o.default.DRAW_MODES.TRIANGLE_MESH ? this._renderTriangleMesh(t) : this._renderTriangles(t)
            }, t.prototype._renderTriangleMesh = function(t) {
                for (var e = t.vertices.length / 2, n = 0; n < e - 2; n++) {
                    var r = 2 * n;
                    this._renderDrawTriangle(t, r, r + 2, r + 4)
                }
            }, t.prototype._renderTriangles = function(t) {
                for (var e = t.indices, n = e.length, r = 0; r < n; r += 3) {
                    var i = 2 * e[r],
                        o = 2 * e[r + 1],
                        s = 2 * e[r + 2];
                    this._renderDrawTriangle(t, i, o, s)
                }
            }, t.prototype._renderDrawTriangle = function(t, e, n, r) {
                var i = this.renderer.context,
                    o = t.uvs,
                    s = t.vertices,
                    a = t._texture;
                if (a.valid) {
                    var u = a.baseTexture,
                        l = u.source,
                        c = u.width,
                        h = u.height,
                        f = void 0,
                        d = void 0,
                        p = void 0,
                        v = void 0,
                        _ = void 0,
                        g = void 0;
                    if (t.uploadUvTransform) {
                        var y = t._uvTransform.mapCoord;
                        f = (o[e] * y.a + o[e + 1] * y.c + y.tx) * u.width, d = (o[n] * y.a + o[n + 1] * y.c + y.tx) * u.width, p = (o[r] * y.a + o[r + 1] * y.c + y.tx) * u.width, v = (o[e] * y.b + o[e + 1] * y.d + y.ty) * u.height, _ = (o[n] * y.b + o[n + 1] * y.d + y.ty) * u.height, g = (o[r] * y.b + o[r + 1] * y.d + y.ty) * u.height
                    } else f = o[e] * u.width, d = o[n] * u.width, p = o[r] * u.width, v = o[e + 1] * u.height, _ = o[n + 1] * u.height, g = o[r + 1] * u.height;
                    var m = s[e],
                        b = s[n],
                        x = s[r],
                        w = s[e + 1],
                        T = s[n + 1],
                        E = s[r + 1],
                        S = t.canvasPadding / this.renderer.resolution;
                    if (S > 0) {
                        var P = S / Math.abs(t.worldTransform.a),
                            O = S / Math.abs(t.worldTransform.d),
                            M = (m + b + x) / 3,
                            C = (w + T + E) / 3,
                            A = m - M,
                            I = w - C,
                            R = Math.sqrt(A * A + I * I);
                        m = M + A / R * (R + P), w = C + I / R * (R + O), I = T - C, b = M + (A = b - M) / (R = Math.sqrt(A * A + I * I)) * (R + P), T = C + I / R * (R + O), I = E - C, x = M + (A = x - M) / (R = Math.sqrt(A * A + I * I)) * (R + P), E = C + I / R * (R + O)
                    }
                    i.save(), i.beginPath(), i.moveTo(m, w), i.lineTo(b, T), i.lineTo(x, E), i.closePath(), i.clip();
                    var D = f * _ + v * p + d * g - _ * p - v * d - f * g,
                        L = m * _ + v * x + b * g - _ * x - v * b - m * g,
                        k = f * b + m * p + d * x - b * p - m * d - f * x,
                        j = f * _ * x + v * b * p + m * d * g - m * _ * p - v * d * x - f * b * g,
                        N = w * _ + v * E + T * g - _ * E - v * T - w * g,
                        B = f * T + w * p + d * E - T * p - w * d - f * E,
                        F = f * _ * E + v * T * p + w * d * g - w * _ * p - v * d * E - f * T * g;
                    i.transform(L / D, N / D, k / D, B / D, j / D, F / D), i.drawImage(l, 0, 0, c * u.resolution, h * u.resolution, 0, 0, c, h), i.restore(), this.renderer.invalidateBlendMode()
                }
            }, t.prototype.renderMeshFlat = function(t) {
                var e = this.renderer.context,
                    n = t.vertices,
                    r = n.length / 2;
                e.beginPath();
                for (var i = 1; i < r - 2; ++i) {
                    var o = 2 * i,
                        s = n[o],
                        a = n[o + 1],
                        u = n[o + 2],
                        l = n[o + 3],
                        c = n[o + 4],
                        h = n[o + 5];
                    e.moveTo(s, a), e.lineTo(u, l), e.lineTo(c, h)
                }
                e.fillStyle = "#FF0000", e.fill(), e.closePath()
            }, t.prototype.destroy = function() {
                this.renderer = null
            }, t
        }();
    e.default = s, i.CanvasRenderer.registerPlugin("mesh", s)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(32);
    Object.defineProperty(e, "Mesh", {
        enumerable: !0,
        get: function() {
            return l(r).default
        }
    });
    var i = n(451);
    Object.defineProperty(e, "MeshRenderer", {
        enumerable: !0,
        get: function() {
            return l(i).default
        }
    });
    var o = n(449);
    Object.defineProperty(e, "CanvasMeshRenderer", {
        enumerable: !0,
        get: function() {
            return l(o).default
        }
    });
    var s = n(188);
    Object.defineProperty(e, "Plane", {
        enumerable: !0,
        get: function() {
            return l(s).default
        }
    });
    var a = n(447);
    Object.defineProperty(e, "NineSlicePlane", {
        enumerable: !0,
        get: function() {
            return l(a).default
        }
    });
    var u = n(448);

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "Rope", {
        enumerable: !0,
        get: function() {
            return l(u).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = s(n(9)),
        o = s(n(32));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    n(12);
    var a = r.Matrix.IDENTITY,
        u = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.shader = null, r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.onContextChange = function() {
                var t = this.renderer.gl;
                this.shader = new r.Shader(t, "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n    gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n    vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", "varying vec2 vTextureCoord;\nuniform vec4 uColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n    gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;\n}\n")
            }, e.prototype.render = function(t) {
                var e = this.renderer,
                    n = e.gl,
                    s = t._texture;
                if (s.valid) {
                    var u = t._glDatas[e.CONTEXT_UID];
                    u || (e.bindVao(null), (u = {
                        shader: this.shader,
                        vertexBuffer: i.default.GLBuffer.createVertexBuffer(n, t.vertices, n.STREAM_DRAW),
                        uvBuffer: i.default.GLBuffer.createVertexBuffer(n, t.uvs, n.STREAM_DRAW),
                        indexBuffer: i.default.GLBuffer.createIndexBuffer(n, t.indices, n.STATIC_DRAW),
                        vao: null,
                        dirty: t.dirty,
                        indexDirty: t.indexDirty,
                        vertexDirty: t.vertexDirty
                    }).vao = new i.default.VertexArrayObject(n).addIndex(u.indexBuffer).addAttribute(u.vertexBuffer, u.shader.attributes.aVertexPosition, n.FLOAT, !1, 8, 0).addAttribute(u.uvBuffer, u.shader.attributes.aTextureCoord, n.FLOAT, !1, 8, 0), t._glDatas[e.CONTEXT_UID] = u), e.bindVao(u.vao), t.dirty !== u.dirty && (u.dirty = t.dirty, u.uvBuffer.upload(t.uvs)), t.indexDirty !== u.indexDirty && (u.indexDirty = t.indexDirty, u.indexBuffer.upload(t.indices)), t.vertexDirty !== u.vertexDirty && (u.vertexDirty = t.vertexDirty, u.vertexBuffer.upload(t.vertices)), e.bindShader(u.shader), u.shader.uniforms.uSampler = e.bindTexture(s), e.state.setBlendMode(r.utils.correctBlendMode(t.blendMode, s.baseTexture.premultipliedAlpha)), u.shader.uniforms.uTransform && (t.uploadUvTransform ? u.shader.uniforms.uTransform = t._uvTransform.mapCoord.toArray(!0) : u.shader.uniforms.uTransform = a.toArray(!0)), u.shader.uniforms.translationMatrix = t.worldTransform.toArray(!0), u.shader.uniforms.uColor = r.utils.premultiplyRgba(t.tintRgb, t.worldAlpha, u.shader.uniforms.uColor, s.baseTexture.premultipliedAlpha);
                    var l = t.drawMode === o.default.DRAW_MODES.TRIANGLE_MESH ? n.TRIANGLE_STRIP : n.TRIANGLES;
                    u.vao.draw(l, t.indices.length, 0)
                }
            }, e
        }(r.ObjectRenderer);
    e.default = u, r.WebGLRenderer.registerPlugin("mesh", u)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = n(2),
        s = function(t) {
            function e() {
                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1500,
                    r = arguments[1],
                    o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 16384,
                    s = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var a = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this));
                return o > 16384 && (o = 16384), o > n && (o = n), a._properties = [!1, !0, !1, !1, !1], a._maxSize = n, a._batchSize = o, a._glBuffers = {}, a._bufferUpdateIDs = [], a._updateID = 0, a.interactiveChildren = !1, a.blendMode = i.BLEND_MODES.NORMAL, a.autoResize = s, a.roundPixels = !0, a.baseTexture = null, a.setProperties(r), a._tint = 0, a.tintRgb = new Float32Array(4), a.tint = 16777215, a
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.setProperties = function(t) {
                t && (this._properties[0] = "vertices" in t || "scale" in t ? !!t.vertices || !!t.scale : this._properties[0], this._properties[1] = "position" in t ? !!t.position : this._properties[1], this._properties[2] = "rotation" in t ? !!t.rotation : this._properties[2], this._properties[3] = "uvs" in t ? !!t.uvs : this._properties[3], this._properties[4] = "tint" in t || "alpha" in t ? !!t.tint || !!t.alpha : this._properties[4])
            }, e.prototype.updateTransform = function() {
                this.displayObjectUpdateTransform()
            }, e.prototype.renderWebGL = function(t) {
                var e = this;
                this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable && (this.baseTexture || (this.baseTexture = this.children[0]._texture.baseTexture, this.baseTexture.hasLoaded || this.baseTexture.once("update", function() {
                    return e.onChildrenChange(0)
                })), t.setObjectRenderer(t.plugins.particle), t.plugins.particle.render(this))
            }, e.prototype.onChildrenChange = function(t) {
                for (var e = Math.floor(t / this._batchSize); this._bufferUpdateIDs.length < e;) this._bufferUpdateIDs.push(0);
                this._bufferUpdateIDs[e] = ++this._updateID
            }, e.prototype.renderCanvas = function(t) {
                if (this.visible && !(this.worldAlpha <= 0) && this.children.length && this.renderable) {
                    var e = t.context,
                        n = this.worldTransform,
                        r = !0,
                        i = 0,
                        o = 0,
                        s = 0,
                        a = 0;
                    t.setBlendMode(this.blendMode), e.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform();
                    for (var u = 0; u < this.children.length; ++u) {
                        var l = this.children[u];
                        if (l.visible) {
                            var c = l._texture.frame;
                            if (e.globalAlpha = this.worldAlpha * l.alpha, l.rotation % (2 * Math.PI) == 0) r && (e.setTransform(n.a, n.b, n.c, n.d, n.tx * t.resolution, n.ty * t.resolution), r = !1), i = l.anchor.x * (-c.width * l.scale.x) + l.position.x + .5, o = l.anchor.y * (-c.height * l.scale.y) + l.position.y + .5, s = c.width * l.scale.x, a = c.height * l.scale.y;
                            else {
                                r || (r = !0), l.displayObjectUpdateTransform();
                                var h = l.worldTransform;
                                t.roundPixels ? e.setTransform(h.a, h.b, h.c, h.d, h.tx * t.resolution | 0, h.ty * t.resolution | 0) : e.setTransform(h.a, h.b, h.c, h.d, h.tx * t.resolution, h.ty * t.resolution), i = l.anchor.x * -c.width + .5, o = l.anchor.y * -c.height + .5, s = c.width, a = c.height
                            }
                            var f = l._texture.baseTexture.resolution;
                            e.drawImage(l._texture.baseTexture.source, c.x * f, c.y * f, c.width * f, c.height * f, i * t.resolution, o * t.resolution, s * t.resolution, a * t.resolution)
                        }
                    }
                }
            }, e.prototype.destroy = function(e) {
                if (t.prototype.destroy.call(this, e), this._buffers)
                    for (var n = 0; n < this._buffers.length; ++n) this._buffers[n].destroy();
                this._properties = null, this._buffers = null, this._bufferUpdateIDs = null
            }, r(e, [{
                key: "tint",
                get: function() {
                    return this._tint
                },
                set: function(t) {
                    this._tint = t, (0, o.hex2rgb)(t, this.tintRgb)
                }
            }]), e
        }(i.Container);
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(452);
    Object.defineProperty(e, "ParticleContainer", {
        enumerable: !0,
        get: function() {
            return o(r).default
        }
    });
    var i = n(455);

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "ParticleRenderer", {
        enumerable: !0,
        get: function() {
            return o(i).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = o(n(9)),
        i = o(n(82));

    function o(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var s = function() {
        function t(e, n, r, i) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.gl = e, this.size = i, this.dynamicProperties = [], this.staticProperties = [];
            for (var o = 0; o < n.length; ++o) {
                var s = n[o];
                s = {
                    attribute: s.attribute,
                    size: s.size,
                    uploadFunction: s.uploadFunction,
                    unsignedByte: s.unsignedByte,
                    offset: s.offset
                }, r[o] ? this.dynamicProperties.push(s) : this.staticProperties.push(s)
            }
            this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this._updateID = 0, this.initBuffers()
        }
        return t.prototype.initBuffers = function() {
            var t = this.gl,
                e = 0;
            this.indices = (0, i.default)(this.size), this.indexBuffer = r.default.GLBuffer.createIndexBuffer(t, this.indices, t.STATIC_DRAW), this.dynamicStride = 0;
            for (var n = 0; n < this.dynamicProperties.length; ++n) {
                var o = this.dynamicProperties[n];
                o.offset = e, e += o.size, this.dynamicStride += o.size
            }
            var s = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4);
            this.dynamicData = new Float32Array(s), this.dynamicDataUint32 = new Uint32Array(s), this.dynamicBuffer = r.default.GLBuffer.createVertexBuffer(t, s, t.STREAM_DRAW);
            var a = 0;
            this.staticStride = 0;
            for (var u = 0; u < this.staticProperties.length; ++u) {
                var l = this.staticProperties[u];
                l.offset = a, a += l.size, this.staticStride += l.size
            }
            var c = new ArrayBuffer(this.size * this.staticStride * 4 * 4);
            this.staticData = new Float32Array(c), this.staticDataUint32 = new Uint32Array(c), this.staticBuffer = r.default.GLBuffer.createVertexBuffer(t, c, t.STATIC_DRAW), this.vao = new r.default.VertexArrayObject(t).addIndex(this.indexBuffer);
            for (var h = 0; h < this.dynamicProperties.length; ++h) {
                var f = this.dynamicProperties[h];
                f.unsignedByte ? this.vao.addAttribute(this.dynamicBuffer, f.attribute, t.UNSIGNED_BYTE, !0, 4 * this.dynamicStride, 4 * f.offset) : this.vao.addAttribute(this.dynamicBuffer, f.attribute, t.FLOAT, !1, 4 * this.dynamicStride, 4 * f.offset)
            }
            for (var d = 0; d < this.staticProperties.length; ++d) {
                var p = this.staticProperties[d];
                p.unsignedByte ? this.vao.addAttribute(this.staticBuffer, p.attribute, t.UNSIGNED_BYTE, !0, 4 * this.staticStride, 4 * p.offset) : this.vao.addAttribute(this.staticBuffer, p.attribute, t.FLOAT, !1, 4 * this.staticStride, 4 * p.offset)
            }
        }, t.prototype.uploadDynamic = function(t, e, n) {
            for (var r = 0; r < this.dynamicProperties.length; r++) {
                var i = this.dynamicProperties[r];
                i.uploadFunction(t, e, n, i.unsignedByte ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, i.offset)
            }
            this.dynamicBuffer.upload()
        }, t.prototype.uploadStatic = function(t, e, n) {
            for (var r = 0; r < this.staticProperties.length; r++) {
                var i = this.staticProperties[r];
                i.uploadFunction(t, e, n, i.unsignedByte ? this.staticDataUint32 : this.staticData, this.staticStride, i.offset)
            }
            this.staticBuffer.upload()
        }, t.prototype.destroy = function() {
            this.dynamicProperties = null, this.dynamicBuffer.destroy(), this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer.destroy(), this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null
        }, t
    }();
    e.default = s
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        i = a(n(456)),
        o = a(n(454)),
        s = n(2);

    function a(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var u = function(t) {
        function e(n) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, e);
            var i = function(t, e) {
                if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !e || "object" != typeof e && "function" != typeof e ? t : e
            }(this, t.call(this, n));
            return i.shader = null, i.indexBuffer = null, i.properties = null, i.tempMatrix = new r.Matrix, i.CONTEXT_UID = 0, i
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e.prototype.onContextChange = function() {
            var t = this.renderer.gl;
            this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.shader = new i.default(t), this.properties = [{
                attribute: this.shader.attributes.aVertexPosition,
                size: 2,
                uploadFunction: this.uploadVertices,
                offset: 0
            }, {
                attribute: this.shader.attributes.aPositionCoord,
                size: 2,
                uploadFunction: this.uploadPosition,
                offset: 0
            }, {
                attribute: this.shader.attributes.aRotation,
                size: 1,
                uploadFunction: this.uploadRotation,
                offset: 0
            }, {
                attribute: this.shader.attributes.aTextureCoord,
                size: 2,
                uploadFunction: this.uploadUvs,
                offset: 0
            }, {
                attribute: this.shader.attributes.aColor,
                size: 1,
                unsignedByte: !0,
                uploadFunction: this.uploadTint,
                offset: 0
            }]
        }, e.prototype.start = function() {
            this.renderer.bindShader(this.shader)
        }, e.prototype.render = function(t) {
            var e = t.children,
                n = t._maxSize,
                i = t._batchSize,
                o = this.renderer,
                s = e.length;
            if (0 !== s) {
                s > n && (s = n);
                var a = t._glBuffers[o.CONTEXT_UID];
                a || (a = t._glBuffers[o.CONTEXT_UID] = this.generateBuffers(t));
                var u = e[0]._texture.baseTexture;
                this.renderer.setBlendMode(r.utils.correctBlendMode(t.blendMode, u.premultipliedAlpha));
                var l = o.gl,
                    c = t.worldTransform.copy(this.tempMatrix);
                c.prepend(o._activeRenderTarget.projectionMatrix), this.shader.uniforms.projectionMatrix = c.toArray(!0), this.shader.uniforms.uColor = r.utils.premultiplyRgba(t.tintRgb, t.worldAlpha, this.shader.uniforms.uColor, u.premultipliedAlpha), this.shader.uniforms.uSampler = o.bindTexture(u);
                for (var h = !1, f = 0, d = 0; f < s; f += i, d += 1) {
                    var p = s - f;
                    if (p > i && (p = i), d >= a.length) {
                        if (!t.autoResize) break;
                        a.push(this._generateOneMoreBuffer(t))
                    }
                    var v = a[d];
                    v.uploadDynamic(e, f, p);
                    var _ = t._bufferUpdateIDs[d] || 0;
                    (h = h || v._updateID < _) && (v._updateID = t._updateID, v.uploadStatic(e, f, p)), o.bindVao(v.vao), v.vao.draw(l.TRIANGLES, 6 * p)
                }
            }
        }, e.prototype.generateBuffers = function(t) {
            for (var e = this.renderer.gl, n = [], r = t._maxSize, i = t._batchSize, s = t._properties, a = 0; a < r; a += i) n.push(new o.default(e, this.properties, s, i));
            return n
        }, e.prototype._generateOneMoreBuffer = function(t) {
            var e = this.renderer.gl,
                n = t._batchSize,
                r = t._properties;
            return new o.default(e, this.properties, r, n)
        }, e.prototype.uploadVertices = function(t, e, n, r, i, o) {
            for (var s = 0, a = 0, u = 0, l = 0, c = 0; c < n; ++c) {
                var h = t[e + c],
                    f = h._texture,
                    d = h.scale.x,
                    p = h.scale.y,
                    v = f.trim,
                    _ = f.orig;
                v ? (s = (a = v.x - h.anchor.x * _.width) + v.width, u = (l = v.y - h.anchor.y * _.height) + v.height) : (s = _.width * (1 - h.anchor.x), a = _.width * -h.anchor.x, u = _.height * (1 - h.anchor.y), l = _.height * -h.anchor.y), r[o] = a * d, r[o + 1] = l * p, r[o + i] = s * d, r[o + i + 1] = l * p, r[o + 2 * i] = s * d, r[o + 2 * i + 1] = u * p, r[o + 3 * i] = a * d, r[o + 3 * i + 1] = u * p, o += 4 * i
            }
        }, e.prototype.uploadPosition = function(t, e, n, r, i, o) {
            for (var s = 0; s < n; s++) {
                var a = t[e + s].position;
                r[o] = a.x, r[o + 1] = a.y, r[o + i] = a.x, r[o + i + 1] = a.y, r[o + 2 * i] = a.x, r[o + 2 * i + 1] = a.y, r[o + 3 * i] = a.x, r[o + 3 * i + 1] = a.y, o += 4 * i
            }
        }, e.prototype.uploadRotation = function(t, e, n, r, i, o) {
            for (var s = 0; s < n; s++) {
                var a = t[e + s].rotation;
                r[o] = a, r[o + i] = a, r[o + 2 * i] = a, r[o + 3 * i] = a, o += 4 * i
            }
        }, e.prototype.uploadUvs = function(t, e, n, r, i, o) {
            for (var s = 0; s < n; ++s) {
                var a = t[e + s]._texture._uvs;
                a ? (r[o] = a.x0, r[o + 1] = a.y0, r[o + i] = a.x1, r[o + i + 1] = a.y1, r[o + 2 * i] = a.x2, r[o + 2 * i + 1] = a.y2, r[o + 3 * i] = a.x3, r[o + 3 * i + 1] = a.y3, o += 4 * i) : (r[o] = 0, r[o + 1] = 0, r[o + i] = 0, r[o + i + 1] = 0, r[o + 2 * i] = 0, r[o + 2 * i + 1] = 0, r[o + 3 * i] = 0, r[o + 3 * i + 1] = 0, o += 4 * i)
            }
        }, e.prototype.uploadTint = function(t, e, n, r, i, o) {
            for (var a = 0; a < n; ++a) {
                var u = t[e + a],
                    l = u._texture.baseTexture.premultipliedAlpha,
                    c = u.alpha,
                    h = c < 1 && l ? (0, s.premultiplyTint)(u._tintRGB, c) : u._tintRGB + (255 * c << 24);
                r[o] = h, r[o + i] = h, r[o + 2 * i] = h, r[o + 3 * i] = h, o += 4 * i
            }
        }, e.prototype.destroy = function() {
            this.renderer.gl && this.renderer.gl.deleteBuffer(this.indexBuffer), t.prototype.destroy.call(this), this.shader.destroy(), this.indices = null, this.tempMatrix = null
        }, e
    }(r.ObjectRenderer);
    e.default = u, r.WebGLRenderer.registerPlugin("particle", u)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
        function e(n) {
            return function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e),
                function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n, ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "attribute vec4 aColor;", "attribute vec2 aPositionCoord;", "attribute float aRotation;", "uniform mat3 projectionMatrix;", "uniform vec4 uColor;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "void main(void){", "   float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);", "   float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);", "   vec2 v = vec2(x, y);", "   v = v + aPositionCoord;", "   gl_Position = vec4((projectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);", "   vTextureCoord = aTextureCoord;", "   vColor = aColor * uColor;", "}"].join("\n"), ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void){", "  vec4 color = texture2D(uSampler, vTextureCoord) * vColor;", "  gl_FragColor = color;", "}"].join("\n")))
        }
        return function(t, e) {
            if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }(e, t), e
    }(((r = n(28)) && r.__esModule ? r : {
        default: r
    }).default);
    e.default = i
}, function(t, e, n) {
    "use strict";
    Math.sign || (Math.sign = function(t) {
        return 0 === (t = Number(t)) || isNaN(t) ? t : t > 0 ? 1 : -1
    })
}, function(t, e, n) {
    "use strict";
    Number.isInteger || (Number.isInteger = function(t) {
        return "number" == typeof t && isFinite(t) && Math.floor(t) === t
    })
}, function(t, e, n) {
    "use strict";
    var r, i = (r = n(374)) && r.__esModule ? r : {
        default: r
    };
    Object.assign || (Object.assign = i.default)
}, function(t, e, n) {
    "use strict";
    n(459), n(461), n(457), n(458), window.ArrayBuffer || (window.ArrayBuffer = Array), window.Float32Array || (window.Float32Array = Array), window.Uint32Array || (window.Uint32Array = Array), window.Uint16Array || (window.Uint16Array = Array)
}, function(t, e, n) {
    "use strict";
    (function(t) {
        if (Date.now && Date.prototype.getTime || (Date.now = function() {
                return (new Date).getTime()
            }), !t.performance || !t.performance.now) {
            var e = Date.now();
            t.performance || (t.performance = {}), t.performance.now = function() {
                return Date.now() - e
            }
        }
        for (var n = Date.now(), r = ["ms", "moz", "webkit", "o"], i = 0; i < r.length && !t.requestAnimationFrame; ++i) {
            var o = r[i];
            t.requestAnimationFrame = t[o + "RequestAnimationFrame"], t.cancelAnimationFrame = t[o + "CancelAnimationFrame"] || t[o + "CancelRequestAnimationFrame"]
        }
        t.requestAnimationFrame || (t.requestAnimationFrame = function(t) {
            if ("function" != typeof t) throw new TypeError(t + "is not a function");
            var e = Date.now(),
                r = 16 + n - e;
            return r < 0 && (r = 0), n = e, setTimeout(function() {
                n = Date.now(), t(performance.now())
            }, r)
        }), t.cancelAnimationFrame || (t.cancelAnimationFrame = function(t) {
            return clearTimeout(t)
        })
    }).call(e, n(18))
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = n(83),
        s = 16,
        a = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.uploadHookHelper = r, r.canvas = document.createElement("canvas"), r.canvas.width = s, r.canvas.height = s, r.ctx = r.canvas.getContext("2d"), r.registerUploadHook(u), r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e.prototype.destroy = function() {
                t.prototype.destroy.call(this), this.ctx = null, this.canvas = null
            }, e
        }(((r = o) && r.__esModule ? r : {
            default: r
        }).default);

    function u(t, e) {
        if (e instanceof i.BaseTexture) {
            var n = e.source,
                r = 0 === n.width ? t.canvas.width : Math.min(t.canvas.width, n.width),
                o = 0 === n.height ? t.canvas.height : Math.min(t.canvas.height, n.height);
            return t.ctx.drawImage(n, 0, 0, r, o, 0, 0, t.canvas.width, t.canvas.height), !0
        }
        return !1
    }
    e.default = a, i.CanvasRenderer.registerPlugin("prepare", a)
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = n(465);
    Object.defineProperty(e, "webgl", {
        enumerable: !0,
        get: function() {
            return u(r).default
        }
    });
    var i = n(462);
    Object.defineProperty(e, "canvas", {
        enumerable: !0,
        get: function() {
            return u(i).default
        }
    });
    var o = n(83);
    Object.defineProperty(e, "BasePrepare", {
        enumerable: !0,
        get: function() {
            return u(o).default
        }
    });
    var s = n(189);
    Object.defineProperty(e, "CountLimiter", {
        enumerable: !0,
        get: function() {
            return u(s).default
        }
    });
    var a = n(464);

    function u(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    Object.defineProperty(e, "TimeLimiter", {
        enumerable: !0,
        get: function() {
            return u(a).default
        }
    })
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = function() {
        function t(e) {
            ! function(t, e) {
                if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
            }(this, t), this.maxMilliseconds = e, this.frameStart = 0
        }
        return t.prototype.beginFrame = function() {
            this.frameStart = Date.now()
        }, t.prototype.allowedToUpload = function() {
            return Date.now() - this.frameStart < this.maxMilliseconds
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r, i = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(1)),
        o = function(t) {
            function e(n) {
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, e);
                var r = function(t, e) {
                    if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !e || "object" != typeof e && "function" != typeof e ? t : e
                }(this, t.call(this, n));
                return r.uploadHookHelper = r.renderer, r.registerFindHook(u), r.registerUploadHook(s), r.registerUploadHook(a), r
            }
            return function(t, e) {
                if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                t.prototype = Object.create(e && e.prototype, {
                    constructor: {
                        value: t,
                        enumerable: !1,
                        writable: !0,
                        configurable: !0
                    }
                }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
            }(e, t), e
        }(((r = n(83)) && r.__esModule ? r : {
            default: r
        }).default);

    function s(t, e) {
        return e instanceof i.BaseTexture && (e._glTextures[t.CONTEXT_UID] || t.textureManager.updateTexture(e), !0)
    }

    function a(t, e) {
        return e instanceof i.Graphics && ((e.dirty || e.clearDirty || !e._webGL[t.plugins.graphics.CONTEXT_UID]) && t.plugins.graphics.updateGraphics(e), !0)
    }

    function u(t, e) {
        return t instanceof i.Graphics && (e.push(t), !0)
    }
    e.default = o, i.WebGLRenderer.registerPlugin("prepare", o)
}, function(t, e) {
    var n, r, i = t.exports = {};

    function o() {
        throw new Error("setTimeout has not been defined")
    }

    function s() {
        throw new Error("clearTimeout has not been defined")
    }

    function a(t) {
        if (n === setTimeout) return setTimeout(t, 0);
        if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0);
        try {
            return n(t, 0)
        } catch (e) {
            try {
                return n.call(null, t, 0)
            } catch (e) {
                return n.call(this, t, 0)
            }
        }
    }! function() {
        try {
            n = "function" == typeof setTimeout ? setTimeout : o
        } catch (t) {
            n = o
        }
        try {
            r = "function" == typeof clearTimeout ? clearTimeout : s
        } catch (t) {
            r = s
        }
    }();
    var u, l = [],
        c = !1,
        h = -1;

    function f() {
        c && u && (c = !1, u.length ? l = u.concat(l) : h = -1, l.length && d())
    }

    function d() {
        if (!c) {
            var t = a(f);
            c = !0;
            for (var e = l.length; e;) {
                for (u = l, l = []; ++h < e;) u && u[h].run();
                h = -1, e = l.length
            }
            u = null, c = !1,
                function(t) {
                    if (r === clearTimeout) return clearTimeout(t);
                    if ((r === s || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t);
                    try {
                        r(t)
                    } catch (e) {
                        try {
                            return r.call(null, t)
                        } catch (e) {
                            return r.call(this, t)
                        }
                    }
                }(t)
        }
    }

    function p(t, e) {
        this.fun = t, this.array = e
    }

    function v() {}
    i.nextTick = function(t) {
        var e = new Array(arguments.length - 1);
        if (arguments.length > 1)
            for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
        l.push(new p(t, e)), 1 !== l.length || c || a(d)
    }, p.prototype.run = function() {
        this.fun.apply(null, this.array)
    }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = v, i.addListener = v, i.once = v, i.off = v, i.removeListener = v, i.removeAllListeners = v, i.emit = v, i.prependListener = v, i.prependOnceListener = v, i.listeners = function(t) {
        return []
    }, i.binding = function(t) {
        throw new Error("process.binding is not supported")
    }, i.cwd = function() {
        return "/"
    }, i.chdir = function(t) {
        throw new Error("process.chdir is not supported")
    }, i.umask = function() {
        return 0
    }
}, function(t, e, n) {
    (function(t, r) {
        var i;
        ! function(o) {
            "object" == typeof e && e && e.nodeType, "object" == typeof t && t && t.nodeType;
            var s = "object" == typeof r && r;
            s.global !== s && s.window !== s && s.self;
            var a, u = 2147483647,
                l = 36,
                c = 1,
                h = 26,
                f = 38,
                d = 700,
                p = 72,
                v = 128,
                _ = "-",
                g = /^xn--/,
                y = /[^\x20-\x7E]/,
                m = /[\x2E\u3002\uFF0E\uFF61]/g,
                b = {
                    overflow: "Overflow: input needs wider integers to process",
                    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
                    "invalid-input": "Invalid input"
                },
                x = l - c,
                w = Math.floor,
                T = String.fromCharCode;

            function E(t) {
                throw new RangeError(b[t])
            }

            function S(t, e) {
                for (var n = t.length, r = []; n--;) r[n] = e(t[n]);
                return r
            }

            function P(t, e) {
                var n = t.split("@"),
                    r = "";
                return n.length > 1 && (r = n[0] + "@", t = n[1]), r + S((t = t.replace(m, ".")).split("."), e).join(".")
            }

            function O(t) {
                for (var e, n, r = [], i = 0, o = t.length; i < o;)(e = t.charCodeAt(i++)) >= 55296 && e <= 56319 && i < o ? 56320 == (64512 & (n = t.charCodeAt(i++))) ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) : (r.push(e), i--) : r.push(e);
                return r
            }

            function M(t) {
                return S(t, function(t) {
                    var e = "";
                    return t > 65535 && (e += T((t -= 65536) >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e + T(t)
                }).join("")
            }

            function C(t, e) {
                return t + 22 + 75 * (t < 26) - ((0 != e) << 5)
            }

            function A(t, e, n) {
                var r = 0;
                for (t = n ? w(t / d) : t >> 1, t += w(t / e); t > x * h >> 1; r += l) t = w(t / x);
                return w(r + (x + 1) * t / (t + f))
            }

            function I(t) {
                var e, n, r, i, o, s, a, f, d, g, y, m = [],
                    b = t.length,
                    x = 0,
                    T = v,
                    S = p;
                for ((n = t.lastIndexOf(_)) < 0 && (n = 0), r = 0; r < n; ++r) t.charCodeAt(r) >= 128 && E("not-basic"), m.push(t.charCodeAt(r));
                for (i = n > 0 ? n + 1 : 0; i < b;) {
                    for (o = x, s = 1, a = l; i >= b && E("invalid-input"), ((f = (y = t.charCodeAt(i++)) - 48 < 10 ? y - 22 : y - 65 < 26 ? y - 65 : y - 97 < 26 ? y - 97 : l) >= l || f > w((u - x) / s)) && E("overflow"), x += f * s, !(f < (d = a <= S ? c : a >= S + h ? h : a - S)); a += l) s > w(u / (g = l - d)) && E("overflow"), s *= g;
                    S = A(x - o, e = m.length + 1, 0 == o), w(x / e) > u - T && E("overflow"), T += w(x / e), x %= e, m.splice(x++, 0, T)
                }
                return M(m)
            }

            function R(t) {
                var e, n, r, i, o, s, a, f, d, g, y, m, b, x, S, P = [];
                for (m = (t = O(t)).length, e = v, n = 0, o = p, s = 0; s < m; ++s)(y = t[s]) < 128 && P.push(T(y));
                for (r = i = P.length, i && P.push(_); r < m;) {
                    for (a = u, s = 0; s < m; ++s)(y = t[s]) >= e && y < a && (a = y);
                    for (a - e > w((u - n) / (b = r + 1)) && E("overflow"), n += (a - e) * b, e = a, s = 0; s < m; ++s)
                        if ((y = t[s]) < e && ++n > u && E("overflow"), y == e) {
                            for (f = n, d = l; !(f < (g = d <= o ? c : d >= o + h ? h : d - o)); d += l) S = f - g, x = l - g, P.push(T(C(g + S % x, 0))), f = w(S / x);
                            P.push(T(C(f, 0))), o = A(n, b, r == i), n = 0, ++r
                        }++n, ++e
                }
                return P.join("")
            }
            a = {
                version: "1.4.1",
                ucs2: {
                    decode: O,
                    encode: M
                },
                decode: I,
                encode: R,
                toASCII: function(t) {
                    return P(t, function(t) {
                        return y.test(t) ? "xn--" + R(t) : t
                    })
                },
                toUnicode: function(t) {
                    return P(t, function(t) {
                        return g.test(t) ? I(t.slice(4).toLowerCase()) : t
                    })
                }
            }, void 0 === (i = function() {
                return a
            }.call(e, n, e, t)) || (t.exports = i)
        }()
    }).call(e, n(14)(t), n(18))
}, function(t, e, n) {
    "use strict";

    function r(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    t.exports = function(t, e, n, o) {
        e = e || "&", n = n || "=";
        var s = {};
        if ("string" != typeof t || 0 === t.length) return s;
        var a = /\+/g;
        t = t.split(e);
        var u = 1e3;
        o && "number" == typeof o.maxKeys && (u = o.maxKeys);
        var l = t.length;
        u > 0 && l > u && (l = u);
        for (var c = 0; c < l; ++c) {
            var h, f, d, p, v = t[c].replace(a, "%20"),
                _ = v.indexOf(n);
            _ >= 0 ? (h = v.substr(0, _), f = v.substr(_ + 1)) : (h = v, f = ""), d = decodeURIComponent(h), p = decodeURIComponent(f), r(s, d) ? i(s[d]) ? s[d].push(p) : s[d] = [s[d], p] : s[d] = p
        }
        return s
    };
    var i = Array.isArray || function(t) {
        return "[object Array]" === Object.prototype.toString.call(t)
    }
}, function(t, e, n) {
    "use strict";
    var r = function(t) {
        switch (typeof t) {
            case "string":
                return t;
            case "boolean":
                return t ? "true" : "false";
            case "number":
                return isFinite(t) ? t : "";
            default:
                return ""
        }
    };
    t.exports = function(t, e, n, a) {
        return e = e || "&", n = n || "=", null === t && (t = void 0), "object" == typeof t ? o(s(t), function(s) {
            var a = encodeURIComponent(r(s)) + n;
            return i(t[s]) ? o(t[s], function(t) {
                return a + encodeURIComponent(r(t))
            }).join(e) : a + encodeURIComponent(r(t[s]))
        }).join(e) : a ? encodeURIComponent(r(a)) + n + encodeURIComponent(r(t)) : ""
    };
    var i = Array.isArray || function(t) {
        return "[object Array]" === Object.prototype.toString.call(t)
    };

    function o(t, e) {
        if (t.map) return t.map(e);
        for (var n = [], r = 0; r < t.length; r++) n.push(e(t[r], r));
        return n
    }
    var s = Object.keys || function(t) {
        var e = [];
        for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.push(n);
        return e
    }
}, function(t, e, n) {
    "use strict";
    e.decode = e.parse = n(468), e.encode = e.stringify = n(469)
}, function(t, e, n) {
    "use strict";
    t.exports = function(t, e, n) {
        var r, i = t.length;
        if (!(e >= i || 0 === n)) {
            var o = i - (n = e + n > i ? i - e : n);
            for (r = e; r < o; ++r) t[r] = t[r + n];
            t.length = o
        }
    }
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
            return typeof t
        } : function(t) {
            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        },
        i = function() {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var r = e[n];
                    r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r)
                }
            }
            return function(e, n, r) {
                return n && t(e.prototype, n), r && t(e, r), e
            }
        }(),
        o = l(n(71)),
        s = l(n(143)),
        a = function(t) {
            if (t && t.__esModule) return t;
            var e = {};
            if (null != t)
                for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e.default = t, e
        }(n(190)),
        u = l(n(84));

    function l(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var c = /(#[\w-]+)?$/,
        h = function() {
            function t() {
                var e = this,
                    n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
                    r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10;
                ! function(t, e) {
                    if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
                }(this, t), this.baseUrl = n, this.progress = 0, this.loading = !1, this.defaultQueryString = "", this._beforeMiddleware = [], this._afterMiddleware = [], this._resourcesParsing = [], this._boundLoadResource = function(t, n) {
                    return e._loadResource(t, n)
                }, this._queue = a.queue(this._boundLoadResource, r), this._queue.pause(), this.resources = {}, this.onProgress = new o.default, this.onError = new o.default, this.onLoad = new o.default, this.onStart = new o.default, this.onComplete = new o.default
            }
            return t.prototype.add = function(t, e, n, i) {
                if (Array.isArray(t)) {
                    for (var o = 0; o < t.length; ++o) this.add(t[o]);
                    return this
                }
                if ("object" === (void 0 === t ? "undefined" : r(t)) && (i = e || t.callback || t.onComplete, n = t, e = t.url, t = t.name || t.key || t.url), "string" != typeof e && (i = n, n = e, e = t), "string" != typeof e) throw new Error("No url passed to add resource to loader.");
                if ("function" == typeof n && (i = n, n = null), this.loading && (!n || !n.parentResource)) throw new Error("Cannot add resources while the loader is running.");
                if (this.resources[t]) throw new Error('Resource named "' + t + '" already exists.');
                if (e = this._prepareUrl(e), this.resources[t] = new u.default(t, e, n), "function" == typeof i && this.resources[t].onAfterMiddleware.once(i), this.loading) {
                    for (var s = n.parentResource, a = [], l = 0; l < s.children.length; ++l) s.children[l].isComplete || a.push(s.children[l]);
                    var c = s.progressChunk * (a.length + 1) / (a.length + 2);
                    s.children.push(this.resources[t]), s.progressChunk = c;
                    for (var h = 0; h < a.length; ++h) a[h].progressChunk = c;
                    this.resources[t].progressChunk = c
                }
                return this._queue.push(this.resources[t]), this
            }, t.prototype.pre = function(t) {
                return this._beforeMiddleware.push(t), this
            }, t.prototype.use = function(t) {
                return this._afterMiddleware.push(t), this
            }, t.prototype.reset = function() {
                for (var t in this.progress = 0, this.loading = !1, this._queue.kill(), this._queue.pause(), this.resources) {
                    var e = this.resources[t];
                    e._onLoadBinding && e._onLoadBinding.detach(), e.isLoading && e.abort()
                }
                return this.resources = {}, this
            }, t.prototype.load = function(t) {
                if ("function" == typeof t && this.onComplete.once(t), this.loading) return this;
                if (this._queue.idle()) this._onStart(), this._onComplete();
                else {
                    for (var e = 100 / this._queue._tasks.length, n = 0; n < this._queue._tasks.length; ++n) this._queue._tasks[n].data.progressChunk = e;
                    this._onStart(), this._queue.resume()
                }
                return this
            }, t.prototype._prepareUrl = function(t) {
                var e = (0, s.default)(t, {
                        strictMode: !0
                    }),
                    n = void 0;
                if (n = e.protocol || !e.path || 0 === t.indexOf("//") ? t : this.baseUrl.length && this.baseUrl.lastIndexOf("/") !== this.baseUrl.length - 1 && "/" !== t.charAt(0) ? this.baseUrl + "/" + t : this.baseUrl + t, this.defaultQueryString) {
                    var r = c.exec(n)[0]; - 1 !== (n = n.substr(0, n.length - r.length)).indexOf("?") ? n += "&" + this.defaultQueryString : n += "?" + this.defaultQueryString, n += r
                }
                return n
            }, t.prototype._loadResource = function(t, e) {
                var n = this;
                t._dequeue = e, a.eachSeries(this._beforeMiddleware, function(e, r) {
                    e.call(n, t, function() {
                        r(t.isComplete ? {} : null)
                    })
                }, function() {
                    t.isComplete ? n._onLoad(t) : (t._onLoadBinding = t.onComplete.once(n._onLoad, n), t.load())
                }, !0)
            }, t.prototype._onStart = function() {
                this.progress = 0, this.loading = !0, this.onStart.dispatch(this)
            }, t.prototype._onComplete = function() {
                this.progress = 100, this.loading = !1, this.onComplete.dispatch(this, this.resources)
            }, t.prototype._onLoad = function(t) {
                var e = this;
                t._onLoadBinding = null, this._resourcesParsing.push(t), t._dequeue(), a.eachSeries(this._afterMiddleware, function(n, r) {
                    n.call(e, t, r)
                }, function() {
                    t.onAfterMiddleware.dispatch(t), e.progress += t.progressChunk, e.onProgress.dispatch(e, t), t.error ? e.onError.dispatch(t.error, e, t) : e.onLoad.dispatch(e, t), e._resourcesParsing.splice(e._resourcesParsing.indexOf(t), 1), e._queue.idle() && 0 === e._resourcesParsing.length && e._onComplete()
                }, !0)
            }, i(t, [{
                key: "concurrency",
                get: function() {
                    return this._queue.concurrency
                },
                set: function(t) {
                    this._queue.concurrency = t
                }
            }]), t
        }();
    e.default = h
}, function(t, e, n) {
    "use strict";
    e.__esModule = !0;
    var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
        return typeof t
    } : function(t) {
        return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
    };
    e.blobMiddlewareFactory = function() {
        return function(t, e) {
            if (t.data) {
                if (t.xhr && t.xhrType === i.default.XHR_RESPONSE_TYPE.BLOB)
                    if (window.Blob && "string" != typeof t.data) {
                        if (0 === t.data.type.indexOf("image")) {
                            var n = (u = a.createObjectURL(t.data), t.blob = t.data, t.data = new Image, t.data.src = u, t.type = i.default.TYPE.IMAGE, t.data.onload = function() {
                                a.revokeObjectURL(u), t.data.onload = null, e()
                            }, {
                                v: void 0
                            });
                            if ("object" === (void 0 === n ? "undefined" : r(n))) return n.v
                        }
                    } else {
                        var s = t.xhr.getResponseHeader("content-type");
                        if (s && 0 === s.indexOf("image")) return t.data = new Image, t.data.src = "data:" + s + ";base64," + o.default.encodeBinary(t.xhr.responseText), t.type = i.default.TYPE.IMAGE, void(t.data.onload = function() {
                            t.data.onload = null, e()
                        })
                    }
                var u;
                e()
            } else e()
        }
    };
    var i = s(n(84)),
        o = s(n(191));

    function s(t) {
        return t && t.__esModule ? t : {
            default: t
        }
    }
    var a = window.URL || window.webkitURL
}, function(t, e) {
    ! function() {
        "use strict";
        var e = "undefined" != typeof window && void 0 !== window.document ? window.document : {},
            n = void 0 !== t && t.exports,
            r = "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT" in Element,
            i = function() {
                for (var t, n = [
                        ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
                        ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
                        ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
                        ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
                        ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
                    ], r = 0, i = n.length, o = {}; r < i; r++)
                    if ((t = n[r]) && t[1] in e) {
                        for (r = 0; r < t.length; r++) o[n[0][r]] = t[r];
                        return o
                    }
                return !1
            }(),
            o = {
                change: i.fullscreenchange,
                error: i.fullscreenerror
            },
            s = {
                request: function(t) {
                    var n = i.requestFullscreen;
                    t = t || e.documentElement, / Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent) ? t[n]() : t[n](r && Element.ALLOW_KEYBOARD_INPUT)
                },
                exit: function() {
                    e[i.exitFullscreen]()
                },
                toggle: function(t) {
                    this.isFullscreen ? this.exit() : this.request(t)
                },
                onchange: function(t) {
                    this.on("change", t)
                },
                onerror: function(t) {
                    this.on("error", t)
                },
                on: function(t, n) {
                    var r = o[t];
                    r && e.addEventListener(r, n, !1)
                },
                off: function(t, n) {
                    var r = o[t];
                    r && e.removeEventListener(r, n, !1)
                },
                raw: i
            };
        i ? (Object.defineProperties(s, {
            isFullscreen: {
                get: function() {
                    return Boolean(e[i.fullscreenElement])
                }
            },
            element: {
                enumerable: !0,
                get: function() {
                    return e[i.fullscreenElement]
                }
            },
            enabled: {
                enumerable: !0,
                get: function() {
                    return Boolean(e[i.fullscreenEnabled])
                }
            }
        }), n ? t.exports = s : window.screenfull = s) : n ? t.exports = !1 : window.screenfull = !1
    }()
}, function(t, e, n) {
    var r = n(476),
        i = n(478),
        o = n(481),
        s = n(480),
        a = n(479),
        u = n(477),
        l = n(482);
    l.alea = r, l.xor128 = i, l.xorwow = o, l.xorshift7 = s, l.xor4096 = a, l.tychei = u, t.exports = l
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.c = t.c, e.s0 = t.s0, e.s1 = t.s1, e.s2 = t.s2, e
            }

            function a(t, e) {
                var n = new function(t) {
                        var e, n = this,
                            r = (e = 4022871197, function(t) {
                                t = t.toString();
                                for (var n = 0; n < t.length; n++) {
                                    var r = .02519603282416938 * (e += t.charCodeAt(n));
                                    r -= e = r >>> 0, e = (r *= e) >>> 0, e += 4294967296 * (r -= e)
                                }
                                return 2.3283064365386963e-10 * (e >>> 0)
                            });
                        n.next = function() {
                            var t = 2091639 * n.s0 + 2.3283064365386963e-10 * n.c;
                            return n.s0 = n.s1, n.s1 = n.s2, n.s2 = t - (n.c = 0 | t)
                        }, n.c = 1, n.s0 = r(" "), n.s1 = r(" "), n.s2 = r(" "), n.s0 -= r(t), n.s0 < 0 && (n.s0 += 1), n.s1 -= r(t), n.s1 < 0 && (n.s1 += 1), n.s2 -= r(t), n.s2 < 0 && (n.s2 += 1), r = null
                    }(t),
                    r = e && e.state,
                    i = n.next;
                return i.int32 = function() {
                    return 4294967296 * n.next() | 0
                }, i.double = function() {
                    return i() + 1.1102230246251565e-16 * (2097152 * i() | 0)
                }, i.quick = i, r && ("object" == typeof r && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.alea = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.a = t.a, e.b = t.b, e.c = t.c, e.d = t.d, e
            }

            function a(t, e) {
                var n = new function(t) {
                        var e = this,
                            n = "";
                        e.next = function() {
                            var t = e.b,
                                n = e.c,
                                r = e.d,
                                i = e.a;
                            return t = t << 25 ^ t >>> 7 ^ n, n = n - r | 0, r = r << 24 ^ r >>> 8 ^ i, i = i - t | 0, e.b = t = t << 20 ^ t >>> 12 ^ n, e.c = n = n - r | 0, e.d = r << 16 ^ n >>> 16 ^ i, e.a = i - t | 0
                        }, e.a = 0, e.b = 0, e.c = -1640531527, e.d = 1367130551, t === Math.floor(t) ? (e.a = t / 4294967296 | 0, e.b = 0 | t) : n += t;
                        for (var r = 0; r < n.length + 20; r++) e.b ^= 0 | n.charCodeAt(r), e.next()
                    }(t),
                    r = e && e.state,
                    i = function() {
                        return (n.next() >>> 0) / 4294967296
                    };
                return i.double = function() {
                    do {
                        var t = ((n.next() >>> 11) + (n.next() >>> 0) / 4294967296) / (1 << 21)
                    } while (0 === t);
                    return t
                }, i.int32 = n.next, i.quick = i, r && ("object" == typeof r && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.tychei = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.x = t.x, e.y = t.y, e.z = t.z, e.w = t.w, e
            }

            function a(t, e) {
                var n = new function(t) {
                        var e = this,
                            n = "";
                        e.x = 0, e.y = 0, e.z = 0, e.w = 0, e.next = function() {
                            var t = e.x ^ e.x << 11;
                            return e.x = e.y, e.y = e.z, e.z = e.w, e.w ^= e.w >>> 19 ^ t ^ t >>> 8
                        }, t === (0 | t) ? e.x = t : n += t;
                        for (var r = 0; r < n.length + 64; r++) e.x ^= 0 | n.charCodeAt(r), e.next()
                    }(t),
                    r = e && e.state,
                    i = function() {
                        return (n.next() >>> 0) / 4294967296
                    };
                return i.double = function() {
                    do {
                        var t = ((n.next() >>> 11) + (n.next() >>> 0) / 4294967296) / (1 << 21)
                    } while (0 === t);
                    return t
                }, i.int32 = n.next, i.quick = i, r && ("object" == typeof r && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.xor128 = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.i = t.i, e.w = t.w, e.X = t.X.slice(), e
            }

            function a(t, e) {
                null == t && (t = +new Date);
                var n = new function(t) {
                        var e = this;
                        e.next = function() {
                                var t, n, r = e.w,
                                    i = e.X,
                                    o = e.i;
                                return e.w = r = r + 1640531527 | 0, n = i[o + 34 & 127], t = i[o = o + 1 & 127], n ^= n << 13, t ^= t << 17, n ^= n >>> 15, t ^= t >>> 12, n = i[o] = n ^ t, e.i = o, n + (r ^ r >>> 16) | 0
                            },
                            function(t, e) {
                                var n, r, i, o, s, a = [],
                                    u = 128;
                                for (e === (0 | e) ? (r = e, e = null) : (e += "\0", r = 0, u = Math.max(u, e.length)), i = 0, o = -32; o < u; ++o) e && (r ^= e.charCodeAt((o + 32) % e.length)), 0 === o && (s = r), r ^= r << 10, r ^= r >>> 15, r ^= r << 4, r ^= r >>> 13, o >= 0 && (s = s + 1640531527 | 0, i = 0 == (n = a[127 & o] ^= r + s) ? i + 1 : 0);
                                for (i >= 128 && (a[127 & (e && e.length || 0)] = -1), i = 127, o = 512; o > 0; --o) r = a[i + 34 & 127], n = a[i = i + 1 & 127], r ^= r << 13, n ^= n << 17, r ^= r >>> 15, n ^= n >>> 12, a[i] = r ^ n;
                                t.w = s, t.X = a, t.i = i
                            }(e, t)
                    }(t),
                    r = e && e.state,
                    i = function() {
                        return (n.next() >>> 0) / 4294967296
                    };
                return i.double = function() {
                    do {
                        var t = ((n.next() >>> 11) + (n.next() >>> 0) / 4294967296) / (1 << 21)
                    } while (0 === t);
                    return t
                }, i.int32 = n.next, i.quick = i, r && (r.X && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.xor4096 = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.x = t.x.slice(), e.i = t.i, e
            }

            function a(t, e) {
                null == t && (t = +new Date);
                var n = new function(t) {
                        var e = this;
                        e.next = function() {
                                var t, n, r = e.x,
                                    i = e.i;
                                return t = r[i], n = (t ^= t >>> 7) ^ t << 24, n ^= (t = r[i + 1 & 7]) ^ t >>> 10, n ^= (t = r[i + 3 & 7]) ^ t >>> 3, n ^= (t = r[i + 4 & 7]) ^ t << 7, t = r[i + 7 & 7], n ^= (t ^= t << 13) ^ t << 9, r[i] = n, e.i = i + 1 & 7, n
                            },
                            function(t, e) {
                                var n, r = [];
                                if (e === (0 | e)) r[0] = e;
                                else
                                    for (e = "" + e, n = 0; n < e.length; ++n) r[7 & n] = r[7 & n] << 15 ^ e.charCodeAt(n) + r[n + 1 & 7] << 13;
                                for (; r.length < 8;) r.push(0);
                                for (n = 0; n < 8 && 0 === r[n]; ++n);
                                for (8 == n ? r[7] = -1 : r[n], t.x = r, t.i = 0, n = 256; n > 0; --n) t.next()
                            }(e, t)
                    }(t),
                    r = e && e.state,
                    i = function() {
                        return (n.next() >>> 0) / 4294967296
                    };
                return i.double = function() {
                    do {
                        var t = ((n.next() >>> 11) + (n.next() >>> 0) / 4294967296) / (1 << 21)
                    } while (0 === t);
                    return t
                }, i.int32 = n.next, i.quick = i, r && (r.x && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.xorshift7 = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    (function(t) {
        var r;
        ! function(t, i, o) {
            function s(t, e) {
                return e.x = t.x, e.y = t.y, e.z = t.z, e.w = t.w, e.v = t.v, e.d = t.d, e
            }

            function a(t, e) {
                var n = new function(t) {
                        var e = this,
                            n = "";
                        e.next = function() {
                            var t = e.x ^ e.x >>> 2;
                            return e.x = e.y, e.y = e.z, e.z = e.w, e.w = e.v, (e.d = e.d + 362437 | 0) + (e.v = e.v ^ e.v << 4 ^ t ^ t << 1) | 0
                        }, e.x = 0, e.y = 0, e.z = 0, e.w = 0, e.v = 0, t === (0 | t) ? e.x = t : n += t;
                        for (var r = 0; r < n.length + 64; r++) e.x ^= 0 | n.charCodeAt(r), r == n.length && (e.d = e.x << 10 ^ e.x >>> 4), e.next()
                    }(t),
                    r = e && e.state,
                    i = function() {
                        return (n.next() >>> 0) / 4294967296
                    };
                return i.double = function() {
                    do {
                        var t = ((n.next() >>> 11) + (n.next() >>> 0) / 4294967296) / (1 << 21)
                    } while (0 === t);
                    return t
                }, i.int32 = n.next, i.quick = i, r && ("object" == typeof r && s(r, n), i.state = function() {
                    return s(n, {})
                }), i
            }
            i && i.exports ? i.exports = a : n(11) && n(23) ? void 0 === (r = function() {
                return a
            }.call(e, n, e, i)) || (i.exports = r) : this.xorwow = a
        }(0, "object" == typeof t && t, n(11))
    }).call(e, n(14)(t))
}, function(t, e, n) {
    var r;
    ! function(i, o) {
        var s, a = (0, eval)("this"),
            u = 256,
            l = 6,
            c = "random",
            h = o.pow(u, l),
            f = o.pow(2, 52),
            d = 2 * f,
            p = u - 1;

        function v(t, e, n) {
            var r = [],
                v = g(function t(e, n) {
                    var r, i = [],
                        o = typeof e;
                    if (n && "object" == o)
                        for (r in e) try {
                            i.push(t(e[r], n - 1))
                        } catch (t) {}
                    return i.length ? i : "string" == o ? e : e + "\0"
                }((e = 1 == e ? {
                    entropy: !0
                } : e || {}).entropy ? [t, y(i)] : null == t ? function() {
                    try {
                        var t;
                        return s && (t = s.randomBytes) ? t = t(u) : (t = new Uint8Array(u), (a.crypto || a.msCrypto).getRandomValues(t)), y(t)
                    } catch (t) {
                        var e = a.navigator,
                            n = e && e.plugins;
                        return [+new Date, a, n, a.screen, y(i)]
                    }
                }() : t, 3), r),
                m = new function(t) {
                    var e, n = t.length,
                        r = this,
                        i = 0,
                        o = r.i = r.j = 0,
                        s = r.S = [];
                    for (n || (t = [n++]); i < u;) s[i] = i++;
                    for (i = 0; i < u; i++) s[i] = s[o = p & o + t[i % n] + (e = s[i])], s[o] = e;
                    (r.g = function(t) {
                        for (var e, n = 0, i = r.i, o = r.j, s = r.S; t--;) e = s[i = p & i + 1], n = n * u + s[p & (s[i] = s[o = p & o + e]) + (s[o] = e)];
                        return r.i = i, r.j = o, n
                    })(u)
                }(r),
                b = function() {
                    for (var t = m.g(l), e = h, n = 0; t < f;) t = (t + n) * u, e *= u, n = m.g(1);
                    for (; t >= d;) t /= 2, e /= 2, n >>>= 1;
                    return (t + n) / e
                };
            return b.int32 = function() {
                return 0 | m.g(4)
            }, b.quick = function() {
                return m.g(4) / 4294967296
            }, b.double = b, g(y(m.S), i), (e.pass || n || function(t, e, n, r) {
                return r && (r.S && _(r, m), t.state = function() {
                    return _(m, {})
                }), n ? (o[c] = t, e) : t
            })(b, v, "global" in e ? e.global : this == o, e.state)
        }

        function _(t, e) {
            return e.i = t.i, e.j = t.j, e.S = t.S.slice(), e
        }

        function g(t, e) {
            for (var n, r = t + "", i = 0; i < r.length;) e[p & i] = p & (n ^= 19 * e[p & i]) + r.charCodeAt(i++);
            return y(e)
        }

        function y(t) {
            return String.fromCharCode.apply(0, t)
        }
        if (o["seed" + c] = v, g(o.random(), i), "object" == typeof t && t.exports) {
            t.exports = v;
            try {
                s = n(532)
            } catch (t) {}
        } else void 0 === (r = function() {
            return v
        }.call(e, n, e, t)) || (t.exports = r)
    }([], Math)
}, function(t, e, n) {
    "use strict";
    var r;
    Object.defineProperty(e, "__esModule", {
            value: !0
        }),
        function(t) {
            t[t.off = 0] = "off", t[t.initializing = 1] = "initializing", t[t.finalizeInitialization = 2] = "finalizeInitialization", t[t.awaiting = 3] = "awaiting", t[t.moveRequested = 5] = "moveRequested", t[t.moveAccepted = 6] = "moveAccepted", t[t.moveRejected = 7] = "moveRejected", t[t.moveDone = 8] = "moveDone", t[t.levelWon = 9] = "levelWon", t[t.levelWonRequested = 10] = "levelWonRequested", t[t.gameStopped = 11] = "gameStopped"
        }(r = e.GameState || (e.GameState = {}));
    var i = function() {
        function t() {
            this.state = r.off
        }
        return t.prototype.changeState = function(t) {
            this.state = t
        }, t
    }();
    e.default = i
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = function() {
        function t() {
            var t = this;
            document.addEventListener("keydown", function(e) {
                return t.downHandler(e)
            }, !1)
        }
        return t.prototype.onLeft = function() {}, t.prototype.onRight = function() {}, t.prototype.onUp = function() {}, t.prototype.onDown = function() {}, t.prototype.downHandler = function(t) {
            switch (t.keyCode) {
                case 37:
                    this.onLeft();
                    break;
                case 38:
                    this.onUp();
                    break;
                case 39:
                    this.onRight();
                    break;
                case 40:
                    this.onDown()
            }
            t.preventDefault()
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(89),
        i = n(85),
        o = function() {
            function t() {
                this.onSwipe = function() {}, this.initEvents()
            }
            return t.prototype.initEvents = function() {
                var t = this,
                    e = this.getInteractionDomElement(),
                    n = new r.Manager(e),
                    i = new r.Swipe({
                        velocity: .05
                    });
                n.add(i), n.on("swipeleft", function() {
                    return t.onSwipe(-1, 0)
                }), n.on("swiperight", function() {
                    return t.onSwipe(1, 0)
                }), n.on("swipeup", function() {
                    return t.onSwipe(0, -1)
                }), n.on("swipedown", function() {
                    return t.onSwipe(0, 1)
                })
            }, t.prototype.getInteractionDomElement = function() {
                return this.interactionDOMElement || (this.interactionDOMElement = i.renderer.view), this.interactionDOMElement
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(211);
    e.load = function() {
        for (var t = [], e = 0, n = r; e < n.length; e++)
            for (var i = n[e], o = {
                    columns: i.Columns,
                    rows: i.Rows
                }, s = 0; s < i.LevelCount; s++) t.push(o);
        return t
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(209),
        i = n(252),
        o = function() {
            function t() {}
            return t.create = function(t, e, o) {
                var s = n(475)(o),
                    a = r.generate(t, e, {
                        generator: n(531),
                        random: s
                    });
                return a.columns = t, a.rows = e, a.cells = i.default(e, function(e) {
                    return i.default(t, function(t) {
                        var n = a.cell(t, e);
                        return {
                            x: t,
                            y: e,
                            top: !n.north(),
                            bottom: !n.south(),
                            left: !n.west(),
                            right: !n.east(),
                            isRendered: !1
                        }
                    })
                }), a.from = a.cells[a.originPoint.y][a.originPoint.x], a.to = a.cells[a.targetPoint.y][a.targetPoint.x], a
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = function() {
        function t(t) {
            this.maze = t, this.cells = [], this.movingBack = !1, this.from = t.from, this.to = t.to, this.currentCell = this.from
        }
        return t.prototype.getBackDirection = function() {
            var t = this.cells.length > 0 ? this.cells[this.cells.length - 1] : null;
            return t ? {
                x: t.x - this.currentCell.x,
                y: t.y - this.currentCell.y
            } : null
        }, t.prototype.getForwardDirections = function() {
            var t = [],
                e = this.getBackDirection();
            return this.currentCell.top || e && e.y < 0 || t.push({
                x: 0,
                y: -1
            }), this.currentCell.bottom || e && e.y > 0 || t.push({
                x: 0,
                y: 1
            }), this.currentCell.left || e && e.x < 0 || t.push({
                x: -1,
                y: 0
            }), this.currentCell.right || e && e.x > 0 || t.push({
                x: 1,
                y: 0
            }), t
        }, t.prototype.getCellByDirection = function(t) {
            return this.maze.cells[this.currentCell.y + t.y][this.currentCell.x + t.x]
        }, t.prototype.move = function(t) {
            var e = this.getBackDirection();
            return e && (e.x > 0 && t.x > 0 || e.x < 0 && t.x < 0 || e.y > 0 && t.y > 0 || e.y < 0 && t.y < 0) ? (this.movingBack = !0, this.currentCell = this.cells.pop(), !0) : (!this.currentCell.top && t.y < 0 || !this.currentCell.bottom && t.y > 0 || !this.currentCell.left && t.x < 0 || !this.currentCell.right && t.x > 0) && (this.movingBack = !1, this.cells.push(this.currentCell), this.currentCell = this.getCellByDirection(t), !0)
        }, t.prototype.moveNext = function() {
            if (this.isEndPointReached()) return !1;
            var t = this.getForwardDirections(),
                e = t.length;
            if (e > 1) return !1;
            if (this.movingBack) {
                var n = this.getBackDirection();
                return !!n && this.move(n)
            }
            return e > 0 && this.move(t[0])
        }, t.prototype.isEndPointReached = function() {
            return this.currentCell && this.currentCell === this.to
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = function(t) {
        function e() {
            var e = t.call(this) || this;
            return e.t = 0, e
        }
        return i(e, t), e.prototype.setData = function(t) {
            this.cellSize = t
        }, e.prototype.refresh = function(t, e) {
            this.t = 0, this.visible = !0, this.removeChildren();
            for (var n = 0; n < e.length; n++) {
                var r = e[n],
                    i = PIXI.Sprite.fromFrame("direction_arrow.png");
                i.anchor.set(.5, .5), i.pivot.set(-this.cellSize / 2, 0), i.position.set(t.x, t.y), i.rotation = Math.atan2(r.y, r.x), i.scale.set(this.getTargetScale()), this.addChild(i)
            }
        }, e.prototype.animateInitialization = function(t, e) {
            createjs.Tween.removeTweens(this), this.alpha = 0, createjs.Tween.get(this).wait(t).to({
                alpha: 1
            }, 100);
            for (var n = 0; n < this.children.length; n++) {
                var r = this.children[n];
                r.scale.set(.5, .5);
                var i = this.getTargetScale();
                createjs.Tween.get(r.scale, {
                    override: !0
                }).wait(t).to({
                    x: i,
                    y: i
                }, e, createjs.Ease.quadIn)
            }
        }, e.prototype.update = function(t) {
            this.t += t / 100;
            for (var e = 0; e < this.children.length; e++) this.children[e].pivot.set(-this.cellSize / 2 - 5 - 3 * Math.cos(this.t), 0)
        }, e.prototype.getTargetScale = function() {
            return Math.min(this.cellSize / 45, 1)
        }, e
    }(PIXI.Container);
    e.default = o
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(521),
        s = n(491),
        a = n(522),
        u = n(493),
        l = n(494),
        c = n(489),
        h = n(10),
        f = n(7),
        d = function(t) {
            function e(e) {
                var n = t.call(this) || this;
                return n.config = e, n.mazeLayer = new s.default(n.config), n.mazeLayer.interactive = !1, n.mazeLayer.interactiveChildren = !1, n.mazePathLayer = new u.default(n.config), n.mazePathLayer.interactive = !1, n.mazePathLayer.interactiveChildren = !1, n.pathPointsLayer = new l.default, n.pathPointsLayer.interactive = !1, n.pathPointsLayer.interactiveChildren = !1, n.directionsContainer = new c.default, n.directionsContainer.interactive = !1, n.addChild(n.mazeLayer), n.addChild(n.mazePathLayer), n.addChild(n.pathPointsLayer), n.addChild(n.directionsContainer), n
            }
            return i(e, t), e.prototype.setData = function(t, e) {
                var n = this.calcSquareCellSize(this.config.game.mazeArea, t.columns, t.rows);
                this.visualGrid = new o.default({
                    x: 0,
                    y: 0,
                    width: n * t.columns,
                    height: n * t.rows
                }, t.columns, t.rows), a.start(this.mazeLayer.animateMaze(t, this.visualGrid)), h.playSound(f.get("makemaze")), this.mazePathLayer.setMazePathData(e, this.visualGrid), this.pathPointsLayer.pivot = this.directionsContainer.pivot = this.mazePathLayer.pivot, this.pathPointsLayer.setPointScales(n - this.mazeLayer.wallThickness - 2), this.pathPointsLayer.setEndPointPosition(this.mazePathLayer.mazeEndPoint), this.pathPointsLayer.setCurrentPointPosition(this.mazePathLayer.mazeCurrentPoint), this.directionsContainer.setData(n)
            }, e.prototype.resetAnimations = function() {}, e.prototype.startFillAnimation = function() {
                return this.pathPointsLayer.animateInitialization(1100, 2e3, 300), this.directionsContainer.animateInitialization(1100, 300), setTimeout(function() {
                    return h.playSound(f.get("droplet"))
                }, 1100), 2e3
            }, e.prototype.update = function(t) {
                this.pathPointsLayer.setCurrentPointPosition(this.mazePathLayer.mazeCurrentPoint), this.directionsContainer.update(t)
            }, e.prototype.resize = function(t) {
                var e = t.width,
                    n = t.height;
                this.rotation = e > n ? -Math.PI / 2 : 0
            }, e.prototype.updateDirections = function(t) {
                t ? (this.directionsContainer.visible = !0, this.directionsContainer.refresh(this.mazePathLayer.mazeCurrentPoint, this.mazePathLayer.mazePathInstance.getForwardDirections())) : this.directionsContainer.visible = !1
            }, e.prototype.animateMove = function() {
                return this.mazePathLayer.animateMove()
            }, e.prototype.animateMoveRejected = function(t) {
                return this.pathPointsLayer.animateMoveRejected(t)
            }, Object.defineProperty(e.prototype, "globalCurrentPoint", {
                get: function() {
                    return this.mazePathLayer.toGlobal(this.mazePathLayer.mazeCurrentPoint)
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(e.prototype, "localCurrentPoint", {
                get: function() {
                    return this.mazePathLayer.mazeCurrentPoint
                },
                enumerable: !0,
                configurable: !0
            }), e.prototype.animateSuccess = function() {
                this.pathPointsLayer.animateSuccess()
            }, e.prototype.calcSquareCellSize = function(t, e, n) {
                return t.flexibleCellDimensions ? 2 * (Math.floor(Math.min(t.width / e, t.height / n)) >> 1) : t.minCellSize
            }, e
        }(PIXI.Container);
    e.default = d
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
            return (r = Object.setPrototypeOf || {
                    __proto__: []
                }
                instanceof Array && function(t, e) {
                    t.__proto__ = e
                } || function(t, e) {
                    for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
                })(t, e)
        }, function(t, e) {
            function n() {
                this.constructor = t
            }
            r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
        }),
        o = this && this.__generator || function(t, e) {
            var n, r, i, o, s = {
                label: 0,
                sent: function() {
                    if (1 & i[0]) throw i[1];
                    return i[1]
                },
                trys: [],
                ops: []
            };
            return o = {
                next: a(0),
                throw: a(1),
                return: a(2)
            }, "function" == typeof Symbol && (o[Symbol.iterator] = function() {
                return this
            }), o;

            function a(o) {
                return function(a) {
                    return function(o) {
                        if (n) throw new TypeError("Generator is already executing.");
                        for (; s;) try {
                            if (n = 1, r && (i = 2 & o[0] ? r.return : o[0] ? r.throw || ((i = r.return) && i.call(r), 0) : r.next) && !(i = i.call(r, o[1])).done) return i;
                            switch (r = 0, i && (o = [2 & o[0], i.value]), o[0]) {
                                case 0:
                                case 1:
                                    i = o;
                                    break;
                                case 4:
                                    return s.label++, {
                                        value: o[1],
                                        done: !1
                                    };
                                case 5:
                                    s.label++, r = o[1], o = [0];
                                    continue;
                                case 7:
                                    o = s.ops.pop(), s.trys.pop();
                                    continue;
                                default:
                                    if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
                                        s = 0;
                                        continue
                                    }
                                    if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
                                        s.label = o[1];
                                        break
                                    }
                                    if (6 === o[0] && s.label < i[1]) {
                                        s.label = i[1], i = o;
                                        break
                                    }
                                    if (i && s.label < i[2]) {
                                        s.label = i[2], s.ops.push(o);
                                        break
                                    }
                                    i[2] && s.ops.pop(), s.trys.pop();
                                    continue
                            }
                            o = e.call(t, s)
                        } catch (t) {
                            o = [6, t], r = 0
                        } finally {
                            n = i = 0
                        }
                        if (5 & o[0]) throw o[1];
                        return {
                            value: o[0] ? o[1] : void 0,
                            done: !0
                        }
                    }([o, a])
                }
            }
        };
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var s = n(87),
        a = function(t) {
            function e(e) {
                var n = t.call(this) || this;
                return n.wallColor = 16777215, n.wallThickness = 12, n.mazeBgColor = 0, n.backgroundGraphics = new PIXI.Graphics, n.graphics = new PIXI.Graphics, n.addChild(n.backgroundGraphics), n.addChild(n.graphics), n.wallColor = s.parseColor(e.game.wallColor), n.mazeBgColor = s.parseColor(e.game.mazeBgColor), n.interactive = !1, n
            }
            return i(e, t), e.prototype.setMazeData = function(t, e) {
                if (this.wallThickness = t.columns > 10 ? 6 : 12, this.mazeInsance = t, this.visualGrid = e, this.pivot.set(this.visualGrid.gridVisualRect.x + this.visualGrid.gridVisualRect.width / 2, this.visualGrid.gridVisualRect.y + this.visualGrid.gridVisualRect.height / 2), this.backgroundGraphics.clear(), this.graphics.clear(), this.mazeInsance.rows < 1) throw Error("Maze should have at least 1 row and 1 column");
                this.graphics.lineStyle(this.wallThickness, this.wallColor, 1), this.backgroundGraphics.beginFill(this.mazeBgColor);
                for (var n = this.wallThickness >> 1, r = 0; r < this.mazeInsance.rows; r++)
                    for (var i = 0; i < this.mazeInsance.columns; i++) this.drawCell(i, r, this.graphics, n);
                this.backgroundGraphics.endFill()
            }, e.prototype.animateMaze = function(t, e) {
                var n, r, i, s, a, u, l, c, h, f;
                return o(this, function(o) {
                    switch (o.label) {
                        case 0:
                            if (this.wallThickness = t.columns > 10 ? 6 : 12, this.mazeInsance = t, this.visualGrid = e, this.pivot.set(this.visualGrid.gridVisualRect.x + this.visualGrid.gridVisualRect.width / 2, this.visualGrid.gridVisualRect.y + this.visualGrid.gridVisualRect.height / 2), this.backgroundGraphics.clear(), this.graphics.clear(), this.mazeInsance.rows < 1) throw Error("Maze should have at least 1 row and 1 column");
                            this.graphics.lineStyle(this.wallThickness, this.wallColor, 1), this.backgroundGraphics.beginFill(this.mazeBgColor), n = this.wallThickness >> 1, r = this.getDistanceToEdge() + 2, i = 0, o.label = 1;
                        case 1:
                            if (!(i < 1)) return [3, 4];
                            for (s = 0; s < this.mazeInsance.rows; s++)
                                for (a = 0; a < this.mazeInsance.columns; a++) u = i * r, l = this.mazeInsance.cells[s][a], c = s - this.mazeInsance.from.y, h = a - this.mazeInsance.from.x, f = Math.sqrt(c * c + h * h), !l.isRendered && f < u && (this.drawCell(a, s, this.graphics, n), l.isRendered = !0);
                            return [4];
                        case 2:
                            o.sent(), o.label = 3;
                        case 3:
                            return i += .01666, [3, 1];
                        case 4:
                            return this.backgroundGraphics.endFill(), [2]
                    }
                })
            }, e.prototype.getDistanceToEdge = function() {
                var t = this.mazeInsance.from.x,
                    e = this.mazeInsance.from.y,
                    n = u(t, e, 0, 0),
                    r = u(t, e, this.mazeInsance.columns - 1, 0),
                    i = u(t, e, 0, this.mazeInsance.rows - 1),
                    o = u(t, e, this.mazeInsance.columns - 1, this.mazeInsance.rows - 1);
                return Math.max(n, r, i, o)
            }, e.prototype.drawCell = function(t, e, n, r) {
                var i = this.mazeInsance.cells[e][t],
                    o = this.visualGrid.gridCells[e][t];
                this.backgroundGraphics.drawRect(o.left - r, o.top - r, this.visualGrid.cellWidth + 2 * r, this.visualGrid.cellHeight + 2 * r), i.top && (n.moveTo(o.left - r, o.top), n.lineTo(o.left + this.visualGrid.cellWidth + r, o.top)), i.left && (n.moveTo(o.left, o.top - r), n.lineTo(o.left, o.top + this.visualGrid.cellHeight + r)), i.bottom && (n.moveTo(o.left - r, o.top + this.visualGrid.cellHeight), n.lineTo(o.left + this.visualGrid.cellWidth + r, o.top + this.visualGrid.cellHeight)), i.right && (n.moveTo(o.left + this.visualGrid.cellWidth, o.top + this.visualGrid.cellHeight + r), n.lineTo(o.left + this.visualGrid.cellWidth, o.top - r))
            }, e
        }(PIXI.Container);

    function u(t, e, n, r) {
        var i = n - t,
            o = r - e;
        return Math.sqrt(i * i + o * o)
    }
    e.default = a
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(87),
        i = n(4),
        o = function() {
            function t(t, e) {
                var n = this;
                this.mazeContainer = t, this.wallColor = 16777215, this.mazeBgColor = 0, this._radius = 0, this._enabled = !1, this.wallColor = r.parseColor(e.game.wallColor), this.mazeBgColor = r.parseColor(e.game.mazeBgColor), this.holeMask = new PIXI.Graphics, this._globalPosition = new i.ObservablePoint(function() {
                    return n.update()
                }), this.update()
            }
            return Object.defineProperty(t.prototype, "globalPosition", {
                get: function() {
                    return this._globalPosition
                },
                set: function(t) {
                    this._globalPosition.copy(t)
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(t.prototype, "radius", {
                get: function() {
                    return this._radius
                },
                set: function(t) {
                    this._radius !== t && (this._radius = t, this.update())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(t.prototype, "enabled", {
                get: function() {
                    return this._enabled
                },
                set: function(t) {
                    t !== this._enabled && (this._enabled = t, this.update())
                },
                enumerable: !0,
                configurable: !0
            }), t.prototype.update = function() {
                if (this._enabled) {
                    var t = this.mazeContainer.toLocal(this._globalPosition);
                    this.holeMask.clear(), this.holeMask.visible = !0, this.holeMask.interactive = !1, this.holeMask.beginFill(16777215), this.holeMask.drawCircle(t.x, t.y, this._radius), this.holeMask.endFill(), this.mazeContainer.addChild(this.holeMask), this.mazeContainer.mask = this.holeMask
                } else this.safeRemoveMask()
            }, t.prototype.safeRemoveMask = function() {
                this.holeMask.parent && (this.mazeContainer.removeChild(this.holeMask), this.mazeContainer.mask = null, this.holeMask.visible = !1)
            }, t
        }();
    e.default = o
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(87),
        s = function(t) {
            function e(e) {
                var n = t.call(this) || this;
                return n.pathColor = 38912, n.mazeBgColor = 0, n.pathThickness = 10, n.mazeEndPoint = new PIXI.Point, n.mazeCurrentPoint = new PIXI.Point, n.legAnimationTimeout = 100, n.graphics = new PIXI.Graphics, n.lastLegGraphics = new PIXI.Graphics, n.renderedCellsCount = -1, n.previousPoint = {
                    x: 0,
                    y: 0
                }, n.currentLegEndPoint = {
                    x: 0,
                    y: 0
                }, n.currentLegStartPoint = {
                    x: 0,
                    y: 0
                }, n.addChild(n.graphics), n.addChild(n.lastLegGraphics), n.lastLegGraphics.visible = !1, n.pathColor = o.parseColor(e.game.pathColor), n.mazeBgColor = o.parseColor(e.game.mazeBgColor), n.pathThickness = e.game.pathThickness, n
            }
            return i(e, t), e.prototype.setMazePathData = function(t, e) {
                this.renderedCellsCount = -1, this.graphics.clear(), this.lastLegGraphics.visible = !1, this.visualGrid = e, this.mazePathInstance = t, this.pivot.set(Math.floor(this.visualGrid.gridVisualRect.x + this.visualGrid.gridVisualRect.width / 2), Math.floor(this.visualGrid.gridVisualRect.y + this.visualGrid.gridVisualRect.height / 2));
                var n = t.maze.to,
                    r = this.visualGrid.getCell(n.x, n.y);
                this.mazeEndPoint.set(Math.floor(r.x), Math.floor(r.y)), this.renderPath();
                var i = this.visualGrid.getCell(this.mazePathInstance.currentCell.x, this.mazePathInstance.currentCell.y);
                this.setCurrentPoint(Math.floor(i.x), Math.floor(i.y)), this.previousPoint.x = this.mazeCurrentPoint.x, this.previousPoint.y = this.mazeCurrentPoint.y
            }, e.prototype.animateMove = function() {
                return this.renderPath()
            }, e.prototype.renderPath = function() {
                this.renderStaticPath();
                var t = this.startLastStepAnimation();
                return this.renderedCellsCount = this.mazePathInstance.cells.length, t
            }, e.prototype.renderStaticPath = function() {
                var t = this.mazePathInstance.maze.from,
                    e = this.visualGrid.getCell(t.x, t.y),
                    n = t,
                    r = t,
                    i = this.graphics;
                if (i.clear(), i.lineStyle(this.pathThickness, this.pathColor, 1), i.moveTo(Math.floor(e.x), Math.floor(e.y)), this.mazePathInstance.cells.length > 0)
                    for (var o = 1; o < this.mazePathInstance.cells.length; o++) {
                        r = n, n = this.mazePathInstance.cells[o];
                        var s = this.visualGrid.getCell(n.x, n.y);
                        i.lineTo(Math.floor(s.x), Math.floor(s.y))
                    }
                if ((this.renderedCellsCount < 0 || this.renderedCellsCount > this.mazePathInstance.cells.length) && (r = n, n = this.mazePathInstance.currentCell, s = this.visualGrid.getCell(n.x, n.y), i.lineTo(Math.floor(s.x), Math.floor(s.y))), r !== n) {
                    var a = this.visualGrid.getCell(r.x, r.y),
                        u = (s = this.visualGrid.getCell(n.x, n.y), this.overshootBy(a, s, this.pathThickness / 2));
                    i.lineTo(u.x, u.y)
                }
            }, e.prototype.overshootBy = function(t, e, n) {
                var r = e.x - t.x,
                    i = e.y - t.y,
                    o = r * r + i * i,
                    s = Math.sqrt(o);
                if (o < 1e-5) return e;
                var a = r * n / s,
                    u = i * n / s;
                return {
                    x: e.x + a,
                    y: e.y + u
                }
            }, e.prototype.animateLegMove = function(t, e, n) {
                var r = this,
                    i = {
                        x: t.x,
                        y: t.y
                    },
                    o = {
                        x: e.x,
                        y: e.y
                    };
                this.lastLegGraphics.visible = !0;
                var s = n ? i : o,
                    a = n ? o : i;
                return this.currentLegStartPoint.x = i.x, this.currentLegStartPoint.y = i.y, this.currentLegEndPoint.x = s.x, this.currentLegEndPoint.y = s.y, this.renderLastPathLeg(), createjs.Tween.removeTweens(this.currentLegEndPoint), createjs.Tween.get(this.currentLegEndPoint).to({
                    x: a.x,
                    y: a.y
                }, this.legAnimationTimeout, createjs.Ease.linear).addEventListener("change", function() {
                    return r.renderLastPathLeg()
                }), this.legAnimationTimeout
            }, e.prototype.renderLastPathLeg = function() {
                var t = this.lastLegGraphics,
                    e = {
                        x: this.currentLegStartPoint.x,
                        y: this.currentLegStartPoint.y
                    },
                    n = {
                        x: this.currentLegEndPoint.x,
                        y: this.currentLegEndPoint.y
                    };
                t.clear(), t.lineStyle(this.pathThickness, this.pathColor, 1), t.moveTo(Math.floor(e.x), Math.floor(e.y)), t.lineTo(Math.floor(n.x), Math.floor(n.y)), this.setCurrentPoint(Math.floor(this.currentLegEndPoint.x), Math.floor(this.currentLegEndPoint.y))
            }, e.prototype.startLastStepAnimation = function() {
                var t = {
                        x: this.previousPoint.x,
                        y: this.previousPoint.y
                    },
                    e = this.mazePathInstance.currentCell,
                    n = this.visualGrid.getCell(e.x, e.y);
                return this.previousPoint.x = Math.floor(n.x), this.previousPoint.y = Math.floor(n.y), this.renderedCellsCount > this.mazePathInstance.cells.length ? this.animateLegMove({
                    x: n.x,
                    y: n.y
                }, t, !1) : this.renderedCellsCount >= 0 && this.renderedCellsCount < this.mazePathInstance.cells.length ? this.animateLegMove(t, n, !0) : (this.setCurrentPoint(Math.floor(n.x), Math.floor(n.y)), 0)
            }, e.prototype.setCurrentPoint = function(t, e) {
                this.mazeCurrentPoint.set(t, e)
            }, e
        }(PIXI.Container);
    e.default = s
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(10),
        s = n(7),
        a = function(t) {
            function e() {
                var e = t.call(this) || this;
                return e.cellSize = 4, e.pointScale = 1, e.endPoint = PIXI.Sprite.fromFrame("end_point.png"), e.endPoint.anchor.set(.5, .5), e.addChild(e.endPoint), e.currentPoint = PIXI.Sprite.fromFrame("current_point.png"), e.currentPoint.anchor.set(.5, .5), e.addChild(e.currentPoint), e
            }
            return i(e, t), e.prototype.setPointScales = function(t) {
                var e = this.pointScale = t / this.endPoint.getLocalBounds().width;
                this.endPoint.scale.set(e, e), this.currentPoint.scale.set(e, e)
            }, e.prototype.setEndPointPosition = function(t) {
                this.endPoint.position.set(t.x, t.y)
            }, e.prototype.setCurrentPointPosition = function(t) {
                this.currentPoint.position.set(t.x, t.y)
            }, e.prototype.animateMoveRejected = function(t) {
                var e = this.currentPoint.position.x,
                    n = this.currentPoint.position.y,
                    r = Math.max(4, this.cellSize / 4 - 4);
                return createjs.Tween.get(this.currentPoint.position).to({
                    x: e + t.x * r,
                    y: n + t.y * r
                }, 400, createjs.Ease.bounceOut).to({
                    x: e,
                    y: n
                }, 100, createjs.Ease.quadIn), 500
            }, e.prototype.animateSuccess = function() {
                o.playSound(s.get("coin"));
                var t = this.currentPoint.scale.x;
                createjs.Tween.get(this.currentPoint.scale).to({
                    x: 1.5 * t,
                    y: 1.5 * t
                }, 150, createjs.Ease.quadOut).to({
                    x: t,
                    y: t
                }, 150, createjs.Ease.quadIn)
            }, e.prototype.animateInitialization = function(t, e, n) {
                createjs.Tween.removeTweens(this.currentPoint), createjs.Tween.removeTweens(this.currentPoint.scale), createjs.Tween.removeTweens(this.endPoint), createjs.Tween.removeTweens(this.endPoint.scale), this.currentPoint.alpha = 0, this.currentPoint.scale.set(.5 * this.pointScale, .5 * this.pointScale), this.endPoint.alpha = 0, this.endPoint.scale.set(.5 * this.pointScale, .5 * this.pointScale), createjs.Tween.get(this.currentPoint).wait(t).to({
                    alpha: 1
                }, n), createjs.Tween.get(this.currentPoint.scale).wait(t).to({
                    x: this.pointScale,
                    y: this.pointScale
                }, n, createjs.Ease.quadOut), createjs.Tween.get(this.endPoint).wait(e).to({
                    alpha: 1
                }, n), createjs.Tween.get(this.endPoint.scale).wait(e).to({
                    x: this.pointScale,
                    y: this.pointScale
                }, n, createjs.Ease.quadOut)
            }, e
        }(PIXI.Container);
    e.default = a
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = function(t) {
        function e(e) {
            var n = t.call(this) || this;
            return n.marker = e, n.addChild(n.marker), n.interactive = !1, n
        }
        return i(e, t), e.prototype.setUp = function(t, e) {
            this.toPosition = e, this.fromPosition = t
        }, e.prototype.start = function() {
            createjs.Tween.removeTweens(this), this.marker.visible = !0, this.marker.position.set(this.fromPosition.x, this.fromPosition.y), this.marker.scale.set(1, 1), createjs.Tween.get(this.marker.position, {
                loop: !0
            }).wait(100).to({
                x: this.fromPosition.x,
                y: this.fromPosition.y
            }, 0).to({
                x: this.toPosition.x,
                y: this.toPosition.y
            }, 700, createjs.Ease.cubicIn).wait(750), createjs.Tween.get(this.marker, {
                loop: !0
            }).to({
                alpha: 1
            }, 0).wait(650).to({
                alpha: 0
            }, 150, createjs.Ease.cubicOut).wait(750)
        }, e.prototype.stop = function() {
            this.marker.visible = !1, createjs.Tween.removeTweens(this), this.reset()
        }, e.prototype.resize = function(t) {
            var e = t.width;
            t.height >= e ? (this.rotation = 0, this.marker.rotation = 0) : (this.rotation = -Math.PI / 2, this.marker.rotation = Math.PI / 2)
        }, e.prototype.reset = function() {
            createjs.Tween.removeTweens(this.marker), createjs.Tween.removeTweens(this.marker.scale), createjs.Tween.removeTweens(this.marker.position)
        }, e
    }(PIXI.Container);
    e.TutorialAnimation = o
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(90),
        i = n(71),
        o = n(527),
        s = function() {
            function t() {
                this._music = !0, this._fx = !0
            }
            return Object.defineProperty(t.prototype, "music", {
                get: function() {
                    return this._music
                },
                set: function(t) {
                    !t != !this._music && (this._music = t, this.updated && this.updated.dispatch(), this.saveSettings())
                },
                enumerable: !0,
                configurable: !0
            }), Object.defineProperty(t.prototype, "fx", {
                get: function() {
                    return this._fx
                },
                set: function(t) {
                    !t != !this._fx && (this._fx = t, this.updated && this.updated.dispatch(), this.saveSettings(), r.Howler.mute(!this._fx))
                },
                enumerable: !0,
                configurable: !0
            }), t.prototype.init = function() {
                var t = this;
                this.updated = new i, this.loadSettings(), o.change(function(e, n) {
                    return t.onVisibilityChange(e, n)
                })
            }, t.prototype.saveSettings = function() {
                try {
                    window.localStorage.setItem("com.jellimatic.maze2.0.0.2.SoundFXSetting", e.instance.fx ? "1" : "0"), window.localStorage.setItem("com.jellimatic.maze2.0.0.2.MusicSetting", e.instance.music ? "1" : "0")
                } catch (t) {}
            }, t.prototype.loadSettings = function() {
                var t = "0",
                    e = "0";
                try {
                    t = window.localStorage.getItem("com.jellimatic.maze2.0.0.2.SoundFXSetting") || "1", e = window.localStorage.getItem("com.jellimatic.maze2.0.0.2.MusicSetting") || "1"
                } catch (t) {}
                this.fx = "0" !== t, this.music = "0" !== e, this.updated && this.updated.dispatch(), r.Howler.mute(!this.fx)
            }, t.prototype.onVisibilityChange = function(t, e) {
                "hidden" === e ? r.Howler.mute(!0) : r.Howler.mute(!this.fx)
            }, t
        }();
    e.SoundSettingsImpl = s, e.instance = new s
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.play = function(t) {
        t && t.play()
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(90),
        i = n(364),
        o = n(358);
    e.load = function(t, e) {
        t.pre(function(t, e) {
            if (t.loadType === PIXI.loaders.Resource.LOAD_TYPE.AUDIO) var i = new r.Howl({
                src: ["sound/" + t.url + ".ogg", "sound/" + t.url + ".mp3"],
                autoplay: !1,
                loop: n[t.name].loop,
                volume: n[t.name].volume || 1,
                onload: function() {
                    t.data = i, t.complete(), e()
                }
            });
            else e()
        });
        var n = i(e, "id");
        o(e, function(e) {
            t.add(e.id, e.id, {
                loadType: PIXI.loaders.Resource.LOAD_TYPE.AUDIO
            })
        })
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = null;
    e.play = function(t) {
        t && t !== r && (r && r.stop(), (r = t).play())
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = function() {
        function t(t) {
            this.levelCount = t, this._completed = 0, this._current = 0, this.setMemento(null)
        }
        return Object.defineProperty(t.prototype, "current", {
            get: function() {
                return this._current
            },
            enumerable: !0,
            configurable: !0
        }), Object.defineProperty(t.prototype, "completed", {
            get: function() {
                return this._completed
            },
            enumerable: !0,
            configurable: !0
        }), t.prototype.select = function(t) {
            return !(t > this._completed || (this._current = t, 0))
        }, t.prototype.completeCurrent = function() {
            this._current < this.levelCount - 1 ? (this._current++, this._current > this._completed && (this._completed = this._current)) : this._completed = this.levelCount
        }, t.prototype.forceComplete = function(t) {
            this._completed = Math.min(t, this.levelCount)
        }, Object.defineProperty(t.prototype, "isAllCompleted", {
            get: function() {
                return this._completed === this.levelCount
            },
            enumerable: !0,
            configurable: !0
        }), t.prototype.getMemento = function() {
            return {
                completed: this._completed,
                current: this._current
            }
        }, t.prototype.setMemento = function(t) {
            t ? (this._completed = t.completed, this._current = t.current) : (this._completed = 0, this._current = 0)
        }, t
    }();
    e.default = r
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(7),
        a = n(10),
        u = n(359),
        l = n(44),
        c = n(89),
        h = n(85),
        f = n(503),
        d = function(t) {
            function e(e) {
                var n = t.call(this) || this;
                return n.gridConfig = e, n.cells = [], n.scrollableContent = new o.Container, n.columnCount = 0, n.rowCount = 0, n.onCellClicked = function() {}, n.tempPointLike = {
                    x: 0,
                    y: 0
                }, n.point = new o.Point, n.resolution = 1, n.cellWidth = e.cellWidth, n.cellHeight = e.cellHeight, n.setColumnCount(0), n.addChild(n.scrollableContent), n.scroller = new f.DisplayObjectScroller(n.scrollableContent, n.contentWidth, n.contentHeight, n.clientWidth, n.clientHeight, !1), n.initEvents(), n
            }
            return i(e, t), e.prototype.setColumnCount = function(t) {
                this.columnCount = this.gridConfig.columns ? this.gridConfig.columns : Math.floor(Math.max(this.gridConfig.width, t) / this.cellWidth)
            }, e.prototype.initEvents = function() {
                var t = this,
                    e = this.getInteractionDomElement(),
                    n = new c.Manager(e),
                    r = new c.Pan({
                        enable: !0,
                        direction: c.DIRECTION_VERTICAL
                    }),
                    i = new c.Tap;
                n.add(r), n.add(i), n.on("panstart panmove panend pancancel", function(e) {
                    t.managePan(e)
                }), n.on("tap", function(e) {
                    return t.manageTap(e)
                })
            }, e.prototype.scrollTo = function(t, e) {
                void 0 === t && (t = -1), void 0 === e && (e = !0), (t < 0 || t > this.cells.length - 1) && (t = 0);
                var n = this.getCellByIndex(t),
                    r = this.getCellIndex(0, n.row),
                    i = this.cells[r],
                    o = Math.max(this.contentHeight - this.clientHeight, 0);
                this.scroller.scrollTo(i.x - (this.cellWidth >> 1), Math.min(i.y - this.cellHeight, o), e)
            }, e.prototype.managePan = function(t) {
                if (this.parent && this.parent.parent) {
                    var e = this.scrollableContent.toLocal(this.mapPositionToPoint(t.center.x, t.center.y));
                    t.preventDefault();
                    var n = t.timeStamp;
                    switch (t.type) {
                        case "panstart":
                            this.scroller.handleMouseDown(e, n);
                            break;
                        case "pancancel":
                            this.scroller.handleMouseUp(n);
                            break;
                        case "panmove":
                            this.scroller.handleMouseMove(e, n);
                            break;
                        case "panend":
                            this.scroller.handleMouseUp(n)
                    }
                }
            }, e.prototype.manageTap = function(t) {
                var e = this;
                if (this.parent && this.parent.parent) {
                    var n = this.mapPositionToPoint(t.center.x, t.center.y);
                    t.preventDefault(), a.playSound(s.get("click_fwd"));
                    var r = h.renderer.plugins.interaction.hitTest(n);
                    if (r) {
                        var i = u(this.cells, r); - 1 !== i && l(function() {
                            return e.onCellClicked(i)
                        })
                    }
                }
            }, e.prototype.addItem = function(t) {
                this.scrollableContent.addChild(t), this.cells.push(t);
                var e = this.getCellCenter(this.cells.length);
                this.rowCount = this.getRowByIndex(this.cells.length) + 1, t.position.set(e.x, e.y)
            }, e.prototype.reset = function() {
                this.scrollableContent.removeChildren(), this.cells.length = 0, this.rowCount = 0
            }, e.prototype.resize = function(t, e) {
                this.updateDimensions(t, e), this.pivot.set(this.clientWidth >> 1, this.clientHeight >> 1), this.updateContainerChildrenVisibility(), this.hitArea = new o.Rectangle(0, 0, this.clientWidth, this.clientHeight)
            }, e.prototype.updateDimensions = function(t, e) {
                this.setColumnCount(t), this.rowCount = this.getRowByIndex(this.cells.length) + 1;
                for (var n = 0; n < this.cells.length; n++) {
                    var r = this.cells[n],
                        i = this.getCellCenter(n);
                    r.position.set(i.x, i.y)
                }
                this.clientWidth = this.contentWidth = this.columnCount * this.cellWidth, this.clientHeight = e, this.contentHeight = this.rowCount * this.cellHeight, this.scroller.setContentDimensions(this.clientWidth, this.clientHeight, this.contentWidth, this.contentHeight)
            }, e.prototype.getCellCenter = function(t) {
                var e = this.getColumnByIndex(t),
                    n = this.getRowByIndex(t);
                return this.tempPointLike.x = Math.floor(e * this.cellWidth + (this.cellWidth >> 1)), this.tempPointLike.y = Math.floor(n * this.cellHeight + (this.cellHeight >> 1)), this.tempPointLike
            }, e.prototype.getCellByIndex = function(t) {
                return {
                    column: this.getColumnByIndex(t),
                    row: this.getRowByIndex(t)
                }
            }, e.prototype.getRowByIndex = function(t) {
                return Math.floor(t / this.columnCount)
            }, e.prototype.getColumnByIndex = function(t) {
                return t - this.getRowByIndex(t) * this.columnCount
            }, e.prototype.updateContainerChildrenVisibility = function() {}, e.prototype.getCellIndex = function(t, e) {
                return e * this.columnCount + t
            }, e.prototype.getInteractionDomElement = function() {
                return this.interactionDOMElement || (this.interactionDOMElement = h.renderer.view), this.interactionDOMElement
            }, e.prototype.mapPositionToPoint = function(t, e) {
                var n = this.getInteractionDomElement(),
                    r = n.getBoundingClientRect();
                return this.point.x = (t - r.left) * (n.width / r.width) / this.resolution, this.point.y = (e - r.top) * (n.height / r.height) / this.resolution, this.point
            }, e
        }(o.Container);
    e.default = d
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = function(t) {
            function e(e, n) {
                void 0 === n && (n = new o.Point(.5, .5));
                var r = t.call(this) || this;
                return r.sprite = new o.Sprite(e), r.originalTextureRectangle = e.frame.clone(), r.sprite.pivot.set(r.originalTextureRectangle.width * n.x, r.originalTextureRectangle.height * n.y), r.addChild(r.sprite), r.sprite.visible = !1, r
            }
            return i(e, t), Object.defineProperty(e.prototype, "progress", {
                get: function() {
                    return this._progress
                },
                set: function(t) {
                    if (t > 1 && (t = 1), t < 0 && (t = 0), this._progress !== t) {
                        this._progress = t;
                        var e = this.originalTextureRectangle.width * this._progress;
                        e < 1 && (e = 1), this.sprite.visible = !0;
                        var n = this.sprite.texture;
                        n.frame.width = Math.floor(e), this.sprite.texture.frame = n.frame
                    }
                },
                enumerable: !0,
                configurable: !0
            }), e
        }(o.Container);
    e.default = s
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(530),
        i = function() {
            function t(t, e, n, r, i, o, s, a, u, l) {
                void 0 === o && (o = !1), void 0 === l && (l = !1), this.content = t, this.contentWidth = e, this.contentHeight = n, this.clientWidth = r, this.clientHeight = i, this.bouncing = o, this.onScrollingStarted = s, this.onScrollingComplete = a, this.onScrollingInProgress = u, this.paging = l, this.eventsEnabled = !0
            }
            return t.prototype.setContentDimensions = function(t, e, n, r) {
                this.contentWidth = n, this.contentHeight = r, this.clientWidth = t, this.clientHeight = e, this.scroller && this.scroller.setDimensions(this.clientWidth, this.clientHeight, this.contentWidth, this.contentHeight)
            }, t.prototype.getTop = function() {
                return this.scroller.getValues().top
            }, t.prototype.scrollTo = function(t, e, n) {
                var i = this;
                if (void 0 === n && (n = !1), !this.scroller) {
                    var o = Math.abs(this.contentWidth - this.clientWidth) < 4,
                        s = Math.abs(this.contentHeight - this.clientHeight) < 4;
                    this.scroller = new r(function(t, e) {
                        return i.onScrollTo(t, e)
                    }, {
                        scrollingY: o,
                        scrollingX: s,
                        zooming: !1,
                        bouncing: this.bouncing,
                        paging: this.paging,
                        scrollingComplete: function() {
                            if (i.scroller && i.onScrollingComplete) {
                                var t = i.scroller.getValues();
                                i.onScrollingComplete(t.left, t.top)
                            }
                        }
                    }), this.mouseDown = !1, this.scroller.setDimensions(this.clientWidth, this.clientHeight, this.contentWidth, this.contentHeight)
                }
                this.scroller.scrollTo(t, e, n)
            }, t.prototype.endScroll = function() {
                this.scroller && (this.scroller = null)
            }, t.prototype.onScrollTo = function(t, e) {
                this.content.x = -t, this.content.y = -e, this.onScrollingInProgress && this.onScrollingInProgress(t, e)
            }, t.prototype.enableEvents = function(t) {
                this.eventsEnabled = t
            }, t.prototype.handleMouseDown = function(t, e) {
                if (this.scroller && this.eventsEnabled && !this.mouseDown) {
                    var n = this.content.toGlobal(t);
                    this.scroller.doTouchStart([{
                        pageX: n.x,
                        pageY: n.y
                    }], e), this.mouseDown = !0
                }
            }, t.prototype.handleMouseUp = function(t) {
                this.scroller && this.eventsEnabled && this.mouseDown && (this.mouseDown = !1, this.scroller.doTouchEnd(t))
            }, t.prototype.handleMouseMove = function(t, e) {
                if (this.scroller && this.eventsEnabled && this.mouseDown) {
                    var n = this.content.toGlobal(t);
                    this.scroller.doTouchMove([{
                        pageX: n.x,
                        pageY: n.y
                    }], e)
                }
            }, t
        }();
    e.DisplayObjectScroller = i
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(10),
        s = "mute_btn_on",
        a = "mute_btn_off",
        u = function(t) {
            function e() {
                var e = t.call(this, s, s, a, a, function() {
                    return e.toggleSound()
                }) || this;
                return o.settings.updated.add(function() {
                    return e.refreshSoundSettings()
                }), e.refreshSoundSettings(), e
            }
            return i(e, t), e.prototype.toggleSound = function() {
                var t = o.settings.fx;
                o.settings.fx = !t
            }, e.prototype.refreshSoundSettings = function() {
                this.setChecked(o.settings.fx)
            }, e
        }(n(193).CheckIconButton);
    e.SoundIconButton = u
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = function(t) {
        function e() {
            var e = t.call(this) || this;
            return e.speed = new PIXI.Point(-50, 0), e.spritePosition = new PIXI.Point(0, 0), e.sprite = new PIXI.extras.TilingSprite(PIXI.Texture.fromImage("back_tile.png"), 4096, 4096), e.sprite.anchor.set(.5, .5), e.sprite.interactive = !1, e.addChild(e.sprite), e
        }
        return i(e, t), e.prototype.update = function(t) {
            var n = t / 1e3;
            for (this.spritePosition.x += this.speed.x * n; this.speed.x > 0 && this.spritePosition.x > e.LIMITS.right;) this.spritePosition.x -= e.LIMITS.width;
            for (; this.speed.x < 0 && this.spritePosition.x < e.LIMITS.left;) this.spritePosition.x += e.LIMITS.width;
            for (this.sprite.x = this.spritePosition.x, this.spritePosition.y += this.speed.y * n; this.speed.y > 0 && this.spritePosition.y > e.LIMITS.top;) this.spritePosition.y -= e.LIMITS.height;
            for (; this.speed.y < 0 && this.spritePosition.y < e.LIMITS.bottom;) this.spritePosition.y += e.LIMITS.height;
            this.sprite.y = this.spritePosition.y
        }, e.LIMITS = new PIXI.Rectangle(0, 0, 512, 512), e
    }(PIXI.Container);
    e.default = o
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(193),
        s = n(523),
        a = "fullscreen_btn_on",
        u = "fullscreen_btn_off",
        l = function(t) {
            function e() {
                var e = t.call(this, a, a, u, u, function() {
                    return e.toggleSound()
                }) || this;
                return e.refreshButton(), e
            }
            return i(e, t), e.prototype.updateTransform = function() {
                this.refreshButton(), t.prototype.updateTransform.call(this)
            }, e.prototype.toggleSound = function() {
                s.toggle()
            }, e.prototype.refreshButton = function() {
                this.visible = s.isSupported(), this.setChecked(s.isFullscreen())
            }, e
        }(o.CheckIconButton);
    e.ToggleFullscreenButton = l
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = function(t) {
        function e(e) {
            var n = t.call(this, e) || this;
            return n.ttl = 0, n.rotationSpeed = 0, n.dx = 0, n.dy = 0, n.mass = 1, n
        }
        return i(e, t), e
    }(n(4).Sprite);
    e.default = o
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = function(t) {
            function e(e, n, r, i) {
                var o = t.call(this) || this;
                o.onUpdate = i, o.count = 0, o.images = o.createTextures(e);
                for (var s = o.images.length, a = 0; a < r; a++) {
                    var u = new n(o.images[Math.floor(Math.random() * s)]);
                    o.addChild(u), o.addAsUnused(u)
                }
                return o.empty = new n(o.images[Math.floor(Math.random() * s)]), o.interactive = !1, o.interactiveChildren = !1, o
            }
            return i(e, t), e.prototype.createTextures = function(t) {
                for (var e = new Array, n = 1;; ++n) {
                    var r = o.utils.TextureCache[t + n + ".png"];
                    if (!r) return e;
                    e.push(r)
                }
            }, e.prototype.spawn = function() {
                if (!this.unused) return this.empty;
                this.count++;
                var t = this.unused;
                return this.unused = t._nextParticle, t.visible = !0, t
            }, e.prototype.kill = function(t) {
                this.addAsUnused(t), this.count--
            }, e.prototype.addAsUnused = function(t) {
                t.visible = !1, t._nextParticle = this.unused, this.unused = t
            }, e.prototype.animate = function(t) {
                if (this.onUpdate && 0 !== this.count)
                    for (var e = this.children.length, n = 0; n < e; ++n) {
                        var r = this.getChildAt(n);
                        r.visible && this.onUpdate(r, t)
                    }
            }, e.prototype.clean = function() {
                for (var t = this.children.length, e = 0; e < t; ++e) {
                    var n = this.getChildAt(e);
                    this.kill(n)
                }
                this.count = 0
            }, e
        }(o.Container);
    e.default = s
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(508),
        s = n(507),
        a = function(t) {
            function e() {
                var e = t.call(this, "particle_star", s.default, 100, function(t, n) {
                    return e.onUpdateConfetti(t, n)
                }) || this;
                return e.particleCounter = 0, e
            }
            return i(e, t), e.prototype.animate = function(e) {
                if (this.particleCounter > 0)
                    for (var n = 0; n < 3; ++n) {
                        var r = this.spawn();
                        r.position.set(0, 0), r.anchor.set(0, .5);
                        var i = Math.random() * Math.PI * 2,
                            o = 1500 + 500 * Math.random();
                        r.dx = Math.cos(i) * o, r.dy = Math.sin(i) * o, r.rotation = i, r.ttl = 1, r.scale.set(1.7 * Math.random() + .2, 1), this.particleCounter--
                    }
                t.prototype.animate.call(this, e)
            }, e.prototype.launch = function() {
                this.particleCounter = 80
            }, e.prototype.onUpdateConfetti = function(t, e) {
                e = 1 / 60, t.x += t.dx * e, t.y += t.dy * e, t.dx += t.dx * e, t.dy += t.dy * e, t.ttl -= e, t.ttl <= 0 && this.kill(t)
            }, e
        }(o.default);
    e.default = a
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
            return (r = Object.setPrototypeOf || {
                    __proto__: []
                }
                instanceof Array && function(t, e) {
                    t.__proto__ = e
                } || function(t, e) {
                    for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
                })(t, e)
        }, function(t, e) {
            function n() {
                this.constructor = t
            }
            r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
        }),
        o = this && this.__decorate || function(t, e, n, r) {
            var i, o = arguments.length,
                s = o < 3 ? e : null === r ? r = Object.getOwnPropertyDescriptor(e, n) : r;
            if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(t, e, n, r);
            else
                for (var a = t.length - 1; a >= 0; a--)(i = t[a]) && (s = (o < 3 ? i(s) : o > 3 ? i(e, n, s) : i(e, n)) || s);
            return o > 3 && s && Object.defineProperty(e, n, s), s
        };
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var s = n(4),
        a = n(511),
        u = n(502),
        l = function(t) {
            function e(e) {
				var n = t.call(this) || this;
                if (n.config = e, n.config && n.config.additionalArt) {
                    var r = s.Sprite.from(n.config.additionalArt);
                    r.anchor.set(.5, .5), n.addChild(r)
                }
                n.progressBar = new s.Container, n.addChild(n.progressBar);
                var i = s.Sprite.fromFrame("progressbg.png");
                return i.anchor.set(.5, .5), 
				n.progressBar.addChild(i), 
				n.progressBarSprite = new u.default(s.Texture.fromFrame("progress.png")), 
				n.progressBar.addChild(n.progressBarSprite), 
				n.config.progressOffset && n.progressBar.position.set(n.config.progressOffset.x, n.config.progressOffset.y), 
				n
            }
            return i(e, t), e.prototype.updateProgress = function(t) {
                this.progressBarSprite.progress = t
            }, e.prototype.stop = function(t) {
                t()
            }, e.prototype.resize = function(t) {
                var e = t.width,
                    n = t.height;
                this.position.set(e >> 1, n >> 1)
            }, o([a.smoothProgress(200)], e)
        }(s.Container);
    e.PreloaderImpl = l
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(356),
        s = n(136);
    e.smoothProgress = function(t) {
        return function(e) {
            return function(e) {
                function n() {
                    for (var t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];
                    var r = e.call(this, t.length > 0 ? t[0] : null) || this;
                    return r.currentValue = 0, r.lastReportedValue = 0, s(r, "onTimer"), PIXI.ticker.shared.add(r.onTimer), r
                }
                return i(n, e), n.prototype.updateProgress = function(t) {
                    (t = o(t, 0, 1)) > this.lastReportedValue && (this.lastReportedValue = t)
                }, n.prototype.stop = function(t) {
                    this.terminationCallback = t, this.lastReportedValue = 1
                }, n.prototype.onTimer = function() {
                    this.currentValue += PIXI.ticker.shared.elapsedMS / t, this.currentValue > this.lastReportedValue && (this.currentValue = this.lastReportedValue), e.prototype.updateProgress.call(this, this.currentValue), this.currentValue >= 1 && this.terminationCallback && (PIXI.ticker.shared.remove(this.onTimer), e.prototype.stop.call(this, this.terminationCallback))
                }, n
            }(e)
        }
    }
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(103),
        a = n(13),
        u = function(t) {
            function e(e, n) {
                var r = t.call(this) || this;
                r.buttons = e;
                var i = r.fadingBg = o.Sprite.fromFrame("transition_rect.png");
                i.anchor.set(.5, .5), i.alpha = .38, i.interactive = !0, i.hitArea = new o.Rectangle(-2048, -2048, 4096, 4096), i.on("pointerdown", s.default), i.on("pointerup", s.default), i.on("pointerover", s.default), i.on("pointertap", function() {
                    return r.onQuit()
                }), r.addChild(i), r.bg = o.Sprite.fromFrame("dialog_bg.png"), r.bg.anchor.set(.5, .5), r.bg.interactive = !0, r.bg.on("pointerdown", s.default), r.bg.on("pointerup", s.default), r.bg.on("pointertap", s.default), r.bg.on("pointerover", s.default), r.addChild(r.bg);
                var u = r.bg.texture.frame;
                r.menuWidth = u.width, r.menuHeight = u.height, r.closeButton = a.createIconButton(r, "close_btn", function() {
                    r.onQuit()
                }), r.closeButton.position.set((u.width >> 1) - 75, 75 - (u.height >> 1));
                for (var l = e.length, c = 0, h = 0; c < l; c++) {
                    var f = e[c];
                    f && (r.addChild(f), f.position.set(n[h].x, n[h].y), h++)
                }
                return r
            }
            return i(e, t), e.prototype.enterScreen = function() {
                this.bg.scale.set(0, 0), this.bg.position.set(250, -450), createjs.Tween.get(this.bg.scale).to({
                    x: 1,
                    y: 1
                }, 200, createjs.Ease.quadOut), createjs.Tween.get(this.bg.position).to({
                    x: 0,
                    y: 0
                }, 200, createjs.Ease.quadOut);
                for (var t = 150, e = 0, n = this.buttons; e < n.length; e++) {
                    var r = n[e];
                    r && (r.scale.set(0, 0), createjs.Tween.get(r.scale).wait(t).to({
                        x: 1,
                        y: 1
                    }, 250, createjs.Ease.backOut), t += 150)
                }
                this.closeButton.scale.set(0, 0), createjs.Tween.get(this.closeButton.scale).wait(t).to({
                    x: 1,
                    y: 1
                }, 250, createjs.Ease.backOut)
            }, e.prototype.exitScreen = function() {}, e.prototype.onQuit = function() {}, e.prototype.resize = function(t) {
                this.position.set(t.width >> 1, t.height >> 1), this.fadingBg.scale.set(t.width / 4, t.height / 4)
            }, e
        }(o.Container);
    e.default = u
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(13),
        s = n(4),
        a = n(7),
        u = n(103),
        l = function(t) {
            function e(e) {
                var n = t.call(this) || this,
                    r = n.fadingBg = s.Sprite.fromFrame("transition_rect.png");
                r.anchor.set(.5, .5), r.alpha = .38, r.interactive = !0, r.hitArea = new s.Rectangle(-2048, -2048, 4096, 4096), r.on("pointerdown", u.default), r.on("pointerup", u.default), r.on("pointerover", u.default), r.on("pointertap", function() {
                    return n.onQuit()
                }), n.addChild(r), n.bg = s.Sprite.fromFrame("dialog_bg.png"), n.bg.anchor.set(.5, .5), n.bg.interactive = !0, n.bg.on("pointerdown", u.default), n.bg.on("pointerup", u.default), n.bg.on("pointertap", u.default), n.bg.on("pointerover", u.default), n.addChild(n.bg);
                var i = a.getMessage("gameMode.locked.message").replace("%1", e),
                    l = new s.extras.BitmapText(i, {
                        font: "60px GameFnt",
                        align: "center",
                        tint: 15423319
                    });
                return l.maxWidth = 620, l.anchor = .5, l.position.set(0, -120), n.addChild(l), n.continueButton = n.addChild(o.createIconButton(n, "next_button", function() {
                    n.onQuit()
                })), n.continueButton.position.set(0, 70), n
            }
            return i(e, t), e.prototype.onQuit = function() {}, e.prototype.resize = function(t) {
                this.position.set(t.width >> 1, t.height >> 1), this.fadingBg.scale.set(t.width / 4, t.height / 4)
            }, e.prototype.enterScreen = function() {}, e.prototype.exitScreen = function() {}, e
        }(s.Container);
    e.default = l
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(13),
        s = n(4),
        a = n(7),
        u = n(10),
        l = n(13),
        c = function(t) {
            function e() {
                var e = t.call(this) || this;
                e.fadingBg = s.Sprite.fromFrame("transition_rect.png"), e.fadingBg.anchor.set(.5, .5), e.fadingBg.alpha = .75, e.addChild(e.fadingBg), e.bg = s.Sprite.fromFrame("dialog_bg.png"), e.bg.anchor.set(.5, .5), e.bg.interactive = !1, e.addChild(e.bg);
                var n = {
                    font: "60px GameFnt",
                    align: "left",
                    tint: 2201171
                };
                return e.levelIcon = s.Sprite.fromFrame("game_over_level_icon.png"), e.levelIcon.anchor.set(.5, .5), e.levelIcon.position.set(-120, -140), e.addChild(e.levelIcon), e.levelProgress = new s.extras.BitmapText("1 / 200", n), e.levelProgress.anchor = .5, e.levelProgress.position.set(e.levelIcon.x + 160, e.levelIcon.y), e.addChild(e.levelProgress), e.timeIcon = s.Sprite.fromFrame("game_over_time_icon.png"), e.timeIcon.anchor.set(.5, .5), e.timeIcon.position.set(e.levelIcon.x, e.levelIcon.y + 100), e.addChild(e.timeIcon), e.timeMessage = new s.extras.BitmapText("", n), e.timeMessage.anchor = .5, e.timeMessage.position.set(e.timeIcon.x + 160, e.timeIcon.y), e.addChild(e.timeMessage), e.continueButton = e.addChild(o.createIconButton(e, "next_button", function() {
                    e.onNext()
                })), e.homeButton = e.addChild(o.createIconButton(e, "home_button", function() {
                    e.onHome()
                })), e.continueButton.position.set(100, 110), e.homeButton.position.set(-150, 110), e
            }
            return i(e, t), e.prototype.onNext = function() {}, e.prototype.onHome = function() {}, e.prototype.show = function(t, e, n) {
                if (this.bg.scale.set(.5, .5), createjs.Tween.get(this.bg.scale).to({
                        x: 1,
                        y: 1
                    }, 750, createjs.Ease.quadOut), this.timeIcon.alpha = 0, this.timeMessage.alpha = 0, this.displayTimeSeconds = 0, createjs.Tween.get(this.timeIcon).wait(1250).to({
                        alpha: 1
                    }, 250), createjs.Tween.get(this.timeMessage).wait(1250).to({
                        alpha: 1
                    }, 250), createjs.Tween.get(this).wait(1100).call(function() {
                        return u.playSound(a.get("bubbles"))
                    }).to({
                        displayTimeSeconds: n
                    }, 500), this.levelProgress.alpha = 0, this.levelIcon.alpha = 0, t >= 0) {
                    createjs.Tween.get(this.levelIcon).wait(1100).to({
                        alpha: 1
                    }, 250), createjs.Tween.get(this.levelProgress).wait(1100).to({
                        alpha: 1
                    }, 250);
                    var r = a.getMessage("levelComplete.level"),
                        i = t + 1;
                    this.levelProgress.text = r.replace("%1", "" + i).replace("%2", "" + e)
                }
                this.homeButton.scale.set(0, 0), this.homeButton.alpha = 0, createjs.Tween.get(this.homeButton).wait(1400).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.homeButton.scale).wait(1400).to({
                    x: 1,
                    y: 1
                }, 450, createjs.Ease.backOut), this.continueButton.scale.set(0, 0), this.continueButton.alpha = 0, createjs.Tween.get(this.continueButton).wait(1450).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.continueButton.scale).wait(1400).to({
                    x: 1,
                    y: 1
                }, 450, createjs.Ease.backOut)
            }, e.prototype.resize = function(t) {
                this.fadingBg.scale.set(t.width / 3, t.height / 3)
            }, Object.defineProperty(e.prototype, "displayTimeSeconds", {
                set: function(t) {
                    if (this._displayTimeSeconds !== t) {
                        this._displayTimeSeconds = t;
                        var e = a.getMessage("levelComplete.time");
                        this.timeMessage.text = e.replace("%1", l.formatSeconds(this._displayTimeSeconds))
                    }
                },
                enumerable: !0,
                configurable: !0
            }), e
        }(s.Container);
    e.default = c
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o, s = n(4),
        a = n(501),
        u = n(516),
        l = n(86),
        c = n(10),
        h = n(7),
        f = function(t) {
            function e(e) {
                var n = t.call(this) || this;
                return n.config = e, n.currentLevel = -1, n.levels = [], n.onLevelClicked = function() {}, n.content = new a.default(e.map), n.addChild(n.content), n.content.onCellClicked = function(t) {
                    return n.onLevelClicked(n.gameMode, t)
                }, n.hud = new u.default, n.addChild(n.hud), n.hud.onContextMenu = function() {
                    return n.onContextMenu()
                }, n.content.position.set(0, n.hud.hudHeight), n
            }
            return i(e, t), e.prototype.onContextMenu = function() {}, e.prototype.resize = function(t) {
                var e = t.width,
                    n = t.height;
                this.position.set(e >> 1, n >> 1), this.hud.resize(t), this.content.resize(e, n)
            }, e.prototype.updateLevelState = function(t, e, n, r) {
                this.gameMode !== t && (this.content.reset(), this.gameMode = t, this.levels.length = 0, this.initLevels(e)), this.updateLevels(r), this.currentLevel = Math.max(n, 0), this.content.scrollTo(this.currentLevel, !1);
                var i = h.getMessage("gameMode." + l.GameMode[t]);
                this.hud.setLabel(i)
            }, e.prototype.enterScreen = function() {
                this.hud.pivot.set(0, 300), this.hud.alpha = 0, createjs.Tween.get(this.hud.pivot).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.hud).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), c.playSound(h.get("bubbleburst"));
                for (var t = 0, e = this.levels; t < e.length; t++) {
                    var n = e[t];
                    n.scale.set(0, 0), n.alpha = 0;
                    var r = 300 * Math.random();
                    createjs.Tween.get(n.scale).wait(r).to({
                        x: 1,
                        y: 1
                    }, 450, createjs.Ease.backOut), createjs.Tween.get(n).wait(r).to({
                        alpha: 1
                    }, 450, createjs.Ease.quadOut)
                }
            }, e.prototype.exitScreen = function() {
                createjs.Tween.get(this.hud.pivot).to({
                    x: 0,
                    y: 300
                }, 350, createjs.Ease.quadIn), createjs.Tween.get(this.hud).to({
                    alpha: 0
                }, 350, createjs.Ease.quadIn);
                for (var t = 0, e = this.levels; t < e.length; t++) {
                    var n = e[t],
                        r = 300 * Math.random();
                    createjs.Tween.get(n.scale).wait(r).to({
                        x: 0,
                        y: 0
                    }, 450, createjs.Ease.backIn), createjs.Tween.get(n).wait(r).to({
                        alpha: 0
                    }, 450, createjs.Ease.quadIn)
                }
                return 950
            }, e.prototype.initLevels = function(t) {
                for (var e = this, n = function(t) {
                        var n = new d(t, o.locked, function() {
                            e.onLevelClicked(e.gameMode, t)
                        });
                        r.levels.push(n), r.content.addItem(n)
                    }, r = this, i = 0; i < t; i++) n(i);
                this.content.updateDimensions(this.config.map.width, this.config.map.height)
            }, e.prototype.updateLevels = function(t) {
                for (var e = 0; e < this.levels.length; e++)
                    if (e < t) this.levels[e].complete();
                    else if (e === t) {
                    this.levels[e].unlock();
                    break
                }
                this.content.updateDimensions(this.config.map.width, this.config.map.height)
            }, e
        }(s.Container);
    e.default = f,
        function(t) {
            t[t.locked = 0] = "locked", t[t.unlocked = 1] = "unlocked", t[t.complete = 2] = "complete"
        }(o || (o = {}));
    var d = function(t) {
        function e(e, n, r) {
            var i = t.call(this) || this;
            return i.state = n, i.onClickHandler = r, i.levelLabel = "" + (e + 1), i.setLevelIcon("level_icon_unlocked.png"), i.state === o.locked && (i.lockIcon = i.addChild(s.Sprite.fromFrame("level_icon_locked.png")), i.lockIcon.anchor.set(.5, .5), i.lockIcon.position.set(0, 0), i.icon.visible = !1), i.interactive = !0, i.interactiveChildren = !0, i
        }
        return i(e, t), e.prototype.unlock = function() {
            this.state = o.unlocked, this.lockIcon.visible = !1, this.icon.visible = !0, this.levelTitle.tint = 11181771
        }, e.prototype.complete = function() {
            this.state !== o.complete && (this.unlock(), this.state = o.complete, this.setLevelIcon("level_icon_complete.png"))
        }, e.prototype.setLevelIcon = function(t) {
            this.icon && this.icon.parent && this.icon.parent.removeChild(this.icon), this.icon = s.Sprite.fromFrame(t), this.icon.anchor.set(.5, .5), this.addChild(this.icon), this.levelTitle = new s.extras.BitmapText(this.levelLabel, {
                font: "60px GameFnt",
                align: "center"
            }), this.levelTitle.anchor = .5, this.icon.addChild(this.levelTitle), this.icon.visible = !0
        }, e
    }(s.Container)
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(13),
        s = n(4),
        a = function(t) {
            function e() {
                var e = t.call(this) || this;
                return e.hudHeight = 120, e.bg = s.Sprite.fromFrame("transition_rect.png"), e.bg.anchor.set(.5, .5), e.addChild(e.bg), e.modeLabel = new s.extras.BitmapText("", {
                    font: "70px GameFnt",
                    align: "center"
                }), e.addChild(e.modeLabel), e.settingsButton = o.createIconButton(e, "settings_btn", function() {
                    e.onContextMenu()
                }), e.settingsButton.position.set(260, 0), e
            }
            return i(e, t), e.prototype.onContextMenu = function() {}, e.prototype.setLabel = function(t) {
                this.modeLabel.text = t, this.modeLabel.anchor = new s.Point(0, .5), this.modeLabel.position.set(-290, 0)
            }, e.prototype.resize = function(t) {
                var e = t.width,
                    n = t.height;
                this.position.set(0, -(n >> 1) + (this.hudHeight >> 1)), this.bg.scale.set(e / 4, this.hudHeight / 4)
            }, e
        }(s.Container);
    e.default = a
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = function(t) {
            function e(e, n, r) {
                var i = t.call(this, e, r) || this;
                return i.locked = n, i.locked ? (i.lockIcon = o.Sprite.fromFrame("button_lock_icon.png"), i.lockIcon.anchor.set(0, 0), i.lockIcon.position.set(-117, 0), i.icon.alpha = .3, i.addChild(i.lockIcon)) : i.icon.alpha = 0, i
            }
            return i(e, t), e.prototype.unlock = function() {
                this.locked && (this.locked = !1, this.lockIcon.visible = !1, this.icon.alpha = 1)
            }, e
        }(n(194).default);
    e.default = s
}, function(t, e, n) {
    "use strict";
    var r, i = this && this.__extends || (r = function(t, e) {
        return (r = Object.setPrototypeOf || {
                __proto__: []
            }
            instanceof Array && function(t, e) {
                t.__proto__ = e
            } || function(t, e) {
                for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n])
            })(t, e)
    }, function(t, e) {
        function n() {
            this.constructor = t
        }
        r(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n)
    });
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var o = n(4),
        s = n(13),
        a = n(7),
        u = n(86),
        l = n(517),
        c = n(13),
        h = n(10),
        f = n(34),
        d = function(t) {
            function e() {
                var e = t.call(this) || this;
                e.bestTimeMillis = 0, e.levelCount = 0, e.levelComplete = 0, e.darkLevelCount = 0, e.darkLevelComplete = 0, e.onContextMenu = function() {}, e.onStartGame = function() {}, e.onRequestUnlock = function() {}, e.title = e.addChild(o.Sprite.fromFrame("title.png")), e.title.anchor.set(.5, .5), e.title.position.set(0, -285), e.settingsButton = s.createIconButton(e, "settings_btn", function() {
                    e.onContextMenu()
                }), e.settingsButton.position.set(260, -420), e.playButton = s.createIconButton(e, "play_button", function() {
                    e.stopTweens(), e.onStartGame(u.GameMode.classic)
                }), e.playButton.position.set(0, -100), e.playDarkModeButton = new l.default("play_dark_mode_button", !0, function() {
                    e.playDarkModeButton.locked ? e.onRequestUnlock(u.GameMode.dark) : (e.stopTweens(), e.onStartGame(u.GameMode.dark))
                }), e.playDarkModeButton.position.set(e.playButton.x, e.playButton.y + 150), e.addChild(e.playDarkModeButton), e.playTimeTrialButton = new l.default("play_time_trial_button", !0, function() {
                    e.playTimeTrialButton.locked ? e.onRequestUnlock(u.GameMode.timeTrial) : (e.stopTweens(), e.onStartGame(u.GameMode.timeTrial))
                }), e.playTimeTrialButton.position.set(e.playDarkModeButton.x, e.playDarkModeButton.y + 150), e.addChild(e.playTimeTrialButton);
                var n = {
                    font: "36px GameFnt",
                    align: "center",
                    tint: gradle.home_text_tint
                };
                if (e.bestTime = new o.extras.BitmapText(" ", n), e.bestTime.visible = !0, e.bestTime.position.set(0, e.playTimeTrialButton.y), e.bestTime.anchor = .5, e.addChild(e.bestTime), e.levelProgress = new o.extras.BitmapText("1 / 200", n), e.levelProgress.visible = !0, e.levelProgress.position.set(0, e.playButton.y), e.levelProgress.anchor = .5, e.addChild(e.levelProgress), e.darkLevelProgress = new o.extras.BitmapText("1 / 200", n), e.darkLevelProgress.visible = !0, e.darkLevelProgress.position.set(0, e.playDarkModeButton.y), e.darkLevelProgress.anchor = .5, e.addChild(e.darkLevelProgress), e.interactive = !0, e.interactiveChildren = !0, f.instance.moreGamesButtonImage) {
                    var r = o.Sprite.fromImage(f.instance.moreGamesButtonImage);
                    r.interactive = !0, r.on("pointertap", f.instance.handleMoreGamesButton), r.anchor.set(.5), r.scale.set(.3), r.position.set(0, e.playTimeTrialButton.y + 120), e.addChild(r)
                }
                return e
            }
            return i(e, t), e.prototype.unlock = function() {
                this.playDarkModeButton.unlock(), this.playTimeTrialButton.unlock(), this.updateProgressMessages()
            }, e.prototype.onCredits = function() {}, e.prototype.enterScreen = function() {
                this.updateProgressMessages(), this.title.scale.set(0, 0), this.playButton.scale.set(0, 0), this.playDarkModeButton.scale.set(0, 0), this.playTimeTrialButton.scale.set(0, 0), this.settingsButton.scale.set(0, 0), this.levelProgress.alpha = 0, this.bestTime.alpha = 0, this.darkLevelProgress.alpha = 0, this.title.alpha = 0, this.playButton.alpha = 0, this.playDarkModeButton.alpha = 0, this.playTimeTrialButton.alpha = 0, this.settingsButton.alpha = 0, createjs.Tween.get(this.title.scale, {
                    override: !0
                }).to({
                    x: 1,
                    y: 1
                }, 750, createjs.Ease.backOut), createjs.Tween.get(this.playButton.scale, {
                    override: !0
                }).wait(500).call(function() {
                    h.playSound(a.get("bubbles"))
                }).wait(80).to({
                    x: 1,
                    y: 1
                }, 1e3, createjs.Ease.elasticOut), createjs.Tween.get(this.playDarkModeButton.scale, {
                    override: !0
                }).wait(740).to({
                    x: 1,
                    y: 1
                }, 1e3, createjs.Ease.elasticOut), createjs.Tween.get(this.playTimeTrialButton.scale, {
                    override: !0
                }).wait(910).to({
                    x: 1,
                    y: 1
                }, 1e3, createjs.Ease.elasticOut), createjs.Tween.get(this.settingsButton.scale, {
                    override: !0
                }).wait(910).to({
                    x: 1,
                    y: 1
                }, 750, createjs.Ease.backOut), createjs.Tween.get(this.title, {
                    override: !0
                }).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.playButton, {
                    override: !0
                }).wait(500).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.playDarkModeButton, {
                    override: !0
                }).wait(650).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.playTimeTrialButton, {
                    override: !0
                }).wait(800).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.settingsButton, {
                    override: !0
                }).wait(950).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.levelProgress, {
                    override: !0
                }).wait(850).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.darkLevelProgress, {
                    override: !0
                }).wait(1e3).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.bestTime, {
                    override: !0
                }).wait(1100).to({
                    alpha: 1
                }, 350, createjs.Ease.quadOut), this.startTweens()
            }, e.prototype.updateProgressMessages = function() {
                if (this.bestTimeMillis > 0) {
                    var t = c.formatSeconds(this.bestTimeMillis / 1e3);
                    this.bestTime.text = a.getMessage("menu.bestTime").replace("%1", t), this.bestTime.visible = !0
                } else this.bestTime.visible = !1;
                var e = a.getMessage("levelComplete.level");
                this.levelProgress.text = e.replace("%1", "" + this.levelComplete).replace("%2", "" + this.levelCount);
                var n = a.getMessage("levelComplete.level");
                this.darkLevelProgress.text = n.replace("%1", "" + this.darkLevelComplete).replace("%2", "" + this.darkLevelCount)
            }, e.prototype.exitScreen = function() {
                return this.stopTweens(), createjs.Tween.get(this.title.scale, {
                    override: !0
                }).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.backIn), createjs.Tween.get(this.playButton.scale, {
                    override: !0
                }).wait(100).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.backIn), createjs.Tween.get(this.playDarkModeButton.scale, {
                    override: !0
                }).wait(200).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.backIn), createjs.Tween.get(this.playTimeTrialButton.scale, {
                    override: !0
                }).wait(300).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.backIn), createjs.Tween.get(this.settingsButton.scale, {
                    override: !0
                }).wait(400).to({
                    x: 0,
                    y: 0
                }, 350, createjs.Ease.backIn), createjs.Tween.get(this.levelProgress, {
                    override: !0
                }).wait(400).to({
                    alpha: 0
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.darkLevelProgress, {
                    override: !0
                }).wait(500).to({
                    alpha: 0
                }, 350, createjs.Ease.quadOut), createjs.Tween.get(this.bestTime, {
                    override: !0
                }).wait(500).to({
                    alpha: 0
                }, 350, createjs.Ease.quadOut), 850
            }, e.prototype.resize = function(t) {
                var e = t.width,
                    n = t.height;
                this.position.set(e >> 1, n >> 1), n >= e ? this.settingsButton.position.set(e / 2 - 60, -420) : this.settingsButton.position.set(e / 2 - 60, this.title.position.y - 60)
            }, e.prototype.startTweens = function() {}, e.prototype.stopTweens = function() {}, e
        }(o.Container);
    e.default = d
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(44),
        i = null;
    e.fadeOut = function(t, e, n, o) {
        (i = PIXI.Sprite.fromFrame("transition_rect.png")).anchor.set(.5, .5), i.position.set(e.width / 2, e.height / 2), i.scale.set(e.width / 4, e.height / 4), i.interactive = !0, i.alpha = .01, t.addChild(i), r(function() {
            createjs.Tween.get(i).to({
                alpha: 1
            }, n.duration, createjs.Ease.quadOut).call(o)
        })
    }, e.fadeIn = function(t, e, n, r) {
        i ? (i.position.set(e.width / 2, e.height / 2), createjs.Tween.get(i).to({
            alpha: 0
        }, n.duration, createjs.Ease.quadIn).call(function() {
            i && i.parent && i.parent.removeChild(i), i = null, r()
        })) : r()
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(44),
        i = n(519);

    function o(t, e, n, r) {
        if (n) {
            var o = i[n.type];
            o ? o(t, e, n, r) : r()
        } else r()
    }
    e.start = function(t, e, n, i) {
        var s = {
                type: "fadeOut",
                duration: 750
            },
            a = {
                type: "fadeIn",
                duration: 750
            };
        r(function() {
            o(t, e, s, function() {
                n(), r(function() {
                    o(t, e, a, function() {})
                })
            })
        })
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(524),
        i = function(t, e, n, r, i, o) {
            this.column = t, this.row = e, this.x = n, this.y = r, this.left = i, this.top = o
        };
    e.VisualGridCell = i;
    var o = function() {
        function t(t, e, n, r) {
            void 0 === r && (r = 0), this.gridVisualRect = t, this.columnCount = e, this.rowCount = n, this.padding = r, this.gridCells = [], this.tempPoint = {
                x: 0,
                y: 0
            }, this.tempRect = {
                x: 0,
                y: 0,
                width: 0,
                height: 0
            }, this.cellWidth = t.width / e, this.cellHeight = t.height / n;
            for (var o = 0; o < this.rowCount; ++o) {
                var s = [];
                this.gridCells[o] = s;
                for (var a = 0; a < this.columnCount; ++a) s[a] = new i(a, o, Math.floor(t.x + a * this.cellWidth + (this.cellWidth >> 1)), Math.floor(t.y + o * this.cellHeight + (this.cellHeight >> 1)), Math.floor(t.x + a * this.cellWidth), Math.floor(t.y + o * this.cellHeight))
            }
        }
        return t.prototype.getCell = function(t, e) {
            if (!this.gridCells[e]) throw new Error("Cannot access column/row (" + t + ", " + e + ") in a grid (" + this.columnCount + ", " + this.rowCount);
            var n = this.gridCells[e][t];
            if (!n) throw new Error("Cannot access column/row (" + t + ", " + e + ") in a grid (" + this.columnCount + ", " + this.rowCount);
            return n
        }, t.prototype.getCellFromPixels = function(t, e) {
            var n = Math.floor((t - this.gridVisualRect.x) / this.cellWidth),
                i = Math.floor((e - this.gridVisualRect.y) / this.cellHeight),
                o = this.getCell(n, i);
            return this.tempPoint.x = t, this.tempPoint.y = e, this.tempRect.x = o.left, this.tempRect.y = o.top, this.tempRect.width = this.cellWidth, this.tempRect.height = this.cellHeight, r.checkPointInRect(this.tempPoint, this.tempRect, this.padding) ? o : null
        }, t.prototype.getCellIndex = function(t, e) {
            return e * this.columnCount + t
        }, t
    }();
    e.default = o
}, function(t, e, n) {
    "use strict";

    function r(t) {
        PIXI.ticker.shared.remove(t)
    }
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.start = function(t) {
        if (!t.next().done) {
            var e = function() {
                t.next().done && r(e)
            };
            PIXI.ticker.shared.add(e)
        }
    }, e.stop = r
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(474),
        i = !1;
    e.start = function() {
        var t, e, n, o, s;
        i || (i = !0, e = (t = window.navigator.userAgent).indexOf("IEMobile") > -1 || t.indexOf("Windows Phone") > -1, n = (t.indexOf("iPod") > -1 || t.indexOf("iPhone") > -1 || t.indexOf("iPad") > -1) && !e, o = t.indexOf("Android") > -1 && !e, s = t.indexOf("Blackberry") > -1, (e || n || o || s) && r.enabled && r.request())
    }, e.toggle = function() {
        r.enabled && r.toggle()
    }, e.isFullscreen = function() {
        return r.enabled && r.isFullscreen
    }, e.isSupported = function() {
        return r.enabled
    }, e.on = function(t) {
        r.on("change", t)
    }, e.off = function(t) {
        r.off("change", t)
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }), e.checkPointInRect = function(t, e, n) {
        return void 0 === n && (n = 0), t.x >= e.x - n && t.x <= e.x + (e.width + n) && t.y >= e.y - n && t.y <= e.y + (e.height + n)
    }
}, function(t, e, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    });
    var r = n(34);

    function i() {
        return r.instance.hasOwnProperty.localStorage ? r.instance.localStorage : window.localStorage
    }

    function o(t) {
        return "com.jellimatic.maze2.0.0.2." + t
    }
    e.save = function(t, e) {
        try {
            var n = JSON.stringify(e);
            i().setItem(o(t), "" + n)
        } catch (t) {}
    }, e.load = function(t, e) {
        try {
            var n = i().getItem(o(t));
            if (!n) return null;
            var r = JSON.parse(n);
            return e(r), r
        } catch (t) {
            return null
        }
    }
}, function(t, e, n) {
    "use strict";
    t.exports = {
        isString: function(t) {
            return "string" == typeof t
        },
        isObject: function(t) {
            return "object" == typeof t && null !== t
        },
        isNull: function(t) {
            return null === t
        },
        isNullOrUndefined: function(t) {
            return null == t
        }
    }
}, function(t, e, n) {
    t.exports = n(528)
}, function(t, e, n) {
    ! function(e) {
        var r = -1,
            i = function(t) {
                return t.every = function(e, n, i) {
                    t._time(), i || (i = n, n = null);
                    var o = r += 1;
                    return t._timers[o] = {
                        visible: e,
                        hidden: n,
                        callback: i
                    }, t._run(o, !1), t.isSupported() && t._listen(), o
                }, t.stop = function(e) {
                    return !!t._timers[e] && (t._stop(e), delete t._timers[e], !0)
                }, t._timers = {}, t._time = function() {
                    t._timed || (t._timed = !0, t._wasHidden = t.hidden(), t.change(function() {
                        t._stopRun(), t._wasHidden = t.hidden()
                    }))
                }, t._run = function(n, r) {
                    var i, o = t._timers[n];
                    if (t.hidden()) {
                        if (null === o.hidden) return;
                        i = o.hidden
                    } else i = o.visible;
                    var s = function() {
                        o.last = new Date, o.callback.call(e)
                    };
                    if (r) {
                        var a = new Date - o.last;
                        i > a ? o.delay = setTimeout(function() {
                            o.id = setInterval(s, i), s()
                        }, i - a) : (o.id = setInterval(s, i), s())
                    } else o.id = setInterval(s, i)
                }, t._stop = function(e) {
                    var n = t._timers[e];
                    clearInterval(n.id), clearTimeout(n.delay), delete n.id, delete n.delay
                }, t._stopRun = function(e) {
                    var n = t.hidden(),
                        r = t._wasHidden;
                    if (n && !r || !n && r)
                        for (var i in t._timers) t._stop(i), t._run(i, !n)
                }, t
            };
        void 0 !== t && t.exports ? t.exports = i(n(196)) : i(e.Visibility || n(196))
    }(window)
}, function(t, e, n) {
    var r = n(210),
        i = Date.now || function() {
            return +new Date
        },
        o = {},
        s = 1,
        a = {
            effect: {}
        };
    a.effect.Animate = {
        stop: function(t) {
            var e = null != o[t];
            return e && (o[t] = null), e
        },
        isRunning: function(t) {
            return null != o[t]
        },
        start: function(t, e, n, a, u) {
            var l = i(),
                c = l,
                h = 0,
                f = 0,
                d = s++;
            if (d % 20 == 0) {
                var p = {};
                for (var v in o) p[v] = !0;
                o = p
            }
            var _ = function(s) {
                var p = !0 !== s,
                    v = i();
                if (!o[d] || e && !e(d)) return o[d] = null, void(n && n(60 - f / ((v - l) / 1e3), d, !1));
                if (p)
                    for (var g = Math.round((v - c) / (1e3 / 60)) - 1, y = 0; y < Math.min(g, 4); y++) _(!0), f++;
                a && (h = (v - l) / a) > 1 && (h = 1);
                var m = u ? u(h) : h;
                !1 !== t(m, v, p) && 1 !== h || !p ? p && (c = v, r(_)) : (o[d] = null, n && n(60 - f / ((v - l) / 1e3), d, 1 === h || null == a))
            };
            return o[d] = !0, r(_), d
        }
    }, t.exports = a
}, function(t, e, n) {
    var r, i = n(529);
    ! function() {
        var t = function() {};
        r = function(e, n) {
            for (var r in this.__callback = e, this.options = {
                    scrollingX: !0,
                    scrollingY: !0,
                    animating: !0,
                    animationDuration: 250,
                    bouncing: !0,
                    locking: !0,
                    paging: !1,
                    snapping: !1,
                    zooming: !1,
                    minZoom: .5,
                    maxZoom: 3,
                    speedMultiplier: 1,
                    scrollingComplete: t,
                    penetrationDeceleration: .03,
                    penetrationAcceleration: .08
                }, n) this.options[r] = n[r]
        };
        var e = function(t) {
                return Math.pow(t - 1, 3) + 1
            },
            n = function(t) {
                return (t /= .5) < 1 ? .5 * Math.pow(t, 3) : .5 * (Math.pow(t - 2, 3) + 2)
            },
            o = {
                __isSingleTouch: !1,
                __isTracking: !1,
                __didDecelerationComplete: !1,
                __isGesturing: !1,
                __isDragging: !1,
                __isDecelerating: !1,
                __isAnimating: !1,
                __clientLeft: 0,
                __clientTop: 0,
                __clientWidth: 0,
                __clientHeight: 0,
                __contentWidth: 0,
                __contentHeight: 0,
                __snapWidth: 100,
                __snapHeight: 100,
                __refreshHeight: null,
                __refreshActive: !1,
                __refreshActivate: null,
                __refreshDeactivate: null,
                __refreshStart: null,
                __zoomLevel: 1,
                __scrollLeft: 0,
                __scrollTop: 0,
                __maxScrollLeft: 0,
                __maxScrollTop: 0,
                __scheduledLeft: 0,
                __scheduledTop: 0,
                __scheduledZoom: 0,
                __lastTouchLeft: null,
                __lastTouchTop: null,
                __lastTouchMove: null,
                __positions: null,
                __minDecelerationScrollLeft: null,
                __minDecelerationScrollTop: null,
                __maxDecelerationScrollLeft: null,
                __maxDecelerationScrollTop: null,
                __decelerationVelocityX: null,
                __decelerationVelocityY: null,
                setDimensions: function(t, e, n, r) {
                    t === +t && (this.__clientWidth = t), e === +e && (this.__clientHeight = e), n === +n && (this.__contentWidth = n), r === +r && (this.__contentHeight = r), this.__computeScrollMax(), this.scrollTo(this.__scrollLeft, this.__scrollTop, !0)
                },
                setPosition: function(t, e) {
                    this.__clientLeft = t || 0, this.__clientTop = e || 0
                },
                setSnapSize: function(t, e) {
                    this.__snapWidth = t, this.__snapHeight = e
                },
                activatePullToRefresh: function(t, e, n, r) {
                    this.__refreshHeight = t, this.__refreshActivate = e, this.__refreshDeactivate = n, this.__refreshStart = r
                },
                triggerPullToRefresh: function() {
                    this.__publish(this.__scrollLeft, -this.__refreshHeight, this.__zoomLevel, !0), this.__refreshStart && this.__refreshStart()
                },
                finishPullToRefresh: function() {
                    this.__refreshActive = !1, this.__refreshDeactivate && this.__refreshDeactivate(), this.scrollTo(this.__scrollLeft, this.__scrollTop, !0)
                },
                getValues: function() {
                    return {
                        left: this.__scrollLeft,
                        top: this.__scrollTop,
                        zoom: this.__zoomLevel
                    }
                },
                getScrollMax: function() {
                    return {
                        left: this.__maxScrollLeft,
                        top: this.__maxScrollTop
                    }
                },
                zoomTo: function(t, e, n, r, o) {
                    if (!this.options.zooming) throw new Error("Zooming is not enabled!");
                    o && (this.__zoomComplete = o), this.__isDecelerating && (i.effect.Animate.stop(this.__isDecelerating), this.__isDecelerating = !1);
                    var s = this.__zoomLevel;
                    null == n && (n = this.__clientWidth / 2), null == r && (r = this.__clientHeight / 2), t = Math.max(Math.min(t, this.options.maxZoom), this.options.minZoom), this.__computeScrollMax(t);
                    var a = (n + this.__scrollLeft) * t / s - n,
                        u = (r + this.__scrollTop) * t / s - r;
                    a > this.__maxScrollLeft ? a = this.__maxScrollLeft : a < 0 && (a = 0), u > this.__maxScrollTop ? u = this.__maxScrollTop : u < 0 && (u = 0), this.__publish(a, u, t, e)
                },
                zoomBy: function(t, e, n, r, i) {
                    this.zoomTo(this.__zoomLevel * t, e, n, r, i)
                },
                scrollTo: function(t, e, n, r) {
                    if (this.__isDecelerating && (i.effect.Animate.stop(this.__isDecelerating), this.__isDecelerating = !1), null != r && r !== this.__zoomLevel) {
                        if (!this.options.zooming) throw new Error("Zooming is not enabled!");
                        t *= r, e *= r, this.__computeScrollMax(r)
                    } else r = this.__zoomLevel;
                    this.options.scrollingX ? this.options.paging ? t = Math.round(t / this.__clientWidth) * this.__clientWidth : this.options.snapping && (t = Math.round(t / this.__snapWidth) * this.__snapWidth) : t = this.__scrollLeft, this.options.scrollingY ? this.options.paging ? e = Math.round(e / this.__clientHeight) * this.__clientHeight : this.options.snapping && (e = Math.round(e / this.__snapHeight) * this.__snapHeight) : e = this.__scrollTop, t = Math.max(Math.min(this.__maxScrollLeft, t), 0), e = Math.max(Math.min(this.__maxScrollTop, e), 0), t === this.__scrollLeft && e === this.__scrollTop && (n = !1), this.__isTracking || this.__publish(t, e, r, n)
                },
                scrollBy: function(t, e, n) {
                    var r = this.__isAnimating ? this.__scheduledLeft : this.__scrollLeft,
                        i = this.__isAnimating ? this.__scheduledTop : this.__scrollTop;
                    this.scrollTo(r + (t || 0), i + (e || 0), n)
                },
                doMouseZoom: function(t, e, n, r) {
                    var i = t > 0 ? .97 : 1.03;
                    return this.zoomTo(this.__zoomLevel * i, !1, n - this.__clientLeft, r - this.__clientTop)
                },
                doTouchStart: function(t, e) {
                    if (null == t.length) throw new Error("Invalid touch list: " + t);
                    if (e instanceof Date && (e = e.valueOf()), "number" != typeof e) throw new Error("Invalid timestamp value: " + e);
                    var n, r;
                    this.__interruptedAnimation = !0, this.__isDecelerating && (i.effect.Animate.stop(this.__isDecelerating), this.__isDecelerating = !1, this.__interruptedAnimation = !0), this.__isAnimating && (i.effect.Animate.stop(this.__isAnimating), this.__isAnimating = !1, this.__interruptedAnimation = !0);
                    var o = 1 === t.length;
                    o ? (n = t[0].pageX, r = t[0].pageY) : (n = Math.abs(t[0].pageX + t[1].pageX) / 2, r = Math.abs(t[0].pageY + t[1].pageY) / 2), this.__initialTouchLeft = n, this.__initialTouchTop = r, this.__zoomLevelStart = this.__zoomLevel, this.__lastTouchLeft = n, this.__lastTouchTop = r, this.__lastTouchMove = e, this.__lastScale = 1, this.__enableScrollX = !o && this.options.scrollingX, this.__enableScrollY = !o && this.options.scrollingY, this.__isTracking = !0, this.__didDecelerationComplete = !1, this.__isDragging = !o, this.__isSingleTouch = o, this.__positions = []
                },
                doTouchMove: function(t, e, n) {
                    if (null == t.length) throw new Error("Invalid touch list: " + t);
                    if (e instanceof Date && (e = e.valueOf()), "number" != typeof e) throw new Error("Invalid timestamp value: " + e);
                    if (this.__isTracking) {
                        var r, i;
                        2 === t.length ? (r = Math.abs(t[0].pageX + t[1].pageX) / 2, i = Math.abs(t[0].pageY + t[1].pageY) / 2) : (r = t[0].pageX, i = t[0].pageY);
                        var o = this.__positions;
                        if (this.__isDragging) {
                            var s = r - this.__lastTouchLeft,
                                a = i - this.__lastTouchTop,
                                u = this.__scrollLeft,
                                l = this.__scrollTop,
                                c = this.__zoomLevel;
                            if (null != n && this.options.zooming) {
                                var h = c;
                                if (c = c / this.__lastScale * n, h !== (c = Math.max(Math.min(c, this.options.maxZoom), this.options.minZoom))) {
                                    var f = r - this.__clientLeft,
                                        d = i - this.__clientTop;
                                    u = (f + u) * c / h - f, l = (d + l) * c / h - d, this.__computeScrollMax(c)
                                }
                            }
                            if (this.__enableScrollX) {
                                u -= s * this.options.speedMultiplier;
                                var p = this.__maxScrollLeft;
                                (u > p || u < 0) && (this.options.bouncing ? u += s / 2 * this.options.speedMultiplier : u = u > p ? p : 0)
                            }
                            if (this.__enableScrollY) {
                                l -= a * this.options.speedMultiplier;
                                var v = this.__maxScrollTop;
                                (l > v || l < 0) && (this.options.bouncing ? (l += a / 2 * this.options.speedMultiplier, this.__enableScrollX || null == this.__refreshHeight || (!this.__refreshActive && l <= -this.__refreshHeight ? (this.__refreshActive = !0, this.__refreshActivate && this.__refreshActivate()) : this.__refreshActive && l > -this.__refreshHeight && (this.__refreshActive = !1, this.__refreshDeactivate && this.__refreshDeactivate()))) : l = l > v ? v : 0)
                            }
                            o.length > 60 && o.splice(0, 30), o.push(u, l, e), this.__publish(u, l, c)
                        } else {
                            var _ = this.options.locking ? 3 : 0,
                                g = Math.abs(r - this.__initialTouchLeft),
                                y = Math.abs(i - this.__initialTouchTop);
                            this.__enableScrollX = this.options.scrollingX && g >= _, this.__enableScrollY = this.options.scrollingY && y >= _, o.push(this.__scrollLeft, this.__scrollTop, e), this.__isDragging = (this.__enableScrollX || this.__enableScrollY) && (g >= 5 || y >= 5), this.__isDragging && (this.__interruptedAnimation = !1)
                        }
                        this.__lastTouchLeft = r, this.__lastTouchTop = i, this.__lastTouchMove = e, this.__lastScale = n
                    }
                },
                stop: function() {
                    this.__isTracking = !1, this.__isDragging = !1, this.__positions && (this.__positions.length = 0)
                },
                doTouchEnd: function(t) {
                    if (t instanceof Date && (t = t.valueOf()), "number" != typeof t) throw new Error("Invalid timestamp value: " + t);
                    if (this.__isTracking) {
                        if (this.__isTracking = !1, this.__isDragging)
                            if (this.__isDragging = !1, this.__isSingleTouch && this.options.animating && t - this.__lastTouchMove <= 100) {
                                for (var e = this.__positions, n = e.length - 1, r = n, i = n; i > 0 && e[i] > this.__lastTouchMove - 100; i -= 3) r = i;
                                if (r !== n) {
                                    var o = e[n] - e[r],
                                        s = this.__scrollLeft - e[r - 2],
                                        a = this.__scrollTop - e[r - 1];
                                    this.__decelerationVelocityX = s / o * (1e3 / 60), this.__decelerationVelocityY = a / o * (1e3 / 60);
                                    var u = this.options.paging || this.options.snapping ? 4 : 1;
                                    Math.abs(this.__decelerationVelocityX) > u || Math.abs(this.__decelerationVelocityY) > u ? this.__refreshActive || this.__startDeceleration(t) : this.options.scrollingComplete()
                                } else this.options.scrollingComplete()
                            } else t - this.__lastTouchMove > 100 && this.options.scrollingComplete();
                        this.__isDecelerating || (this.__refreshActive && this.__refreshStart ? (this.__publish(this.__scrollLeft, -this.__refreshHeight, this.__zoomLevel, !0), this.__refreshStart && this.__refreshStart()) : ((this.__interruptedAnimation || this.__isDragging) && this.options.scrollingComplete(), this.scrollTo(this.__scrollLeft, this.__scrollTop, !0, this.__zoomLevel), this.__refreshActive && (this.__refreshActive = !1, this.__refreshDeactivate && this.__refreshDeactivate()))), this.__positions.length = 0
                    }
                },
                __publish: function(t, r, o, s) {
                    var a = this,
                        u = a.__isAnimating;
                    if (u && (i.effect.Animate.stop(u), a.__isAnimating = !1), s && a.options.animating) {
                        a.__scheduledLeft = t, a.__scheduledTop = r, a.__scheduledZoom = o;
                        var l = a.__scrollLeft,
                            c = a.__scrollTop,
                            h = a.__zoomLevel,
                            f = t - l,
                            d = r - c,
                            p = o - h;
                        a.__isAnimating = i.effect.Animate.start(function(t, e, n) {
                            n && (a.__scrollLeft = l + f * t, a.__scrollTop = c + d * t, a.__zoomLevel = h + p * t, a.__callback && a.__callback(a.__scrollLeft, a.__scrollTop, a.__zoomLevel))
                        }, function(t) {
                            return a.__isAnimating === t
                        }, function(t, e, n) {
                            e === a.__isAnimating && (a.__isAnimating = !1), (a.__didDecelerationComplete || n) && a.options.scrollingComplete(), a.options.zooming && (a.__computeScrollMax(), a.__zoomComplete && (a.__zoomComplete(), a.__zoomComplete = null))
                        }, a.options.animationDuration, u ? e : n)
                    } else a.__scheduledLeft = a.__scrollLeft = t, a.__scheduledTop = a.__scrollTop = r, a.__scheduledZoom = a.__zoomLevel = o, a.__callback && a.__callback(t, r, o), a.options.zooming && (a.__computeScrollMax(), a.__zoomComplete && (a.__zoomComplete(), a.__zoomComplete = null))
                },
                __computeScrollMax: function(t) {
                    null == t && (t = this.__zoomLevel), this.__maxScrollLeft = Math.max(this.__contentWidth * t - this.__clientWidth, 0), this.__maxScrollTop = Math.max(this.__contentHeight * t - this.__clientHeight, 0)
                },
                __startDeceleration: function(t) {
                    var e = this;
                    if (e.options.paging) {
                        var n = Math.max(Math.min(e.__scrollLeft, e.__maxScrollLeft), 0),
                            r = Math.max(Math.min(e.__scrollTop, e.__maxScrollTop), 0),
                            o = e.__clientWidth,
                            s = e.__clientHeight;
                        e.__minDecelerationScrollLeft = Math.floor(n / o) * o, e.__minDecelerationScrollTop = Math.floor(r / s) * s, e.__maxDecelerationScrollLeft = Math.ceil(n / o) * o, e.__maxDecelerationScrollTop = Math.ceil(r / s) * s
                    } else e.__minDecelerationScrollLeft = 0, e.__minDecelerationScrollTop = 0, e.__maxDecelerationScrollLeft = e.__maxScrollLeft, e.__maxDecelerationScrollTop = e.__maxScrollTop;
                    var a = e.options.snapping ? 4 : .001;
                    e.__isDecelerating = i.effect.Animate.start(function(t, n, r) {
                        e.__stepThroughDeceleration(r)
                    }, function() {
                        var t = Math.abs(e.__decelerationVelocityX) >= a || Math.abs(e.__decelerationVelocityY) >= a;
                        return t || (e.__didDecelerationComplete = !0), t
                    }, function(t, n, r) {
                        e.__isDecelerating = !1, e.__didDecelerationComplete && e.options.scrollingComplete(), e.scrollTo(e.__scrollLeft, e.__scrollTop, e.options.snapping)
                    })
                },
                __stepThroughDeceleration: function(t) {
                    var e = this.__scrollLeft + this.__decelerationVelocityX,
                        n = this.__scrollTop + this.__decelerationVelocityY;
                    if (!this.options.bouncing) {
                        var r = Math.max(Math.min(this.__maxDecelerationScrollLeft, e), this.__minDecelerationScrollLeft);
                        r !== e && (e = r, this.__decelerationVelocityX = 0);
                        var i = Math.max(Math.min(this.__maxDecelerationScrollTop, n), this.__minDecelerationScrollTop);
                        i !== n && (n = i, this.__decelerationVelocityY = 0)
                    }
                    if (t ? this.__publish(e, n, this.__zoomLevel) : (this.__scrollLeft = e, this.__scrollTop = n), this.options.paging || (this.__decelerationVelocityX *= .95, this.__decelerationVelocityY *= .95), this.options.bouncing) {
                        var o = 0,
                            s = 0,
                            a = this.options.penetrationDeceleration,
                            u = this.options.penetrationAcceleration;
                        e < this.__minDecelerationScrollLeft ? o = this.__minDecelerationScrollLeft - e : e > this.__maxDecelerationScrollLeft && (o = this.__maxDecelerationScrollLeft - e), n < this.__minDecelerationScrollTop ? s = this.__minDecelerationScrollTop - n : n > this.__maxDecelerationScrollTop && (s = this.__maxDecelerationScrollTop - n), 0 !== o && (o * this.__decelerationVelocityX <= 0 ? this.__decelerationVelocityX += o * a : this.__decelerationVelocityX = o * u), 0 !== s && (s * this.__decelerationVelocityY <= 0 ? this.__decelerationVelocityY += s * a : this.__decelerationVelocityY = s * u)
                    }
                }
            };
        for (var s in o) r.prototype[s] = o[s]
    }(), t.exports = r
}, function(t, e, n) {
    var r = n(50),
        i = r.GridMask,
        o = r.directions;

    function s(t, e) {
        return Math.floor(t.random() * e)
    }

    function a(t, e) {
        return 1 == e.length ? e[0] : e[s(t, e.length)]
    }

    function u(t, e, n) {
        var r = [];
        return e.get(n[0], n[1] - 1) || t.mask && !t.mask.get(n[0], n[1] - 1) || r.push(o.NORTH), e.get(n[0] + 1, n[1]) || t.mask && !t.mask.get(n[0] + 1, n[1]) || r.push(o.EAST), e.get(n[0], n[1] + 1) || t.mask && !t.mask.get(n[0], n[1] + 1) || r.push(o.SOUTH), e.get(n[0] - 1, n[1]) || t.mask && !t.mask.get(n[0] - 1, n[1]) || r.push(o.WEST), r
    }

    function l(t, e) {
        var n, r = t.width(),
            l = t.height(),
            c = new i(r, l, {
                exterior: !0
            });
        do {
            n = [s(e, r), s(e, l)]
        } while (e.mask && !e.mask.get(n[0], n[1]));
        t.targetPoint = {
            x: n[0],
            y: n[1]
        }, c.set(n[0], n[1], !0);
        for (var h, f = [], d = 0;;) {
            var p = u(e, c, n);
            if (p.length) {
                var v = a(e, p);
                p.length > 1 && f.push(n), t.setPassage(n[0], n[1], v, !0), n = o.move(n[0], n[1], v), c.set(n[0], n[1], !0)
            } else {
                if (!f.length) break;
                f.length >= d && (d = f.length, h = {
                    x: n[0],
                    y: n[1]
                }), n = f.pop()
            }
        }
        t.originPoint = h
    }
    n(365), l.id = "backtrack", l.name = "recursive-backtracking", l.features = {
        mask: !0
    }, t.exports = l
}, function(t, e) {}]);
gradle.jellimatic();